330 likes | 456 Views
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. Início Ler N1 Ler N2 Ler N3 Ler N4
E N D
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 • Início • Ler N1 • Ler N2 • Ler N3 • Ler N4 • Media = (N1+N2+N3+N4)/4 • Mostrar Media • Fim 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
Faça um algoritmo para ler 100 números e mostrar a sua média!!!
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É
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>
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 • Para cont =1 até 50 faça 3.1 ler N 3.2 soma = soma + N 4. Media = soma / 50 • Mostrar media • Fim
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 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 • 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.” Isto será repetido 9 vezes.
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.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 MEDIA 8- Fim
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
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
Exercício • Faça um algoritmo para calcular e escrever o valor de S:
Exemplo de solução 1. Início 2. S=0 3. Para I=1 ate’ 50 faça 3.1 S=S+(I*2-1)/I 4. Mostrar S 5. 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!!!
Exemplo de solução 1. Início 2. Mostrar “informe o número” 3. Ler N 4. ehprimo=1 5. para J=2 até N-1 faça se N mod J =0 entãoehprimo=0 6. Se ehprimo=1 entãomostrar “ o número eh primo” senãomostrar “o númeronão eh primo” 7. Fim
Outra solução Início 2. Mostrar “informe o número” 3. Ler N 4. tot=0 5. paraJ=1 atéN faça se N mod J =0 entãotot=tot+1 6. Se tot=2 entãomostrar “ o número eh primo” senãomostrar “o númeronão eh primo” 7. Fim
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
Exemplo de solução • Início • 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
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, ….
Exemplo de solução 1. Início 2. Mostrar 0 3. Mostrar 1 4. penultimo=0 5. ultimo=1 6. Para I=3 até 20 faça 6.1 proximo=ultimo + penultimo 6.2 mostrar proximo 6.3 penultimo=ultimo 6.4 ultimo=proximo 7. Fim
Lógica de programação ENQUANTO ... FAÇA... • 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çã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(MAIOR por enquanto é o menor valor possível) N 1(só para o 1.o teste funcionar...) Enquanto (N <> 0) faça 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
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 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 1. I=0 2. Enquanto I<30 faça 2.1 I=I+1 2.2 impar=I*2-1 2.3 mostrar impar • I=0 • Impar=1 • 3. Enquanto I<30 faça • 3.1 mostrarimpar • 3.2 impar=impar+2 • 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 faça 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 positivo 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 faça 3.1 I=I+1 4. mostrar I 5. fim
Lógica de programação REPITA ... ATÉ • 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.
Exercício • Faça um algoritmo para mostrar os 30 primeiros números ímpares
Exemplo de solução 1. início 2. I=0 3. repita 3.1 I=I+1 3.2 impar=I*2-1 3.3 mostrarimpar até I>=30 4. fim
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.
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