Aula 12: Estrutura de repetição

  1. Condição no Início

    while condição do comando

    Essa estrutura significa que enquanto a condição for verdadeira, o comando será executado repetidamente. Se a condição for falsa, então a repetição será interrompida. Comando pode ser simples ou composto e condição é uma expressão lógica.

    Exemplo:

    program repeticaoinicio;

    var i, soma : integer;

    begin


      i := 1;
      soma := 0;
      while (soma < 100) do
        begin
          i := i * 2;
          soma := soma + i;
        end;
      writeln(soma);
    end.

  2. Condição no Fim

    repeat comando
    until condição

    Nessa estrutura o comando é executada, e em seguida é verificado a condição. Se a condição for falsa, então repete-se a execução do comando. Se for verdadeira, então o laço é interrrompido. Comando pode ser simples ou composto e condição é uma expressão lógica. Nesta estrutura o comando é executado pelo menos uma vez. Um ponto interessante para colocarmos aqui é a questão da condição.

    Exemplo:

    program repeticaofim;

    var i, soma : integer;

    begin

      i := 1;
      soma := 0;
      repeat
        i := i * 2;
        soma := soma + i;
      until (soma >= 100);
      writeln(soma);
    end.

  3. Número de Repetições Conhecido

    for var-controle := valor-inicial to valor-final do comando

    for var-controle := valor-inicial downto valor-final do comando

    O significado dessas repetições é: a var-controle recebe o valor-inicial; verifica-se se o valor de var-controle ultrapassa o valor-final; se não ultrapassa, o comando será executado; a seguir, var-controle recebe o valor seguinte (no caso do for-to) ou valor anterior (no caso for-downto); verifica-se se ultrapassa o valor-final; se não ultrapassar, o comando será executado; e assim sucessivamente.

    Exemplo:

    program repeticaofor;
    { Esse programa calcula 2 elevado n }

    var i, n, s : integer;

    begin


      s := 0;
      read(n);
      for i:= 1 to n do
        s := s * 2;
      writeln(s);
    end.


Aula Anterior | Índice | Próxima Aula