Lógica de Programação: Estruturas de repetição Prof. Luis Otavio Alvares
Embed Size (px)
description
Transcript of Lógica de Programação: Estruturas de repetição Prof. Luis Otavio Alvares

1
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

Faça um algoritmo para ler 4 números e mostrar a sua média
1. Início2. Ler N13. Ler N24. Ler N35. Ler N46. Media = (N1+N2+N3+N4)/47. Mostrar Media8. Fim
2
1. Início2. soma = 03. Ler N4. soma = soma+N5. Ler N6. soma = soma+N7. Ler N8. soma = soma+N9. Ler N10. soma = soma+N11. Media = soma/412. Mostrar Media13. Fim

Faça um algoritmo para ler 100 números e mostrar a sua média!!!
3

4
• 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É
Lógica de programação

5
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>
Lógica de programaçãoEstruturas de repetição

6
Exemplo • Ler 50 números fornecidos pelo usuário e calcular e
exibir a média.
Pseudocódigo:1. Início2. Soma = 0 <<< o acumulador precisa ter um
valor inicial
3. Para cont =1 até 50 faça3.1 ler N3.2 soma = soma + N4. Media = soma / 505. Mostrar media6. Fim

7
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 repete-se 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>.
Lógica de programação

8
• 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)
– 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.”
Lógica de programação
Isto será repetido 9 vezes.

9
Lógica de programação
E se eu quisesse calcular a média de N números?
– 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ício2- Mostrar “De quantos valores você quer calcular a média?”3- Ler QUANT (aqui se descobre quantas repetições)4- SOMA = 05- Para CONT = 1 até QUANT faça5.1- Ler N (aqui é lido cada número, um em cada ciclo)5.2- SOMA = SOMA + N (aqui os valores lidos são acumulados)6- MEDIA = SOMA / QUANT (isto está fora do loop)7- Mostrar MEDIA8- Fim

Exercício
Faça um algoritmo que calcule a soma dos números inteiros entre 5 e 16, inclusive.
10
Exemplo de solução:
InícioSoma=0Para Num=5 até 16 faça Soma=Soma + NumMostrar SomaFim

• 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:
12
50
99...
4
7
3
5
2
3
1
1S

Exemplo de solução
13
1. Início2. S=03. Para I=1 ate’ 50 faça3.1 S=S+(I*2-1)/I4. Mostrar S5. Fim

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. Início2. Mostrar “informe o número”3. Ler N4. ehprimo=15. para J=2 até N-1 faça se N mod J =0 então ehprimo=06. 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ício2. Mostrar “informe o número”3. Ler N4. tot=05. para J=1 até N faça se N mod J =0 então tot=tot+16. 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ício2. Soma=2 >>> 2 é o primeiro primo
3. Para N=3 até 99 faça 3.1 ehprimo=13.2 para J=2 até I-1 faça3.2.1 se N mod J =0 então ehprimo=03.3 se ehprimo=1 então soma=soma+N4 mostrar soma5. Fim
18
Aqui ve se N é primo

Exercício
19
Faça um algoritmo para calcular e mostrar os 20 primeiros termos da série de Fibonacci:
O primeiro termo é zeroO segundo termo é umOs demais são a soma dos dois termos anteriores
0, 1, 1, 2, 3, 5, 8, 13, ….

Exemplo de solução
1. Início2. Mostrar 03. Mostrar 14. penultimo=05. ultimo=16. Para I=3 até 20 faça6.1 proximo=ultimo + penultimo6.2 mostrar proximo6.3 penultimo=ultimo6.4 ultimo=proximo7. Fim
20

21
– 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)!
Lógica de programaçãoENQUANTO ... FAÇA...

22
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ícioMAIOR 0 (MAIOR por enquanto é o menor valor possível)N 1 (só para o 1.o teste funcionar...)
Enquanto (N <> 0) façaLer 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

Exercício
• Faça um algoritmo para mostrar os 30 primeiros números ímpares
23

Exemplos de solução
1. c=12. impar=13. Enquanto c<=30 faça3.1 se impar mod 2 = 1 (é um número ímpar)3.1.1 então mostrar impar3.1.2 c=c+13.2 impar=impar+1
24
1. I=02. Enquanto I<30 faça2.1 I=I+12.2 impar=I*2-12.3 mostrar impar
1. I=02. Impar=13. Enquanto I<30 faça3.1 mostrar impar3.2 impar=impar+23.3 I=I+1

Exercício
• Faça um algoritmo para calcular e escrever o valor de S:
25
50
99...
4
7
3
5
2
3
1
1S

Exemplo de solução
26
1. Início2.S=03.I=13. Enquanto I<=50 faça3.1 S=S+(I*2-1)/I3.2 I=I+14. Mostrar S5. Fim

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. início2. I=13. enquanto I*I <=I*5 faça3.1 I=I+14. mostrar I5. fim
28

29
– 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.
Lógica de programação REPITA ... ATÉ

Exercício
• Faça um algoritmo para mostrar os 30 primeiros números ímpares
30

Exemplo de solução
1. início2. I=03. repita3.1 I=I+13.2 impar=I*2-13.3 mostrar impar até I>=304. 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íciorepita mostrar “digite um número positivo” ler Naté N > 0mostrar “a raiz quadrada deste número
e’: “mostrar sqrt(N)fim
33