Caracteriza-se por uma estrutura que efetua um teste lógico no início de um looping, verificando se é
permitido executar o trecho de instruções subordinado a esse looping. A estrutura em questão é
denominada de enquanto, sendo conseguida com a utilização do conjunto de instruções
enquanto...faca...fimenquanto.
A estrutura enquanto...faca...fimenquanto 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 são ignoradas.
Diagrama de Blocos
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.
Algoritmo
1. Criar uma variável para servir como contador com valor inicial 1;
2. Enquanto o valor do contador for menor ou igual a 5, processar os passos 3, 4 e 5;
3. Ler um valor para a variável X;
4. Efetuar a multiplicação do valor de X por 3, implicando o resultado em R;
5. Apresentar o valor calculado contido na variável R;
6. Acrescentar +1 a variável contador, definida no passo 1;
7. Quando o contador for maior que 5, encerrar o processamento do looping.
Diagrama de Blocos
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 número de vezes que o trecho de programa deverá ser executado.
Logo após o início do programa, a variável contador é atribuída com o valor 1 (CONT <- 1). Em seguida , a
instrução enquanto (CONT <= 5) faca efetua a checagem da condição estabelecida, verificando que a
condição é verdadeira, pois o valor da variável CONT neste momento é 1, é realmente menor ou igual a 5, e
enquanto for deverá processar o looping.
Sendo assim, tem início a execução da rotina de instruções contidas entre as instruções enquanto e a
instrução fimenquanto. Depois de efetuar a primeira leitura, cálculo e apresentação do valor calculado, o
programa encontra a linha CONT <- CONT + 1, sendo assim 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) faca, uma vez que o valor da variável CONT é menor ou igual a 5. Será então executada a
rotina de 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 ou igual a 5, será executada 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) faca 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 esta 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 fimenquanto, que no
caso é a instrução fimalgoritmo, 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
1. Criar uma variável para ser utilizada como resposta;
2. Enquanto a resposta for sim, executar os passos 3, 4 e 5;
3. Ler um valor para a variável X;
4. Efetuar a multiplicação do valor de X por 3, implicando o resultado em R;
5. Apresentar o valor calculado contido na variável R;
6. Quando a resposta for diferente de sim, encerrar o processamento.
Diagrama de Blocos
Veja que o contador foi substituído pela variável RESP, que enquanto for igual a “sim” executará a rotina
existente entre as instruções enquanto e fimenquanto. Neste caso, o número de vezes que a rotina irá se
repetir será controlado pelo usuário e será encerrada somente quando alguma informação diferente de “sim”
for fornecida para a variável RESP.
Comentários
Postar um comentário