Ir ao conteúdo
  • Cadastre-se

Flávio Pedroza

Membro Pleno
  • Posts

    2.074
  • Cadastrado em

  • Última visita

Tudo que Flávio Pedroza postou

  1. //Subrotina para excluir a conta com o menor saldo CONTA exclui(){ //Declracao de variaveis int i,menor,num,ex; menor=cad[0].saldo; num=0; for(i=1;i<n; i++){ if(cad[i].saldo < menor){ menor=cad[i].saldo; num=i; } } //parte que exclui o registro com o menor saldo ?? for (i=num; i < n-1; i++) { cad[i] = cad[i+1]; } n--; } Acredito que assim irá funcionar. O algoritmo desloca os elementos do array para a esquerda e reduz o tamanho máximo n. Note, porém, que o tamanho em memória permanece o mesmo, apenas o último fica "escondido". Ex: [2 3 4 1 6 9 2 3 5 16] n = 10 Excluir o quarto elemento (o no. 1 - o menor deles) [2 3 4 6 9 2 3 5 16] 16 - esse ultimo não fica mais acessível n = 9 Não sei se era isso que queria dizer... OBS.: Corrigi também um erro de lógica no seu algoritmo para indentificar o menor saldo.
  2. O "switch" tem que ficar dentro do laço. Também. int main () { int i,x,y,z; for (i=0;i<5;i++) { x=LePositivo(); y= LePositivo(); z= LePositivo(); switch (TipoTriangulo(x,y,z)) { case 1: printf ("Equilatero\n"); break; case 2: printf ("Isosceles\n"); break; case 3: printf ("Escaleno\n"); break; } } }
  3. O mesmo programa, em c++: #include <iostream> #include <string> using namespace std; int main() { string porte; float idade, caoidade; idade = 0; caoidade = 0; cout << "informe qual o porte do Cachorro:"; cin >> porte; cout << "Informe a idade do Cachorro:"; cin >> idade; if (porte == "pequenos") caoidade = idade * 12.5; else if (porte == "medios") caoidade = idade * 10; else if (porte == "grandes") caoidade = idade * 9; else { cout << "\nA Informação esta incorreta:\n"; return -1; } cout << "\nA idade do cao: " << caoidade; return 0; }
  4. Faltou os outros "elses" if (strcmp(porte, "pequenos") == 0) { caoidade = idade * 12.5; } else if (strcmp(porte, "medios") == 0) { caoidade = idade * 10; } else if (strcmp(porte, "grandes") == 0) { caoidade = idade * 9; } else (printf("A Informação esta incorreta:\n"));
  5. você tem que gerar os número em loop separado: for(i = 0; i < num_max; i++){ vet_num_random[i] = rand () % limite_max; printf("%i ", vet_num_random[i]); } //agora pode ordernar for(cont = 0; cont < num_max-1; cont++){ //array sempre começa em zero for(i = cont + 1; i < num_max; i++){ if(vet_num_random[cont] > vet_num_random[i]){ aux = vet_num_random[cont]; vet_num_random[cont] = vet_num_random[i]; vet_num_random = aux; } } }
  6. Para comparar strings, use strcmp, que retorna 0 quando iguais: if (strcmp(porte, "pequenos") == 0) { caoidade = idade * 12,5; } else if (strcmp(porte, "medios") == 0) { caoidade = idade * 10; } else if (strcmp(porte == "grandes") == 0) { caoidade = idade * 9; } else { prinf("A Informação esta incorreta:\n%s\n%f", porte, caoidade); } No final, imprima o resultado na tela: printf("\nA idade do cao:%f", caoidade);
  7. Veja se assim resolve. for (i=0;i<5;i++) { renda_total += respostas[i].renda; }
  8. Bom, caso não tenha entendio o problema, ele quer que você calcule para cada número entrado a quantidade de leds que serão necessário para mostrá-los, considerando cada algarismo separadamento. você pode montar um array com as informações // 0 1 2 3 4 5 6 7 8 9 número int quantidade_leds[10] = {6, 2, 5, 5, 4, 5, 6, 3, 7, 6}; // qtd. de leds Por exemplo, o número: 23 A quantidade de leds seria int leds = quantidade_leds[2] + quantidade_leds[3]; Resposta: 5 + 5 = 10. Para 423 - 4 2 3: int leds = quantidade_leds[4] + quantidade_leds[2] + quantidade_leds[3]; Resposta = 4 + 5 +5 = 14.
  9. você tem que primeiro gerar os números e armazena-los em uma variável e somente DEPOIS ordená-los.
  10. peso_da_carga = pesoT / 100; Pra converter de tonelada para quilos você deve MULTIPLICAR por 1000: peso_da_carga = pesoT * 1000; você pode armazenar o preço por quilo em uma única variável: flaot preco_por_quilo; float preco_total; if (codigoC <= 10 || codigoC <= 20) preco_por_quilo = 100; if (codigoC <=21 || codigoC <=30) preco_por_quilo = 250; if (codigoC <= 31 || codigoC <= 40) preco_por_quilo = 340; preco_total = preco_por_quilo * peso_da_carga; printf("\n o peso da carga eh %f e o preco é %f", peso_da_carga, preco_total); O mesmo pode ser feito para o imposto: float imposto; if (codigoEs == 1) imposto = 35; if (codigoEs == 2) imposto = 25; if (codigoEs == 3) imposto = 15; if (codigoEs == 4) imposto = 5; if (codigoEs == 5) imposto = 0; printf("\n o valor do imposto cobrado é %f", imposto*preco_total/100); Para mostrar o valor total transportado: printf("\n o valor total transportado é %f", preco_total + imposto*preco_total/100);
  11. Considerando que pRecebido aponta para o início da lifa(?): void removeElementoListaSimples(T_CARRO **pRecebido){ // Declarações T_CARRO *Inicio = *pRecebido; T_CARRO *Anterior = NULL; int codcar; // Instruções printf("Informe o código do carro a ser removido"); scanf("%d", &codcar); if ((Inicio != NULL) && (Inicio->codigo == codcar)) { *pRecebido = Inicio->proximo; free(Inicio); return 0; } while ((Inicio != NULL) && (Inicio->codigo != codcar)) { Anterior = Inicio; Inicio = Inicio->proximo; } if (Inicio == NULL) return 1; Anterior->proximo == Inicio->proximo; free(Inicio); return 0; } Veja se funciona (não testei).
  12. Acho que esse comportamento é normal. A quantidade de memória que o sistema utiliza depende de quantos programas estão abertos em execução. Por exemplo, o que estou usando agora tem 4GB, mas só está utilizando 2GB no momento.
  13. Acredito que sim //p1 = 1 2 3 4 | p2 = | p3 = int temp = desempilha(p1); //p1 = 1 2 3 | p2 = | p3 = empilha(p2, temp); //p1 = 1 2 3 | p2 = 4 | p3 = empilha(p3, desempilha(p1)); //p1 = 1 2 | p2 = 4 | p3 = 3 empilha(p2, desempilha(p1)); //p1 = 1 | p2 = 4 2 | p3 = 3 temp = desempilha(p1); //p1 = | p2 = 4 2 | p3 = 3 empilha(p3,temp); //p1 = | p2 = 4 2 | p3 = 3 1 empilha(p1, desempilha(p2)); //p1 = 2 | p2 = 4 | p3 = 3 1 empilha(p3, desempilha(p2)); //p1 = 2 | p2 = | p3 = 3 1 4 empilha(p3, desempilha(p1)); //p1 = | p2 = | p3 = 3 1 4 2
  14. Seria algo assim: void modulo_pesquisa(int vetor_ordenado[], int valor_pesquisar) { //laço para pesquisar }
  15. Acredito que com essas modificações irá funcionar; typedef struct aluno { int ru; char nome[45]; char email[60]; struct aluno * proximo; } t_cad; t_cad *ini_cad = NULL; // declara essa variavel global que ira armazenar o inicio da lista encadeada Função cadastro void cadastro() { int cont; t_cad* prox_cad; if (ini_cad == NULL) { ini_cad = (t_cad*)malloc(sizeof(t_cad)); ini_cad ->proximo = NULL; if (ini_cad == NULL) exit(1); } prox_cad = ini_cad; while (1) { printf("Digite o RU:"); scanf("%d", &prox_cad->ru); printf("Digite o Nome:"); scanf("%s", &prox_cad->nome); printf("Digite o email:"); scanf("%s", &prox_cad->email); printf("Deseja continuar??? (1)SIM e (0)NAO"); scanf("\n %d", &cont); if (cont == 0) break; prox_cad->proximo = (t_cad *)malloc(sizeof(t_cad)); prox_cad = prox_cad->proximo; prox_cad->proximo = NULL; } printf("\n"); } Função pesquisa void pesquisa() { int ru_aux; char nome_aux[60]; t_cad* prox_cad; do { printf("\n Digite parametro da pesquisa: \n1 RU \n2 Nome :\n0 para sair\n"); scanf("%d", &op); if (op == 0) break; prox_cad = ini_cad; switch (op) { case 1: printf("\n Digite o RU do Aluno:"); scanf("%d", &ru_aux); while (prox_cad != NULL) { if (prox_cad-> ru == ru_aux) { printf("ru: %d\n nome:%s\n email:%s", prox_cad->ru, prox_cad->nome, prox_cad->email); break; } prox_cad = prox_cad->proximo; } break; case 2: printf("\n Digite o nome do Aluno:"); scanf("%s", nome_aux);//não precisa de & para string while (prox_cad != NULL) { if (strcmp(prox_cad->nome, nome_aux) == 0) { printf("ru: %d\n nome:%s\n email:%s", prox_cad->ru, prox_cad->nome, prox_cad->email); break; } prox_cad = prox_cad->proximo; } break; default: printf("\n****opcao invalida*****"); break; } } while (1); } ATENÇÃO: Você tem que liberar a memória alocada manualmente, o C++ NÃO faz automaticamente. Função liberamem void liberarmem() { t_cad *prox_cad; while (ini_cad != NULL) { prox_cad = ini_cad; ini_cad = prox_cad->proximo; free(prox_cad); } } Chamar a função liberamem antes do return 0, no main.
  16. Pode usar tag sim, que é inteiro - acho a melhor solução.
  17. Não se preocupe em manter a corrente no mesmo valor, pois não tem problema se aumentar. A tensão deve ser IGUAL, mas corrente pode ser IGUAL OU MAIOR, pois o valor indicar apenas o LIMITE que a fonte pode entregar. Se um aparelho precisar de uma alimentação de 9v e 1A, e você ligar ele em uma fonte de 9v e 2A, não há problema, pois o mesmo só irá consumir 1A de todo modo. Por exemplo, você pode substituir uma fonte de notebook 16V, 2.5A por outra que forneça 16V e 3.0A, sem problemas. Acredito que se você rebaixar a tensão da fonte, o limite de corrente irá aumentar na mesma proporção, mas não tenho certeza. Procura na internet "como mudar tensão de fonte chaveada".
  18. Mesmo os das outras marcas não sendo tão rápidos, a diferença por HD normal é brutal, vale a pena.
  19. Será que o sue PC não está infectado com algum bot de mineração?
  20. int inserir_aluno_fim(alunos **lista) { (...) alunos *aux=*lista; if(aux==NULL) { *lista=novo_novo; return 0; } else while(aux->proxno!=NULL) { aux=aux->proxno; } (*lista)->proxno= novo_novo; } void imprimir(alunos **lista) { alunos *aux = *lista; while (aux != NULL) { printf("O nome da aluna(o): %s", aux->nome); printf("\n"); printf("A matricula do aluno(a) e: %s", aux->matricula); printf("\n"); printf("A disciplina da aluna(o) e: %s",aux->Disciplinas); printf("\n"); printf("A nota do aluno (a): %s", aux->notas); printf("\n"); aux = aux->proxno; } }
  21. Sim, talvez seja caso de dando físico em um dos pinos - um das desvantagens do PGA.
  22. printf("ru: %d\n nome:%s\n email:%s", prox_cad->ru, prox_cad->nome, prox_cad->email); //faltou os "%s" Para a pesquisa: int ru; scanf_s("Digite a RU a ser pesuisada: %d\n", &ru); prox_cad = ini_cad; while (prox_cad != NULL) { if (prox_cad-> ru == ru) { printf("ru: %d\n nome:%s\n email:%s", prox_cad->ru, prox_cad->nome, prox_cad->email); break; } prox_cad = prox_cad->proximo; } Veja se consegue alterar para acrescentar uma mensagem de erro caso a RU não seja encontrada.
  23. Pode ser que seu professor cobre os cálculos. Por exemplo, questão 21, a complexidade seria N*2*N = 2*N^2, logo O(N^2) (os números constantes são descartados e prevalece o N de maior ordem) Edit: Veja esse pdf, onde tem um exemplo prático do calculo: http://web.cs.iastate.edu/~smkautz/cs228s11/examples/algorithms/notes_on_big_O_from_recitation.pdf Mas, como o autor mesmo disse, basta multiplicar a quantidade de vezes que o loops são executados para ter a resposta, mas como disse em cima, pode ser que não seja só isso que seu professor queira.

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!