Estrutura de repetição - teoria
Toda vez que precisamos repetir determinado número de vezes uma determinada seqüência de comandos, usamos um laço de repetição, que corresponderia repetir o mesmo trecho um número X de vezes sem ter de escrever o mesmo trecho X vezes.
enquanto while for
Contador:=0
Enquanto contador < 10 faça Comando1 Comando2 Comando N Contador:=contador+1
FimEnquanto
Contador:=0;
While contador < 10 do begin Comando1; Comando2; comandoN; contador:=contador+1; end; For contador:=1 to 10 do
Begin
Comando1; Comando2; comandoN;
End;
Exemplo: Calcular a média de 50 alunos (sem repetição). program media_notas; var NOME: string;
N1, N2, N3, MEDIA: real; begin {1º ALUNO} Writeln(‘Digite Nome e três Notas:’); readln(NOME,N1,N2,N3); MEDIA :=(N1+N2+N3)/3; writeln( ‘O aluno de nome ‘,NOME,’ tem a média ‘,MEDIA,’ em suas notas.’);
{2º ALUNO} Writeln(‘Digite Nome e três Notas:’); readln(NOME,N1,N2,N3); MEDIA :=(N1+N2+N3)/3; writeln( ‘O aluno de nome ‘,NOME,’ tem a média ‘,MEDIA,’ em suas notas.’);
{3º ALUNO} Writeln(‘Digite Nome e três Notas:’); readln(NOME,N1,N2,N3); MEDIA :=(N1+N2+N3)/3; writeln( ‘O aluno de nome ‘,NOME,’ tem a média ‘,MEDIA,’ em suas notas.’);
...
{50º ALUNO} Writeln(‘Digite Nome e três Notas:’); readln(NOME,N1,N2,N3); MEDIA :=(N1+N2+N3)/3; writeln( ‘O aluno de nome ‘,NOME,’ tem a média ‘,MEDIA,’ em suas notas.’); end. Que trabalhão!!!!!!
Imagine que tivéssemos que construir essa mesma rotina para 500, 5000, 50000 alunos? Como ficaria esse programa? Inviável, não?
Veja o exemplo a seguir:
Contador
Utilizamos uma variável que será incrementada a cada repetição, isto é, a cada repetição contamos +1 na variável, até um valor de acordo com o número de vezes que queremos