Você está na página 1de 10

APOSTILA DE PASCAL

1.

MAPEAMENTO DE ALGORITMOS PARA PASCAL

Algoritmo Exercicio1
declare
nome : caracter;
aux : inteiro;
salario : real;
nivel_superior : lgico;
incio
para aux 1 at 10 faa
escrever(Digite nome: );
ler(nome);
escrever(Digite salario : );
ler(salario);
escrever(Tem nvel superior : );
ler(nivel_superior);
se nivel_superior ento
salario 1000 * 1.15;
seno
salario 1000;
fim-se;
fim-para;
aux 0;
enquanto aux <= 10 faa
escrever(aux);
fim-enquanto
fim

Program Exercicio1;
var
nome : string;
aux : integer;
salario : real;
nivel_superior : boolean;
begin
for aux := 1 to 10 do
begin
writeln(Digite nome : );
readln(nome);
writeln(Digite idade : );
readln(idade);
writeln(Tem nvel superior : );
readln(nivel_superior);
if nivel_superior then
salario := 1000 * 1.15
else
salario := 1000;
end;
2 aux := 0;
while aux <= 10 do
write(aux);
end.

2.

SINTAXE DO PASCAL

Estrutura de um programa em Pascal


Program nome_Programa;
uses nome_unit1, nome_unit2, ... , nome_unit3;
< Bibliotecas usadas pelo programa >
const
< declarao de constantes >
identificador = valor_constante;
var
< declarao de variveis >
variavel1, variavel2, ... , variaveln : tipo;
type
< declarao de tipos >
Identificador1, identificador2, ... , identificadorn = <descrio do tipo>;
begin
< comandos >
end.
Tipos bsicos de dados
Integer, real, boolean, char, string
Atribuio em Pascal
variavel := valor;
Comentrios
{ os comentrios so colocados entre chaves }
(* ou so colocados entre parnteses e asteriscos *)
Operadores relacionais
Algoritmo
e
ou
x-ou
no

Pascal
and
or
xor
not

Funes numricas
Nome
ABS(nmero) : real ou inteiro

Descrio
valor absoluto de <nmero>

TRUNC(nmero) : inteiro

trunca o valor real de


<nmero>

ROUND(nmero) : inteiro

arredonda o valor real de


<nmero>

SQR(nmero) : real ou inteiro

quadrado de <nmero>

SQRT(nmero) : real

raiz quadrada de <nmero>

SUCC(X)

o sucessor de X no conjunto
de valores considerado, se
existir

PRED(X)

o predecessor de X no
conjunto de valores
considerado, se existir

Outras funes:
ORD(C) : inteiro
Indica a ordem de <C> (varivel ou constante literal) no conjunto de caracteres usado na
implementao.

Exemplo:
TYPE Letras = (A, B, C, D);
minhaLetra : Letras;
minhaLetra := B;
writeln(Ord(minhaLetra));
writeln(Ord(B));
Resultado:
1
66
**********************
O resultado 1 corresponde posio no conjunto de letras (A..D).
O resultado 66 corresponde posio na tabela ASCII.

CHR(nmero) : char
Caractere que corresponde ordem, dada pelo valor do <nmero>, se existir, no conjunto de
caracteres utilizados.
DELETE(nome_string, pos, nmero)
Remove uma substring contedo nmero caracteres da String especificada em nome_string,
a partir da posio pos.
INSERT(string_origem, string_destino, pos)
Insere a string string_origem na string string_destino a partir da posio pos.
COPY(String, Pos, Num)
Retorna uma substring contendo Num caracteres a partir da posio Pos. Se Pos excede
o tamanho da string, uma string vazia retornada.
LENGTH(St)
Retorna o nmero de caracteres de string St, representado por um valor inteiro.
POS(Obj, Dest)
Procura a primeira ocorrncia da String Obj dentro da String Dest. O resultado um valor
inteiro indicando a partir de qual caractere de Dest foi encontrada a String Obj. Se a String
Obj no for encontrada, o valor retornado zero.

Comandos de Entrada
read ( <lista de identificadores> );
readln ( <lista de identificadores> );
O comando READLN posiciona o cursor no incio da prxima linha da tela.
Comandos de Sada
write ( <lista de identificadores> );
writeln ( <lista de identificadores> );
O comando WRITELN posiciona o cursor na prxima linha da tela.

Comando Condicional
If <condio> then
<comandos para condio verdadeira>
else
<comandos para condio falsa>;
Se houver mais de um comando, eles devem ser colocados entre BEGIN e
END.
If <condio> then
begin
<comando1>;
<comando2>;
<comandon>;
end
else
begin
<comando1>;
<comando2>;
<comandon>;
end;
Estruturas de repetio
for <variavel> := <valor_inicial> to <valor_final> do
<comando1>;
ou
for <variavel> := <valor_inicial> downto <valor_final> do
<comando1>;
while <condio> do
<comando>;
repeat
<comandos>;
until <condio>;

Nas estruturas while e for, se houver mais de um comando a ser processado,


eles devem ser colocados entre BEGIN e END.
while <condio> do
begin
<comando1>;
<comando2>;
<comandon>;
end;
for <variavel> := <valor_inicial> to <valor_final> do
begin
<comando1>;
<comando2>;
<comandon>;
end;
Vetores
var
array [ lim_inf .. lim_sup ] of <tipo>;

Exemplo:
var
Alunos : array [1..100] of string;
Alunos[1] := Valeria;

Matrizes
var
array [ li1 .. li1 , li2 .. li2, lin .. lin] of <tipo>;

Exemplo:
var

Valores : array [1..4,1..5] of integer;

Valores[1,1] := 100;
Valores[1,2] := 115;

Registros
var
nome_registro : record
campo : tipo;
end;
ou
type
nome_registro = record
campo : tipo;
end;

Exemplo 1(a):
var
CadFunc : record
nome, endereco : string;
cpf : string;
sexo : char;
TemDependentes : boolean;
end;
begin
...
CadFunc.nome := Alvaro;
...

Exemplo 1(b):
type
CadFuncionario = record
nome, endereco : string;
cpf : string;
sexo : char;
TemDependentes : boolean;
end;
var
CadFunc : CadFuncionario;
begin
...
CadFunc.nome := Alvaro;
...

Exemplo 2:
var
CadFunc : record
nome : string;
endereco : record
rua : string;
numero : integer;
cep : string;
end;
cpf : string;
end;
begin

...
CadFunc.nome := Alvaro;
CadFunc.endereco.rua := Rua da Paz;
...

Arquivos

Exemplo:
type

registro = record
nome, rua : string;
numero : integer;
cidade : string;
end;
arquivo = file of registro;

var
Agenda : arquivo;

Para abrir um arquivo, usa-se o comando:


Reset (nome-do-arquivo);
Para reescrever no arquivo, passando por cima dos registros anteriores, usa-se
o comando:
Rewrite (nome-do-arquivo);
Para se fazer a associao desta identificao interna com a identificao
externa, usa-se o comando:
Assign (nome-do-arquivo, nome externo do arquivo);
Para fechar o arquivo, usa-se o comando:

Close (nome-do-arquivo);
Para acessar um registro, na organizao seqencial, usa-se o comando:
Read (nome-do-arquivo, registro);
Para gravar um registro, na organizao seqencial, usa-se o comando:
Write (nome-do-arquivo, registro);

Exemplo:
PROGRAM COPIA;
TYPE
REG = RECORD
NOME : STRING;
SALARIO : REAL;
END;
FONTE = FILE OF REG;
VAR
A, B : FONTE;
T : REG;
BEGIN
ASSIGN(A, FONTE.PAS);
ASSIGN(B, COPIA);
{ ABERTURA DE A }
RESET(A);
{ ABERTURA DE B }
REWRITE(B);
READ(A, T);
WHILE NOT EOF(A) DO
BEGIN
WRITE(B, T);
READ(A, T);
END;
CLOSE(A);
CLOSE(B);
END.

Comandos Especiais do Turbo Pascal


CLRSCR;
Limpa a tela e posiciona o cursor no canto esquerdo/superior do terminal.
CLREOL;
Limpa todos os caracteres da posio do cursor at o final da linha.
GOTOXY (Xpos , Ypos);
Move o cursor para a posio na tela especificada pelas expresses inteiras
Xpos (coluna) e Ypos (linha). Um terminal de vdeo normalmente possui 25
linhas e 80 colunas. O canto esquerdo/superior da tela tem coordenadas (1,1).

REFERNCIAS BIBLIOGRFICAS
MECLER, Ian, MAIA, Luiz Paulo. Programao e lgica com Turbo Pascal. Rio de
Janeiro: Campus, 1989.

Você também pode gostar