UFRPE – Deptº de Estatística e Informática
Disciplina: Introdução à Computação
Prof.: Paulemir G. Campos
Linguagem PASCAL
Definição e Tipos de Dados
Material elaborado pela Profª Alzennyr Cléa da UFRPE/DFM.
Linguagem PASCAL
1
Origem




Linguagem de programação largamente
utilizada no ensino-aprendizagem de
programação de computadores;
Criada por Niklaus Wirth em 1972, na
Universidade Técnica de Zurique, Suiça;
Seu nome homenageia o matemático Blaise
Pascal (1623-1662);
Existem vários compiladores para esta
linguagem, o mais comum no ambiente
acadêmico é o Turbo Pascal, da Borland.
2
Linguagem PASCAL
Algoritmo x Programa

Algoritmo: “Conjunto de etapas finitas,
ordenadamente definidas com o propósito de
obter soluções para um determinado problema.”

Programa: “Formalização de um algoritmo
em uma linguagem inteligível pelo computador.”
3
Linguagem PASCAL
Conceitos Básicos


Qual o tipo de linguagem que o computador
entende? Linguagem de máquina.
Como podemos fazer a tradução de uma
linguagem de programação para linguagem
de máquina? Usando um compilador ou
interpretador.

Como um programa é executado no
computador?
– Primeiro ele é carregado na memória e depois
cada instrução é executada de acordo com a
lógica do programa.
4
Linguagem PASCAL
Etapas
1) Definição do problema
2) Desenvolvimento de um algoritmo
3) Transcrição para PASCAL
4) Digitação do programa
5) Compilação
6) Execução
5
Linguagem PASCAL
Passos para construção de
algoritmos




Ler atentamente o enunciado do problema a ser
resolvido;
Identificar quais são as entradas (ou seja, o que é
fornecido) para a solução do problema;
Identificar o que deve ser feito para, a partir das
entradas, produzir as saídas.
Um algoritmo pode ser visto como uma função
que leva as entradas para saídas.
No processo, tentar achar uma solução prática para
resolver o problema e depois escreve-la na
linguagem algorítmica.
6
Linguagem PASCAL
Turbo Pascal

Compilador que vamos usar:
Inprise/Borland Turbo Pascal 7.0
http://www.borland.com


Criado em 1983 (v1.0)
Atualmente: Delphi 2005 - uma extensão
da linguagem Pascal (inclui conceitos de
orientação à objetos e construção de interfaces
gráficas através de uma programação visual e
interativa).
7
Linguagem PASCAL
Termos em Pascal

Equivalência de termos entre a Linguagem
Algorítmica e Pascal:
LA
PASCAL
declare
Var
Início
Begin
Fim
End
Caracter
Char
Inteiro
Integer
Real
Real
Lógico
Boolean
Leia
Read
Escreva
Write
8
Linguagem PASCAL
Termos em Pascal

Equivalência de termos entre a Linguagem
Algorítmica e Pascal:
LA
PASCAL
Se
If
Então
Then
Senão
Else
Enquanto
While
Faça
Do
Repita
Repeat
Para
For
Até
Until / To

:=
9
Linguagem PASCAL
Constantes (CONST)



Valor fixo. Não muda durante a
execução de um programa
Podem ser numéricas, lógicas ou
alfanuméricas (literal)
Ex:
– numéricas: 25, +34, -315, -0.53, 7.8E-3, .13
– lógicas: true, false
– alfanuméricas: A-Z, a-z, 0-9, !, ?, /, *, &, $, %, ...
10
Linguagem PASCAL
Variáveis (VAR)


São representadas por identificadores
Formado por:
– uma letra, ou
– uma letra seguida de letras ou dígitos:
• Ex: A, Nota, matricula, x, a, a1, a2, bd, A32B
• Maiúsculas são iguais a minúsculas: AB = aB
11
Linguagem PASCAL
Palavras Reservadas

Identificadores usados na linguagem
and, array, begin, case, const, div, do, downto, else,
end, file, for, function, goto, if, in, label, mod, nil, not,
of, or, packed, procedure, program, record, repeat,
set, then, to, type, until, var, while, with.

Identificadores de significado definido
input, output, integer, real, read, write, etc...
12
Linguagem PASCAL
Sintaxe de um Programa

Todo programa em PASCAL deve ter a
seguinte forma:
program <nome>;
<bloco>.
Onde:
<nome> - nome do programa
<bloco> - corpo do programa
13
Linguagem PASCAL
Bloco do programa

O <bloco> é formado por:
declarações
begin
seqüência de comandos
end

E as declarações de variáveis:
var
lista-de-variáveis: tipo;
onde tipo=integer, real, boolean, string, char.
14
Linguagem PASCAL
Definição de novos tipos (type)



Em pascal, o programador também tem a liberdade
de definir um novo tipo;
Uma vez definido o novo tipo, este passa a ser
referenciado pelo seu identificador;
Exemplo:
type
Indices = 0..63;
Letras = ´A´..´Z´;
Faixa = -3..3;
var
codigo: integer;
teste: boolean;
letra: Letras;
15
Linguagem PASCAL
Comentários

Usado apenas para aumentar a clareza do programa,
não é analisado pelo computador:
{ comentário }
var
ou (* comentário *)
matr: string;
nota: real;
cod: integer;
{ nr. de matricula }
{ nota de prova }
(* código do curso *)
16
Linguagem PASCAL
Expressões



Aritméticas
Lógicas
Literais
17
Linguagem PASCAL
Expressões Aritméticas



Ordem de prioridade:
– 1a: *, /, div, mod
– 2a: +, div - quociente da divisão inteira
mod - resto inteiro da divisão inteira
exemplo1: x = 11 div 4 = 2, y = 11 mod 4 = 3
exemplo2: u = sqrt(p*(p-a)*(p-b)*(p-c))
exemplo3: v = exp(b*ln(a)) = eb*ln a
18
Linguagem PASCAL
Expressões Lógicas

Relações
– A<>B, nome=´João´, a<0, x>1

Operadores lógicos

– p and q, p or q, not p
Ex: (idade>25) and (nome=´Maria´)

Prioridade dos operadores lógicos e aritméticos
– 1a: not
– 2a: *, /, div, mod, and
– 3a: +, -, or
– 4a: =, <>, <, <=, >=, >, in
19
Linguagem PASCAL
Expressões Literais

Retorna caracter:
chr(cod)
{ cod = código ASCII (American Standard Code for
Information Interchange) }
ord(ch) {ch = caracter }

Retorna código ASCII :

Sucessor do caracter:

Antecessor do caracter:

Ex: chr(65) retorna ‘A’;
succ(ch)
pred(ch)
ord( 'C' ) retorna 67;
succ( 'd' ) retorna ‘e’;
pred( 'd' ) retorna ‘c’;
20
Linguagem PASCAL
Comando de Atribuição

Identificador := expressão
var A, B, X, Y: integer;
K, Media: real;
teste: boolean;
cor: string;
K:=1;
A:=K;
Media := (A+B)/2;
teste := (X=0) and (Y<>2);
cor := ‘verde’;
21
Linguagem PASCAL
Entrada e Saída (E/S)

As ações que executam estas tarefas são:
– Obter dados:
• leia(dado1, …, dadon);
– Apresentar dados:
• escreva(dado1, …, dadon);

Exemplos:
–
–
–
–
leia(NOME, IDADE);
leia(PRODUTO, QUANTIDADE, VALOR);
escreva(SOMA, MÉDIA);
escreva(“Nome: ”, NOME, “Idade: ”, IDADE);
22
Linguagem PASCAL
E/S
Pseudocódigo
leia(A, B, C)
escreva(A, B, C)
Fluxograma
leia
A, B, C
escreva
A, B, C
read(A, B, C)
ou
readln(A, B, C)
write(A, B, C)
ou
writeln(A, B, C)
Pascal
23
Linguagem PASCAL
Comandos de Entrada e Saída

Leitura
Entrada:
1
3
5
7
program leitura;
6,5 2 7,0
var n: integer;
8,0 4 9,0
nota: real;
5,0 6 4,0
begin
3,0 8 9,5
readln (n, nota);
n, nota ?
readln (n, nota);
read (n, nota);
read (n, nota);
{ a diferença é que o readln gera uma mudança
de linha após a leitura dos valores }
end.
24
Linguagem PASCAL
Comandos de Entrada e Saída

Escrita
var n, p: string;
x, a: integer;
begin
x := 0;
read (n,a);
x := x + a; p := n;
write (p,x);
a := x + a;
writeln (a);
x := x + a;
write (n, x, a);
end.
Entrada:
Joao 25
Saída ?
25
Linguagem PASCAL
Comandos de Entrada e Saída

Formatação na escrita
program formata;
var a,b: real;
k,l: char;
begin
a:=3.2; b:=5.81; k:=‘x’; l:=‘y’;
write (a:4:2, k:2, ‘+’, b:5:2, l:2, ‘=‘ , a+b:7:3);
end.
Saída=3.20_x+_5.81_y=__9.010
Obs.: O caracter ‘_’ neste caso simboliza o espaço vazio.
Linguagem PASCAL
26
Mapeando Programas para Pascal

Exemplo do programa para calcular a
área do triângulo retângulo:
Linguagem Algoritmica
Pascal
início
declare
base, altura, área: real;
leia (base, altura);
área  (altura*base)/2;
escreva (área);
fim
Program Area_Triangulo;
Var
area, altura, base: real;
begin
write (‘Digite a altura do triangulo: ‘);
Readln(altura);
write (‘Digite a base do triangulo: ‘);
Readln(base);
area := altura*base/2;
write (‘A área do triângulo é igual a: ‘,area);
End.
Observe que as instruções read e write servem para ler dados fornecidos
pelo usuário e para escrever informações na tela, respectivamente. Estas
duas instruções podem ser seguidas por ln e, neste caso uma linha será
pulada na tela após a execução da instrução.
27
Linguagem PASCAL
Mapeando Programas para Pascal



Observe que neste primeiro exemplo, não tivemos a
oportunidade de verificar o resultado final emitido
pelo algoritmo; POR QUE ISTO ACONTECE?
Podemos resolver tal problema acrescentando a
instrução readkey; imediatamente após informarmos
o resultado final encontrado pelo algoritmo;
– Obs: esta instrução só será reconhecida se logo
após a linha de program for colocada a seguinte
instrução: uses crt;
Feito isto, pode-se percebe que o resultado final
aparece numa notação científica nada agradável, isto
pode ser alterado através da seguinte mudança:
write (‘A área do triângulo é igual a: ’ ,area:2:2);
28
Linguagem PASCAL
Mapeando Programas para Pascal


Observe ainda que a cada nova execução do programa
aparecem “lixos” na tela, referentes às execuções
anteriores. Isto pode ser eliminado com uma instrução
apropriada para limpar a tela:
clrscr;
(que vem do inglês clear screen)
Assim, o algoritmo ficaria da seguinte forma:
Pascal
Program Area_Triangulo;
Uses crt;
Var
area, altura, base: real;
Begin
clrscr;
write (‘Digite a altura do triangulo: ‘);
Readln(altura);
write (‘Digite a base do triangulo: ‘);
Readln(base);
area := altura*base/2;
write (‘A área do triângulo é igual a: ‘,area:2:2);
readkey;
End.
Linguagem PASCAL
29
1 - Save as
Exemplo
2 - Compile (ou ALT-F9)
3 - Run (ou CTRL-F9)
File Edit Run Compile Options Debug Break/Watch
program AreaCirculo;
const
{ Declaração de constantes }
PI = 3.1415926;
var
{ Declaração de Variáveis }
raio : real;
area: real;
begin
{ Comandos do Programa }
write (‘Forneça o raio: ‘);
readln (raio);
area := PI*(raio*raio);
writeln (‘Área = ‘, area);
end.
Watch
F1-Help F5-Zoom F6-Switch F7-Trace F8-Step F9-Make F10-Menu
30
Linguagem PASCAL
Exercício de Sala


Programa 1 - Leia 4 números e
imprima a média.
Programa 2 - Leia o valor da
temperatura em graus Celsius e
transforme para Farenheit.
Use a fórmula: C = 5/9*(F-32)
31
Linguagem PASCAL
Sumário da metodologia de solução
Para solucionar um problema em computação siga os
seguintes passos:
1. Assegurar-se do entendimento completo da
especificação do problema
2. Formular um esboço geral do algoritmo para a
solução do problema, prestando pouca atenção a
detalhes específicos. Esta será a primeira tentativa
de expressar a estratégia de sua solução. Assegurar
a si próprio que a estratégia está correta.
32
Linguagem PASCAL
Sumário da metodologia de solução
3. Identificar e listar qualquer variável que você sinta
ser necessária. Esta lista é somente uma primeira
aproximação do conjunto final de variáveis; ela
pode ser aumentada ou diminuída se necessário.
4. Retornar aos passos iniciais do algoritmo e
prosseguir com o detalhamento. Cada vez que um
passo é desdobrado em vários outros mais
detalhados, verificar se estes novos passos
executam a função expressa no passo original.
5. Teste o algoritmo com exemplos.
33
Linguagem PASCAL
Download

Pascal_DefinicaoTipos - Centro de Informática da UFPE