Você está na página 1de 32

Escola Bsica e Secundria de Vila Franca do Campo

Linguagem PASCAL Definio e Tipos de Dados


Material elaborado pela Prof Nina Custdio
Linguagem PASCAL 1

Origem
Linguagem de programao largamente utilizada no ensino-aprendizagem de programao de computadores; Criada por Niklaus Wirth em 1972, na Universidade Tcnica de Zurique, Suia; O seu nome homenageia o matemtico Blaise Pascal (1623-1662); Existem vrios compiladores para esta linguagem, o mais comum no ambiente acadmico o Turbo Pascal, da Borland.
Linguagem PASCAL 2

Algoritmo x Programa
Algoritmo: Conjunto de etapas finitas,
ordenadamente definidas com o propsito de obter solues para um determinado problema.

Programa: Formalizao de um algoritmo em


uma linguagem inteligvel pelo computador.

Linguagem PASCAL

Conceitos Bsicos
Qual o tipo de linguagem que o computador entende? Linguagem de mquina. Como podemos fazer a traduo de uma linguagem de programao para linguagem de mquina? Usando um compilador ou interpretador. Como um programa executado no computador?
Primeiro o programa carregado na memria e depois cada instruo executada de acordo com a lgica do programa.

Linguagem PASCAL

Etapas
1) Definio do problema 2) Desenvolvimento de um algoritmo 3) Transcrio para PASCAL 4) Digitao do programa 5) Compilao 6) Execuo

Linguagem PASCAL

Passos para construo de algoritmos


Ler atentamente o enunciado do problema a ser resolvido; Identificar quais so as entradas (ou seja, o que fornecido) para a soluo do problema; Identificar o que deve ser feito para, a partir das entradas, produzir as sadas. Um algoritmo pode ser visto como uma funo que leva as entradas para sadas. No processo, tentar achar uma soluo prtica para resolver o problema e depois escrev-la na linguagem algortmica.
Linguagem PASCAL 6

Termos em Pascal
Equivalncia de termos entre a Linguagem Algortmica e Pascal:
LA
declare Var

PASCAL
Begin
End Char Integer Real Boolean Read Write
Linguagem PASCAL 7

Incio
Fim Caracter Inteiro Real Lgico Leia Escreva

Termos em Pascal

Equivalncia de termos entre a Linguagem Algortmica e Pascal:


LA
Se Ento Seno Enquanto Faa Repita Para At If Then Else While Do Repeat For Until / To

PASCAL

:=
Linguagem PASCAL 8

Constantes (CONST)
Valor fixo. No muda durante a execuo de um programa Podem ser numricas, lgicas ou alfanumricas (literais) Ex:
numricas: 25, +34, -315, -0.53, 7.8E-3, .13 lgicas: true, false alfanumricas: A-Z, a-z, 0-9, !, ?, /, *, &, $, %, ...

Linguagem PASCAL

Variveis (VAR)
So representadas por identificadores Formado por:
uma letra, ou uma letra seguida de letras ou dgitos:
Ex: A, Nota, matricula, x, a, a1, a2, bd, A32B Maisculas so iguais a minsculas: AB = aB

Linguagem PASCAL

10

Palavras Reservadas
Identificadores utilizados 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...

Linguagem PASCAL

11

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

Linguagem PASCAL

12

Bloco do programa
O <bloco> formado por:

declaraes begin sequncia de comandos end


E as declaraes de variveis:

var

lista-de-variveis: tipo;

onde tipo=integer, real, boolean, string, char.

Linguagem PASCAL

13

Definio de novos tipos (type)


Em pascal, o programador tambm 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;

Linguagem PASCAL

14

Comentrios
Utilizado apenas para aumentar a clareza do programa, no analisado pelo computador:
{ comentrio } var ou (* comentrio *)

matr: string; { nr. de matricula } nota: real; { nota de prova } cod: integer; (* cdigo do curso *)

Linguagem PASCAL

15

Expresses
Aritmticas Lgicas Literais

Linguagem PASCAL

16

Expresses Aritmticas
Ordem de prioridade:

1a: *, /, div, mod 2a: +, div - quociente da diviso inteira mod - resto inteiro da diviso 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

Linguagem PASCAL

17

Expresses Lgicas
Relaes

A<>B, nome=Joo, a<0, x>1


Operadores lgicos

p and q, p or q, not p Ex: (idade>25) and (nome=Maria)


Prioridade dos operadores lgicos e aritmticos 1a: not 2a: *, /, div, mod, and 3a: +, -, or 4a: =, <>, <, <=, >=, >, in

Linguagem PASCAL

18

Expresses Literais
Retorna caracter: chr(cod)
{ cod = cdigo ASCII (American Standard Code for Information Interchange) }

Retorna cdigo ASCII :

ord(ch) {ch = caracter }

Sucessor do caracter: succ(ch)


Antecessor do caracter: pred(ch)
Ex: chr(65) retorna A; ord( 'C' ) retorna 67; succ( 'd' ) retorna e; pred( 'd' ) retorna c;
Linguagem PASCAL 19

Comando de Atribuio
Identificador := expresso 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;

Linguagem PASCAL

20

Entrada e Sada (E/S)


As aes que executam estas tarefas so:
Obter dados:
ler(dado1, , dadon);

Apresentar dados:
escrever(dado1, , dadon);

Exemplos:
ler(NOME, IDADE); ler(PRODUTO, QUANTIDADE, VALOR); escrever(SOMA, MDIA); escrever(Nome: , NOME, Idade: , IDADE);

Linguagem PASCAL

21

E/S
Pseudocdigo ler(A, B, C) escrever(A, B, C)

Fluxograma

leia A, B, C

escreva A, B, C

Pascal

read(A, B, C) ou readln(A, B, C)
Linguagem PASCAL

write(A, B, C) ou writeln(A, B, C)
22

Comandos de Entrada e Sada


Leitura
program leitura; 8,0 4 9,0 var n: integer; 5,0 6 4,0 nota: real; begin 3,0 8 9,5 readln (n, nota); readln (n, nota); n, nota ? read (n, nota); read (n, nota); { a diferena que o readln gera uma mudana de linha aps a leitura dos valores } end.

Entrada: 1 3 5 7

6,5 2 7,0

Linguagem PASCAL

23

Comandos de Entrada e Sada


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.
Linguagem PASCAL

Entrada: Joao 25

Sada ?

24

Comandos de Entrada e Sada


Formatao 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.

Sada=3.20_x+_5.81_y=__9.010
Obs.: O caracter _ neste caso simboliza o espao vazio.
Linguagem PASCAL 25

Passo a passo Programas para Pascal


Exemplo do programa para calcular a rea do tringulo retngulo:
Linguagem Algoritmica
incio declare base, altura, rea: real; leia (base, altura); rea (altura*base)/2; escreva (rea); fim

Pascal
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 tringulo igual a: ,area); End.

Observe que as instrues read e write servem para ler dados fornecidos pelo utilizador e para escrever informaes no ecr, respetivamente. Estas duas instrues podem ser seguidas por ln e, neste caso uma linha ser deixada em branco no ecr aps a execuo da instruo.
Linguagem PASCAL 26

Passo a passo Programas para Pascal


Observe que neste primeiro exemplo, no tivemos a oportunidade de verificar o resultado final emitido pelo algoritmo; PORQUE QUE ISTO ACONTECE? Podemos resolver tal problema acrescentando a instruo readkey; imediatamente aps informarmos o resultado final encontrado pelo algoritmo; Obs: esta instruo s ser reconhecida se logo aps a linha de program for colocada a seguinte instruo: uses crt; Feito isto, percebe que o resultado final aparece numa notao cientfica nada agradvel, isto pode ser alterado atravs da seguinte mudana: write (A rea do tringulo igual a: ,area:2:2);
Linguagem PASCAL 27

Passo a passo Programas para Pascal


Observe ainda que a cada nova execuo do programa aparecem lixos no ecr, referentes s execues anteriores. Isto pode ser eliminado com uma instruo apropriada para limpar o ecr: clrscr; (que vem do ingls 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 tringulo igual a: ,area:2:2); readkey; Linguagem PASCAL End.

28

Exemplo

1 - Guardar 2 - Compilar (F9)

Arquivo Editar Compilar Ferramentas Janela Ajuda


program AreaCirculo; const { Declarao de constantes } PI = 3.1415926; var { Declarao de Variveis } raio : real; area: real; begin { Comandos do Programa } write (Fornea o raio: ); readln (raio); area := PI*(raio*raio); writeln (rea = , area); end.

Watch

Linguagem PASCAL

29

Exerccio
Programa 1 - Leia 4 nmeros e imprima a mdia. Programa 2 - Leia o valor da temperatura em graus Celsius e transforme para Farenheit.
Use a frmula: C = 5/9*(F-32)

Linguagem PASCAL

30

Sumrio da metodologia de soluo


Para solucionar um problema em computao siga os seguintes passos: 1. Assegurar-se do entendimento completo da especificao do problema 2. Formular um esboo geral do algoritmo para a soluo do problema, prestando pouca ateno a detalhes especficos. Esta ser a primeira tentativa de expressar a estratgia de sua soluo. Assegurar a si prprio que a estratgia est correta.

Linguagem PASCAL

31

Sumrio da metodologia de soluo


3. Identificar e fazer uma listagem de qualquer varivel que ache que vai ser necessria. Esta lista somente uma primeira aproximao do conjunto final de variveis; ela pode ser aumentada ou diminuda se necessrio. 4. Retornar aos passos iniciais do algoritmo e prosseguir com o detalhe. Cada vez que um passo desdobrado em vrios outros mais detalhados, verificar se estes novos passos executam a funo expressa no passo original.

5. Teste o algoritmo com exemplos.

Linguagem PASCAL

32

Você também pode gostar