Buscar

Estrutura de Repetição While

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 26 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 26 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 26 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

Estrutura de Repetição 
Comandos while 
Cap. 4 do Livro Base 
Professor: Humberto Nigri 
hnigri@gmail.com 
1o Sem 2012 HNigri - Algoritmos 2 
ESTRUTURAS DE REPETIÇÃO 
Como imprimir os 1000 1os números a partir de 1? 
Solução 1: 
 main ( ) 
 { 
 cout << "1\n”; 
 cout << "2\n”; 
 ... 
 cout << "1000\n”; 
 } 
!   A solução acima não é boa 
!   Além de dar um grande trabalho de digitação ... 
!   ... E se o usuário pedir agora até 100.000 ? 
!   Para esses casos a melhor solução são os comandos de
 repetição 
1o Sem 2012 HNigri - Algoritmos 3 
ESTRUTURAS DE REPETIÇÃO 
!   Comando ENQUANTO 
Portugol 
enquanto exp_logica faça 
 comando; 
 ou 
enquanto exp_logica faça 
inicio 
 comando; 
 comando; 
 comando; 
fim 
C / C++ 
 while (exp_logica) 
 comando; 
 ou 
 while (exp_logica) { 
 comando; 
 comando; 
 comando; 
 } 
1o Sem 2012 HNigri - Algoritmos 4 
Fluxograma 
exp_logica ? 
verdadeiro 
falso 
Comando 1 
Comando n 
1o Sem 2012 HNigri - Algoritmos 5 
REPETIÇÃO ENQUANTO/WHILE 
!   Primeiro, avalia-se a expressão. 
!   Se for verdadeira (!= 0), executa-se a lista de comandos. 
!   Ao término da lista, reavalia-se a expressão. 
!   O processo é repetido até que a expressão seja falsa (== 0). 
!   Exemplo 1: 
int i = 1; 
while (i <= 1000) { 
 cout << i << “\n”; 
 i++; 
} 
1o Sem 2012 HNigri - Algoritmos 6 
REPETIÇÃO ENQUANTO/WHILE 
!   Exemplo 2: 
int num = 0; 
while (num < 13) { 
 cout << num++; 
 num += 2; 
} 
!   Observações 
1: O corpo de um while pode ter: zero, um ou n comandos. 
2: O { e o } são obrigatórios apenas se tivermos mais de 
um comando. 
1o Sem 2012 HNigri - Algoritmos 7 
Validação de dados na Leitura 
!   Exemplo 3: 
cout << “Informe o sexo (F ou M) : ”; 
SEXO = getchar(); 
while(SEXO != ‘F’ && SEXO != ‘M’ ) { 
 cout << “Informe o sexo (F ou M) : ”; 
 SEXO = getchar(); 
} 
!   Exemplo 4: 
cout << “Informe um numero entre 0 e 10: ”; 
cin >> numero; 
while(numero < 0 || numero > 10’ ) { 
 cout << “Informe um numero entre 0 e 10: ”; 
 cin >> numero; 
} 
1o Sem 2012 HNigri - Algoritmos 8 
Comando Faça-Enquanto / do-while 
!   Similar ao comando enquanto, a diferença é o 
momento em que a expressão é avaliada. 
!   No comando faça-enquanto, a lista de comandos é 
executada e, depois, a expressão é avaliada. 
!   Em algumas versões de Portugol (e linguagens) 
existe na forma de comando Repita (com um 
funcionamento ligeiramente diferente) 
!   Útil quando sabemos (ou precisamos) que o bloco de 
comandos vai executar no mínimo uma vez 
1o Sem 2012 HNigri - Algoritmos 9 
Fluxograma 
exp_logica ? 
verdadeiro 
falso 
Comando 1 
Comando n 
1o Sem 2012 HNigri - Algoritmos 10 
ESTRUTURAS DE REPETIÇÃO 
!   Comando FAÇA-ENQUANTO 
Portugol 
faça 
 comando; 
 comando; 
 comando; 
enquanto exp_logica; 
C / C++ 
do { 
 comando; 
 comando; 
 comando; 
 } while (exp_logica); 
1o Sem 2012 HNigri - Algoritmos 11 
Diferença entre o while e o do-while 
!   No while o teste é no início e no do-while o teste é 
no fim 
do { 
 cout << “Informe o sexo (F ou M) : ”; 
 SEXO = getchar(); 
} while(SEXO != ‘F’ && SEXO != ‘M’ ); 
!   No while pode não entrar NENHUMA vez, no do-
while sempre executa UMA vez 
do { 
 cout << “Informe um numero entre 0 e 10: ”; 
 cin >> numero; 
} while(numero < 0 || numero > 10’ ); 
1o Sem 2012 HNigri - Algoritmos 12 
ESTRUTURAS DE REPETIÇÃO 
Exemplo 1: Leia dois números reais e realize a 
divisão entre eles. 
main () 
{ 
 float num1, num2; 
 cout << "\nDigite o 1o número:"; 
 cin >> num1; 
 do { 
 cout << "\nDigite o 2o número ( != 0):"; 
 cin >> num2; 
 } while (num2 == 0); 
 cout << "Divisão: “ << num1/num2; 
} 
1o Sem 2012 HNigri - Algoritmos 13 
Exemplo 
1.  Ler um número inteiro X do teclado e 
informar em ordem crescente quais 
são os número pares menores que 
esse número. 
1o Sem 2012 HNigri - Algoritmos 14 
Exercícios 
1.  Fazer um algoritmo que calcula a soma de todos 
os números pares de 1 a 1000. 
2.  Faça um programa que lê 100 números e calcule 
a média aritmética desses números. 
3.  Ler um número inteiro X do teclado e informar 
em ordem decrescente quais são os números 
impares menores que esse número. 
4.  Ler dois números X e Y inteiros do teclado, 
sendo que X é menor que Y (usuário gente boa :), 
e listar todos os números inteiros múltiplos de 3 
que pertencem a esse intervalo. 
1o Sem 2012 HNigri - Algoritmos 15 
Solução dos Exercícios ... 
1: Fazer um algoritmo que calcula a soma de todos 
os números pares de 1 a 1000. 
Entrada: NADA 
Saída: O Somatório (um numerozinho ...) 
Processamento: Fazer uma repetição de 1 a 1000 
 somar os pares 
ATENÇÃO: Somatório é quando uma variável é 
usada para ACUMULAR uma série de somas. Por 
isso são necessários dois cuidados: 
1º ZERAR a VARIÁVEL – senão a soma começa com 
LIXO 
2º Fazer a SOMA = SOMA + Alguma coisa 
1o Sem 2012 HNigri - Algoritmos 16 
Solução dos Exercícios ... 
1: Fazer um algoritmo que calcula a soma de todos 
os números pares de 1 a 1000. 
inicio 
 declare x, soma numerico; 
 x <- 1; 
 soma <- 0; 
 enquanto x <= 1000 faça 
 inicio 
 se x % 2 = 0 entao 
 soma <- soma + x; 
 x <- x +1; 
 fim; 
 escreva ”Soma = “, soma; 
fim. 
1o Sem 2012 HNigri - Algoritmos 17 
Solução dos Exercícios ... 
1: Fazer um algoritmo que calcula a soma de todos 
os números pares de 1 a 1000. 
int main () 
{ 
 int x = 1, soma = 0; 
 while (x <= 1000) { 
 if ( x % 2 == 0) 
 soma += x; 
 x++; 
 } 
 cout << ”Soma = “ << soma; 
} 
1o Sem 2012 HNigri - Algoritmos 18 
Solução dos Exercícios ... 
2: Faça um programa que lê 100 números e calcule a 
média aritmética desses números. 
inicio 
 declare x, soma, numero numerico; 
 x <- 1; 
 soma <- 0; 
 enquanto x <= 100 faça 
 inicio 
 leia numero; 
 soma <- soma + numero; 
 x <- x +1; 
 fim; 
 escreva ”Media = “, soma/100; 
fim. 
1o Sem 2012 HNigri - Algoritmos 19 
Solução dos Exercícios ... 
2: Faça um programa que lê 100 números e calcule a 
média aritmética desses números. 
int main () 
{ 
 float x = 1, soma = 0, numero; 
 while (x <= 1000) { 
 cout << “Informe um numero”; 
 cin >> numero; 
 soma += numero; 
 x++; 
 } 
 cout << ”Media = “ << soma/100; 
} 
1o Sem 2012 HNigri - Algoritmos 20 
Solução dos Exercícios ... 
3: Ler um número inteiro X do teclado e informar 
em ordem decrescente quais são os números 
impares menores que esse número. 
inicio 
 declare x, numero numerico; 
 leia numero; 
 x <- numero; 
 enquanto x > 1 faça 
 inicio 
 se x % 2 = 1 entao 
 escreva x; 
 x <- x - 1; 
 fim; 
fim. 
1o Sem 2012 HNigri - Algoritmos 21 
Solução dos Exercícios ... 
3: Ler um número inteiro X do teclado e informar 
em ordem decrescente quais são os números 
impares menores que esse número. 
int main () 
{ 
 int x, numero; 
 cout << “Informe um numero”; 
 cin >> numero; 
 x = numero; 
 while (x > 1) { 
 if ( x % 2 == 1) 
 cout << x << “\t”; 
 x--; 
 } 
} 
1o Sem 2012 HNigri - Algoritmos 22 
Solução dos Exercícios ... 
4: Ler dois números X e Y inteiros do teclado, sendo 
que X é menor que Y, e listar todos os números 
inteiros múltiplos de 3 que pertencem aesse 
intervalo. 
inicio 
 declare x, y numerico; 
 leia x, y; 
 enquanto x <= y faça 
 inicio 
 se x % 3 = 0 entao 
 escreva x; 
 x <- x + 1; 
 fim; 
fim. 
1o Sem 2012 HNigri - Algoritmos 23 
Solução dos Exercícios ... 
4: Ler dois números X e Y inteiros do teclado, sendo 
que X é menor que Y, e listar todos os números 
inteiros múltiplos de 3 que pertencem a esse 
intervalo. 
int main () 
{ 
 int x, y; 
 cout << “Informe dois numeros”; 
 cin >> x >> y; 
 while (x <= y) { 
 if ( x % 3 == 0) 
 cout << x << “\t”; 
 x++; 
 } 
} 
1o Sem 2012 HNigri - Algoritmos 24 
Exercícios 
5. Uma turma com 50 alunos fizeram 5 provas ao longo do 
semestre. Faça um programa que leia todas as provas de 
cada aluno: 
1.  A nota de cada aluno 
2.  A média da turma 
3.  O percentual de alunos com media igual ou superior 
a 70 % (cada nota vale até 20 ptos) 
6.  Faça um programa que leia a quantidade notas de um 
turma. A seguir, leia todas as notas, calcule e imprima: 
1.  A maior nota da sala 
2.  A menor nota da sala 
3.  A nota média da sala 
Por hoje é só ... que bom ... 
1o Sem 2012 HNigri - Algoritmos 25 
JÁ QUE VOCÊS QUEREM ... 
!   ACABOU A BRINCADEIRA –
 VALENDO PONTOS. QUEM SAIR DA
 SALA A PARTIR DE AGORA
 RECEBERÁ ZERO 
!   Ler dois números X e Y inteiros
 do teclado, sendo que X pode ser
 maior que Y ou o contrário
 (usuário não é gente boa :(, e
 listar todos os números inteiros
 múltiplos de 3 que pertencem a
 esse intervalo. 
!   . 1o Sem 2012 HNigri - Algoritmos 26

Outros materiais