09/05/2011

Algorítimo - Estrutura de repetição

Juntamente com as estruturas seletivas, as estruturas de repetição ou iteração são de crucial importância para a programação do algoritmo.

As estruturas de repetição ou iteração nos possibilitam executar o mesmo trecho de código várias vezes seguidas, enquanto um dado critério não é satisfeito.

As estruturas de repetição ou iteração são, comumente, dadas pelas palavras while ou for.

Qualquer estrutura, seja for ou while, funciona com 1 variável que chamamos de sentinela. Essa variável irá ditar quando o programa deverá sair da repetição e geralmente tem 3 características:

1°. Qual valor esta variável irá iniciar; 2°. Como esta variável terá seu valor modificado para que chegue ao valor final; 3°. Qual valor esta variável deve atingir para que pare a repetição.

No caso, a variável de controle ou sentinela sempre deverá ter essas características ou poderá ocorrer um erro que chamamos de loop infinito. Isso ocorre por causa de erro de lógica, no qual a variável sentinela nunca chega ao seu resultado final. Para ilustrar, vamos imaginar o seguinte cenário:

Vamos criar um programa que mostre os múltiplos de três de 0 a 10 da seguinte forma: a variável sentinela iniciará em 0, para cada volta deverá ser somado o valor três à sentinela, e por fim, determinaremos que a iteração deve ser executada enquanto a variável sentinela for diferente de 10.

Se fizermos um teste simples e rápido, veremos que o programa nunca irá parar de repetir o mesmo código, porque a sentinela nunca será 10.

RepetiçãoValor sentinelaComparaçãoResultado
100 ≠ 10verdadeiro
233 ≠ 10verdadeiro
366 ≠ 10verdadeiro
499 ≠ 10verdadeiro
51212 ≠ 10verdadeiro
61515 ≠ 10verdadeiro

Portanto, é importante prestarmos atenção na forma que usamos a comparação para determinar quando o programa deve parar de dar voltas.

Por exemplo, utilizando o mesmo cenário acima, bastaria que apenas modificássemos a forma de comparação. Ao invés de utilizarmos o sinal de diferente, usaríamos o sinal de menor. Vejamos:

RepetiçãoValor SentinelaComparaçãoResultado
100 < 10verdadeiro
233 < 10verdadeiro
366 < 10verdadeiro
499 < 10verdadeiro
51212 < 10falso

Vale ressaltar que o código da iteração (repetição) só será executado caso a comparação seja verdadeira.

FONTE: Blog Expert.net

Nenhum comentário: