Onde e quando são utilizadas as estruturas de repetição?

Em nossos algoritmos, hora ou outra precisamos executar alguns passos mais de uma vez. Ou mesmo executar repetidamente alguns passos até que alguma condição seja atendida. A partir dessa necessidade surgem as estruturas de repetição, também conhecidas como LOOP. Neste artigo, vamos tratar de forma especial a estrutura de repetição ENQUANTO (em inglês, WHILE). Seu funcionamento é tão simples quanto a estrutura de decisão SE-ENTÃO. A diferença é que os passos dentro deste bloco, são repetidos enquanto a expressão booleana (VERDADEIRO ou FALSO) resultar VERDADEIRO. Veja o esquema abaixo:

ENQUANTO <expressão booleana> FAÇA

<instruções a serem executadas enquanto a expressão booleana resultar em VERDADEIRO>

FIM-ENQUANTO

Esta estrutura de repetição é também chamada de loop pré-testado, pois a expressão booleana é verificada antes da primeira execução. Se inicialmente ela já resultar em FALSO, as instruções que estão dentro do bloco não são executadas nenhuma vez.

Onde e quando são utilizadas as estruturas de repetição?

Estrutura ENQUANTO na prática!

Para entender na prática como usamos essa estrutura de repetição, vejamos um exemplo de algoritmo utilizando a ferramenta VisuAlg. Vamos implementar um algoritmo para somar valores até o usuário digitar o valor 0. Ou seja, vamos somar todos os valores que o usuário digitar, porém quando ele digitar 0 o "loop" acaba, a cada iteração do loop vamos apresentar o resultado atual da soma.

algoritmo "SomaEnquantoValorDiferenteDe0" var valorDigitado : REAL soma : REAL inicio soma := 0 ESCREVA ("Digite um valor para a soma: ") LEIA (valorDigitado) ENQUANTO valorDigitado <> 0 FACA soma := soma + valorDigitado ESCREVAL ("Total: ", soma) ESCREVA ("Digite um valor para a soma: ") LEIA (valorDigitado) FIMENQUANTO ESCREVAL ("Resultado: ", soma) fimalgoritmo

Observe o resultado deste algoritmo.

Onde e quando são utilizadas as estruturas de repetição?

As estruturas de repetição são muito utilizadas em desenvolvimento de softwares. Entender como funciona é muito importante para resolver problemas que precisam executar tarefas repetidas vezes. Para praticar a utilização da estrutura ENQUANTO, implemente um algoritmo no VisuAlg para calcular uma multiplicação através de somas consecutivas, para facilitar assuma que os dois fatores da multiplicação são positivos. Caso não consiga, acesse o artigo O que é Algoritmo, que tem um exemplo desse cálculo.

Já precisou implementar um LOOP com número de iterações pré-definido? (iteração é cada vez que as instruções do bloco do loop são executadas) Por exemplo, um algoritmo que realiza a soma dos números de 1 a 100, terá um número de iterações pré-definido (100).

Podemos implementar esse LOOP com qualquer estrutura de repetição (saiba mais sobre as estruturas ENQUANTO e REPITA-ATÉ), mas para isso é necessário utilizar um contador, uma variável que será utilizada para contar quantas iterações foram executadas até o momento (o algoritmo de multiplicação utilizado no artigo sobre algoritmos implementa um contador com a estrutura de repetição ENQUANTO). A estrutura de repetição PARA, implementa um contador implicitamente. Veja como é o seu esquema.

PARA <variável contadora> DE <valor inicial> ATE <valor final> [PASSO <valor de incremento>] FAÇA

<instruções a serem executadas repetidamente até a <variável contadora> atingir o valor final>

FIM-PARA

O passo de incremento é opcional, esse recurso serve pera definir qual o valor do incremento do contador, por exemplo de 1 em 1 (padrão), de 2 em 2, de 3 em 3, etc. Essa estrutura de repetição realiza o incremento de um contator de forma implícita, vejamos graficamente como funciona.

Onde e quando são utilizadas as estruturas de repetição?

A inicialização da variável contadora é realizada implicitamente, com o <valor inicial> informado da declaração da estrutura PARA. A condição para executar a iteração é que o valor da variável contadora não tenha atingido o <valor final>. E ao final de cada iteração, o valor da variável contadora é incrementado em 1 (ou o valor declarado como PASSO ou <valor de incremento>).

Estrutura PARA na prática!

Vamos implementar como exemplo um algoritmo para calcular o fatorial de um número. Para quem não sabe, fatorial é a multiplicação de todos os números de 1 até ao número que se está calculando. Por exemplo: Fatorial de 5 (5!) = 1 * 2 * 3 * 4 * 5 = 120. Vamos criar um algoritmo utilizando o ENQUANTO primeiro.

algoritmo "FatorialComENQUANTO" var numero : INTEIRO fatorial : INTEIRO contador : INTEIRO inicio ESCREVA ("Digite o número para calcular o fatorial: ") LEIA (numero) fatorial := 1 contador := 1 ENQUANTO contador <= numero FACA fatorial := fatorial * contador contador := contador + 1 FIMENQUANTO ESCREVA ("O fatorial de ", numero, " é : ", fatorial) fimalgoritmo

Veja que foi necessário incrementar o contador explicitamente (linha 16). Com a estrutura de repetição PARA, isso não é necessário. Vejamos agora o mesmo algoritmo implementado com o PARA.

algoritmo "FatorialComPARA" var numero : INTEIRO fatorial : INTEIRO contador : INTEIRO inicio ESCREVA ("Digite o número para calcular o fatorial: ") LEIA (numero) fatorial := 1 PARA contador DE 1 ATE numero FACA fatorial := fatorial * contador FIMPARA ESCREVA ("O fatorial de ", numero, " é : ", fatorial) fimalgoritmo

Nesta estrutura, não é necessário incrementar nem inicializar o contador, isso é feito automaticamente. O resultado dos dois algoritmos é o mesmo.

Onde e quando são utilizadas as estruturas de repetição?

LOOPs podem ser implementados com qualquer estrutura de repetição, porém, em alguns casos uma estrutura se mostra mais adequada que outras, como nesse caso do fatorial a mais adequada é a estrutura PARA. Conhecer essas estruturas de repetição é muito importante para criar programas melhores. Conheça as estruturas de repetição ENQUANTO e REPITA-ATÉ.