Lógica de Programação:
Estruturas de repetição
Prof. Luis Otavio Alvares
Parte deste material é adaptado de lâminas das Profas. Patrícia Jaques,
Mônica Py e Deise Saccol
1
Faça um algoritmo para ler 4 números e mostrar
a sua média
1.
2.
3.
4.
5.
6.
7.
8.
Início
Ler N1
Ler N2
Ler N3
Ler N4
Media = (N1+N2+N3+N4)/4
Mostrar Media
Fim
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Início
soma = 0
Ler N
soma = soma+N
Ler N
soma = soma+N
Ler N
soma = soma+N
Ler N
soma = soma+N
Media = soma/4
Mostrar Media
Fim
2
Faça um algoritmo para ler 100 números e
mostrar a sua média!!!
3
Lógica de
programação
• ESTRUTURAS DE REPETIÇÃO
– Se uma ação se repete em um algoritmo, em vez de
escrevê-la várias vezes, em certos casos podemos
resumir anotando uma vez só e solicitando que ela se
repita, usando uma das estruturas de repetição.
– As principais estruturas de repetição são:
• PARA...ATÉ...FAÇA
• ENQUANTO...FAÇA
• REPITA...ATÉ
4
Estruturas de repetição
Lógica de
programação
Para...até...faça :
Para <variavel> = <inicio> até <fim> faça
<instruções>
Enquanto...Faça :
Enquanto <condição> faça
<instruções>
Repita ...Até :
Repita
<instruções>
até <condição>
5
Exemplo
• Ler 50 números fornecidos pelo usuário e calcular e exibir a
média.
Pseudocódigo:
1. Início
2. Soma = 0
<<< o acumulador precisa ter um valor inicial
3. Para cont =1 até 50 faça
3.1
ler N
3.2
soma = soma + N
4. Media = soma / 50
5. Mostrar media
6. Fim
6
Lógica de
programação
PARA...ATÉ...FAÇA
– Formato:
Para <variável> = <valor inicial> até <valor final> faça
<ações>
• Significado: A <variável> é inicializada com <valor inicial>. Após
cada execução das <ações>, é somado 1 à <variável> e repetese as <ações>, continuando assim até que a <variável> atinja o
<valor final>, quando executa as <ações> pela última vez.
• Esta estrutura de repetição cria um contador automático, que nós
não precisamos mandar incrementar.
• Ao usar esta estrutura já está subentendido que a <variável>
inicia com <valor inicial> e é incrementada a cada ciclo
(podendo-se inclusive aproveitar seu valor dentro do ciclo), e que
as <ações> serão repetidas até que a <variável> tenha o <valor
final>.
7
Lógica de
programação
• Exemplo da estrutura PARA...ATÉ...FAÇA:
“Mostrar os quadrados dos inteiros de 3 a 11.”
– Pseudocódigo:
Para CONT = 3 até 11 faça
Mostrar (CONT *CONT)
Isto será repetido 9 vezes.
– Usamos esta estrutura quando sabemos quantas vezes
temos de repetir certas ações, mesmo que o número de
vezes só seja conhecido durante a execução. Por
exemplo:
“Perguntar ao usuário de quantos valores ele quer
calcular a média. Ler os números e calcular a média.”
8
E se eu quisesse calcular a média de N números?
Lógica de
programação
– Para esse problema construímos um algoritmo que será genérico, ou
seja, que poderá ser usado para calcular a média de quantos números se
quiser!
– Pseudocódigo:
1- Início
2- Mostrar “De quantos valores você quer calcular a média?”
3- Ler QUANT
(aqui se descobre quantas repetições)
4- SOMA = 0
5- Para CONT = 1 até QUANT faça
5.1Ler N
(aqui é lido cada número, um em cada ciclo)
5.2SOMA = SOMA + N
(aqui os valores lidos são acumulados)
6- MEDIA = SOMA / QUANT
(isto está fora do loop)
7- Mostrar MEDIA
8- Fim
9
Exercício
Faça um algoritmo que calcule a soma dos
números inteiros entre 5 e 16, inclusive.
Exemplo de solução:
Início
Soma=0
Para Num=5 até 16 faça
Soma=Soma + Num
Mostrar Soma
Fim
10
• Faça um algoritmo para mostrar os 30
primeiros números ímpares
1. Início
2. Para I=1 até 30 faça
2.1
impar=I*2-1
2.2
Mostrar impar
3. Fim
11
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
12
Exemplo de solução
1.
2.
3.
3.1
4.
5.
Início
S=0
Para I=1 ate’ 50 faça
S=S+(I*2-1)/I
Mostrar S
Fim
13
Exercício
• Faça um algoritmo para informar se um
número lido é primo ou não.
Faça um teste de mesa para testar a sua solução!!!
14
Exemplo de solução
1.
2.
3.
4.
5.
Início
Mostrar “informe o número”
Ler N
ehprimo=1
para J=2 até N-1 faça
se N mod J =0 então ehprimo=0
6. Se ehprimo=1 então mostrar “ o número eh primo”
senão mostrar “o número não eh primo”
7. Fim
15
Outra solução
Início
2. Mostrar “informe o número”
3. Ler N
4. tot=0
5. para J=1 até N faça
se N mod J =0 então tot=tot+1
6. Se tot=2 então mostrar “ o número eh primo”
senão mostrar “o número não eh primo”
7. Fim
16
Exercício
Faça um algoritmo para calcular a soma dos
números primos menores que 100
Faça um teste de mesa para testar a sua solução
17
Exemplo de solução
1. Início
2. Soma=2
>>> 2 é o primeiro primo
3. Para N=3 até 99 faça
3.1
ehprimo=1
3.2
para J=2 até I-1 faça
3.2.1
se N mod J =0 então ehprimo=0
3.3
se ehprimo=1 então soma=soma+N
4 mostrar soma
5. Fim
Aqui ve
se N é
primo
18
Exercício
Faça um algoritmo para calcular e mostrar os 20
primeiros termos da série de Fibonacci:
O primeiro termo é zero
O segundo termo é um
Os demais são a soma dos dois termos anteriores
0, 1, 1, 2, 3, 5, 8, 13, ….
19
Exemplo de solução
1.
2.
3.
4.
5.
6.
6.1
6.2
6.3
6.4
7.
Início
Mostrar 0
Mostrar 1
penultimo=0
ultimo=1
Para I=3 até 20 faça
proximo=ultimo + penultimo
mostrar proximo
penultimo=ultimo
ultimo=proximo
Fim
20
ENQUANTO ... FAÇA...
Lógica de
programação
– Formato:
Enquanto <operação lógica> faça<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)!
21
Lógica de
programação
Exemplo da estrutura ENQUANTO...FAÇA:
Ler números positivos pelo teclado e mostrar o maior número
lido (encerrar a leitura quando for lido o número 0)
Pseudocódigo:
Início
MAIOR  0
N1
Enquanto (N <> 0) faça
(MAIOR por enquanto é o menor valor possível)
(só para o 1.o teste funcionar...)
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
22
Exercício
• Faça um algoritmo para mostrar os 30
primeiros números ímpares
23
Exemplos de solução
1.
2.
2.1
2.2
2.3
I=0
Enquanto I<30 faça
I=I+1
impar=I*2-1
mostrar impar
1. I=0
2. Impar=1
3. Enquanto I<30 faça
3.1
mostrar impar
3.2
impar=impar+2
3.3
I=I+1
1. c=1
2. impar=1
3. Enquanto c<=30 faça
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
24
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
25
Exemplo de solução
1. Início
2. S=0
3. I=1
3. Enquanto I<=50 faça
3.1
S=S+(I*2-1)/I
3.2
I=I+1
4. Mostrar S
5. Fim
26
Exercício
• Faça um algoritmo que encontre o primeiro
número inteiro positivo que elevado ao
quadrado seja maior que este número
multiplicado por 5.
27
Exemplo de solução
1.
2.
3.
3.1
4.
5.
início
I=1
enquanto I*I <=I*5 faça
I=I+1
mostrar I
fim
28
REPITA ... ATÉ
Lógica de
programação
– Formato:
repita <ações> até <operação lógica>
• Significado: As ações são executadas e depois a <operação lógica>
é testada. Se for falsa, executar novamente <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 verdadeiro.
• As <ações> serão executadas pelo menos uma vez.
29
Exercício
• Faça um algoritmo para mostrar os 30
primeiros números ímpares
30
Exemplo de solução
1.
2.
3.
3.1
3.2
3.3
4.
início
I=0
repita
I=I+1
impar=I*2-1
mostrar impar
até I>=30
fim
31
Exercício
• Faça um algoritmo que fique num ciclo de
leitura até que o usuário informe um número
positivo (i.e., ignorar números não positivos)
e depois mostre a raiz quadrada do número
positivo informado.
32
Exemplo de solução
início
repita
mostrar “digite um número positivo”
ler N
até N > 0
mostrar “a raiz quadrada deste número e’: “
mostrar sqrt(N)
fim
33
Download

Slides