Ir ao conteúdo
  • Cadastre-se

Wagner Candido

Membro Júnior
  • Posts

    14
  • Cadastrado em

  • Última visita

Reputação

8
  1. @Math.Pi o enunciado é esse mesmo. Segue o link da correção da prova, questão 2. Dá pra abrir a galeria de slides, sem precisar assistir o vídeo. http://video.ead.cesumar.br/aula/Webclasshd.aspx?idtransmissao=14555&chavetransmissao=46957f6b3ea1b0373&idcliente=181601&chavealuno=26c247e0ea13a2514
  2. Pelo o que entendi, em cada período ele sofre uma mutação: TARDE: aumenta em 0.30 NOITE: diminui 0.10
  3. Muito OBRIGADO, @devair1010
  4. Bom dia, tanto na primeira quanto na segunda mutação, o decremento e o incremento estão retornando com uma diferença de 0.05 Se coloco 1 mutação, o valor dá 0.8 (quando deveria ser 0.75). Se coloco 2 mutações, o valor dá 0.6 (quando deveria ser 0.65). Alguém identifica qual o erro do algoritmo ? Antecipadamente agradeço /* Sabendo que Snoop tinha 45 cm de tamanho antes de brincar com o artefato, crie um programa em Linguagem C que receba um número de mutações e imprima na tela o tamanho FINAL de Snoop. Considere: • Manhã: NADA acontece • Tarde: Snoop AUMENTA de tamanho em 30 cm • Noite: Snoop ENCOLHE 10 cm */ #include <stdio.h> #include <locale.h> // biblioteca de local usada para chamar a setclocale no codigo int main (void) { setlocale(LC_ALL, "Portuguese"); // habilita a acentuação para o português int n,i; float tamanho; /* Entrada de Dados */ printf ("Informe o número de MUTAÇÕES: "); scanf ("%d", &n); printf ("\n"); /* Processamento de Dados */ tamanho = 0.45; for (i=1; i <= n; i++) { if (i % 2 != 0) // TARDE { tamanho+=0.30; } else // NOITE { tamanho-=0.10; } } /* Saída de Dados */ printf ("Após %d mutações, o tamanho FINAL de Snoop é: %.1f\n", n ,tamanho); return (0); }
  5. Wagner Candido

    Arquivos

    O programa abaixo roda certinho, o problema é que a SAÍDA tem sido: Digite um caracter: w Gravação Efetuada com SUCESSO !!! Digite um caracter: // É aqui o PROBLEMA, deveria ir direto para a próxima pedida de caracter. Não sei porque tá saindo assim Gravação Efetuada com SUCESSO !!! Digite um caracter: b Gravação Efetuada com SUCESSO !!! e assim sucessivamente. Entre uma pedida de caractere e outra, aparece esse Digite e a resposta, como se eu já tivesse digitado algum caractere /* Elabore um programa que realizade a operação de abertura do arquivo, verificação de erro, leitura de um caractere e fechamento de arquivo. A leitura de caractere é realizada até que seja digitado os caracteres 'f' ou 'F' */ #include <stdio.h> #include <locale.h> // biblioteca de local usada para chamar a setclocale no codigo int main (void) { FILE *arq; // declaração do tipo ARQUIVO char letra; arq = fopen ("C:\\arquivo.txt", "w"); // cria e abre um arquivo texto com permissão de ESCRITA if (arq == NULL) { printf ("\n O arquivo NÃO foi aberto. Ocorreu um ERRO !!!\n"); } else { printf ("Digite um caractere: "); scanf ("%c", &letra); // leitura de um caractere while ((letra != 'f') && (letra != 'F')) { fputc (letra,arq); // escrita de um caracter em um arquivo if (ferror (arq)) { printf ("\n ERRO de GRAVACAO !!!\n"); } else { printf ("\n Gravacao EFETUADA com SUCESSO !!!\n"); } printf ("\nDigite um caractere: "); scanf ("%c", &letra); } } fclose (arq); // fecha o arquivo }
  6. @Gabriel_Moro qual a função desse fflush(stdin) ? ainda não vi isso na faculdade :/
  7. Alguma boa alma poderia me ajudar com esse código ? antecipadamente agradeço /* Elabore um programa que leia uma palavra e se a palavra tiver número ímpar de caracteres, imprima e conte todas as suas consoantes. */ #include <stdio.h> #include <string.h> #include <locale.h> // biblioteca de local usada para chamar a setclocale no codigo int main (void) { setlocale(LC_ALL, "Portuguese"); // habilita a acentuação para o português char palavra [50]; char letra; int tamanho,cont,i; /* Entrada de Dados */ printf ("Informe uma PALAVRA: "); scanf ("%s", palavra); /* Processamento de Dados */ tamanho = strlen (palavra); if (tamanho % 2 != 0) { for (i=0 ; i < 50 ; i++) { letra = palavra ; if (letra != 'a' && letra != 'e' && letra != 'i' && letra != 'o' && letra != 'u') { cont = cont + 1; printf ("\nConsoantes da palavra: %c\n", letra); } } } /* Saída de Dados */ printf ("\nA palavra %s possui %d consoantes", palavra, cont); return (0); }
  8. @Gabriel_Moro MUITO obrigado !!! Fiz vários testes e deu certo !! Eu fiz os 2 primeiros ciclos fora do laço porque não consegui fazer com todos dentro rs
  9. @Gabriel_Moro muito obrigado !!! deu certo, o problema era no total, só pode ser 1 mesmo adicionado 10 minutos depois @Gabriel_MoroÚltima dúvida: testei n = 6 , era pra dar total = 23.000, tá dando 24000 /* Ciclos de Treinamento */ total = 0; forca = valor*2; // ciclo 1 jedi = valor + 1000; // ciclo 2 for (i=0 ; i <= (n-2) ; i++ ) // o (n -2) é justamente para descontar os ciclos 1 e 2 { // se eu usar < ao invés de <= dá 19.000 só if (i % 2 != 0) { forca*= 2; // ciclos 3,5,7... total+=forca; } else { jedi+= 1000; // ciclos 4,6,8... total+=jedi; } } * ciclo 1: 1000*2 = 2000 * ciclo 2: 1000 + 1000 = 2000 * ciclo 3: 2000*2 = 4000 * ciclo 4: 2000 + 1000 = 3000 * ciclo 5: 4000*2 = 8000 * ciclo 6: 3000 + 1000 = 4000 total: 23000 adicionado 31 minutos depois Se usarmos o MESMO TOTAL para ambos: * ciclo 5: 4000*2 = 8000 * ciclo 6: 4000 + 1000 = 5000 (aqui teria q receber o valor do ciclo 4, ou seja, 3000) total: 24.000 No entanto, alterando para 2 totais distintos, ao testar com n =4, recebo total de 11040 (ao invés de 11000) e ao testar com n =6, recebo total de 24040 (ao invés de 23000)
  10. @Gabriel_Morovou colocar o código na íntegra, isso pode facilitar. O código tá todo certinho, exceto essa parte dos ciclos. :/ # include <stdio.h> # include <locale.h> int main (void) { int i,n; long int valor,forca,jedi,nforca,njedi,total1,total2,total; /* Entrada de Dados */ setlocale (LC_ALL, "Portuguese"); printf ("Informe o número INICIAL de mid-chlorians: "); scanf ("%d", &valor); printf ("Informe a quantidade de ciclos de treinamento: ")/ scanf ("%d", &n); printf ("\n"); /* Ciclos de Treinamento */ total1,total2 = 0; forca = valor*2; jedi = valor + 1000; for (i=0 ; i <=(n-2) ; i++ ) { if (i % 2 != 0) { nforca = forca*2; total1+=nforca; } else { njedi = jedi+1000; total2+=jedi; } } total = total1 + total2; /* Classificação: Padawan, Cavaleiro Jedi ou Mestre Jedi ? */ if (total <= 100000) { printf ("%d mid-chlorians foram encontrados após %d ciclos\n", total , n); printf ("\n"); printf ("Conclusão: ainda é considerado PADAWAN "); printf ("\n"); } if (total > 100000 && total <= 1000000) { printf ("%d mid-chlorians foram encontrados após %d ciclos\n", total , n); printf ("\n"); printf ("Conclusão: já é considerado CAVALEIRO JEDI "); printf ("\n"); } if (total > 1000000) { printf ("%d mid-chlorians foram encontrados após %d ciclos\n", total , n); printf ("\n"); printf ("Conclusão: ascende ao grau de MESTRE JEDI "); printf ("\n"); } return (0); } Como TESTE, tenho usado valor =1000 e n = 4 ciclos, com isso, espero o resultado total = 11.000 * ciclo 1: 1000*2 = 2000 * ciclo 2: 1000 + 1000 = 2000 * ciclo 3: 2000*2 = 4000 * ciclo 4: 2000 + 1000 = 3000 A não ser q meu raciocínio esteja errado....
  11. @Gabriel_Moro Eu alterei aqui, mas ainda não consigo chegar onde quero: O que desejo fazer é isso: valor = 1000 n = 4 ciclos (digitado) * ciclo 1: 1000*2 = 2000 * ciclo 2: 1000 + 1000 = 2000 * ciclo 3: 2000*2 = 4000 * ciclo 4: 2000 + 1000 = 3000 total: 11000 Modifiquei meu código para: /* Ciclos de Treinamento */ forca = valor*2; // ciclo 1 jedi = valor + 1000; // ciclo 2 parcial1,parcial2 = 0; for (i=0 ; i <= n-2 ; i++ ) { if (i % 2 != 0) { nforca = forca*2; // ciclo 3 parcial1 = parcial1 + nforca; } else { njedi = jedi + 1000; // ciclo 4 parcial2 = parcial2 + njedi; } } parcial = parcial1 + parcial2; total = forca + jedi + parcial; Mas não consigo chegar nesse valor de 11000
  12. Boa tarde, estou tentando implementar no algoritmo a seguinte ordem de ciclos e ações: ciclo ação força dobra // ciclo 1 jedi + 1000 // ciclo 2 força dobra // ciclo 3 (repetição do ciclo 1) jedi + 1000 // ciclo 4 (repetição do ciclo 2) .... ..... // ciclo n e assim sucessivamente Passei para o algoritmo da seguinte maneira: /* Ciclos de Treinamento */ for (i = 1 ; i <= n ; i++) { if (i % 2 != 0) { total = valor*2; } else { total = valor + 1000; } } No entanto, só executa a primeira opção. Ao rodar o programa, digito valor igual a 1000 e n = 2 ciclos. O programa retorna 2000 como total. A minha ideia foi utilizar "par ou impar": se impar, então ciclo 1 (total = valor * 2), se par, ciclo 2 (total = valor + 100) e assim sucessivamente. Alguém consegue enxergar o erro no algoritmo ? Antecipadamente agradeço

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