Algoritmos I Aula 10 – Estrutura de controle: repetição Professor: Max Pereira http://paginas.unisul.br/max.pereira Ciência da Computação Estrutura de repetição • São comuns as situações nas quais precisamos repetir determinadas ações enquanto não atingimos um objetivo. • No desenvolvimento de algoritmos nos deparamos com situações nas quais precisamos repetir um conjunto de instruções até que uma determinada condição ocorra. • Nessas situações, utilizamos os comandos de repetição, também conhecidos como laços ou loops. Estrutura de repetição • Repetição com teste no início – Consiste em uma estrutura de controle do fluxo de execução que permite repetir diversas vezes um mesmo trecho do algoritmo, porém, sempre verificando antes de cada execução se é “permitido” executar o mesmo trecho. – Para isso utilizamos a estrutura enquanto, que permite que um trecho seja repetido enquanto uma determinada condição for verdadeira. Estrutura de repetição • Repete uma sequência de comandos enquanto uma determinada condição (expressão lógica) for satisfeita. • Quando o resultado da condição for falso, o comando de repetição é abandonado. Se já da primeira vez o resultado é falso, os comandos não são executados nenhuma vez. enquanto <expressão-lógica> faca <sequência de comandos> fimenquanto Estrutura de repetição Exemplo algoritmo "Estrutura enquanto" var contador : inteiro inicio contador <- 1 enquanto contador <= 10 faca escreva(contador) contador <- contador + 1 fimenquanto fimalgoritmo Estrutura de repetição Exemplo var numero, resto : inteiro inicio numero <- 1 enquanto numero<>0 faca escreva("Insira um número: ") leia(numero) resto <- numero%2 se resto = 0 entao escreval("Par") senao escreval("Impar") fimse fimenquanto fimalgoritmo Estrutura de repetição • Repetição com teste no final – Para realizar a repetição com teste no final utilizamos a estrutura repita, que permite que um trecho seja repetido até que uma determinada condição seja verdadeira. – A sequencia de comandos é executada pelo menos uma vez, independentemente da validade da condição. repita <sequencia de comandos> ate <expressão-lógica> Estrutura de repetição Exemplo algoritmo "Estrutura repetição" var contador : inteiro inicio contador <- 1 repita escreva(contador) contador <- contador + 1 ate contador > 10 fimalgoritmo Estrutura de repetição Exemplo var total, nota : real contador : inteiro inicio repita escreva("Informe a Nota: ") leia(nota) se nota <> 0 entao total <- total + nota contador <- contador + 1 fimse ate nota = 0 escreva("Media: ", total/contador:2:2) Estrutura de repetição • Repetição com número conhecido de vezes. – A estrutura de repetição para...faça é utilizada quando um determinado trecho do algoritmo deve ser repetido um número fixo conhecido de vezes para <variável> de <valor inicial> ate <valor-limite> faca <sequencia de comandos> fimpara Estrutura de repetição Exemplo algoritmo "Estrutura de repetição" var contador : inteiro inicio para contador de 1 ate 10 faca escreva(contador) fimpara fimalgoritmo Estrutura de repetição Exemplo var alunos : inteiro nota1, nota2, media : real inicio para alunos de 1 ate 5 faca escreva("Insira a nota 1: ") leia(nota1) escreva("Insira a nota 2: ") leia(nota2) media <- (nota1 + nota2)/2 escreval("Média: ", media) fimpara fimalgoritmo Estrutura de repetição enquanto...faça repita...ate para...faça var c : inteiro inicio c <- 1 enquanto c <= 10 faca escreva(c) c <- c + 1 fimenquanto fimalgoritmo var c : inteiro inicio c <- 1 repita escreva(c) c <- c + 1 ate c > 10 fimalgoritmo var c : inteiro inicio para c de 1 ate 10 faca escreva(c) fimpara fimalgoritmo Exercícios • Escreva um programa para ler um número de 1 a 10 e calcular a sua respectiva tabuada. Imprima na tela os valores calculados. • Escreva um programa para ler o valor de n números. Quando o valor for zero, imprima os valores do maior e menor. • Escreva um programa para simular o processo de escolha das bolas azuis e vermelhas, nas suas respectivas caixas. Exercícios • Um exemplo clássico de algoritmo foi criado, entre 400 e 300 d.C. pelo matemático grego Euclides, para encontrar o máximo divisor comum entre dois inteiros positivos. Cálculo do máximo divisor comum (mdc) de dois números inteiros positivos a e b. 1. 2. 3. 4. x=aey=b r = resto da divisão x / y x=yey=r Se o valor r é nulo então mdc = x senão retorne ao passo 2. Exercícios • Escreva um programa para imprimir na tela um retângulo com 15 linhas e 60 colunas. A aparência do retângulo deve ser parecida com a figura abaixo. Preencha o retângulo com o caractere “+”. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + + + + + + + + + + + + + + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++