Baixe o app para aproveitar ainda mais
Prévia do material em texto
LISTA DE EXERCÍCIOS No4 – Estrutura de repetição ENQUANTO (while) Algoritmos e Programação / Algoritmos e Estrutura de Dados Prof. André Sarmento Barbosa e Paula Faragó Barbosa Obs.: Use a apostila para descobrir o nome das funções que forem necessárias. Ler vários números inteiros e imprimir o dobro do número a cada leitura. O algoritmo deve terminar quando o número zero for digitado. #include <iostream> using namespace std; int main() { int num; cout << "Digite um numero inteiro: "; cin >> num; while (num != 0) { cout << "O dobro de " << num << " eh " << num*2 << endl; cout << "Digite um numero inteiro: "; cin >> num; } } Ler vários números inteiros enquanto eles forem positivos, ao final imprimir quantos números foram digitados. #include <iostream> using namespace std; int main() { int num; int quant = 0; cout << "Digite um numero inteiro: "; cin >> num; while (num > 0) { quant++; cout << "Digite um numero inteiro: "; cin >> num; } cout << "Foram digitados " << quant << " numeros positivos." << endl; system("pause"); } Ler vários nomes enquanto forem diferentes da palavra “fim” e “FIM”. Imprimir ao final o nome com a maior quantidade de letras e também o nome que estiver no final da ordem alfabética. #include <iostream> #include <string.h> using namespace std; int main() { char nome[20]; char maior_letras[20]; char maior_ordem[20]; cout << "Digite um nome: "; cin >> nome; strcpy(maior_letras, nome); strcpy(maior_ordem, nome); while (strcmp(nome, "fim") != 0 && strcmp(nome, "FIM") != 0) { if (strlen(nome) > strlen(maior_letras)) { strcpy(maior_letras, nome); } if (strcmp(nome, maior_ordem) > 0) { strcpy(maior_ordem, nome); } cout << "Digite um nome: "; cin >> nome; } cout << "Nome com mais letras : " << maior_letras << endl; cout << "Nome no final da ordem: " << maior_ordem << endl; system("pause"); } Calcule a raiz quadrada de 10 números reais digitados. A cada número digitado colocar um loop de proteção para evitar números negativos, este loop deve repetir até que o usuário digite um número positivo para que então o cálculo seja feito. #include <iostream> #include <math.h> using namespace std; int main() { int x; float num; for (x = 1; x <= 10; x++) { cout << "Digite um numero real positivo: "; cin >> num; while (num < 0) { cout << "O numero nao e positivo, digite um numero POSITIVO: "; cin >> num; } cout << "Raiz quadrada: " << sqrt(num) << endl; } system("pause"); } Calcule o fatorial de um número inteiro qualquer digitado. Mas desta vez utilize a estrutura do enquanto (e não a do para). #include <iostream> using namespace std; int main() { int x, num, fat; cout << "Digite um numero inteiro: "; cin >> num; fat = 1; x = 2; while (x <= num) { fat = fat * x; x++; } cout << "Fatorial: " << fat << endl; system("pause"); } Leia um número e imprima se ele é ou não primo. (Use a estrutura do enquanto). #include <iostream> using namespace std; int main() { int x, num; int primo = 1; cout << "Digite um numero inteiro: "; cin >> num; if ((num % 2 == 0 && num != 2 )|| num == 1) primo = 0; x = 3; while (x < num/2) { if (num % x == 0) { primo = 0; break; } x = x + 2; } if (primo) cout << "O numero e primo!\n"; else cout << "O numero nao e primo!\n"; system("pause"); } Imprima todos os números primos de 1 a 1000. (Use a estrutura do enquanto). #include <iostream> using namespace std; int main() { int x, y; int primo; int num = 1; while (num <= 1000) { primo = 1; if ((num % 2 == 0 && num != 2 )|| num == 1) primo = 0; x = 3; while (x < num/2) { if (num % x == 0) { primo = 0; break; } x = x + 2; } if (primo) cout << num << endl; num++; } system("pause"); } Fazer um jogo ao estilo “Forca”, onde um usuário escolhe uma palavra secreta e outro usuário tenta acertar a palavra “chutando” letras a cada tentativa. Em cada tentativa verificar se o usuário acertou a palavra ou o número de tentativas foi excedido. Em cada tentativa dar a chance ao usuário de acertar a palavra completa. #include <iostream> #include <string.h> using namespace std; int main() { char secreta[50]; char impressao[50]; char teste[50]; char letra; int x, tam, achou, maxtent; int tent = 0; int enforcado = 1; cout << "Digite a palavra secreta (sem espacos): "; cin >> secreta; cout << "Digite o numero maximo de tentativas: "; cin >> maxtent; tam = strlen(secreta); //Preenche a impressao com tracos x = 0; while (x < tam) { impressao[x] = '-'; x++; } impressao[x] = '\0'; //finalizar a string system("cls"); //Limpa a tela cout << "Palavra: " << impressao << " (" << tam << " letras, maximo de " << maxtent << " tentativas)\n\n"; do { cout << "Digite uma letra: "; cin >> letra; achou = 0; x = 0; while (x < tam) { if (letra == secreta[x]) { achou = 1; impressao[x] = letra; } x++; } if (achou == 0) tent++; cout << "Palavra: " << impressao << "\n\n"; cout << "Qual a palavra secreta? "; cin >> teste; if (strcmp(teste, secreta)==0) { cout << "Parabens, voce acertou!" << endl; enforcado = 0; break; } cout << "\nRestam " << maxtent - tent << " tentativas." << endl; } while (tent < maxtent); if (enforcado) { cout << "Voce foi enforcado!" << endl; cout << "A palavra secreta era: " << secreta << endl; } system("pause"); } Criar um menu com as seguintes opções: 1-pizza, 2-salada, 3-risoto, 4-feijoada, 5-sair. Para cada prato escolhido imprimir o valor do prato (escolha quatro valores diferentes). Caso o usuário escolha a opção 5 o algoritmo deve terminar, caso contrário apresentar o menu novamente. #include <iostream> #include <math.h> using namespace std; int main() { int op; do { cout << "1 - Pizza\n"; cout << "2 - Salada\n"; cout << "3 - Risoto\n"; cout << "4 - Feijoada\n"; cout << "5 - Sair\n"; cout << "Escolha uma opcao [1 a 5]: "; cin >> op; switch (op) { case 1: cout << "\nPizza: R$20,00\n" << endl; break; case 2: cout << "\nSalada: R$10,00\n" << endl; break; case 3: cout << "\nRisoto: R$25,00\n" << endl; break; case 4: cout << "\nFeijoada: R$30,00\n" << endl; break; case 5: break; default: cout << "\nOpcao invalida.\n" << endl; } } while (op != 5); } Criar um menu com as seguintes opções: s - seno, c – cosseno, t – tangente, s – sair. Em cada caso, ler o valor do ângulo em graus e imprimir a resposta. Caso o usuário escolha a opção s o algoritmo deve terminar, caso contrário apresentar o menu novamente. #include <iostream> #include <math.h> using namespace std; int main() { float ang, resp; const float PI = 3.141592654; char op; do { cout << "s - Seno\n"; cout << "c - Cosseno\n"; cout << "t - Tangente\n"; cout << "f - finalizar\n"; cout << "Escolha uma opcao [s, c, t ou f]: "; cin >> op; switch (tolower(op)) { case 's': cout << "\nCalculo do seno\n" << endl; cout << "Digite o valor do angulo em graus: "; cin >> ang; resp = sin(ang*PI/180); cout << "O seno de " << ang << " eh " << resp << endl; break; case 'c': cout << "\nCalculo do cosseno\n" << endl;cout << "Digite o valor do angulo em graus: "; cin >> ang; resp = cos(ang*PI/180); cout << "O cosseno de " << ang << " eh " << resp << endl; break; case 't': cout << "\nCalculo do tangente\n" << endl; cout << "Digite o valor do angulo em graus: "; cin >> ang; resp = tan(ang*PI/180); cout << "A tangente de " << ang << " eh " << resp << endl; break; case 'f': break; default: cout << "\nOpcao invalida.\n" << endl; } } while (tolower(op) != 'f'); } Criar um menu com as seguintes opções: 1-Digitar nota, 2 – Total de notas, 3 – Média, 4 – Sair. Na opção 1 deve-se ler uma nota de um aluno e acrescentar ao somatório, na opção 2 deve-se imprimir o total de notas, na opção 3 calcular a média e na 4 sair como nos exercícios anteirores. #include <iostream> using namespace std; int main() { float nota, media, soma = 0.0; int op, cont = 0; do { cout << "1 - Digitar nota\n"; cout << "2 - Total de notas\n"; cout << "3 - Media\n"; cout << "4 - Sair\n"; cout << "Escolha uma opcao [1 a 4]: "; cin >> op; switch (op) { case 1: cout << "\nDigite a nota: "; cin >> nota; soma = soma + nota; cont++; break; case 2: cout << "Total de notas: " << cont << endl << endl; break; case 3: if (cont == 0) media = 0.0; else media = soma / (float)cont; cout << "Media: " << media << endl << endl; break; case 4: break; default: cout << "\nOpcao invalida.\n" << endl; } } while (op != 4); }
Compartilhar