Índice

1 for to (de…até)

 

 

 

 

 

 

Comandos de repetição – for … to … do (de … até … faz)

(Voltar ao Índice)    

 

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 variável := valor-inicial to valor-final do

begin

seqüência A de comandos;

end ;

 

for - to - do - são palavras-chaves

valor-inicial - é o primeiro valor que a variável assume

valor-final - é o valor máximo que a variável pode assumir

Nesta estrutura, a variável recebe o valor-inicial;

verifica se ele ultrapassa o valor-final;

se não ultrapassa, a sequência de comandos é executada;

a seguir, a variável recebe o valor sucessor (o loop é crescente);

verifica se ele ultrapassa o valor-final;

se não ultrapassa, a sequência de comandos é executada; e assim sucessivamente.

 

 

Program lesson4_Program2b;

Uses Crt;

 

Var Counter : Integer; {loop counter declared as integer}

 

Begin

 For Counter := 1 to 7 do {it's easy and fast!}

  writeln('for loop');

 Readln;

End.

 

 

 

program forLoop;

var

   a: integer;

begin

   for a := 10  to 20 do

   begin

      writeln('value of a: ', a);

   end;

end.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

program ex3; // 19 linhas

uses crt;

var numero, maior : real;

n, i : integer;

begin

repeat

write('Quantos numeros vai introduzir? (5-50) ');

readln(n);

until (n>=5) and (n<=50);

maior := 0;

for i:=1 to n do begin

write(i,'o numero: ');

readln(numero);

if (numero > maior) then maior := numero;

end;

writeln;

writeln('O maior numero foi: ',maior:0:10);

readln;

end.

 

 

Exemplo: Programa para calcular a média de 3 notas de 10 alunos:

 program  media_notas;

 var

 NOME:string;

 N1,N2,N3,MEDIA:real;

 CONT:integer;

 begin

   FOR CONT:=1 to 10 do    {para cont de 1 a 10 faça}

    begin

      write('Digite o nome e as 3 notas do ',cont,'o  aluno ');

      read(NOME,N1,N2,N3);

      if (N1>=0) and (N2>=0) and (N3>=0) and (N1<=10 00) and (N2<=10 00) and (N3<=10 00) then

       begin

         MEDIA:=(N1+N2+N3)/3;

         writeln('O aluno de nome ',NOME,' tem a média ',MEDIA,' em suas notas ');

       end

      else

       begin

         writeln('Notas invalidas!');

       end;

    end;

 end.

 

Usamos uma crítica para conferir se foi digitado um valor correto, usando para isso um teste lógico, dentro de uma repetição (laço), de onde só sairá quando for digitado um valor desejado, ou seja, obrigando que seja digitado um valor válido

Exemplo: Programa para calcular a média de 3 notas de 10 alunos, criticando a nota digitada:

 program  media_notas;

 var

 NOME:string;

 N1,N2,N3,MEDIA:real;

 CONT:integer;

 begin

   clrscr;

   FOR CONT:=1 to 10 do

    begin

      write('Digite o nome e as 3 notas do ',cont,'o  aluno ');

      readln(NOME,N1,N2,N3);

      while (N1<0) or (n1>10) or (N2<0) or (N2>10) or (N3<0) or (N3>10) do

       begin {repete enquanto as notas forem menores que 0 ou maiores que 10!}

         writeln('Notas inválidas! Digite notas de 0 a 10!');

         readln(N1,N2,N3);

       end;

      MEDIA:=(N1+N2+N3)/3;

      writeln('A média do aluno ',NOME,' é: ',MEDIA:2:2);

    end;

   readkey;

 end.

 

 

program ex4; // 24 linhas

uses crt;

var s : string;

i, j : integer;

begin

writeln('Este programa tira os espacos a mais de uma STRING');

writeln;

write('Escreva uma STRING: ');

readln(s);

j := 0;

for i:=1 to length(s) do

begin

j := j+1;

if (s[i] = ' ') then begin

s[j] := ' ';

while (s[i] = ' ') do

i := i+1;

j := j+1

end;

s[j] := s[i];

end;

writeln('Nova STRING: ',s);

readln;

end.

program ex2; // 18 linhas

uses crt;

var i, alunos, avaliacao, positivas : integer;

begin

writeln('CONTADOR DE AVALIACOES POSITIVAS');

write('Numero de alunos? ');

readln(alunos);

for i:=1 to alunos do begin

repeat

write('Nota do aluno ',i,': ');

readln(avaliacao);

until ((avaliacao>=0) and (avaliacao<=20));

if (avaliacao>=10) then positivas := positivas + 1;

end;

writeln;

writeln('Existem ',positivas,' positivas (',(positivas/alunos)*100:0:1,'%)');

readln;

end.

 

VAR i:byte;

    a,suma,media:single;

 

BEGIN

  suma:=0;

  Writeln('Ingrese 5 numeros para calcular su media :');

  for i:= 1 to 5 do

    Begin

      Write('[',i,'] ');readln(a);

      suma:=suma+a;

    End;

  media:=suma/5;

  Writeln('La media de los numeros ingresado es : ',media:10:3)

END.

 

USES math;

 

VAR rpta : char;

    n,i : integer;

 

BEGIN

 rpta:='S';

 Repeat

  Write('Ingrese n : ');readln(n);

  for i:=1 to n do

    Begin

      Writeln(i:3,i**2:10,i**3:10);

      i+=1

    End;

  Write('Desea continuar [S] Si, [N] No : ');

  Readln(rpta)

 Until (rpta<>'s') and (rpta<>'S')

END.

 

 ENVIAR AO PROFESSOR (PROFCARLOS2006@gmail.com)

 

 

(Voltar ao Índice)