Aula10-RepeticaoWhileC - Inf

Propaganda
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
1
ENQUANTO ... REPETIR ...
Lógica de
programação
– 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)!
2
Lógica de
programação
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
3
Lógica de
programação
INÍCIO
– Fluxograma:
MAIOR = 0
N=1
Ler N
Sim
Na estrutura
ENQUANTO...REPETIR, veja que o teste é
feito no início do ciclo.
N<>0
Não
Não
N > MAIOR
MAIOR
Sim
MAIOR = N
FIM
4
Exercício
• Faça um algoritmo para mostrar os 30
primeiros números ímpares
5
Exemplos de solução
1.
2.
2.1
2.2
2.3
I=0
Enquanto I<30 repetir
I=I+1
impar=I*2-1
mostrar impar
1. I=0
2. Impar=1
3. Enquanto I<30 repetir
3.1
impar=impar+2
3.2
mostrar impar
3.3
I=I+1
1. c=1
2. 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
6
Exercício
• Faça um algoritmo para calcular e escrever o
valor de S:
1 3 5 7
99
S      ... 
1 2 3 4
50
7
Exemplo de solução
1. Início
2. S=0
3. 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
8
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.
9
Exemplo de solução
1.
2.
3.
3.1
4.
5.
início
I=1
enquanto I*I <=I*5 repetir
I=I+1
mostrar I
fim
10
Estruturas de repetição em C
11
Estrutura de repetição
• Comando while
while (condição)
comando;
while (condição) {
comando1;
comando2;
comando3;
}
12
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.
13
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");
}
14
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:
#include <stdio.h>
#include <stdlib.h>
main(){
int a,b,c;
printf("a= %d \nb= %d\nc= %d\n", a,b,c);
system("pause");
}
Exemplo de
Saída:
a= 1977932551
b= 2293576
c= 2
Press any key to continue . . .
15
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=
I=
I=
I=
I=
I=
I=
I=
I=
I=
I=
I=
I=
I=
I=
I=
I=
I=
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
16
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:
S
1 3 5 7
99
    ... 
1 2 3 4
50
• 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
17
Download