|
|
Existem
ocasiões onde se é necessário efetuar a repetição
de um trecho de programa um determinado número de vezes.
Neste caso, poderá ser criado um looping que efetue o processamento
de um determinado trecho, tantas vezes quando forem necessárias.
Os loopings também são chamados de : laços
de repetição ou malhas de repetição.
Supondo-se que você tivesse um programa que deveria executar
um determinado trecho de instruções por 5 vezes.
Com o conhecimento possuído até este momento, você
com toda certeza, irá escrever o mesmo trecho repetindo-o
o número de vezes necessárias. Por exemplo, imagine
um programa que peça a leitura de um valor para a variável
X, multiplique este valor por 3 implicando-o à variável
de resposta R e apresente o valor obtido, repetindo esta seqüência
por cinco vezes, conforme mostrado abaixo no pseudocódigo:
Programa
PEDE_NÚMERO
Var
X
: inteiro
R:
inteiro
Início
Leia
X
R
= X* 3
Escreva
R
Leia
X
R
= X* 3
Escreva
R
Leia
X
R
= X* 3
Escreva
R
Leia
X
R
= X* 3
Escreva
R
Leia
X
R
= X* 3
Escreva
R
Fim
Para
estes casos existem comandos apropriados para efetuar a repetição
de determinados trechos de programas o número de vezes
que for necessário. A principal vantagem deste recurso
é que o programa passa a ter um tamanho menor podendo sua
amplitude ser aumentada sem se alterar o tamanho do código
de programação. Desta forma, pode-se determinar
repetições com números variados de vezes.
Repetição
do Tipo: Teste Lógico no Início do Looping
Caracteriza-se por uma estrutura que efetua em teste lógico
no início de um looping, verificando se é permitido
executar o trecho de instruções subordinado a este
looping. A estrutura em questão é denominada de
enquanto, sendo conseguida com a utilização do conjunto
de instruções enquanto...faça...fim_enquanto.
A estrutura enquanto...faça...fim_enquanto tem o seu funcionamento
controlado por decisão. Sendo assim poderá executar
um determinado conjunto de instruções enquanto a
condição verificada for verdadeira. No momento em
que esta condição se torna falsa, o processamento
da rotina é desviado para fora do looping. Se a condição
for falsa logo de início, as instruções contidas
no looping serão ignoradas.
Fluxograma
Cuidado para não confundir esta nova estrutura com a estrutura
de decisão usada anteriormente. Aqui existe um retorno
À condição após a execução
do bloco de operações, até que a condição
se torne falsa. 
Pseudocódigo
Enquanto
(<condição>) faça
<instruções
para condição verdadeira>
Fim_enquanto
Como um exemplo, considere o problema: "Pedir a leitura de
um valor para a variável X, multiplicar este valor por
3 implicando-o à variável de resposta R e representar
o valor obtido, repetindo esta seqüência por cinco
vezes".
Observe que neste problema, deverá ser executado um mesmo
trecho de programa por 5 vezes. Quando alguém tem quem
executar uma determinada tarefa um número de vezes, este
efetua a contagem do que está fazendo. Desta forma, terá
a certeza de que a tarefa executada foi feita de acordo coma sua
necessidade, nem mais, nem menos. É exatamente isto que
deverá ser feito np programa, o controle do número
de vezes que a rotina desejada deverá ser executada. Para
tanto, deverá ser utilizado um contador controlado pela
instrução enquanto...faça...fim_enquanto.
Veja o fluxograma e o pseudocódigo.
Algoritmo
- Criar
uma variável para servir como contador com valor inicial
1;
- Enquanto
o valor do contador for menor ou igual a 5, processar os passos
3,4 e 5;
- Ler um
valor para a variável X;
- Efetuar
a multiplicação do valor X por 3, implicando o
resultado em R;
- Apresentar
o valor calculado contido na variável R;
- Acrescentar
+1 a variável do tipo contador, definida no passo 1;
- Quando
contador for maior que 5, encerrar o processamento do looping.
Pseudocódigo

Pseudocódigo
Programa
LOOPING_1 A
Var
X,
R : inteiro
CONT
: inteiro
Inicio
CONT
= 1
Enquanto
(CONT <= 5) faça
Leia
X
R
= X * 3
Escreva
R
CONT
= CONT + 1
Fim_enquanto
Fim
Além
da utilização das variáveis X e R, foi necessário
criar uma terceira variável (CONT) para controlar a contagem
do numero de vezes que o trecho de programa devera ser executado.
Logo após o inicio do programa, a variável contador
é atribuída com o valor 1(CONT ). Em seguida a instrução
enquanto (CONT < =5) faça efetua a checagem da condição
estabelecida, verificando que a condição é
verdadeira. Pois o valor da variável CONT que neste momento
é 1, é realmente menor que 5 e enquanto for deverá
processar o looping.
Sendo assim, tem inicio a execução da rotina de
instruções contidas entre as instruções
enquanto e a instrução fim_enquanto. Depois de efetuar
a primeira leitura, cálculo e apresentação
do valor calculado, o programa encontra a linha CONT CONT + 1,
sendo assim CONT 1+1 que resultará CONT=2.
Agora que a variável CONT possui o valor 2, o processamento
do programa volta para a instrução enquanto (CONT
< = 5) faça, uma vez que o valor da variável
CONT é menor que 5. Será então, executada
a rotina das instruções, só que desta vez
a variável CONT passará a possuir o valor 3. Desta
forma o programa processará novamente a rotina de instruções
passando o valor de CONT para 4, que será verificado e
sendo menor que 5 será executado mais uma vez a mesma rotina
de instruções. Neste ponto, a variável CONT
passa a possuir o valor 5. Perceba que a instrução
enquanto (CONT < =5) faça irá efetuar a checagem
do valor da variável CONT que é 5 com a condição
CONT < = 5. Veja que 5 não é menor que 5 mas
é igual, sendo essa condição verdadeira,
deverá a rotina ser executada mais uma vez. Neste momento,
o valor da variável CONT passa a ser 6, que resultará
para a instrução enquanto uma condição
falsa. E por conseguinte desviará o processamento para
a primeira instrução após a instrução
fim_enquanto, que no caso é a instrução fim
dando o encerramento do programa.
Para ilustrar de forma um pouco diferente, imagine que o problema
anterior deverá ser executado enquanto o usuário
queira. Desta forma, em vez de possuir dentro da rotina um contador
de vezes, pode-se possuir uma instrução pedindo
que o usuário informe se deseja continuar ou não.
Veja a seguir o exemplo desta nova situação:
Algoritmo
- Criar
uma variável para ser utilizada como resposta;
- Enquanto
a resposta for sim, executar os passos 3, 4 e 5;
- Ler um
valor para a variável X;
- Efetuar
a multiplicação do valor de X por 3, implicando
o resultado em R;
- Apresentar
o valor calculado contido na variável R;
- Quando
a resposta for diferente de sim, encerrar o processamento.
Pseudocódigo

Pseudocódigo
Programa
LOOPING_ 1 B
Var
X,
R : inteiro
RESP
: caractere
Inicio
RESP
= "sim"
Enquanto
(RESP= "sim") faça
Leia
X
R
= X* 3
Escreva
R
Escreva
"Deseja continuar?"
Leia
RESP
Fim_enquanto
Fim
Veja que o contador foi substituído pela variável
RESP, que enquanto for igual a "SIM" ou igual a "S",
executará a rotina existente entra as instruções
enquanto e fim_enquanto. Neste caso, o número de vezes
que a rotina se repetirá será controlado pelo usuário
e será encerrada somente quando alguma informação
diferente de "SIM" ou "S" for fornecida para
a variável RESP.
<<topo>>
Repetição
do Tipo: Teste Lógico no fim do Looping
Caracteriza-se por uma estrutura que efetua um teste lógico
no fim de um looping. Esta estrutura é parecida com a estrutura
enquanto. A estrutura em questão é denominada de
repita, sendo conseguida com a utilização do conjunto
de instruções repita...até_que.
A estrutura repita...até_que tem seu funcionamento controlado
por decisão. Porém, irá efetuar a execução
de um conjunto de instruções, enquanto a condição
é verdadeira.
Desta forma repita tem seu funcionamento em sentido contrário
a enquanto, pois sempre irá processar um conjunto de instruções,
no mínimo uma vez até que a condição
se torne Verdadeira. Para a estrutura repita um conjunto de instruções
é executado enquanto a condição se mantém
Falsa e até que ela seja Verdadeira.
Para exemplificar a utilização de repita será
utilizado o mesmo exemplo anterior: "Pedir a leitura de um
valor para a variável X, multiplicar este valor por 3,
implicando-o à variável de resposta R e apresentar
o valor obtido, repetindo esta seqüência por cinco
vezes".
Algoritmo
- Criar uma
variável contadora;
- Ler um
valor para a variável X;
- Efetuar
a multiplicação do valor de X por 3, implicando
o resulta em R;
- Apresentar
o valor calculado contido na variável R;
- Acrescentar
um ao contador;
- Repetir
os passos 2, 3, 4 e 5 até que o contador seja maior que
5.
Pseudocódigo

Pseudocódigo
Programa
LOOPING_2 A
Var
X,
R : inteiro
Cont
: inteiro
Inicio
CONT
= 1
Repita
Leia
X
R
= X*3
Escreva
R
CONT
= CONT + 1
Até_que
(CONT > 5)
Fim
Logo
após o inicio do programa, a variável contador é
atribuída com o valor 1 (CONT = 1). Em seguida a instrução
repita indica que todo trecho de instruções situado
até a instrução até_que deverá
ter seu processamento repetido até que a condição
CONT > 5 seja satisfeita.
Sendo assim, tem início a execução da rotina
de instruções contidas entre as instruções
repita e até_que. Depois de efetuar a primeira execução
das instruções, o programa encontra a linha CONT
CONT + 1, neste momento a variável CONT é somada
a mais 1 passando a ter o valor 2. Em seguida é encontrada
a linha com a instrução até_que (CONT >5),
que efetuará o retorno a instrução repita
para que seja reprocessada a seqüência de comandos,
até que a instrução o valor da variável
CONT seja maior que 5 e encerre o looping.
A seguir, é apresentado o exemplo em que não se
utiliza o contador como forma de controle de execução
de vezes de uma rotina em uma estrutura de repetição.
Considere que será o usuário que encerrará
o processamento segundo sua vontade.
Algoritmo
- Criar uma
variável para ser utilizada como resposta;
- Ler um
valor para a variável X;
- Efetuar
a multiplicação do valor de X por 3, implicando
o resultado em R;
- Apresentar
o valor calculado contido na variável R;
- Repetir
os passos 2, 3, 4 e 5 até que a resposta do usuário
seja não.
Pseudocódigo

Pseudocódigo
Programa
LOOPING_2 B
Var
X,
R : inteiro
RESP:
caractere
Inicio
RESP
= "SIM"
Repita
Leia
X
R
= X*3
Escreva
R
Escreva
"Deseja continuar?"
Leia
RESP
Até_que
RESP < > "SIM"
Fim
Veja que a variável RESP não necessitou ser utilizada
com algum valor, pois mesmo que o tivesse feito, não exerceria
influência direta sobre a estrutura repita, uma vez que
no mínimo são sempre executadas as instruções
constantes no looping, para somente no final ser verificada a
condição, no caso RESP= "SIM".
<<topo>>
Repetição
do tipo: Variável de controle
Anteriormente,
foram vistas duas formas de se elaborar looping. Uma usando o
conceito enquanto e a outra usando o conceito repita. Foi visto
também como se elaborar rotinas que efetuaram a execução
de um looping um determinado número de vezes através
da utilização de um contador (através de
uma variável de controle).
Porém, existe uma possibilidade de facilitar o uso de contadores
finitos, sem fazer uso das duas estruturas anteriores, deixando-se
para utilização de loopings onde não se conhece
de antemão o número de vezes que uma determinada
seqüência de instruções deverá
ser executada. Os loopings que possuem um número finito
de execuções poderão ser processados através
de estrutura de laços contados para, sendo conseguida com
a utilização do conjunto de instruções
para...de...até...passo...faça...fim_para .
A estrutura para...de...até...passo...faça...fim_para
tem o seu funcionamento controlado por uma variável denominada
contador. Sendo assim, poderá executar um determinado conjunto
de instruções um determinado número de vezes.
Com relação à representação
gráfica em fluxograma, existem várias formas adotadas
por diversos profissionais no mercado, sendo assim, não
existe um padrão de montagem do fluxograma.
Fluxograma
Com
relação ao fluxograma, será neste indicado
a variável a ser controlada com a implicação
dos valores de: início; fim e incremento, separados por
vírgula. Para representar esta operação em
um fluxograma será utilizado o símbolo denominado
Processamento predefinido ou Preparação.

Pseudocódigo
Para
< variável > de < início >
até < fim > passo <incremento
> faça
<instruções
>
Fim_para
Para
exemplificar considere o problema anterior: "Pedir a leitura
de um valor para a variável X,multiplicar este valor por
3 implicando-o à variável de resposta R e apresentar
o valor obtido, repetindo esta seqüência por cinco
vezes".
Algoritmo
- Definir
um contador variando de 1 a 5;
- Ler um
valor para a variável X;
- Efetuar
a multiplicação do valor de X por 3, implicando
o resultado em R;
- Apresentar
o valor calculado contido na variável R;
- Repetir
os passos 2, 3, 4 e 5 até que o contador seja encerrado.
Fluxograma
Pseudocódigo
Programa
LOOPING_2 A
Var
X
,R : inteiro
CONT
: inteiro
Início
Para
CONT de 1 até 5 passo 1 faça
Leia
X
R
= X * 3
Escreva
R
Fim_para
Fim
Será
executado o conjunto de instruções entre a instrução
para e a instrução fim_para, sendo a variável
CONT (variável de controle) inicializada com valor 1 e
incrementada de mais 1 através da instrução
passo até o valor 5. Este tipo de estrutura de repetição
poderá ser utilizado todas as vezes que se tiver a necessidade
de repetir trechos finitos, onde se conhece o valor inicial e
o valor final.
<<topo>>
|