CAPÍTULO 5
ESTRUTURAS DE REPETIÇÃO
Guilherme da Cunha Fonseca
FEPI – Centro Universitário de Itajubá
Curso de Tecnologia em Fabricação Mecânica
1 INTRODUÇÃO
Em vários momentos, na programação, se torna necessário repetir um trecho de um
programa um determinado número de vezes. Nesse caso, pode ser criado um laço de
repetição que efetue o processamento de um determinado trecho, tantas vezes
quantas forem necessárias. Os laços de repetição também são conhecidos por
loopings.
Supondo que se queira executar um determinado trecho de um programa três vezes
(3x). Por exemplo, suponha que um programa deva ler dois valores e mostrar a
média entre esses valores. Certamente a melhor técnica não seria repetir
simplesmente um mesmo trecho três vezes, como é mostrado abaixo:
var
media,n1,n2 : real
inicio
Leia (n1)
Leia (n2)
media := (n1+n2)/2
escreva (“Média:”, media)
Leia (n1)
Leia (n2)
media := (n1+n2)/2
escreva (“Média:”, media)
Leia (n1)
Leia (n2)
media := (n1+n2)/2
escreva ( “Média:”, media )
fimalgoritmo
Informática – Notas de Aula – Capítulo 05 – 2
Para esse e outros casos similares, existem comandos apropriados para efetuar a
repetição de determinados trechos de programa tantas vezes quantas forem
necessárias. A principal vantagem é que o programa passa a ter um tamanho muito
menor, podendo ser ampliada a amplitude de processamento como for necessária.
Existem 2 tipos de repetições:
 definidas e garantidas, ou seja, um mesmo trecho de programa será
executado um número pré-determinado de vezes e;
 indefinida e sem garantia, ou seja, um trecho de programa poderá ser
executado indefinidamente, não havendo garantia do término da execução
do algoritmo.
1.1 Repetição utilizando estrutura Para/FimPara:
A estrutura do Para/Fimpara é garantida, e sua sintaxe em português estruturado
é apresentada no seguinte formato:
para <var> de <início> ate <fim> passo <incremento>
<comandos>
fimpara
Veja o exemplo anterior, aplicando-se nele o laço de repetição Para / Fimpara..
var
media,n1,n2 :real
i
:inteiro
inicio
para i de 1 ate 3 passo 1 faca
Leia (n1)
Leia (n2)
media := (n1+n2)/2
escreva (“Média:”, media)
fimpara
fimalgoritmo
O algoritmo, que tinha que 17 linhas, passou a ter 10 linhas, com a mesma
funcionalidade e ainda com a vantagem de se ampliar o número de repetições de 3
para 300, com a maior facilidade.
Informática – Notas de Aula – Capítulo 05 – 3
1.2 Repetição utilizando estrutura Enquanto / Fimenquanto:
Embora também possa ser utilizada quando se tem um número pré-determinado de
repetições a executar, como no exemplo acima, essa estrutura é mais indicada
quando é necessário repetir um determinado trecho de programa indefinidamente.
Para ilustrar, suponha que um determinado valor deva ser lido indefinidamente,
até que seja digitado zero (condição de parada). Nesse caso devemos usar a
estrutura Enquanto:
var
val :real
inicio
val:= 1
enquanto val <> 0 faca
escreva (“Valor:”)
leia (val)
<comandos1>
fimenquanto
<comandos2>
fimalgoritmo
Nesse caso, quando for digitado 0 (zero) para val, o fluxo do programa segue até
chegar no comando fimenquanto. Ao retornar na linha faça enquanto, é verificado
que o valor não é diferente de zero e o controle do programa passa para a linha
comandos2. A partir daí o fluxo do programa segue normalmente. Veja abaixo como
ficaria a utilização do laço enquanto para o exercício das 4 repetições:
var
media,n1,n2,i :real
inicio
i:= 1
enquanto i <= 3 faca
Leia (n1)
Leia (n2)
media := (n1+n2)/2
escreva (“Média:”, media)
i := i+1
fimenquanto
fimalgoritmo
1.3 Repetição utilizando estrutura Repita / Ate:
Usando o comando repita ... ate (condição), neste caso o comando verifica a condição
desejada no fim do mesmo. Veja o exemplo:
Informática – Notas de Aula – Capítulo 05 – 4
var
media,n1,n2,i :real
inicio
i:= 1
repita
Leia (n1)
Leia (n2)
media := (n1+n2)/2
escreva (“Média:”, media)
i:= i+1
ate i > 3
fimalgoritmo
1.4 Contador:
É uma variável de controle, inteira, que serve para controlar quantas vezes um
determinado trecho de programa foi executado. Considere, por exemplo, um
programa que leia 10 valores, podendo eles serem somente negativos ou positivos
(desconsidere os valores nulos). A seguir, considere que o programa deva mostrar a
quantidade de valores positivos digitados. Nesse caso, devemos fazer um teste a
cada leitura, e, no caso do valor lido ser positivo, adicionar +1 para uma variável
tipo contador (contp=contp+1).
1.5 Acumulador:
É uma variável de controle, inteira, que serve para acumular valores. Considere
que um programa, além de ler 100 valores e mostrar a quantidade de números
positivos, deva mostrar a média dos valores positivos digitados. Resolva este
problema.
1.6 Exercícios Propostos:
1) Imprima os números entre 1 e 100, inclusive.
2) Calcule e mostre a soma dos números entre 1 e 100, inclusive.
3) Calcule e mostre a média dos números entre 1 e 10, inclusive.
4) Apresente o quadrado de cada um dos números pares entre 1 e 1000, inclusive.
5) Apresente todos os números divisíveis por 5 que sejam maiores do que 0 e
menores ou iguais a 200.
Informática – Notas de Aula – Capítulo 05 – 5
6) Faça um algoritmo que leia 1 valor para uma variável N. A seguir, mostre a
tabuada de N:
1xN=N
2 x N = 2N
...
10 x N = 10N
7) Escreva um algoritmo que leia 50 valores, um de cada vez. Mostre então o
maior valor lido.
8) Criar um algoritmo utilizando o para que realize o somatório abaixo:
S = 1 + 3 + 5 + 7 + 9 + … + 99
9) Criar um algoritmo utilizando o para que realize o somatório abaixo:
S = 1² + 2² + 3² + 4² + 5² + 6² + 7² + 8² + 9² + 10²
10) Criar um algoritmo que imprima a série abaixo, utilizando o para:
7°, 7¹, 7², 7³, …, 7²°
11) Criar um algoritmo para imprimir a série abaixo:
0¹, 1², 2³, …, 9¹°
12) Programa para calcular e tabelar o volume e o raio da esfera com o raio
variando de 1 a 10 usando a estrutura de repetição
13) Programa que imprime de 1 a 10 em ordem decrescente.
14) Escreva um algoritmo que mostre os 100 primeiros números impares, iniciando
o primeiro impar em 3. no resultado será mostrado a impressão do resultado da
seguinte forma ( 3, 5, 7, 9, ...)
15) Pedir a leitura de um valor para a variável X, multiplicar este valor por 3
implicando-o (armazenando, guardando) à variável de resposta R e apresentar o
valor obtido, repetindo esta seqüência por 7 vezes.
16) Calcular o somatório da seguinte expressão:
Exp = 30 + 31 + 32 +33 + 34 +...+ 315
17) Apresentar os quadrados dos números inteiros de 15 a 200. baseando-se na
seguinte expressão:
M = 15², 16², 17², 18²,..., 199², 200²
Download

CAPÍTULO 5 ESTRUTURAS DE REPETIÇÃO - Blog das Exatas