Anda di halaman 1dari 16

Fundamentos de pascal Parte 1

1. A Linguagem pascal

A linguagem de programao PASCAL foi criada para ser uma ferramenta


educacional, isto no incio da dcada de 70 pelo Prof. Niklaus Wirth da
Universidade de Zurique. Foi batizada pelo seu idealizador em homenagem ao
grande matemtico Blaise Pascal, inventor de uma das primeiras mquinas
lgicas conhecidas. Foi baseada em algumas linguagens estruturadas existentes
na poca, ALGOL e PLI. Apesar de seu propsito inicial, o PASCAL comeou a
ser utilizado por programadores de outras linguagens, tornando-se, para
surpresa do prprio Niklaus, um produto comercial. Contudo, somente ao final
de 1983 foi que a empresa
americana Borland International lanou o TURBO PASCAL.

O TURBO PASCAL um programa que contm, alm do compilador PASCAL,


um ambiente completo de programao, com editor de programa, depurador de
erros, sistema de ajuda, etc. Iremos abordar, a seguir, os itens fundamentais que
compem a linguagem PASCAL.

Estrutura bsica de um programa Pascal

Program NomedoPrograma;
Var
{declaraes de variveis}
Begin
{comandos do programa}
End.

1.1 PALAVRAS RESERVADAS

So palavras que tm um sentido predeterminado na linguagem de programao


e no devem ser usadas como identificadores.

As palavras PROGRAM, CONST, TYPE, VAR, PROCEDURE, FUNCTION,


BEGIN, END, etc. so palavras reservadas da linguagem Pascal; isto , so
termos que tem um significado pr-definido e, portanto, s devem ser usados da
forma especificada na linguagem (por exemplo, o programador no poderia criar
uma varivel com o nome var).

As palavras reservadas da linguagem Pascal so as seguintes:

PROGRAM EXTERNAL NIL UNTIL


INTEGER FILE NOT UNIT
REAL FOR OF USES

Grupo da disciplina 1
Fundamentos de pascal Parte 1

STRING FORWARD OR VAR


BEGIN FUNCTION PACKED WHILE
END GOTO PROCEDURE WITH
ARRAY IF RECORD XOR
ABSOLUTE IMPLEMENTATION REPEAT MOD
CASE IN SET
CONST INLINE SHL
DIV INTERFACE SHR
DO INTERRUPT THEN
DOWNTO LABEL TO
ELSE MOD TYPE

1.2 IDENTIFICADORES

So nomes escolhidos para representar constantes, variveis, tipos, funes,


procedimentos, unidades, programas e campos de um registro. Para definirmos
um identificador na linguagem Pascal devemos observar o seguinte:
pode ter qualquer comprimento, mas apenas os sessenta e trs primeiros
caracteres so significativos;
deve ter como primeiro caracter uma letra;
aps a primeira letra s pode conter letras, dgitos ou sublinha ( _ );
letras maisculas e minsculas so indiferentes;
no podem haver identificadores repetidos;
no pode ser uma palavra reservada.

1.3 DECLARAO DE CONSTANTES

Serve para associarmos nomes s constantes utilizadas no programa. Possui o


seguinte formato:

CONST <identificador>=<valor>;...;<identificador>=<valor>;

EXEMPLO:

CONST
BRANCO = ' ';
PI = 3.1416;
MAX = 10;
OK = TRUE;

1.4 VARIVEIS

Grupo da disciplina 2
Fundamentos de pascal Parte 1

Nos programas destinados a resolver um problema no computador, a cada


varivel corresponde uma posio de memria, cujo contedo pode variar ao
longo do tempo durante a execuo de um programa. Devemos encarar uma
varivel como o endereo de memria aonde esta guardar uma determinada
informao.

Embora a varivel possa assumir diferentes valores, ela s pode armazenar um


valor a cada instante. O programa poder alterar este valor, de acordo com as
suas instrues, quantas vezes forem necessrias, por isto elas so chamadas
variveis. Toda varivel identificada por um nome ou identificador. Assim,
por exemplo, num programa para calcular a rea de um tringulo rectngulo
pelo teorema de Pitgoras (a2 = b2 + c2 ), os identificadores A, B e C podem
representar as posies de memria que armazenam o valor da hipotenusa e dos
catetos.

Regras para Nomes de Variveis:

Os nomes das variveis devem representar o que ser guardado dentro


dela;
O primeiro caracter de um nome dever ser sempre alfabtico;
No podem ser colocados espaos em branco no nome de variveis, usar o
UNDERSCORE;
A declarao de uma varivel feita no programa informando o seu
nome, seguido pelo seu tipo, separados por ":"

Possui o seguinte formato:

VAR
<lista-de-identificadores> : <tipo>;
...
<lista-de-identificadores> : <tipo>;

Onde:
<lista-de-identificadores> uma lista de variveis de um mesmo tipo, separadas
por vrgula.
<tipo> o nome de um dos tipos predefinidos ou criado pelo programador.
EXEMPLO:

VAR
X,Y,Z : REAL;
I,J : INTEGER;
ACHOU : BOOLEAN;
LETRA : CHAR;

Grupo da disciplina 3
Fundamentos de pascal Parte 1

PALAVRA, FRASE : STRING;

2. Tipos de Dados em Pascal

A linguagem Pascal tem a capacidade de tratar muitos tipos de dados,


permitindo inclusive que o programador defina novos tipos a partir de tipos
bsicos existentes (na clusula TYPE), aumentando assim o nmero de aplicaes
que podem ser implementadas com a linguagem. Os Tipos de Dados podem ser
divididos em:
1. Tipos Simples
2. Tipos Definidos pelo usurio
2.1 Simples
2.2 Estruturados
3. Tipos Estruturados
4. Tipo Apontador

2.1 Tipos de Dados Simples

Todos os dados processados por um algoritmo devem ser previamente definidos,


isto porque o computador precisa saber previamente o tipo e o tamanho da
informao que ser processada. Estes dados sero armazenados dentro de
variveis, para que possamos alterar o seu valor durante a execuo do
algoritmo.

Tipos de dados simples so elementos individuais associados a um identificador


simples. Representam locais de memria individuais ocupados por valores
simples (nmeros, cadeia de caracter, etc.). A informao que processada no
computador armazendada pelo mesmo de diferentes maneiras, dependendo do
tipo de dado que ela representa. Basicamente, existem 3 tipos simples
(primitivos) de dados:

a) INTEIRO (INTEGER)
Toda e qualquer informao numrica que pertena ao conjunto dos nmeros
inteiros relativos. Exemplos: a idade de uma pessoa, o nmero de degraus de
uma escada, o nmero de filhos de uma pessoa, a altura de uma pessoa (em
centmetros), etc.

Declarao:

Var NUMERO : INTEGER

Grupo da disciplina 4
Fundamentos de pascal Parte 1

No exemplo acima foi declarada uma varivel do tipo INTEIRO que atende pelo
nome de "NUMERO"

A partir da verso 5.0 do Turbo Pascal passaram a existir tambm outros tipos de
nmeros inteiros: SHORTINT, BYTE, WORD e LONGINT.

Tipo Valor mnimo Valor mximo Bytes ocupados


SHORTINT -128 127 1
BYTE 0 255 1
INTEGER -32768 32767 2
WORD 0 65535 2
LONGINT -2147483648 2147483647 4

Exemplos: -45, 1, 138, 0, -2

b) Real (real)

Conjunto dos nmeros racionais.

Declarao:

Var SALRIO : REAL

No exemplo acima foi declarada uma varivel do tipo REAL com o nome de
"SALRIO".

A partir da verso 5.0 passaram a existir tambm outros tipos de nmeros reais:
SINGLE, DOUBLE, EXTENDED e COMP.

Tipo Valor mnimo Valor mximo Bytes Dgitos


ocupados Significativos
REAL 2.9x10-39 1.7x1038 6 11-12
SINGLE 1.5x10-45 3.4x1038 4 7-8
DOUBLE 5.0x10 -324 1.7x10 308 8 15-16
EXTENDED 3.4x10 -4932 1.1x10 4932 10 19-20
COMP 2 +1
63 2 -1
63 8 19-20

Exemplos: 4.5, -32.0, .5, 7.8E3, 21E+3, -315E-3

Os operadores DIV e MOD no podem ser usados com dados do tipo


real.

Grupo da disciplina 5
Fundamentos de pascal Parte 1

c) Caracter (char)

So cadeias de caracteres individuais, ou seja, caracteres individuais escritos


entre apstrofos Exemplos: ( ). 'A', 'B', 'a', '1', '@', ' '

representa o caracter branco.


Quando queremos representar o caracter apstrofo, devemos escrev-lo
duas vezes ().
Correspondem os caracteres da Tabela ASCII. Assim cada caracter
corresponde a um cdigo numrico, podendo ser comparados uns com os
outros, baseados em sua ordem relativa dentro do conjunto de caracteres.

Declarao:

Var SEXO : CHAR

No exemplo acima foi declarada uma varivel do tipo CHAR com o nome
"SEXO"

d) Booleano (boolean)

A este tipo so atribudos os valores TRUE ou FALSE, que representam um


conjunto ordenado onde o valor falso precede o verdadeiro.

Declarao

FLAG : BOOLEAN

Nas operaes lgicas compostas devem ser utilizados parnteses


(obrigatoriamente) para determinar a precedncia de realizao das
operaes.

Declarao
FLAG : BOOLEAN

2.2 ESTRUTURADOS

STRING Toda e qualquer informao composta por um conjunto de caracteres


alfanumricos (0...9), alfabticos (A...Z, a...z) e especiais (por exemplo, #,?,@,%).
Exemplos: o nome de uma pessoa, a placa de um veculo, o NUIT de um
contribuinte, a conta bancria, o nmero do Bilhete de Identidade, etc. Todo

Grupo da disciplina 6
Fundamentos de pascal Parte 1

valor do tipo string deve ser delimitado por um par de aspas. Exemplo: MLI 84-
62, 110252718K.

O String formado por um conjunto de elementos do tipo CHAR. O


tamanho mximo de 255 caracteres.
Especificao do tipo string: string[n], onde n a quantidade de caracteres
de cadeia.

Os outros tipos de dados estruturados so: ARRAY, RECORD, FILE, SET e


TEXT.

Declarao
Var nome: String[10];

3. COMANDOS BSICOS

3.1 ATRIBUIO

A operao de atribuio permite que se fornea um valor a uma certa varivel.


Se for atribudo uma expresso varivel, ser armazenado o resultado daquela
expresso. Se for atribudo uma outra varivel, ser armazenado o contedo
daquela varivel. Para a operao de atribuio, utilizaremos a seguinte

Sintaxe:
O comando de atribuio tem a forma:
<identificador> := <expresso>

Exemplos:
A := 2 NOME := 'Joo' A := B + C
B := A SENHA := 'Y9' NOTA := NOTA - 1
NOTA := 10 C := 1 / 3 X := 2.5

No comando de atribuio, a varivel e a expresso devem ser do mesmo tipo,


exceto nos seguintes casos:
a) a varivel sendo real, a expresso pode ser integer
b) a varivel sendo string, a expresso pode ser char

Exemplos:

Var
I : Integer;
R : Real;
S : String;

Grupo da disciplina 7
Fundamentos de pascal Parte 1

C : Char;

Begin
I := 5;
R := I;
C := 'A';
S := C
End.

3.2 ENTRADA

Um comando de entrada serve para que o programa solicite dados no momento


em que o mesmo est sendo executado. Esses dados fornecidos sero
armazenados em variveis na memria. Em geral a unidade de entrada o
teclado.

Considerando a unidade de entrada padro, o teclado, o comando seria:


READ (<identificador-1>,...<identificador-n>)
ou
READLN (<identificador-1>,...,<identificador-n>)

Com READ o cursor permanece na mesma linha aps a execuo do comando;


com o READLN o cursor muda para a prxima linha.

Observao: No Turbo Pascal, o comando READ s deve ser utilizado para a


leitura de arquivos. Portanto, para a leitura de variveis, devemos sempre
utilizar o comando READLN.

EXEMPLOS:

1) Se o programa deve solicitar as trs notas de um aluno, teramos:


readln (NOTA1,NOTA2,NOTA3); ...

No momento da execuo do comando acima, o programa mostra a tela do


usurio e o cursor aparece esperando a digitao dos trs valores que deve ser
separada por, pelo menos, um espao em branco.

Grupo da disciplina 8
Fundamentos de pascal Parte 1

3.5 ser armazenado na varivel NOTA1, o 3.5, o 7.0 em NOTA2 e o 8.2 em


NOTA3.

2) Se o programa deve solicitar o nome e o salrio de um funcionrio teramos:


readln (NOME);
readln (SALRIO);
...

3.3 SADA

Um comando de sada serve para que o programa mostre ao usurio os


resultados desejados. A unidade de sada padro o monitor de vdeo, podendo
ser tambm a impressora ou uma memria auxiliar como o disco.

Considerando a unidade de sada padro, o monitor de vdeo, o comando seria:


WRITE (<expresso-1>,...,<expresso-n>) ...
ou ...
WRITELN (<expresso-1>,...,<expresso-n>)

Com WRITE o cursor permanece na mesma linha aps a execuo do comando;


com WRITELN o cursor muda para a prxima linha.

EXEMPLO:
A:=1; B:=2;
writeln ('Soma de ',A,' e ',B,' = ',A+B);

No caso de variveis do tipo REAL os valores so mostrados na notao


exponencial, num campo de 16 posies, a menos que uma formatao seja
especificada.

EXEMPLO:
MEDIA := (8.0 + 2.0) / 2
writeln (MEDIA); {sada 5.0000000000E+00}
writeln (MEDIA:5:2); {sada 5.00}

Grupo da disciplina 9
Fundamentos de pascal Parte 1

Na formatao, se a varivel for real especificamos o total de posies ocupadas e


a quantidade de casas decimais, Se inteira, s o total de posies.

Se desejarmos que a sada seja atravs da impressora e no do monitor de vdeo,


devemos especificar no comeo da lista da sada o parmetro LST e a unidade
PRINTER com o USES.

EXEMPLO:
Uses PRINTER;
:::
writeln (LST, 'Media = ', MEDIA:5:2);

No instante da solicitao de dados, podemos usar junto com o READ ou


READLN um comando de sada com a finalidade de emitir mensagens que
orientem o usurio na digitao dos dados.

EXEMPLOS:
writeln('Digite o Nome:');
readln(NOME);

writeln('Digite as 3 Notas:');
readln(NOTA1,NOTA2,NOTA3);

writeln('Digite o salrio do funcionrio:');


readln(SALARIO);

4. Estruturas de deciso

As estruturas de deciso (condicionais) so utilizadas para tomar uma deciso


baseada no resultado da avaliao de uma condio de controle e seleciona uma
ou mais aces possveis (comandos) para serem executados pelo computador.

No Pascal, existem trs tipos de estrutura de deciso: O comando IF, que pode
ser utilizado de duas formas: simples ou composto; e o comando CASE, que
utilizado para uma deciso seletiva.

4.1 Seleo: IF ... THEN ... ELSE

IF <expresso booleana> THEN <bloco de instrues> ;

Grupo da disciplina 10
Fundamentos de pascal Parte 1

<bloco de instrues> pode ser somente uma instruo ou um conjunto de


instrues delimitadas pelas palavras reservadas BEGIN e END que definem um
bloco.

IF <expresso booleana> THEN


<bloco de instrues>
ELSE
<bloco de instrues> ;

No deve haver um terminador (;) antes do ELSE. Caso haja mais de uma
instruo antes do ELSE, estas devem ser delimitadas por BEGIN e END (sem
o ; apos o end).

Neste caso, se a <condio> resultar no valor TRUE, ser executado o


<comando1>; caso contrrio, ser executado o <comando2>, se o mesmo existir,
j que opcional.

A <condio> deve ser uma expresso lgica. O <comando1> e <comando2>


podem ser um comando simples ou um comando composto. Um comando
composto formado por dois ou mais comandos, separados por ponto-e-vrgula
e delimitados por BEGIN e END.

EXEMPLO 1:

program EXEMPLO_DE_IF_THEN;
{Ler um nmero inteiro e exib-lo se for positivo}
var
N : integer;
begin
readln(N);
if N > 0 then
writeln(N)
end.

No exemplo acima, o comando WRITE s ser executado se a condio N>0 for


verdadeira. Caso contrrio, nenhuma ao ser executada.

EXEMPLO 2:

program EXEMPLO_DE_IF_THEN_ELSE;
{L um nmero e determinar se maior que zero ou no}
var

Grupo da disciplina 11
Fundamentos de pascal Parte 1

N : integer;
begin
readln(N);
if N > 0 then
writeln (N,' maior que zero' )
else
writeln (N,' no maior que zero')
end.

EXEMPLO:
program EXPRESSAOARITMETICA_USANDO_DECISAO_IF_THEN_ELSE;
{Este programa deve receber 2 operandos x, y e 1 operador +, -, * ou /}
Uses CRT;
var
X,Y : integer;
OP : char;
begin
clrscr;
write('Digite os operandos: ');
readln(X,Y);
write('Digite o operador: ');
readln(OP);
If OP ='+' then writeln(X + Y)
Else
If op = '-' then writeln(X - Y)
Else
If (op ='*') or (op = 'x') or (op = 'X') then writeln(X * Y)
Else
If op= '/' then writeln(X/Y)
Else writeln('operao invlida');
End {case};
readln;
End.

Neste exemplo, a mensagem que ser exibida depender do resultado da


expresso lgica N>0. Se for verdadeira, ser executado o comando WRITE que
sucede a palavra THEN. Caso contrrio, ser executado o WRITE que sucede a
palavra ELSE. Em nenhuma hiptese sero executados os dois comandos.

4.2 COMANDO CASE-OF (DECISO MLTIPLA)

Grupo da disciplina 12
Fundamentos de pascal Parte 1

Utilizada quando se deseja executar um entre vrios comandos dependendo do


resultado de uma expresso. A estrutura de seleco (deciso mltipla) do Pascal
o CASE, e obedece a seguinte sintaxe:

CASE <expresso> OF
<lista-de-constantes-1> : <comando-1>;
<lista-de-constantes-2> : <comando-2>;
...
[ELSE <comando-n>;]
END;

A <expresso> deve resultar um tipo escalar (outros tipos que no sejam o REAL
e o STRING). A <lista-de-constantes-x> devem conter uma ou mais constantes
(separadas por vrgula), e devem ser do mesmo tipo da <expresso>. O
<comando-x> pode ser um comando simples ou composto. Se o comando for
composto, as instrues devem ser separadas por ponto e vrgula e devem estar
entre o BEGIN e END.

O resultado de <expresso> comparado com cada constante da <lista-de-


constante> para verificar igualdade. Caso a igualdade seja verificada, o
<comando> correspondente executado e a estrutura finalizada. Caso nenhuma
igualdade seja verificada, o <comando> correspondente ao ELSE ser executado.

EXEMPLO:
program EXPRESSAOARITMETICA_USANDO_DECISAO_MLTIPLA;
{Este programa deve receber 2 operandos x, y e 1 operador +, -, * ou /}
Uses CRT;
var
X,Y : integer;
OP : char;
begin
clrscr;
write('Digite os operandos: ');
readln(X,Y);
write('Digite o operador: ');
readln(OP);
case OP of
'+' : writeln(X + Y);
'-' : writeln(X - Y);
'*','x','X' : writeln(X * Y);
'/' : writeln(X div Y);
else writeln('operao invlida');
end {case};

Grupo da disciplina 13
Fundamentos de pascal Parte 1

readln;
end.

Grupo da disciplina 14
Fundamentos de pascal Parte 1

EXERCCIOS PROPOSTOS
1. Defina varivel.
2. O que so identificadores?
3. Quais as regras bsicas para a formao de identificadores?
4. Assinalar os identificadores invlidos, justificando.
a) A1BC
b) XA,1d
c) NomeDoAluno
d) 198aberto
e) TO.begin

5. Exemplifique o uso dos comandos de Atribuio, Entrada e Sada.


6. Qual a diferena entre os comandos WRITE e WRITELN ?
7. Como podemos direcionar a sada de um programa para a impressora? D
exemplos.
8. Como podemos orientar o usurio na digitao dos dados? Exemplifique.
9. Escreva os comandos necessrios para ler:
a) as 3 notas de um aluno
b) o nome, o peso e altura de uma pessoa
10. Escreva os comandos necessrios para exibir:
a) o contedo da varivel X
b) o resultado da expresso 2+3
11. Determine os valore finais de A, B e C aps a execuo do trecho do
programa abaixo:

A := 0 A B C
B := 1
C := A + B
A := A + 1
B := A + B + C

12. A ordem das atribuies importante? A:=B e C:=A tem o mesmo efeito de
C:=A e A:=B ?
13. Em quais dos seguintes pares importante a ordem dos comandos?

a) X := Y b) X := Y c) X := Z d) Z := Y
Y := X Z := X X := Y X := Y

14. Escreva um programa que leia um nmero inteiro positivo e exiba o dobro do
mesmo.

Grupo da disciplina 15
Fundamentos de pascal Parte 1

15. Escreva um programa para calcular a rea de um tringulo, sendo dados a


sua base e a sua altura.

16. Escreva um programa para calcular e exibir o comprimento de uma


circunferncia, sendo dado o valor de seu raio.

17. Escreva um programa para ler uma temperatura dada na escala Fahrenheit e
exibir o equivalente em Celsius.

18. Escreva um programa para calcular e exibir a mdia ponderada de duas notas
dadas.
( nota1 = peso 6 e nota2 = peso 4 )

19. Escreva um programa que leia duas variveis inteiras e troque o contedo
entre elas.

20. Escreva um programa para calcular e exibir o valor de xy, sendo dados a base
(x) e o expoente (y).

21. Escreva um programa para ler o nome e o sobrenome de uma pessoa e


escrev-los na seguinte forma: sobrenome seguido por uma vrgula e pelo
nome.

Grupo da disciplina 16

Anda mungkin juga menyukai