Baixe o app para aproveitar ainda mais
Prévia do material em texto
Algoritmos Mairum Ceoldo Andrade Aula 8 Conteúdo • Comando de repetição com teste lógico no início – ENQUANTO • Comando de repetição com teste lógico no fim – FAÇA ... ENQUANTO • Quando utilizar cada estrutura de repetição. 2 Comando - ENQUANTO • Estrutura usada quando o número de repetições for desconhecido. • Controla a repetição com um teste(condição) no início. • Ideal para trechos de proteção na entrada de dados. • O usuário decide quando interrompe a repetição. 3 Comando ENQUANTO UAL 4 enquanto( <condição> ) { bloco de comandos } <condição> variável operador valor • Estrutura relacional ou condição que será utilizada como validação para execução do bloco de comandos. • Pode ser uma única expressão simples ou um conjunto de expressões relacionais e lógicas, como as utilizadas nos comandos condicionais, vistas anteriormente. • Exemplos: i >= 10; i>strtam(nome); i <= x+10 Comando ENQUANTO C++ 5 while ( <condição> ) { bloco de comandos } <condição> variável operador valor • Estrutura relacional ou condição que será utilizada como validação para execução do bloco de comandos. • Pode ser uma única expressão simples ou um conjunto de expressões relacionais e lógicas, como as utilizadas nos comandos condicionais, vistas anteriormente. • Exemplos: i >= 10; i>strlen(nome); i <= x+10 Comando ENQUANTO Fluxograma 6 BLOCO DE COMANDOS V F TESTE Digite numero>0 NUM Num * 2 fim Início F V Digite numero>0 NUM Num > 0 ? Contagem de números positivos e negativos 7 UAL C++ prog exemplo int numero, pos, neg; numero <- 1; pos <- 0; neg <- 0; enquanto(numero <> 0) { imprima “\n Escreva o número: “; leia numero; se (numero > 0) { pos<- pos +1; } senão { se (numero < 0) { neg<- neg +1; } } } imprima “\nTotal de números positivo: “, pos; imprima ”\nTotal de números negativos”, neg; fimprog #include <iostream> using namespace std; int main() { int numero = 1; int pos, neg; pos = neg = 0; while(cont != 0) { cout<<”\nEscreva o número”; cin>>numero; if( (numero > 0) pos++; else { if( (numero < 0) neg++; } } cout<<”\nTotal de números positos: ”<<pos; cout<<”\nTotal de números negativos: ”<<neg; } Comando – FAÇA...ENQUANTO • Estrutura usada quando o número de repetições for desconhecido. • Controla a repetição com um teste(condição) ao final. • Ideal para programas que funcionam através de um menu. • O usuário decide quando interrompe a repetição. 8 Comando FAÇA...ENQUANTO UAL 9 faça { bloco de comandos } enquanto( <condição> ) <condição> variável operador valor • Estrutura relacional ou condição que será utilizada como validação para execução do bloco de comandos novamente. • Pode ser uma única expressão simples ou um conjunto de expressões relacionais e lógicas, como as utilizadas nos comandos condicionais, vistas anteriormente. • Exemplos: i >= 10; i>strtam(nome); i <= x+10 Comando FAÇA...ENQUANTO C++ 10 do { bloco de comandos } while( <condição> ) <condição> variável operador valor • Estrutura relacional ou condição que será utilizada como validação para execução do bloco de comandos. • Pode ser uma única expressão simples ou um conjunto de expressões relacionais e lógicas, como as utilizadas nos comandos condicionais, vistas anteriormente. • Exemplos: i >= 10; i>strlen(nome); i <= x+10 Comando FAÇA...ENQUANTO Fluxograma 11 BLOCO DE COMANDOS V F TESTE Digite numero>0 NUM Num * 2 fim Início F V Num > 0 ? Contagem de números positivos e negativos 12 UAL C++ prog exemplo int total; real nota, soma, maior, menor, media; string resposta; soma <- 0.0; total <- 0; faca { total <- total +1; imprima “\nNota “, total, “: “; leia nota; soma <- soma + nota; se (total == 1) { maior <- nota; menor <- nota; } senao { se (nota > maior) { maior <- nota; } se (nota < menor) { menor <- nota; } } imprima “Deseja continuar [s] ou [n]? ”; leia resposta; } enquanto(resposta==“s“ || resposta==”S”) media <- soma / total; escreva “\nMédia das notas: “, media; escreva ”\nMaior nota..........: ”, maior; escreva ”\nMenor nota.........: ”, menor; fimprog #include <iostream> using namespace std; int main() { int total; float nota, soma, maior, menor, media; char resposta; soma = 0; total = 0; do{ total++; cout<<”\nNota ”<<total<<”: ”; cin>>nota; if( (total == 1) { maior = nota; menor = nota; } else { if (nota > maior) maior = nota; if (nota < menor) menor = nota; } cout“\nDeseja continuar [s] ou [n]? ”; cin>>resposta; } while(resposta==‘n’ || resposta==’N’); media = soma / total; cout << “\nMédia das notas: “ << media; cout << ”\nMaior nota..........: ” << maior; cout << ”\nMenor nota.........: << menor; } prog exemplo int total; real nota, soma, maior, menor, media; string resposta; soma <- 0.0; total <- 0; faca { total <- total +1; imprima “\nNota “, total, “: “; leia nota; soma <- soma + nota; se (total == 1) { maior <- nota; menor <- nota; } senao { se (nota > maior) { maior <- nota; } se (nota < menor) { menor <- nota; } } imprima “Deseja continuar [s] ou [n]? ”; leia resposta; } enquanto(resposta==“s“ || resposta==”S”) media <- soma / total; escreva “\nMédia das notas: “, media; escreva ”\nMaior nota..........: ”, maior; escreva ”\nMenor nota.........: ”, menor; fimprog #include <iostream> using namespace std; int main() { int total; float nota, soma, maior, menor, media; char resposta; soma = 0; total = 0; do{ total++; cout<<”\nNota ”<<total<<”: ”; cin>>nota; if( (total == 1) { maior = nota; menor = nota; } else { if (nota > maior) maior = nota; if (nota < menor) menor = nota; } cout“\nDeseja continuar [s] ou [n]? ”; cin>>resposta; } while(resposta==‘n’ || resposta==’N’); media = soma / total; cout << “\nMédia das notas: “ << media; cout << ”\nMaior nota..........: ” << maior; cout << ”\nMenor nota.........: << menor; } Comando simulando comando 13 #include <iostream> using namespace std; int main() { int valor; for(;;) { cout <<“\nValor: “; cin >> valor; if(valor <= 0) break; cout << valor*valor <<“\n”; } system(“pause”); } Comando simulando comando 14 #include <iostream> using namespace std; int main() { int valor; for(;;) { cout <<“\nValor: “; cin >> valor; cout << valor*valor <<“\n”; if(valor <= 0) break; } system(“pause”); } Comando simulando comando 15 #include <iostream> using namespace std; int main() { int valor, i; i = 0; while(i <= 3) { cout <<“\nValor: “; cin >> valor; cout << valor*valor <<“\n”; i++; } system(“pause”); } Comando simulando comando 16 #include <iostream> using namespace std; int main() { int valor = 1; while(valor > 0) { cout <<“\nValor: “; cin >> valor; cout << valor*valor <<“\n”; if(valor <= 0) break; } system(“pause”); } Comando simulando comando 17 #include <iostream> using namespace std; int main() { int valor, i; i = 1; do { cout <<“\nValor: “; cin >> valor; cout << valor*valor <<“\n”; i++; } while(i <= 3); system(“pause”); } Comando simulando comando 18 #include <iostream> using namespace std; int main(){ int valor; do { cout <<“\nValor: “; cin >> valor; if(valor <= 0) break; cout << valor*valor <<“\n”; } while(valor > 0); system(“pause”); } Quando usar cada um? PARA Número de repetições conhecido ENQUANTO Número de repetições desconhecido FAÇA...ENQUANTO Número de repetições desconhecido Executo primeiro e testo depois 19 Algoritmos Mairum Ceoldo Andrade Atividade 8 21 1) Qual(is) a(s) desvantagem(ens) em se usar a estrutura while para simular a estrutura do…while? R: Forçar a entrada e fazer dois testes. R: while – Início do...while - Final 2) Identifique, nas estruturas abaixo, qual testa no início e qual testa ao final. a) while b) do...while 22 R: O programa entrou em loop. 3) Foi feito um programa, cuja finalidade era só permitir entrar com números de três algarismos. A seguinte linha enquanto(x>=100 && x<=999) foi colocada logo depois da entrada de dados. Sabe- se que foi digitado o número 53.O que aconteceu? ... leia x; equanto(x>=1 && x<=100) { ... } ...
Compartilhar