Buscar

Aula10-RepeticaoWhileC

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

*
*
Introdução a Programação
Estruturas de repetição (cont.)
Prof. Luis Otavio Alvares
Parte deste material é adaptado de lâminas das Profas. Patrícia Jaques, Mônica Py e Deise Saccol
*
*
Formato:
Enquanto <operação lógica> repetir <ações>
Significado: A <operação lógica> é testada. Se for verdadeira, então executar <ações> e em seguida testar novamente a operação lógica. Este ciclo prossegue até que em algum teste a operação lógica resulte em falso.
Nesta estrutura temos novamente, assim como nas estruturas de decisão, uma operação lógica determinando se devemos continuar a repetir (resultado V) ou parar de repetir (resultado F) as ações. 
Devemos garantir que o dado testado na operação lógica tenha seu valor modificado por alguma das ações repetidas, senão nunca teremos um resultado F no teste e a repetição permanecerá num ciclo infinito (loop)!
Lógica de programação
ENQUANTO ... REPETIR ...
*
*
 Exemplo da estrutura ENQUANTO...REPETIR:
 Ler números pelo teclado e mostrar o maior número lido (encerrar quando for lido o número 0)
 Pseudocódigo:
Início
MAIOR = 0 (MAIOR por enquanto é o menor valor possível)
N = 1 (só para o 1.o teste funcionar...)
Enquanto (N <> 0) repetir
Ler N (aqui o valor de N muda, é a entrada do usuário)
Se (N > MAIOR) então MAIOR = N
Mostrar MAIOR (isto só executa quando o enquanto terminar)
Fim
Lógica de programação
*
*
Fluxograma:
Lógica de programação
INÍCIO
MAIOR
FIM
N < > 0
Sim
Ler N
Não
MAIOR = 0
N = 1
N > MAIOR
Sim
MAIOR = N
Não
Na estrutura ENQUANTO...REPE-TIR, veja que o teste é feito no início do ciclo.
*
Exercício
Faça um algoritmo para mostrar os 30 primeiros números ímpares
*
*
Exemplos de solução
 c=1
 impar=1
3. Enquanto c<=30 repetir
3.1 se impar mod 2 = 1 (é um número ímpar)
3.1.1 então mostrar impar
3.1.2 c=c+1
3.2 impar=impar+1
*
1. I=0
2. Enquanto I<30 repetir
2.1 I=I+1
2.2 impar=I*2-1
2.3 mostrar impar 
I=0
Impar=1
3. Enquanto I<30 repetir
3.1 impar=impar+2
3.2 mostrar impar
3.3 I=I+1
*
Exercício
Faça um algoritmo para calcular e escrever o valor de S:
*
*
Exemplo de solução
*
1. Início
S=0
I=1
3. Enquanto I<=50 repetir
3.1 S=S+(I*2-1)/I
3.2 I=I+1
4. Mostrar S
5. Fim
*
Exercício
Faça um algoritmo que encontre o primeiro número inteiro que elevado ao quadrado seja maior que este número multiplicado por 5.
*
*
Exemplo de solução
1. início
2. I=1
3. enquanto I*I <=I*5 repetir
3.1 I=I+1
4. mostrar I
5. fim
*
*
Estruturas de repetição em C
*
*
*
Estrutura de repetição
Comando while
	
	while (condição)
 		comando;
	while (condição) {
 		comando1;
		comando2;
		comando3;
	}
*
Comando while
while (condição)
 		comando1;
*
Não esquecer dos parênteses 
O comando1 será executado enquanto a condição for verdadeira
O programador deve cuidar para que a condição fique falsa em algum momento, do contrário o programa fica indefinidamente repetindo o comando1. 
*
*
Exercício
 Fazer um programa que leia números pelo teclado e mostre o maior número lido. Encerrar quando for lido o número 0.
#include <stdio.h>
#include <stdlib.h>
main(){
 int N,maior;
 maior=0; // o menor número possivel
 N = 1; // N tem que ter um valor inicial
 while (N != 0) {
 scanf("%d",&N);
 if (N>maior) maior=N;
 }
 printf("o maior valor digitado e': %d", maior);
 system("pause");
}
*
Cuidado!!!
Não esqueça de dar valores iniciais para a(s) variável(eis) da condição, pois do contrário não se sabe o seu valor 
Exemplo: 
Exemplo de
Saída: 
*
#include <stdio.h>
#include <stdlib.h>
main(){
 int a,b,c;
 printf("a= %d \nb= %d\nc= %d\n", a,b,c);
 system("pause");
}
a= 1977932551
b= 2293576
c= 2
Press any key to continue . . .
*
Lembre-se!!!
 Não se esqueça de alterar o valor da variável da condição dentro do laço de repetição do comando while
 Exemplo: saída (loop infinito): 
*
#include <stdio.h>
#include <stdlib.h>
main(){
 int I=0;
 while (I<5) 
 printf("I= %d\n",I);
 system("pause");
}
I= 0
I= 0
I= 0
I= 0
I= 0
I= 0
I= 0
I= 0
I= 0
I= 0
I= 0
I= 0
I= 0
I= 0
I= 0
I= 0
I= 0
I= 0
*
Exercícios
Faça um programa para mostrar os 30 primeiros números ímpares
Faça um programa para calcular e escrever o valor de S:
Faça um programa que mstre o primeiro número inteiro que elevado ao quadrado seja maior que este número multiplicado por 5.
Faça um programa para calcular os 20 primeiros termos da série de Fibonacci
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais