Laços de Repetição

Padrão

Olha eu aqui denovo. Apesar dos sumiços periódicos, até que o blog está caminhando bem… E estou gostando também que, mesmo tendo um nível bem baixo de atualizações, o blog está com uma média de 15 a 20 visitas por dia. Saber que o blog está sendo útil para algumas pessoas me deixa muito contente. Ah, gostaria também pedir desculpas por não estar respondendo os e-mails nas últimas semanas… é que estou muito sem tempo mesmo… iniciação científica, projeto da FAITEC (a feira tecnológica da minha faculdade), seminários, palestras, e agora ainda tem a Maratona de Programação, além também de uns problemas pessoais aqui. Mas de boa, podem mandar as dúvidas que eu responderei na medida do possível. Bem, então vamos ao que interessa!

Hoje iremos tratar de um tema de suma importância na programação: Os Laços de Repetição. Em nossos programas já estamos lendo dados do usuário. Imagine o seguinte: vamos fazer uma soma de números. Lemos dois números e realizamos a soma. E se quiséssemos fazer uma soma de, por exemplo, 100 números, ou mesmo uma quantidade X definida pelo usuário? No caso da soma de 100 números, teríamos 100 vezes o comando Leia()? E como faríamos pra ler uma quantidade X de vezes? Sem as estruturas de repetição, sem dúvida, seria bem complicado. Além disso, teríamos um código extremamente grande e repetitivo, com comandos iguais pra fazer as mesmas coisas. Os Laços de Repetição foram criados para solucionar estes problemas, deixando os códigos mais compactos, mais legíveis e mais rápidos de serem desenvolvidos.

Os Laços de Repetição que iremos tratar aqui são o Enquanto, Faça e o Para. Descrevendo-os resumidamente, temos o seguinte:

  • Enquanto: testa a condição antes de executar o bloco de código
  • Faça: executa o bloco de código e depois verifica a condição
  • Para: executa um bloco de código um determinado número de vezes

Vamos começar, então, falando do Enquanto. O enquanto possui um funcionamento bem simples, porém é de grande utilidade. Ele compara uma sentença e executa o bloco de código se a condição for verdadeira. Da mesma forma que, por exemplo, no Se, você pode colocar diversas condições, com o uso dos operadores lógicos e e ou, além do não. A seguir temos o exemplo da sintaxe em algoritmo…

enquanto (nota > 70) faça
   comandos...
fim-enquanto

… e em Pascal…

while (Nota > 70) do
begin
   comandos...
end;

Dessa forma, utilizamos o Enquanto quando vamos executar uma repetição sem sabermos necessariamente o número de vezes que ele será executado. O looping pode, ainda, não ser executado nenhuma vez, caso a condição não seja satisfeita, ou seja, no Enquanto, testa-se a condição antes de executar o bloco de código.

Outra estrutura de repetição importante é o Repita. Ela possui praticamente o mesmo funcionamento que o Enquanto, porém a condição é testada após a execução do bloco de código. Abaixo, temos a sua sintaxe algoritmica…

repita
   comandos...
enquanto(nota <= 70) e (nota >= 30)

… e em Pascal…

repeat
   comandos...
until(nota <= 70) and (nota >= 30);

Neste exemplo acima, utilizei o operador lógico e para condicionar a repetição. Dessa forma, o looping será executado somente enquanto a variável Nota estiver na faixa entre 30 e 70 (para mais detalhes sobre os operadores lógicos, dê uma olhada no post sobre eles).

Por último, mas não menos importante, temos o Para. Esta estrutura de repetição se diferencia das outras por executar a repetição um determinado número de vezes. Como assim? A execução do Para é executada através da verificação e incremento de uma variável inteira, ou seja, determinamos a quantidade de vezes que a repetição será executada através de um limite para o valor da variável. Meio confuso? Calma, nos exemplos abaixo vai ficar mais claro. Primeiro na forma algoritmica…

para i = 1 até 50 faça
   comandos...
fim-para

… e em Pascal…

for i := 1 to 50 do
begin
   comandos...
end;

No exemplo acima, temos a variável I funcionando como o contador de execução do looping, sendo incrementado automaticamente a cada execução do bloco de código. Dessa forma, o nosso looping será executado 50 vezes, ou seja, enquanto a variável I for menor ou igual o valor 50. Podemos, em vez do valor 50 colocar outra variável ou uma constante pra controlar a quantidade de vezes que o Para será executado.

O Para também possui uma particularidade interessante, podendo realizar decrementos a cada execução do looping. Dessa forma, podemos, por exemplo, criar contadores decrescentes, ou ainda exibir vetores invertidos (para mais informações sobre vetores, consulte o próximo post). A seguir temos a sintaxe do Para com decremento tanto em algoritmo quanto em Pascal:

para i = 50 até 1 passo -1
   Comandos...
fim-para
for i := 50 downto 1 do
begin
   Comandos...
end;

Bem, pessoal, acho que é isso. Com o tempo vocês verão que a utilização das estruturas de repetição está sempre presente no dia-a-dia de um programador e tem papel fundamental na construção de um código otimizado. Fiquem atentos, pois no próximo post iremos falar de vetores e matrizes. Até lá e bons estudos!

2 comentários sobre “Laços de Repetição

  1. pmsm1100

    Oi!
    Estou a começar a aprender e dizer que o seu blog é útil é pouco.
    Parabéns pelo óptimo trabalho e continue assim.

  2. VERENA

    ME AJUDE,NÃO SEI RESOLVER!
    1-faça um programa para somar N primeiros termos de serie:2/3+4/5+6/7+8/9+…

    2-escreva um programa para ler o valor em reais e calcule qual o maior numero de notas de 50,5 e1 em que o valor lido pode ser decomposto.Escrever o valor lido e a relação de notas necessarias.

    3-Escrever um programa para ler um numero inteiro maior ou igual a 4(faça a verificação) e mostre todos os seus divisores exceto 1 e o numero lido

    4-faça um programa para somar os N primeiros termos da serie:1+3/1+5/3+7/5+9/7+….

    5-escreva um programa para ler um conjunto de 3 valores I,A,B onde I é um valor inteiro e positivo e A,B são quaisquer valores reais e os escreva a seguir:
    A-se I=1 escreva os dois valores a e b em ordem crescente.

    B-se I=2 escreva os dois valores a e b em ordem decrescente
    OBRIGADO!

Deixe uma resposta