UFRPE – Deptº de Estatística e Informática
Disciplina: Introdução à Computação
Prof.: Paulemir G. Campos
Linguagem PASCAL
Estruturas de Controle
Material elaborado pela Profª Alzennyr Cléa da UFRPE.
Linguagem PASCAL
1
Tipos de Variáveis


Integer (Inteiro):
– de -32768 a 32767.
Real (Real):
– positivos de 3.4x10-38 a 3.4x1038.
– Suportam notação científica:
• 452.13 = 4.5213e2

Char (caractere):
– usam ‘ ‘ para serem designados: 'a' 'B' '+'
– valores entre 0 e 255
• é diferente de um número inteiro

Boolean (lógico):
– podem ser TRUE ou FALSE
Linguagem PASCAL
2
Funções sobre Números











odd: par ou impar
abs: valor absoluto
arctan: arco tangente em radianos
cos: cosseno de valor em radianos
exp: exponencial
ln: logaritmo natural
round: arredondamento
sin: seno de valor em radianos
sqr: quadrado
sqrt: raiz quadrada
trunc: truncagem
Linguagem PASCAL
3
Importante: Identação!

Qual dos códigos abaixo é mais legível?
(1)
(2)
program visual; const a=5; b=385.3; var
alpha,beta:real; begin alpha := a + b;
beta:= b / a end.
program visual;
const
a = 5;
b = 385.3;
var
alpha,
beta : real;
begin
alpha := a + b;
beta := b / a
end.
Linguagem PASCAL
4
Tabela Verdade de Operadores
Booleanos
A B
A and B
A or B
Operadores:
not: negação
and: conjunção
or : disjunção
A
V
F
V
V
F
F
V
F
V
F
V
F
F
F
V
V
V
F
not A
F
V
Linguagem PASCAL
5
Estruturas de Controle



Seqüencial
Condicional ou Seletiva (se...então)
Repetição (enquanto,repita,para)
Linguagem PASCAL
6
Estruturas de Controle: Seqüencial
Fluxograma:
Pseudocódigo:
Início
início
declare A, B,C: real
ler
A,B
leia (A,B)
C  (A+B)*B
escreva (C)
fim.
C =(A+B)*B
escrever
C
Linguagem PASCAL
Fim
7
Sequencial - Linguagem Pascal
program Calculo;
var A,B,C: real;
begin
read (A, B);
C:=(A+B)*B;
write (C);
end.
Linguagem PASCAL
8
Estruturas de Controle: Condicional
Pseudocódigo:
Fluxograma:
início
Início
A=1
declare A, B: inteiro
A1
B=2
B2
se A>B então
V
A5
A>B
F
senão
A=5
A10
A=10
fim-se
fim
Linguagem PASCAL
Fim
9
Condicional - Linguagem Pascal
program condicao;
var A, B, C, menor: real;
begin
readln(A,B,C);
if (A<B) and (A<C) then
menor:=A
sem ‘;’
else
if B<C then
menor:=B
else
menor:=C;
write (menor);
end.
simples
if condicao then
bloco;
composta
if condicao then
bloco1
else
bloco2;
Obs: Quando o bloco contem apenas um comando não é necessário
usar os delimitadores begin eLinguagem
end PASCAL
10
Condicional - Linguagem Pascal
program aprovacao;
var nome: string;
nota1, nota2, nota3: real;
media: real;
aprovado: boolean;
begin
write (‘Digite seu nome: ’);
readln (nome);
write (‘Digite suas 3 notas: ’);
readln (nota1, nota2, nota3);
media := (nota1+nota2+nota3)/3;
aprovado:=(media>=7);
if (aprovado=true) then
begin
writeln (‘Parabens ’,
nome, ‘ voce esta aprovado !’);
writeln (‘Sua média foi: ’,
media:5:2);
end
else
begin
writeln (nome, ‘, você
esta reprovado !’);
writeln (‘Sua media foi: ’,
media:5:2);
end;
end.
Linguagem PASCAL
11
“Se” Mais Completo: CASE
CASE <expressão> OF
<opção1> : <comando1>;
<opção2> : <comando2>;
... ...
<opçãoN> : <comandoN>;
[ ELSE <comando>; ]
END;
Linguagem PASCAL
12
Condicional: CASE
program Maiusculo;
var letra: char;
begin
readln (letra);
case letra of
‘a’..’z’ : letra := chr ( ord (letra) - 32 );
‘ç’ : letra := ‘Ç’;
‘ñ’ : begin
writeln(‘Não usado na língua portuguesa!’);
letra:= ‘?’;
end;
else begin
writeln(‘Não está na lista dos aceitos...’);
letra:= ‘?’;
end;
end;
write(letra);
end.
Linguagem PASCAL
13
Estruturas de Controle: Repetição
Fluxograma:
Pseudocódigo:
Início
início
declare A, B, I, C: inteiro
A=1
A1
B=1
B1
I=1
I1
enquanto (I<5) faça
CA+B
V
C=A+B
AB
A=B
BC
B=C
I I+1
I=I+1
fim-enquanto
Linguagem PASCAL
fim
I<5
F
Fim
14
Repetição - Linguagem Pascal
while (enquanto)
while condição do
begin
comandos;
end;
program pergunta;
var resp: char;
begin
resp := ‘X’;
while ( resp <> ‘N’ ) and ( resp <>’n’ ) do
begin
writeln (‘Ola!’);
write (‘Novamente (S/N) ? ‘);
readln (resp);
end;
end.
Linguagem PASCAL
15
Repetição - Linguagem Pascal
while (enquanto)
...
readln (Media); { parar com -1 (flag = sinal) }
while (Media <> -1) do
begin
if (Media >= 7.0) then
writeln (‘Aprovado’)
else
writeln (‘Reprovado’);
readln (Media);
end;
...
Linguagem PASCAL
16
Repetição: while (enquanto) - ERROS!
...
WHILE (Idade < 20) DO
Salario := Salario – Desconto;
...
X := 1.0;
WHILE (X < 10.0) DO
X := X – 0.1;
...
Resp := ‘?’;
WHILE (Resp <> ‘S’) DO
begin
Writeln (‘Novamente (S/N) ? ‘);
Readln (Resp);
end;
...
Linguagem PASCAL
{ Laço Infinito! }
{Laço Infinito! }
{ Laço Infinito! }
17
Repetição: repeat ... until
repeat
writeln (‘Olá!’);
write (‘Novamente (S/N) ? ‘);
readln (resp);
until ( resp = ‘N’ ) or ( resp =’n’ ) ;
...
repeat { -1 pára o programa }
readln (Media);
if (Media <> -1) then
if ( Media >= 7.0 ) then
repeat
comandos;
until condicao;
writeln (‘Aprovado’)
else
writeln (‘Reprovado’);
until (Media = -1) ;
...
Linguagem PASCAL
18
Repetição: for (para)
program media_aluno;
var
aluno: integer;
for var := inicio to fim do
begin
comandos;
end;
nota1, nota2: real;
begin
for aluno := 1 to 5 do
begin
readln (nota1, nota2);
writeln (‘Media = ‘, (nota1+nota2)/2);
end;
end.
Linguagem PASCAL
19
Repetição: for (para)
for var := fim downto inicio do
begin
comandos;
end;
program letras;
var c: char;
begin
for c:=´Z´ downto ´A´ do
write (c);
end.
Linguagem PASCAL
20
Download

Linguagem PASCAL - Centro de Informática da UFPE