Sie sind auf Seite 1von 31

Lgica de Programao:

Estruturas de repetio
Prof. Luis Otavio Alvares

Parte deste material adaptado de lminas das Profas. Patrcia Jaques, Mnica Py e Deise Saccol

Faa um algoritmo para ler 4 nmeros e mostrar a sua mdia


1. 2. 3. 4. 5. 6. 7. 8. Incio 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. Incio 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

Faa um algoritmo para ler 50 nmeros e mostrar a sua mdia!!!

Lgica de programao

ESTRUTURAS DE REPETIO
Se uma ao se repete em um algoritmo, em vez de escrev-la vrias vezes, em certos casos podemos resumir anotando uma vez s e solicitando que ela se repita, usando uma das estruturas de repetio. Podemos executar uma ao (ou um conjunto de aes) um nmero definido ou indefinido de vezes, ou enquanto um estado permanecer ou at que um estado seja atingido. As principais estruturas de repetio so:
PARA...AT...FAA ENQUANTO...FAA REPITA...AT
4

Estruturas de repetio Para...at...faa :


Para <variavel> = <inicio> at <fim> faa <instrues>

Lgica de programao

Enquanto...Faa :
Enquanto <condio> faa <instrues>

Repita ...At :
Repita <instrues> at <condio>
5

Exemplo
Ler 50 nmeros fornecidos pelo usurio e calcular e exibir a mdia.

Pseudocdigo: 1. Incio 2. Soma = 0 <<< o acumulador precisa ter um valor inicial 3. Para cont =1 at 50 faa 3.1 ler N 3.2 soma = soma + N 4. Media = soma / 50 5. Mostrar media 6. Fim
6

Lgica de programao

PARA...AT...FAA
Formato:
Para <varivel> = <valor inicial> at <valor final> faa <aes> Significado: A <varivel> inicializada com <valor inicial>. Aps cada execuo das <aes>, somado 1 <varivel> e repetese as <aes>, continuando assim at que a <varivel> atinja o <valor final>. Esta estrutura de repetio cria um contador automtico, que ns no precisamos mandar incrementar. Ao usar esta estrutura j est subentendido que a <varivel> inicia com <valor inicial> e incrementada a cada ciclo (podendo-se inclusive aproveitar seu valor dentro do ciclo), e que as <aes> sero repetidas at que a <varivel> tenha o <valor final>.
7

Lgica de programao

Exemplo da estrutura PARA...AT...FAA: Mostrar os quadrados dos inteiros de 3 a 11.


Pseudocdigo:
Para CONT = 3 at 11 faa Mostrar (CONT *CONT) Isto ser repetido 9 vezes.

Usamos esta estrutura quando sabemos quantas vezes temos de repetir certas aes, mesmo que o nmero de vezes s seja conhecido durante a execuo. Por exemplo: Perguntar ao usurio de quantos valores ele quer calcular a mdia. Ler os nmeros e calcular a mdia.
8

E se eu quisesse calcular a mdia de N nmeros?

Lgica de programao

Para esse problema construmos um algoritmo que ser genrico, ou seja, que poder ser usado para calcular a mdia de quantos nmeros se quiser!
Pseudocdigo: 1- Incio 2- Mostrar De quantos valores voc quer calcular a mdia? 3- Ler QUANT (aqui se descobre quantas repeties) 4- SOMA = 0 5- Para CONT = 1 at QUANT faa 5.1Ler N (aqui lido cada nmero, um em cada ciclo) 5.2SOMA = SOMA + N (aqui os valores lidos so acumulados) 6- MEDIA = SOMA / QUANT (isto est fora do loop) 7- Mostrar MEDIA 8- Fim
9

Exerccio
Faa um algoritmo que calcule a soma dos nmero inteiros entre 5 e 16, inclusive. Exemplo de soluo: Incio Soma=0 Para Num=5 at 16 faa Soma=Soma + Num Mostrar Soma Fim
10

Exerccio
Faa um algoritmo para calcular e escrever o valor de S:

1 3 5 7 99 S ... 1 2 3 4 50

11

Exemplo de soluo
1. 2. 3. 3.1 4. 5. Incio S=0 Para I=1 ate 50 faa S=S+(I*2-1)/I Mostrar S Fim

12

Exerccio
Faa um algoritmo para calcular e mostrar os 20 primeiros termos da srie de Fibonacci:
O primeiro termo zero O segundo termo um Os demais so a soma dos dois termos anteriores

0, 1, 1, 2, 3, 5, 8, 13, .

13

Exemplo de soluo
1. 2. 3. 4. 5. 6. 6.1 6.2 6.3 6.4 7. Incio Mostrar 0 Mostrar 1 penultimo=0 ultimo=1 Para I=3 at 20 faa proximo=ultimo + penultimo mostrar proximo penultimo=ultimo ultimo=proximo Fim
14

Exerccio
Faa um algoritmo para informar se um nmero lido primo ou no.
Faa um teste de mesa para testar a sua soluo!!!

15

Exemplo de soluo
1. 2. 3. 4. 5. Incio Mostrar informe o nmero Ler N ehprimo=1 para J=2 at N-1 faa se N mod J =0 ento ehprimo=0 6. Se ehprimo=1 ento mostrar o nmero eh primo seno mostrar o nmero no eh primo 7. Fim

16

Exerccio
Faa um algoritmo para calcular a soma dos nmeros primos entre 1 e 100
Faa um teste de mesa para testar a sua soluo

17

Exemplo de soluo
1. Incio 2. Soma=2 >>> 2 o primeiro primo 3. Para I=3 at 99 faa 3.1 ehprimo=1 3.2 para J=2 at I-1 faa 3.2.1 se I mod J =0 ento ehprimo=0 3.3 se ehprimo=1 ento soma=soma+I 4 mostrar soma 5. Fim
18

ENQUANTO ... FAA...


Formato:
Enquanto <operao lgica> faa<aes>

Lgica de programao

Significado: A <operao lgica> testada. Se for verdadeira, ento executar <aes> e em seguida testar novamente a operao lgica. Este ciclo prossegue at que em algum teste a operao lgica resulte em falso.
Nesta estrutura temos novamente, assim como nas estruturas de deciso, uma operao lgica determinando se devemos continuar a repetir (resultado V) ou parar de repetir (resultado F) as aes. Devemos garantir que o dado testado na operao lgica tenha seu valor modificado por alguma das aes repetidas, seno nunca teremos um resultado F no teste e a repetio permanecer num ciclo infinito (loop)!
19

Lgica de programao

Exemplo da estrutura ENQUANTO...FAA:


Ler nmeros positivos pelo teclado e mostrar o maior nmero lido (encerrar quando for lido o nmero 0)

Pseudocdigo:
Incio MAIOR 0 N1 Enquanto (N <> 0) faa
(MAIOR por enquanto o menor valor possvel) (s para o 1.o teste funcionar...)

Ler N (aqui o valor de N muda, a entrada do usurio) Se (N > MAIOR) ento MAIOR N Mostrar MAIOR (isto s executa quando o enquanto terminar)

Fim
20

Exerccio
Faa um algoritmo para mostrar os 30 primeiros nmeros mpares

21

Exemplos de soluo
1. 2. 2.1 2.2 2.3 I=0 Enquanto I<30 faa I=I+1 impar=I*2-1 mostrar impar 1. I=0 2. Impar=1 3. Enquanto I<30 faa 3.1 mostrar impar 3.2 impar=impar+2 3.3 I=I+1

1. c=1 2. impar=1 3. Enquanto c<=30 faa 3.1 se impar mod 2 = 1 ( um nmero mpar) 3.1.1 ento mostrar impar 3.1.2 c=c+1 3.2 impar=impar+1
22

Exerccio
Faa um algoritmo para calcular e escrever o valor de S:

1 3 5 7 99 S ... 1 2 3 4 50

23

Exemplo de soluo
1. Incio 2. S=0 3. I=1 3. Enquanto I<=50 faa 3.1 S=S+(I*2-1)/I 3.2 I=I+1 4. Mostrar S 5. Fim

24

Exerccio
Faa um algoritmo que encontre o primeiro nmero inteiro positivo que elevado ao quadrado seja maior que este nmero multiplicado por 5.

25

Exemplo de soluo
1. 2. 3. 3.1 4. 5. incio I=1 enquanto I*I <=I*5 faa I=I+1 mostrar I fim

26

REPETIR ... AT
Formato:
repetir <aes> at <operao lgica>

Lgica de programao

Significado: As aes so executadas e depois a <operao lgica> testada. Se for falsa, executar novamente <aes> e em seguida testar novamente a operao lgica. Este ciclo prossegue at que em algum teste a operao lgica resulte em verdadeiro.
As <aes> sero executadas pelo menos uma vez.

27

Exerccio
Faa um algoritmo para mostrar os 30 primeiros nmeros mpares

28

Exemplo de soluo
1. 2. 3. 3.1 3.2 3.3 4. incio I:=0 repetir I=I+1 impar=I*2-1 mostrar impar at I>=30 fim

29

Exerccio
Faa um algoritmo que fique num ciclo de leitura at que o usurio informe um nmero positivo (i.e., ignorar numeros no positivos) e depois mostre a raiz quadrada do nmero positivo informado.

30

Exemplo de soluo
incio repetir mostrar digite um nmero positivo ler N at N > 0 mostrar a raiz quadrada deste nmero e: mostrar sqrt(N) fim

31

Das könnte Ihnen auch gefallen