Introdução Estrutura PARA Exercı́cios I Estrutura ENQUANTO Estruturas de Repetição Ivanovitch Medeiros Dantas da Silva Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação DCA0800 - Algoritmos e Lógica de Programação Natal, 04 de outubro de 2011 Ivanovitch Silva Estruturas de Repetição Estrutura REPITA Introdução Estrutura PARA Exercı́cios I Estrutura ENQUANTO Sumário 1 Introdução 2 Estrutura PARA 3 Exercı́cios I 4 Estrutura ENQUANTO 5 Estrutura REPITA Ivanovitch Silva Estruturas de Repetição Estrutura REPITA Introdução Estrutura PARA Exercı́cios I Estrutura ENQUANTO Sumário 1 Introdução 2 Estrutura PARA 3 Exercı́cios I 4 Estrutura ENQUANTO 5 Estrutura REPITA Ivanovitch Silva Estruturas de Repetição Estrutura REPITA Introdução Estrutura PARA Exercı́cios I Estrutura ENQUANTO Estrutura REPITA Estruturas de Repetição Todos os programas vistos até agora resolviam os problemas onde as instruções eram executadas uma única vez. Lembrar do algoritmo para calcular a média de 1 aluno (...). Se quiséssemos calcular a nota de todos os alunos ? Surgi a ideia das estruturas de repetição As estruturas de repetição são muitas vezes chamadas de Laços ou, também, de Loops Classificação: para...faça, repita...até, enquanto...faça. Ivanovitch Silva Estruturas de Repetição Introdução Estrutura PARA Exercı́cios I Estrutura ENQUANTO Estrutura REPITA Estruturas de Repetição Todos os programas vistos até agora resolviam os problemas onde as instruções eram executadas uma única vez. Lembrar do algoritmo para calcular a média de 1 aluno (...). Se quiséssemos calcular a nota de todos os alunos ? Surgi a ideia das estruturas de repetição As estruturas de repetição são muitas vezes chamadas de Laços ou, também, de Loops Classificação: para...faça, repita...até, enquanto...faça. Ivanovitch Silva Estruturas de Repetição Introdução Estrutura PARA Exercı́cios I Estrutura ENQUANTO Estrutura REPITA Estruturas de Repetição Todos os programas vistos até agora resolviam os problemas onde as instruções eram executadas uma única vez. Lembrar do algoritmo para calcular a média de 1 aluno (...). Se quiséssemos calcular a nota de todos os alunos ? Surgi a ideia das estruturas de repetição As estruturas de repetição são muitas vezes chamadas de Laços ou, também, de Loops Classificação: para...faça, repita...até, enquanto...faça. Ivanovitch Silva Estruturas de Repetição Introdução Estrutura PARA Exercı́cios I Estrutura ENQUANTO Estrutura REPITA Estruturas de Repetição Todos os programas vistos até agora resolviam os problemas onde as instruções eram executadas uma única vez. Lembrar do algoritmo para calcular a média de 1 aluno (...). Se quiséssemos calcular a nota de todos os alunos ? Surgi a ideia das estruturas de repetição As estruturas de repetição são muitas vezes chamadas de Laços ou, também, de Loops Classificação: para...faça, repita...até, enquanto...faça. Ivanovitch Silva Estruturas de Repetição Introdução Estrutura PARA Exercı́cios I Estrutura ENQUANTO Estrutura REPITA Estruturas de Repetição Todos os programas vistos até agora resolviam os problemas onde as instruções eram executadas uma única vez. Lembrar do algoritmo para calcular a média de 1 aluno (...). Se quiséssemos calcular a nota de todos os alunos ? Surgi a ideia das estruturas de repetição As estruturas de repetição são muitas vezes chamadas de Laços ou, também, de Loops Classificação: para...faça, repita...até, enquanto...faça. Ivanovitch Silva Estruturas de Repetição Introdução Estrutura PARA Exercı́cios I Estrutura ENQUANTO Sumário 1 Introdução 2 Estrutura PARA 3 Exercı́cios I 4 Estrutura ENQUANTO 5 Estrutura REPITA Ivanovitch Silva Estruturas de Repetição Estrutura REPITA Introdução Estrutura PARA Exercı́cios I Estrutura ENQUANTO Estrutura REPITA Estrutura PARA - Sintaxe para <variável de controle> de <valor inicial> ate <valor final> passo <incremento> faca <comando(s)> fimpara para <variável de controle> de <valor inicial> ate <valor final> faca <comando(s)> fimpara Ivanovitch Silva Estruturas de Repetição Introdução Estrutura PARA Exercı́cios I Estrutura ENQUANTO Estrutura PARA - Exemplo 2 Exemplo II Exemplo I 1 2 3 4 5 6 7 8 9 10 11 12 13 algoritmo ” Exemplo 1 ” // Função : Teste Para // Autor : Ivanovitch Silva // Data : 04/10/2011 // Seção de Declarações var i : inteiro inicio // Seção de Comandos para i de 1 ate 3 passo 1 faca escreval ( i ) fimpara fimalgoritmo Ivanovitch Silva 1 2 3 4 5 6 7 8 9 10 11 12 13 algoritmo ” Exemplo 2 ” // Função : Teste Para // Autor : Ivanovitch Silva // Data : 04/10/2011 // Seção de Declarações var i : inteiro inicio // Seção de Comandos para i de 1 ate 3 faca escreval ( i ) fimpara fimalgoritmo Estruturas de Repetição Estrutura REPITA Introdução Estrutura PARA Exercı́cios I Estrutura ENQUANTO Estrutura PARA - Exemplo 3 Exemplo III 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 algoritmo ” Exemplo 3 ” // Função : Teste Para // Autor : Ivanovitch Silva // Data : 04/10/2011 // Seção de Declarações var i , j : inteiro inicio // Seção de Comandos para i de 1 ate 4 faca para j de 1 ate 3 faca escreval ( i , j ) fimpara fimpara fimalgoritmo Ivanovitch Silva Estruturas de Repetição Estrutura REPITA Introdução Estrutura PARA Exercı́cios I Estrutura ENQUANTO Estrutura PARA - Exemplo 4 Exemplo IV 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 algoritmo ” Exemplo 3 ” // Função : Par ou Ímpar // Autor : Ivanovitch Silva // Data : 04/10/2011 // Seção de Declarações var i , num : inteiro inicio // Seção de Comandos para i de 1 ate 4 faca escreval ( ” Escreva um número ” ) leia (num) se (num%2 = 0 ) entao escreval ( ” Número é par ” ) senao escreval ( ” Número é ı́mpar ” ) fimse fimpara fimalgoritmo Ivanovitch Silva Estruturas de Repetição Estrutura REPITA Introdução Estrutura PARA Exercı́cios I Estrutura ENQUANTO Estrutura PARA - Exemplo 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 algoritmo ” Exemplo 1 ” var i , num : inteiro contPar , contImpar : inteiro somaPar , somaImpar : inteiro inicio // Seção de Comandos contPar <− 0 contImpar <− 0 somaPar <− 0 somaImpar <− 0 para i de 1 ate 6 faca escreval ( ” Escreva um número ” ) leia (num) se (num%2 = 0 ) entao contPar <− contPar + 1 somaPar <− somaPar + num senao contImpar <− contImpar + 1 somaImpar <− somaImpar + num fimse fimpara se ( contPar >= contImpar ) entao escreval ( ” Somat ório dos n úmeros pares : ” , somaPar ) senao escreval ( ” Somat ório dos n úmeros ı́mpares : ” , somaImpar ) fimse fimalgoritmo Ivanovitch Silva Estruturas de Repetição Estrutura REPITA Introdução Estrutura PARA Exercı́cios I Estrutura ENQUANTO Sumário 1 Introdução 2 Estrutura PARA 3 Exercı́cios I 4 Estrutura ENQUANTO 5 Estrutura REPITA Ivanovitch Silva Estruturas de Repetição Estrutura REPITA Introdução Estrutura PARA Exercı́cios I Estrutura ENQUANTO Estrutura REPITA Exercı́cios I Faça um programa que receba as notas (n1,n2,n3) de 10 alunos e calcule a média de cada aluno. Melhore o programa anterior, calcule também a maior e menor média da turma. Assumindo que a média de aprovação é 7.0, calcule quantos alunos passaram e quantos alunos foram reprovados. Faça um algoritmo que mostre os elementos de uma PA até o n-ésimo termo. Faça um programa que calcule o fatorial de um número Faça um programa que imprima os n termos da sequência Fibonacci (0,1,1,2,3,5,8,13,21,...) Ivanovitch Silva Estruturas de Repetição Introdução Estrutura PARA Exercı́cios I Estrutura ENQUANTO Estrutura REPITA Exercı́cios I Faça um programa que receba as notas (n1,n2,n3) de 10 alunos e calcule a média de cada aluno. Melhore o programa anterior, calcule também a maior e menor média da turma. Assumindo que a média de aprovação é 7.0, calcule quantos alunos passaram e quantos alunos foram reprovados. Faça um algoritmo que mostre os elementos de uma PA até o n-ésimo termo. Faça um programa que calcule o fatorial de um número Faça um programa que imprima os n termos da sequência Fibonacci (0,1,1,2,3,5,8,13,21,...) Ivanovitch Silva Estruturas de Repetição Introdução Estrutura PARA Exercı́cios I Estrutura ENQUANTO Estrutura REPITA Exercı́cios I Faça um programa que receba as notas (n1,n2,n3) de 10 alunos e calcule a média de cada aluno. Melhore o programa anterior, calcule também a maior e menor média da turma. Assumindo que a média de aprovação é 7.0, calcule quantos alunos passaram e quantos alunos foram reprovados. Faça um algoritmo que mostre os elementos de uma PA até o n-ésimo termo. Faça um programa que calcule o fatorial de um número Faça um programa que imprima os n termos da sequência Fibonacci (0,1,1,2,3,5,8,13,21,...) Ivanovitch Silva Estruturas de Repetição Introdução Estrutura PARA Exercı́cios I Estrutura ENQUANTO Estrutura REPITA Exercı́cios I Faça um programa que receba as notas (n1,n2,n3) de 10 alunos e calcule a média de cada aluno. Melhore o programa anterior, calcule também a maior e menor média da turma. Assumindo que a média de aprovação é 7.0, calcule quantos alunos passaram e quantos alunos foram reprovados. Faça um algoritmo que mostre os elementos de uma PA até o n-ésimo termo. Faça um programa que calcule o fatorial de um número Faça um programa que imprima os n termos da sequência Fibonacci (0,1,1,2,3,5,8,13,21,...) Ivanovitch Silva Estruturas de Repetição Introdução Estrutura PARA Exercı́cios I Estrutura ENQUANTO Estrutura REPITA Exercı́cios I Faça um programa que receba as notas (n1,n2,n3) de 10 alunos e calcule a média de cada aluno. Melhore o programa anterior, calcule também a maior e menor média da turma. Assumindo que a média de aprovação é 7.0, calcule quantos alunos passaram e quantos alunos foram reprovados. Faça um algoritmo que mostre os elementos de uma PA até o n-ésimo termo. Faça um programa que calcule o fatorial de um número Faça um programa que imprima os n termos da sequência Fibonacci (0,1,1,2,3,5,8,13,21,...) Ivanovitch Silva Estruturas de Repetição Introdução Estrutura PARA Exercı́cios I Estrutura ENQUANTO Estrutura REPITA Exercı́cios I Faça um programa que receba as notas (n1,n2,n3) de 10 alunos e calcule a média de cada aluno. Melhore o programa anterior, calcule também a maior e menor média da turma. Assumindo que a média de aprovação é 7.0, calcule quantos alunos passaram e quantos alunos foram reprovados. Faça um algoritmo que mostre os elementos de uma PA até o n-ésimo termo. Faça um programa que calcule o fatorial de um número Faça um programa que imprima os n termos da sequência Fibonacci (0,1,1,2,3,5,8,13,21,...) Ivanovitch Silva Estruturas de Repetição Introdução Estrutura PARA Exercı́cios I Estrutura ENQUANTO Estrutura PARA - Exemplo Média de 10 alunos 1 2 3 4 5 6 7 8 9 10 11 12 algoritmo ” M édia ” var i : inteiro n1 , n2 , n3 , media : real inicio para i de 1 ate 10 faca leia ( n1 , n2 , n3 ) media <− ( n1 + n2 + n3 ) / 3 escreval ( ”A media do aluno ” , i , ” é i g u a l a ” , media ) fimpara fimalgoritmo Ivanovitch Silva Estruturas de Repetição Estrutura REPITA Introdução Estrutura PARA Exercı́cios I Estrutura ENQUANTO Estrutura REPITA Média melhorada 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 algoritmo ” M édia Melhorada ” var i , alunoMenor , alunoMaior : inteiro n1 , n2 , n3 , media : real maiorMedia , menorMedia : real inicio maiorMedia <− 0 menorMedia <− 10 para i de 1 ate 10 faca leia ( n1 , n2 , n3 ) media <− ( n1 + n2 + n3 ) / 3 //É o menor? se ( media <= menorMedia ) entao menorMedia <− media alunoMenor <− i fimse //É o maior? se ( media >= maiorMedia ) entao maiorMedia <− media alunoMaior <− i fimse escreval ( ”A m édia do Aluno ” , i , ” f o i ” , media ) fimpara escreval ( ”A maior m édia f o i do Aluno ” , alunoMaior , ” c u j o v a l o r f o i ” , maiorMedia ) escreval ( ”A menor m édia f o i do Aluno ” , alunoMenor , ” c u j o v a l o r f o i ” , menorMedia ) fimalgoritmo Ivanovitch Silva Estruturas de Repetição Introdução Estrutura PARA Exercı́cios I Estrutura ENQUANTO Quantos alunos foram aprovados? E reprovados? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 algoritmo ” Aprovado / Reprovado ” var i : inteiro n1 , n2 , n3 , media : real aprovado , reprovado : inteiro inicio aprovado <− 0 reprovado <− 0 para i de 1 ate 10 faca leia ( n1 , n2 , n3 ) media <− ( n1 + n2 + n3 ) / 3 se ( media >= 7 ) entao aprovado <− aprovado + 1 senao reprovado <− reprovado + 1 fimse escreval ( ” M édia do Aluno ” , i , ” f o i ” , media ) fimpara escreval ( ” Quantidade de alunos aprovados : ” , aprovado ) escreval ( ” Quantidade de alunos reprovados : ” , reprovado ) fimalgoritmo Ivanovitch Silva Estruturas de Repetição Estrutura REPITA Introdução Estrutura PARA Exercı́cios I Estrutura ENQUANTO Elementos de uma PA 1 2 3 4 5 6 7 8 9 10 11 12 algoritmo ”PA” var i , n : inteiro a1 , razao , v a l o r : real inicio leia ( a1 , razao , n ) v a l o r <− a1 para i de 1 ate n faca escreval ( ” a ” , i , ” = ” , v a l o r ) v a l o r <− v a l o r + razao fimpara fimalgoritmo Ivanovitch Silva Estruturas de Repetição Estrutura REPITA Introdução Estrutura PARA Exercı́cios I Estrutura ENQUANTO Fatorial de um número 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 algoritmo ” F a t o r i a l ” var i , n : inteiro f a t : real inicio leia ( n ) f a t <− 1 se ( n = 0 ) ou ( n = 1 ) entao escreval ( ” F a t o r i a l de ” , n , ” é i g u a l a ” , 1 ) senao para i de n ate 1 passo −1 faca f a t <− f a t ∗ i fimpara escreval ( ” F a t o r i a l de ” , n , ” é i g u a l a ” , f a t ) fimse fimalgoritmo Ivanovitch Silva Estruturas de Repetição Estrutura REPITA Introdução Estrutura PARA Exercı́cios I Estrutura ENQUANTO Sequencia Fibonacci 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 algoritmo ” F i b o n a c c i ” var i , n : inteiro n1 , n2 , novo : inteiro inicio leia ( n ) n1 <− 0 n2 <− 1 se ( n >= 3 ) entao escreval ( n1 ) escreval ( n2 ) para i de 3 ate n faca novo <− n1 + n2 n1 <− n2 n2 <− novo escreval ( novo ) fimpara fimse fimalgoritmo Ivanovitch Silva Estruturas de Repetição Estrutura REPITA Introdução Estrutura PARA Exercı́cios I Estrutura ENQUANTO Sumário 1 Introdução 2 Estrutura PARA 3 Exercı́cios I 4 Estrutura ENQUANTO 5 Estrutura REPITA Ivanovitch Silva Estruturas de Repetição Estrutura REPITA Introdução Estrutura PARA Exercı́cios I Estrutura ENQUANTO Estrutura REPITA Estrutura ENQUANTO Na estrutura ENQUANTO, a condição lógica é avaliada, se ela for verdadeira, a lista de comandos é executada. Isso se repete até que a condição seja falsa. enquanto <condição> faca <comando(s)> fimenquanto Ivanovitch Silva Estruturas de Repetição Introdução Estrutura PARA Exercı́cios I Estrutura ENQUANTO Estrutura REPITA Estrutura ENQUANTO Enquanto - Exemplo II Enquanto - Exemplo I 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 11 algoritmo ” Enquanto ” var i : inteiro inicio i <− 0 enquanto ( i < 10) faca escreval ( i ) i <− i +1 fimenquanto fimalgoritmo Ivanovitch Silva algoritmo ” Enquanto ” var i : inteiro inicio i <− 0 escreval ( ” D i g i t e 10 para s a i r ” ) enquanto ( i <> 10) faca escreval ( ” L e i a um número ” ) leia ( i ) fimenquanto fimalgoritmo Estruturas de Repetição Introdução Estrutura PARA Exercı́cios I Estrutura ENQUANTO O que faz esse programa? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 algoritmo ” Qual a minha saı́da ? ” var i , num , j : inteiro inicio i <− 1 j <− 0 escreval ( ” L e i a um número d i f e r e n t e de zero ” ) leia (num) se (num > 0 ) entao enquanto ( i <= num) faca se (num%i = 0 ) entao j <− j +1 fimse i <− i +1 fimenquanto se ( j = 2 ) entao escreval ( ” Sim ” ) senao escreval ( ” Não ” ) fimse fimse fimalgoritmo Ivanovitch Silva Estruturas de Repetição Estrutura REPITA Introdução Estrutura PARA Exercı́cios I Estrutura ENQUANTO Estrutura REPITA Estrutura ENQUANTO Cada espectador de um cinema respondeu a um questionário no qual constava sua idade e sua opinião em relação ao filme: ótimo - 3, bom - 2, regular - 1. Faça um programa que receba a idade e a opinião de 15 espectadores, calcule e mostre: 1 2 3 A média das idades das pessoas que responderam ótimo A quantidade de pessoas que responderam regular A percentagem de pessoas que responderam bom, entre todos os espectadores analisados. Ivanovitch Silva Estruturas de Repetição Introdução Estrutura PARA Exercı́cios I Estrutura ENQUANTO Sumário 1 Introdução 2 Estrutura PARA 3 Exercı́cios I 4 Estrutura ENQUANTO 5 Estrutura REPITA Ivanovitch Silva Estruturas de Repetição Estrutura REPITA Introdução Estrutura PARA Exercı́cios I Estrutura ENQUANTO Estrutura REPITA Estrutura REPITA A estrutura REPITA é usada para criar laços no programa. Sua estrutura é semelhante à estrutura ENQUANTO, porém a condição lógica só é avaliada após a primeira iteração. repita <comando(s)> ate <condição> Ivanovitch Silva Estruturas de Repetição Introdução Estrutura PARA Exercı́cios I Estrutura ENQUANTO Estrutura REPITA REPITA 1 2 3 4 5 6 7 8 9 10 11 ENQUANTO algoritmo ” r e p i t a ” 1 2 3 4 5 6 7 8 9 10 11 var i : inteiro inicio i <−0 repita escreval ( i ) i <− i +1 ate i > 5 fimalgoritmo Ivanovitch Silva algoritmo ” enquanto ” var i : inteiro inicio i <−0 enquanto i < 5 faca escreval ( i ) i <− i +1 fimenquanto fimalgoritmo Estruturas de Repetição Estrutura REPITA Introdução Estrutura PARA Exercı́cios I Estrutura ENQUANTO Estrutura REPITA Exemplo Multiplicar n termos 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 algoritmo ” m u l t i p l i c a ç ã o de n termos ” var i , n : inteiro m u l t i p l i c a c a o : real num : real inicio i <−0 m u l t i p l i c a c a o <− 1 escreval ( ” Número de termos a serem l i d o s ” ) leia ( n ) repita escreval ( ” L e i a um n úmero ” ) leia (num) m u l t i p l i c a c a o <− m u l t i p l i c a c a o ∗num i <− i +1 ate i >= n escreval ( ”A m u l t i p l i c a ç ã o dos n termos f o i ” , m u l t i p l i c a c a o ) fimalgoritmo Ivanovitch Silva Estruturas de Repetição Estrutura REPITA Introdução Estrutura PARA Exercı́cios I Estrutura ENQUANTO Estrutura REPITA Estrutura REPITA Exemplo O número 3025 possui uma caracterı́stica interessante, sendo a seguinte: 30 + 25 = 55 e 552 = 3025. Elaborar um algoritmo que verifique todos os número de quatro algoritmos que apresentem essa propriedade. Escreva um algoritmo que gere os N primeiros números perfeitos. Um número perfeito é aquele que é igual à soma dos seus divisores, por exemplo, 6 = 1 + 2 + 3. Ivanovitch Silva Estruturas de Repetição Introdução Estrutura PARA Exercı́cios I Estrutura ENQUANTO Estrutura REPITA Estrutura REPITA Exemplo O número 3025 possui uma caracterı́stica interessante, sendo a seguinte: 30 + 25 = 55 e 552 = 3025. Elaborar um algoritmo que verifique todos os número de quatro algoritmos que apresentem essa propriedade. Escreva um algoritmo que gere os N primeiros números perfeitos. Um número perfeito é aquele que é igual à soma dos seus divisores, por exemplo, 6 = 1 + 2 + 3. Ivanovitch Silva Estruturas de Repetição Introdução Estrutura PARA Exercı́cios I Estrutura ENQUANTO Estrutura REPITA Estrutura REPITA Exemplo O número 3025 possui uma caracterı́stica interessante, sendo a seguinte: 30 + 25 = 55 e 552 = 3025. Elaborar um algoritmo que verifique todos os número de quatro algoritmos que apresentem essa propriedade. Escreva um algoritmo que gere os N primeiros números perfeitos. Um número perfeito é aquele que é igual à soma dos seus divisores, por exemplo, 6 = 1 + 2 + 3. Ivanovitch Silva Estruturas de Repetição