Estrutura de repetição PARA

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.

estrutura-PARA

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.

Resultado Fatorial

 

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

para X de N ate M [passo Y] faca

    <comandos>

fimpara

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

algoritmo "repetição 1"

 

var

num: inteiro

 

inicio

 

num <- 1

enquanto num <= 10 faca

    escreva(num)

    num <- num + 1

fimenquanto

 

fimalgoritmo

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

algoritmo "repetição 2"

 

var

num: inteiro

 

inicio

 

para num de 1 ate 10 faca

    escreva(num)

fimpara

 

fimalgoritmo

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

algoritmo "numeros pares"

 

var

num: inteiro

 

inicio

 

para num de 2 ate 200 passo 2 faca

    escreva(num)

fimpara

 

fimalgoritmo

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

para num de 100 ate 1 passo -1 faca

    escreva(num)

fimpara

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

 

Sondagem

Avalia o Site

Optimo (107)
63%

Muito Bom (30)
18%

Bom (13)
8%

Regular (12)
7%

Mao (9)
5%

Total de votos: 171