Pascal
37 pág.

Pascal


DisciplinaLógica de Programação e Algoritmos2.890 materiais32.883 seguidores
Pré-visualização7 páginas
inválidas, digite notas de 0 a 10!');
 readln(n1,n2,n3);
Estrutura Condicional 22
 end;
 media:=(n1+n2+n3)/3; 
 write('Quantidade de faltas :');
 readln(f);
 if f<0 then 
 begin
 write('Faltas inválidas! digite um número maior ou igual a 
0!');
 readln(f);
 end; 
 write('O aluno ',nome,' está ');
 if (media>=5) and (f<18) then write('aprovado com média: ',media:2:2);
 if media<5 then write('reprovado por média: ',media:2:2);
 if f>17 then write('reprovado por falta: ',f:2);
 readkey;
 End.
Estrutura de Repetição
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
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}
 read(NOME,N1,N2,N3);
 if (N1>=0) and (N2>=0) and (N3>=0) and (N1<=10) and (N2<=10) and (N3<=10) 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('Não são aceites notas negativas ');
 end;
 {2º ALUNO}
 read(NOME,N1,N2,N3);
 if (N1>=0) and (N2>=0) and (N3>=0) and (N1<=10) and (N2<=10) and (N3<=10) then
 begin
 MEDIA :=(N1+N2+N3)/3;
Estrutura de Repetição 23
 writeln( 'O aluno de nome ',NOME,' tem a média 
',MEDIA', em suas notas ');
 end
 else
 begin
 writeln('Não são aceitas notas negativas ');
 end;
 {3º ALUNO}
 
 
 {50º ALUNO}
 read(NOME,N1,N2,N3);
 if (N1>=0) and (N2>=0) and (N3>=0) and (N1<=10) and (N2<=10) and (N3<=10) 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('Não são aceitas notas negativas ');
 end;
 end.
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 repetir
No exemplo acima, como queremos 50 alunos, contaríamos 50 repetições
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 algum valor )
 CONT:= CONT+1; ( Incrementar o contador em +1, repare que em cada 
repetição ele irá aumentar +1)
Testes lógicos
Usamos testes lógicos para saber quando parar a repetição, ou seja, estabelecemos uma condição para a repetição
continuar, caso contrário o programa ficaria preso na repetição eternamente Por exemplo, usando o contador, a cada
repetição testamos o número do contador até que ele alcance quantidade desejada, caso o contador atinja a
quantidade de vezes que queremos repetir, o loop (repetição) pára
Exemplo: programa para fazer a tabuada de multiplicação do número 7:
 program tabuada;
 uses CRT;
 var
 contad:integer;
Estrutura de Repetição 24
 begin
 clrscr;
 contad:=0; {iniciamos o contador declarando seu primeiro valor}
 while contad<10 do {Enquanto cont<10, condição é testada a cada repetição}
 begin
 writeln('7 x ',contad,' = ',7*contad);
 contad:=contad+1; {incrementamos o contador a cada repetição}
 end;
 readkey;
 end.
Comandos de repetição
Em Pascal os principais comandos de repetição são
While(faça enquanto)
Repeat(repita)
for (para repetir de um número até algum número}
While (enquanto)
Usando o while pedimos ao Pascal para repetir &quot;enquanto&quot; a expressão for verdadeira
Sintaxe
 while <condição> do
 begin
 <comandos>;
 <comandos>;
 end;
Veja o exemplo acima usando while:
 program media_notas;
 uses crt;
 var
 NOME: string;
 N1, N2, N3, MEDIA: real;
 CONT: integer;
 begin 
 clrscr;
 CONT:=0; 
 while CONT<=50 do
 begin
 CONT:=CONT+1;
 write ('Digite o nome: ');
 read (NOME);
 write ('nota 1: ');
 read (N1);
 write ('nota 2: ');
 read (N2);
Estrutura de Repetição 25
 write ('Nota 3: ');
 read (N3);
 MEDIA:=(N1+N2+N3)/3;
 if (MEDIA >= 6) then
 begin
 writeln('O aluno de nome ',NOME,' tem a média 
',MEDIA,' em suas notas ');
 end
 else
 writeln('REPROVADO');
 end;
 end.
Repeat until (repita até)
O comando repeat executa repetidamente uma sequência de comandos &quot;até&quot; (until) que uma dada condição seja
verdadeira
Sintaxe:
 repeat
 <comando1>;
 <comando2>;
 <comando3>;
 until <condição>;
Observação: este comando não precisa de begin (início) e end (fim) para demarcar o corpo da repetição
Exemplo: Faça um programa para pedir um número, em seguida escrever uma tabuada de multiplicação deste
número, caso for digitado o número 0, parar o programa
 program tabuada;
 uses CRT;
 var
 num:real;
 cont:integer;
 begin
 repeat 
 clrscr;
 write('Digite um número para ver sua tabuada de multiplicação ');
 read(num);
 cont:=0;
 while cont<10 do {temos aqui uma repetição dentro de outra}
 begin
 writeln(num:4:2,' x ',cont,' = ',(num*cont):6:2);
 cont:=cont+1; {a cada repetição o cont aumenta +1}
 end;
 readkey; {parada para ver o resultado até ser teclado algo}
 until num=0; {condição para parar a repetição principal}
 clrscr;
 write('Foi digitado o número 0! programa encerrado!');
Estrutura de Repetição 26
 readkey;
 end.
for to (para de até)
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;
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.
Estrutura de Repetição 27
Crítica
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