Repeat-Until Loop

Estrutura de repetição       

De todas as vezes que precisamos repetir uma determinada sequência de comandos, usamos um comando de repetição, o que corresponde a repetir a mesma operação um número X de vezes sem ter que escrever o X vezes

Contador (Pré-requisito)

Utilizamos uma variável que será incrementada a cada repetição, isto é, a cada repetição adicionamos +1 à variável, até um valor de acordo com o número de vezes que queremos repetir

Sintaxe:

 

 CONT:integer; ( Variável inteira que irá contar o número de repetições )

 CONT:=1; ( Iniciação do contador, ele deve começar com um qualquer valor )

 CONT:= CONT+1; ( Incrementar o contador em +1, repare que em cada repetição ele irá aumentar +1)

Repeat

...(code
...(code)
...(code)


Until <conditional expression>;

Exemplo:

Uses Crt;

Var YN : String;

 

Begin

      Writeln('Y(YES) or N(NO)?');

      Repeat { repete o código pelo menos uma vez }

            YN := Readkey; { lê a tecla digitada pelo utilizador }

            If YN = 'y' Then Halt; { para e saí }

            If YN = 'n' Then Writeln('É melhor sair...');

            Delay(2000); { espera 2 segundos}

      Until (YN = 'y') OR (YN = 'n');

End.

 

 

The For Loop

O comando for, diferentemente dos comandos de repetição repeat e while, permite que uma sequência de comandos seja executada um número definido de vezes A variável usada para contador já recebe um valor inicial e é incrementada pelo comando

Sintaxe:

 for contador:=ValorInicial to ValorFinal do

   begin

    comandos

   end;

for <counter variable> * := <initial value> to/downto <final value> do

{ one line of code }

If used for more than one statement

for <counter variable> * := <initial value> to/downto <final value> do Begin

{ code...

{ code... }


End;

 

Program lesson4_Program2b;

Uses Crt;

 

Var Counter : Integer; { variável contador declarada como inteiro }

 

Begin

      For Counter := 1 to 7 do { de 1 até 7 faz }

            Writeln(‘essg);

      Readln;

End.

Como desenhar um quadrado

Program Program3a_lesson4;

Uses Crt;

          

Begin

      Gotoxy(25,5); Writeln('+');

      Gotoxy(25,6); Writeln('I');

      GotoXy(25,7); Writeln('I');

      GotoXy(25,8); Writeln('I');

      GotoXy(25,9); Writeln('I');

      GotoXy(25,10); Writeln('I');

      GotoXy(25,11); Writeln('+');

      GotoXy(26,11); Writeln('-');

      GotoXy(27,11); Writeln('-');

      GotoXy(28,11); Writeln('-');

      GotoXy(29,11); Writeln('-');

      GotoXy(30,11); Writeln('-');

      GotoXy(31,11); Writeln('-');

      GotoXy(32,5); Writeln('+');

      Gotoxy(32,6); Writeln('I');

      GotoXy(32,7); Writeln('I');

      GotoXy(32,8); Writeln('I');

      GotoXy(32,9); Writeln('I');

      GotoXy(32,10); Writeln('I');

      GotoXy(32,5); Writeln('+');

      GotoXy(26,5); Writeln('-');

      GotoXy(27,5); Writeln('-');

      GotoXy(28,5); Writeln('-');

      GotoXy(29,5); Writeln('-');

      GotoXy(30,5); Writeln('-');

      GotoXy(31,5); Writeln('-');

      Readln; { espera que o utilizador carregue numa tecla}

End.          

With for loop:

Program Program3b_lesson4;

Uses Crt;

          

Var

      Counter : Integer;  { contador }

          

Begin

 

      For Counter := 1 to 5 do { repete 5 vezes }

      Begin     

            gotoxy(25, 5 + Counter); { escreve na vertical a letra I na coluna 25 e na linha 5 +++ do output (Atenção ao + contador) }

            Writeln('I');

      End;

 

      For Counter := 5 Downto 1 do

      Begin  {com 'downto' em vez de 'to', (neste caso é uma contagem decrescente) 'gotoxy}

            {Delay (500); }

            gotoxy(32, 11 - Counter); { escreve vertical  a letra A na coluna 32 e na linha 11 --- do output (Atenção ao - contador) }

            Writeln('A');

      End;

 

      For Counter := 1 to 6 do

      Begin

            gotoxy(25 + Counter, 11); { escreve horizontal  a letra A na coluna 25 +++ e na linha 11 do output (Atenção ao - contador) }

            Writeln('X');

      End;

 

      For Counter := 6 Downto 1 do

      Begin

            gotoxy(32 - Counter, 5);

            Writeln('W');

      End;

{--------------OU---------------}

{

      For Counter := 1 to 6 do

      Begin

      Delay (500);

            gotoxy(25 + counter, 5 );

            Writeln('W');

      End;

}

      {--------------Os cantos (+)---------------}

      Gotoxy(25,5);

      Writeln('+');

      GotoXy(25,11);

      Writeln('+');

      GotoXy(32,5);

      Writeln('+');

      GotoXy(32,11);

      Writeln('+');

      GotoXy(45,7);

      Write(' Feito com For Loops :)');

      Readln;

End.