Introdução while Exemplos Exercícios Linguagem C: while e do-while Introdução à linguagem C(++) Profs. Anilton, Lasaro e Paulo Coelho Faculdade de Computação Universidade Federal de Uberlândia Profs. Anilton, Lasaro e Paulo Coelho Linguagem C: while e do-while FACOM/UFU Introdução while Exemplos Exercícios Organização Introdução while Exemplos Exercícios Profs. Anilton, Lasaro e Paulo Coelho Linguagem C: while e do-while FACOM/UFU Introdução I I 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Suponha de você deseja fazer um programa para calcular ler duas notas, calcular e imprimir a média de dez alunos da disciplina. A maneira menos prática de fazer isso seria: ... float nota1, nota2, media; cout << "Entre nota 1 e nota 2 do aluno 1: " << endl; cin << nota1 << nota2; media = (nota1 + nota2) / 2; cout << "A media das notas eh " << media << endl; cout << "Entre nota 1 e nota 2 do aluno 2: " << endl; cin << nota1 << nota2; media = (nota1 + nota2) / 2; cout << "A media das notas eh " << media << endl; cout << "Entre nota 1 e nota 2 do aluno 3: " << endl; cin << nota1 << nota2; media = (nota1 + nota2) / 2; cout << "A media das notas eh " << media << endl; cout << "Entre nota 1 e nota 2 do aluno 4: " << endl; cin << nota1 << nota2; media = (nota1 + nota2) / 2; Introdução II 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 cout << "A media das notas eh " << media << endl; cout << "Entre nota 1 e nota 2 do aluno 5: " << endl; cin << nota1 << nota2; media = (nota1 + nota2) / 2; cout << "A media das notas eh " << media << endl; cout << "Entre nota 1 e nota 2 do aluno 6: " << endl; cin << nota1 << nota2; media = (nota1 + nota2) / 2; cout << "A media das notas eh " << media << endl; cout << "Entre nota 1 e nota 2 do aluno 7: " << endl; cin << nota1 << nota2; media = (nota1 + nota2) / 2; cout << "A media das notas eh " << media << endl; cout << "Entre nota 1 e nota 2 do aluno 8: " << endl; cin << nota1 << nota2; media = (nota1 + nota2) / 2; cout << "A media das notas eh " << media << endl; cout << "Entre nota 1 e nota 2 do aluno 9: " << endl; cin << nota1 << nota2; media = (nota1 + nota2) / 2; cout << "A media das notas eh " << media << endl; cout << "Entre nota 1 e nota 2 do aluno 10: " << endl; Introdução III 43 cin << nota1 << nota2; media = (nota1 + nota2) / 2; cout << "A media das notas eh " << media << endl; ... I propenso a erros I difícil de estender I retrabalho I A linguagem C fornece estruturas de repetições, as quais permitem repetir um determinado conjunto de comandos. 40 41 42 while I I O comando while permite repetir um bloco de comandos. I Sua forma geral é muito simples: 1 2 3 4 5 I while (<condicao>) { // bloco de comandos // a ser repetido } O bloco de comandos entre as chaves será repetido enquanto a condição dentro dos parênteses for verdadeira. while II I De volta ao nosso exemplo, podemos reescrevê-lo de maneira mais inteligente: 1 ... float nota1, nota2, media; int i = 1; // valor inicial do identificador do aluno 2 3 4 5 6 7 8 9 10 11 12 13 while (i <= 10) { cout << "Entre nota 1 e nota 2 do aluno " << i << ": " << endl; cin << nota1 << nota2; media = (nota1 + nota2) / 2; cout << "A media das notas eh " << media << endl; i++; // aumentamos o valor de i no final de cada calculo da media } ... do-while I I Uma variação do comando while I do-while I 1 2 3 4 5 6 (faça-enquanto ou repita-enquanto) Sua forma geral é dada por: do { \\ bloco de comandos \\ a ser repetido } while (<condicao>); do-while II I 1 2 3 Reescrevendo o exemplo: ... float nota1, nota2, media; int i = 1; // valor inicial do identificador do aluno 4 14 do { cout << "Entre nota 1 e nota 2 do aluno " << i << ": " << endl; cin << nota1 << nota2; media = (nota1 + nota2) / 2; cout << "A media das notas eh " << media << endl; i++; // aumentamos o valor de i no final de cada calculo da media } while (i <= 10); ... I Qual a diferença entre while e do-while? 5 6 7 8 9 10 11 12 13 Exemplos I I Some todos os números pares entre 1 e 999. I int some = 2 + 4 + 6 + 8 ... I 1 2 3 4 5 6 7 8 9 10 Ou, utilizando o while, teríamos: ... int n = 2, // primeiro par maior do que 1 soma = 0; // soma inicialmente zerada while (n < 999) { soma = soma + n; n += 2; //Observe o uso de += } cout << "O valor da soma eh " << soma << endl; ... Exemplos II I 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Maior dentre 10 números inteiros lidos. Utilizando o do-while: ... int i = 0, // contador da qtde de numeros lidos maior, n; do { cout << "Entre um numero: "; cin >> n; if (i == 0) // se for o primeiro numero lido { // ele serah o menor maior = n; } else // a partir do segundo { if(n > maior) // atualizo o maior { maior = n; } } i++; Exemplos III 20 21 22 } while (i < 10); ... Introdução while Exemplos Exercícios Fatorial Faça uma função que recebe um número inteiro positivo e retorna o fatorial deste número. A função principal deve ler o número do qual se deseja calcular o fatorial e imprimir o resultado. Profs. Anilton, Lasaro e Paulo Coelho Linguagem C: while e do-while FACOM/UFU Introdução while Exemplos Exercícios Primo Faça uma função que recebe um número inteiro positivo e retorna true se o número for primo ou false, caso contrário. A função principal deve ler o número e imprimir o resultado. Profs. Anilton, Lasaro e Paulo Coelho Linguagem C: while e do-while FACOM/UFU Introdução while Exemplos Exercícios Primo II Modifique o programa anterior para imprimir todos os números primos abaixo de dois milhões. Profs. Anilton, Lasaro e Paulo Coelho Linguagem C: while e do-while FACOM/UFU Introdução while Exemplos Exercícios Espelhar Faça um programa que leia um número inteiro positivo e imprima esse número de trás pra frente. A impressão deve ser feita pela função auxiliar inverteNumero. Profs. Anilton, Lasaro e Paulo Coelho Linguagem C: while e do-while FACOM/UFU