Estrutura de repetição PARA
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.
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.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
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.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
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.
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É.
No começo desse mês, começamos a falar sobre estruturas de repetição, as estruturas repita .. ate e enquanto .. faca.
Hoje para finalizar essa parte, iremos abordar a estrutura PARA .. FACA.
Para .. Faça
A sintaxe geral da estrutura de repetição para .. faca é a seguinte:
|
1 2 3 |
|
Explicando…
O X é a variável que deve ser previamente declarada, o N é o número que começará a contagem, M até onde vai essa contagem, e o passo Y só será necessário se você não quiser que seja de 1 em 1…
Sei que não entenderam nada, então vou mostrar um exemplo de uma estrutura de repetição utilizando enquanto .. faca e após, um utilizando o para .. faca, você verá que irá ficar bem mais simples!
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
Nesse algoritmo, foi utilizado a estrutura de repetição enquanto .. faca, como vocês podem notar, foi declarado a variável num para servir como condição para execução do laço, e ao mesmo tempo, imprimimos o valor da mesma na tela através do comando escreva.
Essa estrutura vai imprimir o seguinte resultado na tela do usuário: 1 2 3 4 5 6 7 8 9 10
Agora, a mesma estrutura, agora utilizando o para .. faca.
|
1 2 3 4 5 6 7 8 9 10 11 12 |
|
Esse algoritmo, tem a mesma função do algoritmo acima, porém dessa vez utilizando a estrutura para .. faca.
Vamos entender o algoritmo…
Declaração de variáveis, nós já aprendemos no quarto post da série, então vamos direto ao laço de repetição:
para num de 1 ate 10 faca
Neste comando, estamos dizendo ao interpretador VisualG que a variável num receberá o valor 1 e a cada iteração, ou seja, toda vez que os comandos dentro do para .. faca forem executados, a variável num receberá +1 em seu valor por padrão, e assim sucessivamente, até que o valor de num seja 10.
escreva(num) // já abordado anteriormente.
e o fimpara, que serve para indicar o fim do laço.
O Comando PASSO N:
1 – Imprimir na tela todos os números pares de 2 até 200
|
1 2 3 4 5 6 7 8 9 10 11 12 |
|
Passo 2…
Vocês devem estar se perguntando de onde surgiu esse passo 2 agora…
Lembram que na sintaxe do para .. faca expliquei que ele não é obrigatório, mas poderia surgir?
então! por padrão no portugol, ele sempre acrescentará +1 a variável que agente está utilizando no laço, mas nesse exemplo, eu preciso pegar apenas os números pares, ou seja, de 2 em 2.
Bingo!
Está explicado então, o porquê do passo 2, assim em cada iteração, ele acrescentará +2 na variável num, esta que sempre será um valor par, que é o que queremos nesse exemplo.
Nos exemplos até agora, você escreveu do 1 até um número maior, como o 100 por exemplo… Teria como fazer o inverso? do 100 até o 1?
Sim!
Para isso, mais uma vez utilizaremos o passo N.
|
1 2 3 |
|
Sim, também podemos utilizar passo -N, ou seja, um passo negativo.
Porque?
Porque se o padrão do para .. faca é acrescentar mais 1 na variável, o objetivo do passo N é justamente te dar o poder de escolher qual o valor que você quer acrescentar ou reduzir no laço.
E agente fica por aqui… A partir do próximo post, iniciaremos nossos estudos em vetores e matrizes, então é necessário que você já esteja bastante familiarizado com tudo o que já foi dito até aqui.
para x de 1 ate 2 faca
….se x = 1 entao
……..Nos siga no Twitter!
….senao
…….. Assine nosso Feed!
….fimse
fimpara

