Ir ao conteúdo
  • Cadastre-se

Lucas Akio Fujita Sato

Membro Pleno
  • Posts

    28
  • Cadastrado em

  • Última visita

posts postados por Lucas Akio Fujita Sato

  1. Estou com um problema minha função cria o arquivo mas não imprime nada nele. segue abaixo o código:

    void analisa_dados_brutos(double* s, long t) //sinal e seu tamanho
    {
    	FILE *file;
    	file = fopen("sinal.txt","w+");
    	double m = fabs(s[0]);
    	for(long i=1; i<t; i++)
    		if(fabs(s[i])>m)
    			m = fabs(s[i]);
    	for(long i=0; i<t; i++)
    		s[i] /= m;
    	double* y = new double[t+t-1]; //sinal autocorrelacionado
    	for(long n=0; n<t+t-1; n++)
    	{
    		y[n] = 0;
    		for(long k=0; k<t; k++)
    			if((n-k>=0) && (n-k<t))
    				y[n] += s[n-k]*s[t-k-1];
    	} 
    	
    	for(long n=t; n<t+t-1; n++)
    		fprintf(file,"%.5f \n", y[n]);
    	fclose(file);
    }
    //-------------------------------------------------------------

     

  2. O que eu fiz até agora é o seguinte :

    a)

    
    SELECT x.nome_empregado
    FROM   ocupação x
    WHERE  x.salario > (SELECT avg(y.salario)
                        FROM    ocupação.y
                        WHERE   x.tipo_de_ serviço =  y.tipo_de_ serviço)

    B)

    SELECT x.nome_coordenador
    FROM   coordena x 
    WHERE (SELECT y.cidade
           FROM   Reside y
           WHERE x.nome_empregado = y.nome_empregado)
    CONTAINS(SELECT w.cidade
             FROM   Reside w, coordena z
             WHERE  w.nome_empregado = z.nome_empregado
             AND nome_coordenador = 'Nestor Silva')

     

  3. Não sei se é o lugar certo para postar. Mas estou com dificuldades em um exercício da faculdade sobre SQL. Se alguem puder ajudar ficaria muito grato

     

    Exercício

    Considere as seguintes relações:

     

    reside(nome_empregado, rua, cidade) 

    ocupação(nome_empregado, nome_empresa, salário, tipo_de_serviço)

    coordena(nome_empregado, nome_coordenador)

     

    confeccione as consultas abaixo utilizando a linguagem SQL

    a- obter todos os empregados que tem salário maior que a média de salario daqueles que executam o mesmo tipo de serviço

    b- obter todos os gerentes que coordenam pessoas em todas as cidades dos coordenados pelo gerente "Nestor Silva"

  4. Estou precisando de ajuda com o seguinte exercicio:

    Faça um programa que recebe numeros naturais e os armazene em uma pilha, o fim da entrada de dados deverá ser indicado por um numero negativo. O programa deve tambem verificar a ocorrencia de dois nós vizinhos que são primos. Segue o código que eu fiz(provavelmente tudo errado).

    #include <stdlib.h>
    #include <stdio.h>
    
    struct celula{
       int item;
       celula * prox;
    };
    
    celula *Topo = NULL;
    celula *aux;
    
    void push(int valor){
    	
       celula *nova_celula = (celula*) malloc(sizeof(celula));
     
       if(nova_celula==NULL){
           printf("MEMÓRIA INSUFICIENTE!\n");
       }
       else{
          nova_celula->item = valor;
          nova_celula->prox = Topo;
          Topo = nova_celula;
       }
    }
    
    int pop(void){
       int  valor;
       celula * temp;
       
       if(Topo==NULL)
       {
       	printf("PILHA VAZIA, NÃO HÁ NADA PARA REMOVER!\n");
       	return ;
       }
       else
       {
       	  valor = Topo->item;
       	  temp = Topo;
    	  Topo = Topo->prox;
    	  temp->prox = NULL;
    	  free(temp);
          
          return 1;
       }  	
    }
    
    int primo(int num){
    	int i=, count=;
    	
    	for(i=1; i<=num; i++){
    		if(num%i==)
    		count++;
        }
    	if(count==2)
    	    return 1;
    	else
    	    return ;
    }
    
    int main(){
    	
    	int valor=, x=, count=, y=;
    	
    	while(valor>=){
    		printf("Digite o valor a ser inserido: ");
    		scanf("%d", &valor);
    		push(valor);
    	}
    	aux = Topo;
    	
    	while(aux != NULL){
    		aux = aux->prox;
    		while(primo(aux->item) == 1){
    			pop();
    			count++;
    		}
        }
        if(count >= 2){
    			printf("Existem nos vizinhos e primos!");
        }     
        else{
        	printf("não existem nós vizinhos e primos!");
    	}
    		
    	return ;
    }

     

  5. Estou com problema com um código de fila dinâmica acredito que o problema esteja na criação da fila, porém não estou conseguindo resolver. Segue o código:

    #include <stdio.h>
    #include <stdlib.h>
    #include <locale.h>
    
    //Declarações iniciais
    typedef struct elem{
    	int info;
    	struct elem *prox;
    	
    }tipoElem;
    
    typedef struct{
    	tipoElem *inicio;
    	tipoElem *fim;
    }Fila;
    
    Fila *q;
    int count=0;
    
    //Função para criar fila vazia
    void cria_fila(){
    	q->inicio = NULL;
    	q->fim = NULL;
    	printf("FILA CRIADA!");
    }
    
    //Função para verificar se a fila está vazia
    int fila_vazia(){
    	if(q->inicio == NULL)
    	    return 1;
    	else
    	   return 0;
    } 
    
    //Função insere na fila
    int insere(int valor){
    	tipoElem *p;
    	p = (tipoElem*) malloc(sizeof(tipoElem));
    	if(p == NULL)
    	    return 0;
    	count++;
    	p->info = valor;
    	p->prox = NULL;
    	if(fila_vazia())
    	    q->inicio = p;
    	else{
    		q->fim->prox = p;
    		q->fim = p;
    	}
    	return 1;
    }
    
    //Função para remover elemento na fila
    int remove(){
    	tipoElem *p;
    	if(fila_vazia()){
    		printf("FILA VAZIA!\n");
    		return 0;
    	}
    	else{
    		count--;
    		p = q->inicio;
    		q->inicio = p->prox;
    		if(q->inicio == NULL)
    		    q->fim == NULL;
    		free(p);
    	}
    	return 1;
    }
    
    //Função para consultar primeiro elemento
    int consulta(){
    	int valor;
    	if(fila_vazia()){
    		printf("FILA VAZIA!\n");
    		return 0;
    	}
    	else{
    		valor = q->inicio->info;
    	    printf("PRIMEIRO ELEMENTO: %d\n", valor);
    	    return 1;
    	}
    }
    //Função que retorna o tamanho da fila
    int tamanho(){
    	return count;
    }
    
    //Função que imprime a fila
    void imprimir() {
         tipoElem *ponteiro = q->inicio;
         if( fila_vazia() ){
        	printf("FILA VAZIA!\n");
         }
         while (ponteiro != NULL) {
               printf("%d\n", ponteiro->info);
               ponteiro = ponteiro->prox;
         }
    }
    
    //Função que destroi a fila
    int destruir(){
    	tipoElem *temp;
    	if(fila_vazia()){
    		printf("FILA VAZIA!\n");
    		return 0;
    	}
    	else{
    		while(q->inicio != NULL){
    			temp = q->inicio;
    			q->inicio = q->inicio->prox;
    			free(temp);
    		}
    		printf("FILA DESTRUÍDA!\n");
    		count=;
    		return 1;
    	}		
    }
    
    int main(){
    		int valor=0, op=0;
    	setlocale(LC_ALL,""); //comando para usar caracteres especiais
    	
    	do{
            printf("=========MENU==========");
            printf("\n(1) CRIAR FILA\n(2) INSERIR ELEMENTO\n(3) REMOVER ELEMENTO\n(4) CONSULTAR TAMANHO");
            printf("\n(5) CONSULTAR INÍCIO\n(6) IMPRIMIR FILA\n(7) DESTRUIR FILA\n");
            printf("=======================\n");
            
            do{
    	      printf("DIGITE SUA OPÇÃO: ");
              scanf("%d", &op);
            }while(op < 1 || op > 6);
          
            system("cls || clear");
          
            switch(op){
            	case 1: cria_fila();
                case 2: printf("DIGITE O VALOR A SER INSERIDO: ");
                        scanf("%d", &valor);
                        insere(valor);
                        break;
                case 3: remove();
                        break;
                case 4: printf("QUANTIDADE DE ELEMENTOS DA FILA: %d \n", tamanho() );
                        break;
                case 5: consulta();
                        break;
    			case 6: printf("ELEMENTOS DA FILA:\n");
    			        imprimir();
    			        break;    
    			case 7: destruir();
    			        break;        
            }
            
            printf("\nDIGITE 0 PARA CONTINUAR: ");
    		scanf("%d", &op);
    		printf("\n\n");
    		
    	}while(op==0);
    	
    	return 0;
    }

     

  6. Estou com dúvida no seguinte exercício, vocês podem me ajudar? 

     

    O superfatorial de um número N é definida pelo produto dos N primeiros fatoriais de N. Assim, o superfatorial de 4 é sf(4) = 1! * 2! * 3! * 4! = 288. Faça uma função recursiva que receba um número inteiro positivo N e retorne o superfatorial desse número.

     

    Essa foi a função que eu fiz mas está retornando o valor errado:

    int superfatorial(int num){
    	
    	int res, super=1;
    	
    	if(num==0)
    	return 1;
    	
    	else{
    		while(num >= 0){
    			res = superfatorial(num-1)*num;
    		    super = super * res;
    			num--;	
    	    }
    	}
    	return super;
    }
    

     

  7. Use as funções malloc e realloc para alocar e realocar, respectivamente.

    A implementação pode ser feita assim.

     

    #include <stdio.h>#include <stdlib.h>int main(){    int *v, n, i = 0;    while(scanf("%d%*c", &n)){        if(!n) break;        if(!i){            v = (int *)malloc(sizeof(int) * (i + 1));        }else{            v = (int *)realloc(v, sizeof(int *) * (i + 1));        }        if(v == NULL){            puts("Erro na alocacao");            exit(1);        }else{            v[i++] = n;        }    }    if(i){        for(n = 0; n < i; n++){            printf("*%d\n", v[n]);        }        free(v);    }    return 0;}

    Você poderia explicar o algoritmo? Não entendi bem essa parte:

     if(!i){            v = (int *)malloc(sizeof(int) * (i + 1));        }else{            v = (int *)realloc(v, sizeof(int *) * (i + 1));        }

    A memória só vai ser realocada se o valor digitado for zero?

  8. Não estou conseguindo fazer esse exercício, não sei nem por onde começar, me ajudem por favor.

     

    Crie um programa em C para que o usuário digite elementos em um vetor do tipo inteiro. O vetor é inicialmente um ponteiro. Para cada novo valor, uma posição de memória deve ser realocada e testada. O valor digitado deve ser armazenado na posição correta. Esse processo termina quando o usuário digitar, como elemento do vetor, o valor ‘0’ . O vetor deve ser apresentado e em seguida a memória deve ser liberada.

  9. Hey '!'

    Eu queria ajudar mais qual das funções do exercício tu tens maior dúvida.

    Hint: na implementação de tipos typedef geralmente e feita no scobo de arquivo forçando o reconhecimento global.

    Queria saber se está certo até agora o que fiz e como fazer a parte do maior e menor saldo e da média. E mais uma coisa rodei o código e ele não está entrando no if

  10. Não estou conseguindo fazer o seguinte exercício por favor me ajudem. 

     

    Construir um programa em C para controlar o saldo bancário de 20 clientes. Os dados importantes são: numero da conta, nome, sexo e saldo. O nome é composto por uma estrutura individual (com os campos nome e sobrenome). Em seguida, o programa deve permitir ler os dados, inclusive o saldo. Calcular e imprimir o saldo médio das mulheres, o saldo médio dos homens, os maiores e menores saldos entre homens e mulheres.

    #include <stdio.h>#include <stdlib.h>#define registros 20int main(){		int i, f=0, m=0, j;		typedef struct nomes{		char nome[20];		char sobrenome[20];	}tnom;		typedef struct clientes{		int numeroconta;		char sexo;		tnom n;		float saldohomem;        float saldomulher;	}tcli;		tcli cli[registros];		for (i = 0; i<registros; i++){	   printf("\nInforme o nome do cliente:\n");           scanf("%s", &cli[i].n.nome);           printf("\nInforme o sobrenome do cliente:\n");           scanf("%s", &cli[i].n.sobrenome);           printf("\nInforme o numero da conta:\n");           scanf("%d", &cli[i].numeroconta);	   printf("Informe o sexo do cliente:\n");           scanf("%c ", &cli[i].sexo);          if(cli[i].sexo == 'f' || cli[i].sexo == 'F'){              printf("\nInforme agora o saldo da conta:\n");              scanf("%f", &cli[i].saldomulher);              f++;          }          else if(cli[i].sexo == 'm' || cli[i].sexo == 'M'){             puts("Informe agora o saldo da conta:\n");             scanf("%f", &cli[i].saldohomem);             m++;          }             }	        printf("\nA media de saldo entre as mulheres: %f\n", cli[i].saldomulher/f);        printf("\nA media de saldo entre os homens : %f\n", cli[i].saldohomem/m);   		system("PAUSE");	return 0;}
  11. Se você abrir o word e digitar um texto qualquer e alinhar ele a direita, vai conseguir entender a lógica desse problema.

    Ex:

    12345....123456789123......
    ....12345123456789......123
    Imagine que os pontos são espaços em branco, certo.

    No primeiro texto, justificado a esquerda, você tem uma linha com 5 caracteres, outra com 9 e uma com 3. Então o maior tamanho de linha é 9.

    Pra justificar eles a direita, basta preencher com espaços as linhas que tiverem menos de 9 caracteres com (9 - N) espaços em branco... onde N é o tamanho da linha.

    Então na primeira linha, que tem tamanho 5, você coloca (9 - 5) espaços em branco no começo.

    Na segunda linha, coloca (9 - 9) espaços em branco.

    Na terceira linha, coloca (9 - 3) espaços em branco.

    Tem que justificar a direita e a esquerda ao mesmo tempo.

  12. Pessoal, estou com problemas não estou conseguindo fazer um programa, não sei nem por onde começar. Segue o exercício:

     

    Sua tarefa é escrever um programa para fazer a formatação automática de um
    texto. O programa deve receber um texto de entrada com palavras separadas por apenas
    um único branco e as linhas justificadas a esquerda, o programa transforma o texto em um
    texto justificado à direita e também à esquerda. 
     
  13. Vi não.

    Qual erro aparece?

     

    Tente isso aqui:

    void Insere(char *str, char A){	int k, N, aux, aux2;	N=strlen(str);	aux = str[0];	str[0] = A;	for(k=1; k>=N; k++){		aux2 = str[k];  		str[k] = aux;		aux = aux2;	} }//fim

    Fiz agora mas não programei.

    no meu não está lendo o caracter.

    E o seu não funciona imprime a string sem a primeira letra.

     

    Edit: Consegui arrumar não sei porque mas não estava lendo o caracter, obrigado pela ajuda.

    • Curtir 1
  14. E se você criar um vetor vazio, concatenar o char e depois concatenar o resto?

    é que minha professora fez do jeito que eu postei, então eu queria fazer funcionar daquele jeito, entendeu?

    você deu uma olhada no código?

  15. Pessoal, estou com um problema no seguinte exercicio:

     

    Escreva uma função para inserir um caracter no início de uma string e depois imprima a string resultante.

     

    Fiz o programa mas não está funcionando, segue o código:

     

    void Insere(char *str, char A){
    int k, N;
    N=strlen(str);
    for(k=N; k>=0; k--)
      str[k+1] = str[k];
    str[0] = A;
     
     }//fim
     
     int main(){
      char frase[100], letra;
      printf("Digite a frase:\n");
      scanf("%s", frase);
     
      printf("\nEntre com um caracter:\n");
      scanf("%c", &letra);
     
    Insere(frase, letra);
     
    printf("%s", frase);
     
      system("PAUSE");
      return 0;
     
     }

     

     

  16. Faz tempo que eu não entro no site, mas como recebi um email vim verificar, estava cansado de ninguém avaliar as respostas, mas curiosamente o usuário tinha voltado para agradecer, recebi um email e voltei.

     

    Também não resolvo programa para os outros, mas quando a complexidade é alta eu coloco um código para servir de plataforma para os iniciantes.

     

    Segue abaixo:

    #include <stdio.h>void minmaxrec(int* array, int length, int& min, int& max){    if(!length)        return;            if(array[length - 1] > max)        max = array[length - 1];    if(array[length - 1] < min)        min = array[length - 1];            minmaxrec(array, length - 1, min, max);}int main(int argc, char **argv) {	int array[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0};    int min = 100, max = 0;        minmaxrec(array, 10, min, max);        printf("min: %d, max: %d", min, max);	return 0;}

    Eu não sei se eu alcancei a técnica TAIL recursion, mas tentei exemplificar ela.

     

    Rodando em: http://coliru.stacked-crooked.com/a/e092efe4501ad012

    Porque você usou um & nos argumentos da função, antes de min e max?

    EDIT: .Obrigado pela resposta me ajudou muito.

  17. Eu fiz a função mas não está funcionando direito. Quando o expoente é positivo retorna o valor certo, mas quando o expoente é negativo retorna sempre  o valor 1, independente do valor do expoente.

     

    float potencia(float X, int Y){

          float P=1;

          int i, T=0;

          

          if(Y>=0){

            for(i=1; i<=Y; i++)

            P=P*X;

          }

          return P;

           

      if(Y<0){

     

       T= T+(Y*(-1));

            for(i=1; i<=T; i++)

            P=P*X;

          }

          return 1/P;

    }

  18. Pessoal, estou com um problema no exercício abaixo não sei nem por onde começar, alguem pode me ajudar

     

    Considere o problema: dado n e uma sequência com n números, imprimir a

    sequência na ordem inversa a que foi lida. Fazer isso sem usar vetor.

    Sugestão: faça uma função recursiva imprime, que lê um número, chama a si

    própria se não chegou ao fim da seqüência e imprime o número lido.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!