Repeat-Until Loop
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
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.
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.