Escolar Documentos
Profissional Documentos
Cultura Documentos
Pzim PDF
Pzim PDF
Pascalzim
Table of contents
Introduo ......................................................................................................... 7
Formato bsico de um programa Pascal ................................................................. 7
Identificadores ................................................................................................ 8
Palavras reservadas ......................................................................................... 9
Constantes predefinidas ................................................................................. 10
Declarao de constantes ............................................................................... 10
Tipos de dados ............................................................................................. 11
Tipos predefinidos ..................................................................................... 12
Tipos estruturados .................................................................................... 14
Conjuntos ............................................................................................ 14
Enumeraes ........................................................................................ 15
Ponteiros .............................................................................................. 16
Registros .............................................................................................. 19
Vetores ................................................................................................ 20
Vetores com vrias dimenses ................................................................ 20
Tipos Procedurais .................................................................................. 21
Definio de tipos ...................................................................................... 23
Declarao de variveis .................................................................................. 24
Expresses ................................................................................................... 25
Operadores .................................................................................................. 25
Operadores aritmticos .............................................................................. 26
Operadores lgicos .................................................................................... 27
Operadores relacionais ............................................................................... 28
Operadores binrios .................................................................................. 29
Comandos .................................................................................................... 29
Comandos de atribuio ............................................................................. 29
Comandos compostos ................................................................................ 30
Comandos de entrada e sada ..................................................................... 30
read/readln ........................................................................................... 31
write/writeln ......................................................................................... 31
Comandos condicionais .............................................................................. 33
if ......................................................................................................... 33
case ..................................................................................................... 34
Comandos de repetio .............................................................................. 36
repeat .................................................................................................. 36
while ................................................................................................... 37
for ....................................................................................................... 37
Comandos para tratamento de arquivos ....................................................... 38
append ................................................................................................ 38
assign .................................................................................................. 39
close .................................................................................................... 39
filepos .................................................................................................. 40
filesize ................................................................................................. 41
reset .................................................................................................... 42
rewrite ................................................................................................. 42
seek ..................................................................................................... 43
Arquivos text ........................................................................................ 44
2 / 168
Pascalzim
3 / 168
Pascalzim
GetMaxX ............................................................................................... 81
GetMaxY .............................................................................................. 82
GetModeName ...................................................................................... 83
GetModeRange ...................................................................................... 84
GetPalette ............................................................................................. 84
GetPaletteSize ....................................................................................... 85
GetPixel ............................................................................................... 86
GetTextSettings ..................................................................................... 87
GetViewSettings .................................................................................... 88
GetX .................................................................................................... 89
GetY .................................................................................................... 90
GraphDefaults ....................................................................................... 91
GraphErrorMsg ..................................................................................... 92
GraphResult .......................................................................................... 92
ImageSize ............................................................................................ 94
InitGraph ............................................................................................. 95
InstallUserFont ...................................................................................... 96
Line ..................................................................................................... 97
LineRel ................................................................................................. 98
LineTo ................................................................................................. 99
MoveRel ............................................................................................. 100
MoveTo .............................................................................................. 100
OutText .............................................................................................. 101
OutTextXY .......................................................................................... 102
PieSlice .............................................................................................. 103
PutImage ........................................................................................... 104
PutPixel .............................................................................................. 105
Rectangle ........................................................................................... 106
RestoreCrtMode ................................................................................... 107
Sector ................................................................................................ 108
SetActivePage ..................................................................................... 109
SetAllPalette ....................................................................................... 110
SetAspectRatio .................................................................................... 111
SetBkColor .......................................................................................... 111
SetColor ............................................................................................. 112
SetFillStyle .......................................................................................... 113
SetFillPattern ....................................................................................... 114
SetGraphBufSize .................................................................................. 115
SetGraphMode .................................................................................... 116
SetLineStyle ........................................................................................ 116
SetPalette ........................................................................................... 118
SetRGBPalette ..................................................................................... 119
SetTextJustify ..................................................................................... 120
SetTextStyle ........................................................................................ 121
SetUserCharSize .................................................................................. 123
SetViewPort ........................................................................................ 123
SetVisualPage ..................................................................................... 124
SetWriteMode ...................................................................................... 126
TextHeight .......................................................................................... 127
TextWidth ........................................................................................... 128
4 / 168
Pascalzim
5 / 168
Pascalzim
6 / 168
Pascalzim
Introduo
A linguagem Pascal foi desenvolvida pelo professor Niklaus Wirth no ano de 1972, na cidade de
Genebra, Sua. O nome da linguagem foi uma homenagem ao filsofo e matemtico Blaise
Pascal (1623-1662), inventor da primeira calculadora mecnica. O desejo de Wirth era dispor,
para o ensino de programao, de nova linguagem que fosse simples, coerente e capaz de
incentivar a confeco de programas claros e facilmente legveis, favorecendo a utilizao de
boas tcnicas de programao.
No segundo semestre de 2001 a ferramenta foi utilizada pelos alunos do Instituto de Ensino
Superior de Braslia - IESB para o aprendizado da disciplina Algoritmos e Programao
Estruturada.
A ferramenta foi exaustivamente testada em laboratrio, mas ainda assim no se encontra livre
de erros de implementao. A correo destes ser efetuada to breve quanto sua descoberta,
levando disponibilidade de verses mais atualizadas do compilador.
O Pascalzim foi concebido com finalidade meramente educacional e sua distribuio livre.
Created with the Personal Edition of HelpNDoc: Easily create HTML Help documents
Um programa escrito na linguagem Pascal pode ser, basicamente, estruturado em trs regies
significativas:
7 / 168
Pascalzim
Exemplo
Program MeuPrograma ;
Seguindo a seo de definio e declarao de dados vem a seo de comandos. Esta seo
iniciada com a palavra reservada Begin e terminada com a palavra reservada End, seguida
de ponto. Entre as palavras Begin e End devem ser colocados os comandos do programa.
Program NomePrograma ;
Begin
Comandos
End.
Created with the Personal Edition of HelpNDoc: Free Web Help generator
Identificadores
Um identificador vlido na linguagem Pascal qualquer sequncia de caracteres que obedea
s seguintes regras:
Exemplo
8 / 168
Pascalzim
A
Nota
P1
Meu_Identificador
1A
E(13)
A:B
Created with the Personal Edition of HelpNDoc: Generate EPub eBooks with ease
Palavras reservadas
O conjunto das palavras reservadas da linguagem Pascal, identificadas pelo compilador dado
pela tabela abaixo:
9 / 168
Pascalzim
Constantes predefinidas
O compilador reconhece as seguintes constantes pr-definidas:
maxint
pi
Created with the Personal Edition of HelpNDoc: Free help authoring tool
Declarao de constantes
As constantes so declaradas na seo de declarao de constantes, que est contida na
seo de definio e declarao de dados.
O incio da seo de declarao de constantes indicada por meio da palavra reservada const.
A palavra reservada const marca o incio da seo de definies de constantes, e deve
aparecer somente uma nica vez dentro da seo de declaraes e definies.
Sintaxe
Onde expresso uma expresso que, em tempo de compilao, pode ser avaliada em uma
constante inteira, real, uma cadeia de caracteres ou um nico caractere.
Nesse tipo de declarao, o tipo de uma constante implicitamente definido pelo valor que ela
recebe.
Exemplo. A declarao abaixo define uma constante inteira cujo valor 10:
const dez = 10 ;
Constantes tipadas
Uma constante tipada uma constante cujo tipo informado no momento da declarao da
constante.
Sintaxe
10 / 168
Pascalzim
const a: integer = 26 ;
b: char = 'L' ;
c: boolean = true ;
d: real = 3.1418 ;
e: string = 'Pascalzim' ;
A expresso de inicializao pode ser utilizada para inicializar um vetor. Nesse caso, os
elementos do vetor devem aparecer dentro de um par de parnteses, e devem estar separados
por vrgula (,):
A inicializao de arrays de mais de uma dimenso segue a ideia acima, com a ressalva de que
cada dimenso adicional do array deve aparecer entre um par de parnteses, e os elementos
correspondentes a cada dimenso so tambm separados por vrgula (,).
A expresso de inicializao pode tambm ser utilizada para inicializar um registro. Nesse
caso, os valores de inicializao do registro so informados entre um par de parnteses, e a
inicializao de cada campo separado da inicializao seguinte por um sinal de ponto e
vrgula (;). A inicializao de um campo dada pelo nome do campo seguido por um sinal de
dois pontos (:) e o valor de inicializao do campo.
Tipos de dados
Todas as variveis declaradas dentro de um programa devem ser especificadas atravs de um
tipo.
1. Tipos predefinidos
2. Tipos estruturados
11 / 168
Pascalzim
3. Tipos definidos
Created with the Personal Edition of HelpNDoc: Easy EPub and documentation editor
Tipos predefinidos
Os tipos de dados predefinidos na linguagem Pascal, e implementados no compilador, so:
Boolean
- Define dois valores lgicos: FALSE e TRUE.
- Um dado do tipo booleano ocupa um byte de espao na memria.
- No Pascalzim, um dado do tipo booleano ocupa quatro bytes de espao na memria
(mesmo tamanho que um integer).
Char
- Define os elementos do conjunto de caracteres que compem o alfabeto ASCII,
adicionados dos caracteres representados pelos cdigos de 128 a 255.
- Um dado desse tipo ocupa um byte de espao na memria.
- No Pascalzim, um dado do tipo booleano ocupa quatro bytes de espao na memria
(mesmo tamanho que um integer).
Integer
- Define os valores inteiros compreendidos no intervalo de -2.147.483.648 at
2.147.483.647.
- Um dado desse tipo ocupa quatro bytes de espao na memria.
Real
- Define os valores reais definidos no intervalo de 3.4*(10^-38) at 3.4 * (10^+38).
- Um dado desse tipo ocupa quatro bytes de espao na memria.
- No Pascalzim, um dado do tipo real ocupa oito bytes de espao na memria (mesmo
tamanho que um integer).
String
- Define uma cadeia de caracteres. Se nenhuma restrio de tamanho for especificada, um
dado do tipo string capaz de armazenar uma sequncia contendo at 255 caracteres,
onde cada caractere ocupa um byte de espao na memria.
- No Pascalzim, cada caractere ocupa quatro bytes de espao na memria (mesmo
tamanho que um integer).
Uma cadeia de caracteres pode ter seu tamanho definido (contendo menos de 255 caracteres),
onde o tamanho especifica o nmero mximo de caracteres contidos na cadeia. Essa
especificao deve ser indicada entre colchetes, logo aps a palavra reservada string.
Exemplo
Uma cadeia de caracteres definida com n caracteres ocupa n bytes de espao na memria
Como uma extenso da linguagem Pascal, o compilador implementa tambm os seguinte tipos
12 / 168
Pascalzim
de dados inteiros:
Byte
- Define os valores inteiros compreendidos no intervalo de 0 a 255.
- Um dado desse tipo ocupa um byte de espao na memria.
- No Pascalzim, um dado do tipo byte ocupa quatro bytes de espao na memria (mesmo
tamanho que um integer).
ShortInt
- Define os valores inteiros compreendidos no intervalo de -128 a 127.
- Um dado desse tipo ocupa um byte de espao na memria.
- No Pascalzim, um dado do tipo shortint ocupa quatro bytes de espao na memria
(mesmo tamanho que um integer).
Word
- Define os valores inteiros compreendidos no intervalo de 0 a 65.535.
- Um dado desse tipo ocupa dois bytes de espao na memria.
- No Pascalzim, um dado do tipo word ocupa quatro bytes de espao na memria (mesmo
tamanho que um integer).
LongInt
- Define os valores inteiros compreendidos no intervalo de -2.147.483.648 at
2.147.483.647.
- Um dado desse tipo ocupa quatro bytes de espao na memria.
Exemplo
Program PascalZIM ;
Begin
writeln('Tamanho tipo boolean:', sizeof(boolean));
writeln('Tamanho tipo char:', sizeof(char));
writeln('Tamanho tipo integer:', sizeof(integer));
writeln('Tamanho tipo real:', sizeof(real));
writeln('Tamanho tipo string:', sizeof(string));
writeln('Tamanho tipo byte:', sizeof(byte));
writeln('Tamanho tipo shortint:', sizeof(shortint));
writeln('Tamanho tipo word:', sizeof(word));
writeln('Tamanho tipo longint:', sizeof(longint));
End.
O compilador tambm reconhece constantes inteiras nas bases hexadecimal, octal e binria.
Nesse caso:
Exemplo
13 / 168
Pascalzim
Created with the Personal Edition of HelpNDoc: iPhone web sites made easy
Tipos estruturados
Os tipos de dados predefinidos podem ser organizados em tipos de dados complexos,
denominados tipos estruturados.
1. Conjuntos
2. Enumeraes
3. Ponteiros
4. Registros
5. Vetores
6. Tipos Procedurais
Created with the Personal Edition of HelpNDoc: Single source CHM, PDF, DOC and HTML Help creation
Conjuntos
Tipos de dados utilizados para denotar um conjunto de valores.
Declarao de conjuntos
Onde nomeConjunto denota um identificador vlido na linguagem Pascal, e tipo denota um tipo
enumerado, integer, char ou um intervalo de valores dentro desses tipos.
Elementos de um conjunto
Onde cada elemento denota uma expresso, e todos os elementos tem o mesmo tipo de
dados.
elemento, tambm pode denotar um intervalo.
14 / 168
Pascalzim
Exemplo de atribuies
unio(+);
interseco(*);
diferena(-);
igualdade(=);
desigualdade(<>);
contm (>=);
est contido (<=);
pertinncia (in).
Exemplo
Program PascalZIM ;
Begin
writeln( [1,2,3] + [4,5,6,7] ); // Exibe [1..7]
writeln( [1..10] * [3,4,5] ); // Exibe [3..5]
writeln( [1..10] - [3,4,5] ); // Exibe [1..2, 6..10]
writeln( [1..3] = [1,2,3] ); // Exibe true
writeln( [1..3] <> [1,2,3] ); // Exibe false
writeln( [1..10] >= [3,4,5] ); // Exibe true
writeln( [3,4,5] <= [1..10] ); // Exibe true
writeln( 2+3 in [1..10] ); // Exibe true
End.
Created with the Personal Edition of HelpNDoc: Free HTML Help documentation generator
Enumeraes
Tipos de dados enumerados so utilizados para denotar um elemento dentro de um conjunto de
constantes.
Declarao de enumeraes
Exemplo
Program PascalZIM ;
var diasSemana: ( domingo, segunda, terca, quarta, quinta, sexta, sabado );
Begin
writeln( 'Depois de segunda vem quinta? ' , succ(segunda) = quinta );
15 / 168
Pascalzim
Exemplo
Program PascalZIM ;
type diaSemana = ( domingo, segunda, terca, quarta, quinta, sexta, sabado );
var dia: diaSemana ;
Begin
for dia:= domingo to sabado do
Begin
case ( dia ) of
domingo: writeln( 'O dia domingo' );
segunda: writeln( 'O dia segunda' );
terca : writeln( 'O dia terca' );
quarta : writeln( 'O dia quarta' );
quinta : writeln( 'O dia quinta' );
sexta : writeln( 'O dia sexta' );
sabado : writeln( 'O dia sabado' );
End ;
End ;
readkey ;
End.
Created with the Personal Edition of HelpNDoc: iPhone web sites made easy
Ponteiros
Ponteiros so variveis que podem armazenar o endereo de uma outra varivel.
Declarao de ponteiros
Na declarao acima temos que nomePonteiro um ponteiro para variveis do tipo tipoDados.
Exemplo
Exemplo
16 / 168
Pascalzim
ponteiro:= @varivel ;
ponteiro:= outroponteiro ;
ponteiro:= nil ;
Referenciar o dado apontado pelo ponteiro (o elemento que tem o tipo de dados definido
pelo ponteiro, e que est no endereo de memria que o ponteiro armazena):
ponteiro^
inc(ponteiro) ;
dec(ponteiro);
Exemplo
Program Ponteiros ;
Var
a: integer ;
p: ^integer ;
Begin
a:= 8 ; // Guardamos o valor 8 em a
p:= nil ; // O ponteiro no guarda nenhum endereo
writeln( 'Valor armazenado em a: ' , a );
// Guardamos no ponteiro o endereo da varivel a
p:= @a ;
writeln( 'Valor apontado por p: ' , p^ );
// Esse comando equivalente a "a:= 2 * a ;" , pois p
// aponta para o endereo de a
a:= 2 * p^ ;
writeln( 'O valor de a agora: ' , a ); // Imprime 16
writeln( 'Valor apontado por p: ' , p^ ); // Imprime 16
readln ;
End.
Sintaxe
new( ponteiro );
17 / 168
Pascalzim
Deve-se tomar cuidado para que a memria alocada com um new seja liberada antes do
programa terminar.
Sintaxe
dispose( ponteiro );
Como alternativa, pode-se utilizar tambm os mtodos GetMem e FreeMem para alocar e
liberar memria para um ponteiro.
Exemplo
Program AlocacaoDinamica ;
var p: ^integer ;
v: integer ;
Begin
new( p ); // Aloca espao para armazenar um inteiro
p^:= 10 ; // Guarda um inteiro na posio apontada por p
writeln( 'Valor armazenado na posicao de memoria: ', p^ );
v:= p^ ; //Guardamos em v o valor apontado por p
writeln( 'Valor armazenado em v: ', v );
dispose( p ); // Liberamos a memoria associada a p
readln ;
End.
Exemplo
// -------------------------------------------------------------
// Este programa mostra ilustra a utilizao de listas lineares
// usando ponteiros.
//
// Problema. Construir uma lista linear e imprimir seus dados.
// -------------------------------------------------------------
Program PercorrendoLista ;
Begin
pinicio:= nil ;
18 / 168
Pascalzim
readln ;
End.
Created with the Personal Edition of HelpNDoc: Free EBook and documentation generator
Registros
Um registro um tipo composto por um conjunto formado por dados de tipos diferentes, onde
cada um dos dados definido como sendo um campo.
Um tipo registro definido atravs da palavra reservada record, seguida por uma srie de
declarao de campos. A palavra reservada End seguida de um ponto e vrgula encerra a
definio de um registro.
Sintaxe
Record
identificador de campo : tipo ;
identificador de campo : tipo ;
...
identificador de campo : tipo ;
End ;
19 / 168
Pascalzim
numero: integer ;
dado: Record
caractere: char ;
End ;
preenchido: boolean ;
End ;
umRegistro.numero
Vetores
Um vetor uma estrutura de dados que contm um nmero fixo de elementos que possuem
um mesmo tipo de dados, tipo esse que pode ser qualquer um dos tipos predefinidos na
linguagem Pascal (integer, char, boolean ou string), um tipo vetor, um tipo registro ou ainda um
tipo definido pelo usurio.
array[limiteInferior..limiteSuperior] of tipo ;
Onde:
Exemplo. A declarao abaixo define um vetor do tipo inteiro, identificado por dias:
nomeVariavel[x]
Created with the Personal Edition of HelpNDoc: Easy EBook and documentation generator
20 / 168
Pascalzim
Vetores podem ter mais de uma dimenso. Nesse caso, cada nova dimenso declarada de
acordo com as regras do item anterior, e as n dimenses do vetor so separadas por vrgulas.
Created with the Personal Edition of HelpNDoc: Single source CHM, PDF, DOC and HTML Help creation
Tipos Procedurais
O tipo de dados procedural permite armazenar em uma varivel o endereo de uma funo ou
procedimento definidos pelo usurio.
Para declarar uma varivel que guarda o endereo de uma funo ou procedimento sem
parmetros, usa-se:
Para declarar uma varivel que guarda o endereo de uma funo ou procedimento com
parmetros, usa-se:
Exemplo
Nesse exemplo, minhaFuncao pode armazenar o endereo de uma funo que recebe dois
parmetros do tipo integer, e que retorna um valor do mesmo tipo.
21 / 168
Pascalzim
minhaFuncao := funcaoDefinidaUsuario ;
minhaFuncao := minhaOutraFuncao ;
minhaFuncao := nil ;
@minhaVariavel
Exemplo
Program Pascalzim;
Begin
F := min ;
writeln( F(50,60) ); // Mostra 50, valor retornado pela funcao min
F := max ;
writeln( F(50,60) ); // Mostra 60, valor retornado pela funcao max
G:= F ;
writeln( G(50,60) ); // Mostra 50, valor retornado pela funcao max
End.
Exemplo
Program Pascalzim;
22 / 168
Pascalzim
Begin
F:= nil ;
writeln( @F = nil ); // Mostra true, pois F no guarda o endereo de uma
funo
F := min ;
G := max ;
writeln( @F = @G ); // Mostra false, pois F guarda o endereo de min, G
guarda o endereo de max
G := min ;
writeln( @F = @G ); // Mostra true, pois F e G guardam ambas o endereo de
min
F := G ;
writeln( @F = @G ); // Mostra true, pois F e G guardam ambas o endereo de
min
End.
Created with the Personal Edition of HelpNDoc: Free HTML Help documentation generator
Definio de tipos
A definio de um novo tipo feita na seo de definio de tipos, contida na seo de definio
e declarao de dados.
O incio da seo de definio de tipos indicada atravs da palavra reservada type. A palavra
reservada type deve aparecer uma nica vez dentro da seo de definio e declarao de
dados.
Sintaxe
Onde tipoDefinido um dos tipos estruturados vetor, registro, ponteiro, procedural ou ainda o
nome de um tipo definido pelo usurio ou um tipo de dados simples.
23 / 168
Pascalzim
Exemplo
Created with the Personal Edition of HelpNDoc: Easily create Help documents
Declarao de variveis
A declarao de uma varivel faz com que o compilador reserve uma quantidade de espao na
memria suficientemente grande para armazenar um tipo de dados, alm de associar tambm
um "nome" a esta posio na memria. As variveis so declaradas na seo de declarao de
variveis, contida na seo de definio e declarao de dados.
O incio da seo de declarao de variveis indicada por meio da palavra reservada var. A
palavra reservada var deve aparecer somente uma nica vez dentro da seo de definio e
declarao de dados.
Sintaxe
Exemplo. A declarao abaixo define trs variveis dos tipos inteiro, caractere e booleano,
respectivamente.
Variveis inicializadas
Sintaxe
var a: integer = 26 ;
b: char = 'L' ;
c: boolean = true ;
d: real = 3.1418 ;
e: string = 'Pascalzim' ;
A expresso de inicializao pode ser utilizada para inicializar um vetor. Nesse caso, os
elementos do vetor devem aparecer dentro de um par de parnteses, e devem estar separados
por vrgula (,):
24 / 168
Pascalzim
A inicializao de arrays de mais de uma dimenso segue a ideia acima, com a ressalva de que
cada dimenso adicional do array deve aparecer entre um par de parnteses, e os elementos
correspondentes a cada dimenso so tambm separados por vrgula (,).
A expresso de inicializao pode ser tambm utilizada para inicializar um registro. Nesse
caso, os valores de inicializao do registro so informados entre um par de parnteses, e a
inicializao de cada campo separado da inicializao seguinte por um sinal de ponto e
vrgula (;). A inicializao de um campo dada pelo nome do campo seguido por um sinal de
dois pontos (:) e o valor de inicializao do campo.
Created with the Personal Edition of HelpNDoc: Produce Kindle eBooks easily
Expresses
O termo expresso se refere a qualquer combinao de uma ou mais constantes ou
identificadores de variveis, com um ou mais operadores. As constantes e variveis que
aparecem numa expresso so chamadas de operandos.
Quando mais de um operador aparece numa expresso, a sequncia de clculo efetuada pelo
compilador depende da precedncia definida para cada operador da linguagem, onde o
operador com mais alta precedncia o primeiro a capturar seus operandos. No caso de dois
ou mais operadores terem o mesmo nvel de precedncia, o clculo feito da esquerda para a
direita.
Created with the Personal Edition of HelpNDoc: Free EPub and documentation generator
Operadores
25 / 168
Pascalzim
Grande parte da manipulao de dados que ocorre na seo de comandos feita atravs do
uso de um operador.
1. Operadores aritmticos
2. Operadores lgicos
3. Operadores relacionais
4. Operadores binrios
Created with the Personal Edition of HelpNDoc: Easily create CHM Help documents
Operadores aritmticos
Os operadores aritmticos so utilizados nas expresses aritmticas.
- (menos unrio)
Tipo de operandos permitidos: inteiros e reais.
Operao executada: inverte o valor numrico do operando.
DIV
Tipo de operandos permitidos: ambos do tipo inteiro.
Operao executada: o operando esquerda do DIV dividido pelo operando sua
direita, sendo o resultado desta operao um valor inteiro resultante da diviso.
MOD
Tipo de operandos permitidos: ambos do tipo inteiro.
Operao executada: o operando esquerda do MOD dividido pelo operando sua
direita, sendo o resultado desta operao o resto inteiro da diviso.
+
Tipo de operandos permitidos: inteiros, reais e cadeias de caracteres.
Operao executada: no caso de inteiros e reais o operando esquerda do +
somado ao operando a sua direita, sendo o tipo do resultado dessa operao
dependente de seus operandos:
No caso dos operandos serem ambos cadeias de caracteres o resultado da operao dada
pela cadeia obtida pela concatenao da cadeia dada pelo primeiro operando com a cadeia
dada pelo segundo operando.
-
Tipo de operandos permitidos: inteiros e reais.
Operao executada: o operando esquerda do - subtrado do operando a sua direita,
sendo o tipo do resultado dessa operao dependente de seus operandos:
26 / 168
Pascalzim
*
Tipo de operandos permitidos: inteiros e reais.
Operao executada: o operando esquerda do * multiplicado pelo operando a sua
direita, sendo o tipo do resultado dessa operao dependente de seus operandos:
/
Tipo de operandos permitidos: inteiro ou real.
Operao executada: o operando esquerda do / dividido pelo operando a sua direita,
sendo o resultado dessa operao real.
Operadores lgicos
Os operadores lgicos so usados nas expresses lgicas, com operandos do tipo booleano.
not
Operao executada: o operador inverte o valor verdade de um operando booleano.
and
Operao executada: efetuado um and lgico entre os dois operandos do operador,
sendo o resultado da operao verdadeiro quando ambos operandos so verdadeiros.
or
Operao executada: feito um or lgico entre os dois operandos do operador, sendo o
resultado da operao verdadeiro se um dos operandos for verdadeiro.
xor
Operao executada: feito um xor lgico entre os dois operandos do operador, sendo o
resultado da operao verdadeiro se os dois operandos contiverem valores lgicos
diferentes.
27 / 168
Pascalzim
Created with the Personal Edition of HelpNDoc: Free Web Help generator
Operadores relacionais
Os operadores relacionais so usados nas expresses relacionais.
Ambos operandos do mesmo tipo primitivo (integer, char, boolean, char ou string)
Operandos de tipos diferentes, onde:
Operado
Resultado
r
Verdadeiro se os dois operandos para o operador forem iguais.
=
Falso em caso contrrio.
Verdadeiro se os dois operandos para o operador forem diferentes.
<>
Falso em caso contrrio.
Verdadeiro se o operando esquerda do operador for menor que o operando direita.
<
Falso em caso contrrio.
Verdadeiro se o operando esquerda do operador for menor ou igual o operando direita.
<=
Falso em caso contrrio
Verdadeiro se o operando esquerda do operador for maior do que o operando direita.
>
Falso em caso contrrio.
Verdadeiro se o operando esquerda do operador for maior ou igual que o operando direita.
>=
Falso em caso contrrio.
Created with the Personal Edition of HelpNDoc: Easily create CHM Help documents
28 / 168
Pascalzim
Operadores binrios
Os operadores binrios so usados para manipular os bits de operandos do tipo inteiro.
not
Inverte os bits do operando inteiro.
and
Realiza um and lgico entre os bits correspondentes dos dois operandos.
or
Realiza um or lgico entre os bits correspondentes dos dois operandos.
xor
Realiza um xor lgico entre os bits correspondentes dos dois operandos.
shl
Desloca para os bits do primeiro operando para a esquerda, de acordo com a
quantidade de posies informada no segundo operando.
shr
Desloca para os bits do primeiro operando para a direita, de acordo com a quantidade de
posies informada no segundo operando.
Created with the Personal Edition of HelpNDoc: Free iPhone documentation generator
Comandos
Os comandos so inseridos na seo de comandos e podem ser, basicamente, classificados
em oito categorias:
1. Comandos de atribuio
2. Comandos compostos
3. Comandos de entrada e sada
4. Comandos condicionais
5. Comandos de repetio
6. Comandos para tratamento de arquivos
7. Comandos de desvio
8. Comandos auxiliares
O ponto e vrgula usado na linguagem Pascal como separador de comandos, servindo para
separar um comando dos comandos subsequentes.
Created with the Personal Edition of HelpNDoc: Single source CHM, PDF, DOC and HTML Help creation
Comandos de atribuio
Um comando de atribuio definido atravs da seguinte sintaxe:
varivel:= expresso ;
29 / 168
Pascalzim
O tipo da expresso deve ser igual ao tipo da varivel, com exceo de dois casos especiais
onde:
item:= 0 ;
saida:= FALSE ;
soma:= valor1 + valor2 ;
caractere:= 'a' ;
cadeia:= 'Isso uma cadeia de caracteres' ;
soma:= 9 ;
cadeia:= 'a' ;
Created with the Personal Edition of HelpNDoc: Easy to use tool to create HTML Help files and Help web sites
Comandos compostos
Alm de marcar o incio e o fim da seo de comandos, o par Begin e End define um par de
instrues usado para combinar um conjunto de comandos em um comando composto,
tambm chamado de bloco de comandos.
Exemplo
1. read
2. readln
3. write
4. writeln
30 / 168
Pascalzim
read/readln
Os comandos read e readln so usados para ler o valor de uma varivel de um dispositivo de
entrada de dados. A diferena entre os dois comandos que o comando readln processa uma
quebra de linha aps a leitura do valor de uma varivel, enquanto o read no o faz.
A leitura de dados pode ser direcionada para um arquivo, identificado por uma varivel do tipo
text.
Sintaxe:
read( listaVariveis );
Onde listaVariveis uma sequncia de uma ou mais variveis separadas por vrgula.
Exemplo
Program PascalZIM ;
var arq: text ;
caractere: char ;
Begin
assign( arq, 'Teste.txt' );
reset( arq );
while not eof( arq ) do
Begin
read( arq, caractere );
write( caractere );
End ;
End.
Created with the Personal Edition of HelpNDoc: Free help authoring environment
write/writeln
Os comandos write e writeln so usados para imprimir o valor de uma sequncia de
expresses em um dispositivo de sada de dados. A diferena entre os dois comandos que o
comando writeln processa uma quebra de linha aps imprimir o valor de uma sequncia de
expresses.
A escrita de dados pode ser direcionada para um arquivo, identificado atravs de uma varivel
do tipo text.
31 / 168
Pascalzim
Exemplo
Program PascalZIM ;
var c: char ;
Begin
writeln( 'Por favor, pressione uma tecla' );
c:= readkey ;
writeln( 'Voc pressionou ', c, ', cujo valor ASCII ', ord(c), '.' );
End.
expresso : tamanho
A impresso de uma linha em branco dada atravs de um comando writeln como abaixo:
writeln ;
Exemplo
Program PascalZIM ;
var arq: text ;
Begin
assign( arq, 'Teste.txt' );
rewrite( arq );
writeln ; //Impresso na tela
writeln( 1:10, 2:20, 3:30 );
writeln( 'a':10, 'b':20, 'c':30 );
writeln( 'asd':10, 'bnm':20, 'cvb':30 );
writeln( 2.1:10, 3.2:20, 4.3:30 );
writeln( 2.1:10:2, 3.2:20:3, 4.3:30:4 );
writeln ; //Impresso em arquivo
writeln( arq, 1:10, 2:20, 3:30 );
writeln( arq, 'a':10, 'b':20, 'c':30 );
writeln( arq, 'asd':10, 'bnm':20, 'cvb':30 );
32 / 168
Pascalzim
Created with the Personal Edition of HelpNDoc: Create iPhone web-based documentation
Comandos condicionais
Os comandos condicionais permitem restringir a execuo de comandos.
if...then
if...then...else
case
case...else
Created with the Personal Edition of HelpNDoc: Free CHM Help documentation generator
if
Possibilita restringir a execuo de um conjunto de comandos.
O comando funciona da seguinte forma: se expresso for true, ento comando executado;
caso contrrio comando no executado.
Exemplo
O comando funciona da seguinte forma: se expresso for true, ento comando1 executado;
caso contrrio, comando2 executado.
Exemplo
33 / 168
Pascalzim
if j = 0 then
write( j )
else
write( m );
Em uma srie de comandos if aninhados a clusula else est ligada ao if mais prximo no
aninhamento.
Uma sequncia de comandos como:
case
Possibilita a escolha de um conjunto de comandos que sero executados, dentre vrias
alternativas de escolha.
Sintaxe
case seletor of
lista de constantes : comandos ;
lista de constantes : comandos ;
...
lista de constantes : comandos ;
else comandos ;
End ;
Onde:
Exemplo
Program PascalZIM ;
var opcao: integer ;
Begin
write( 'Entre com uma opcao: ' );
readln( opcao );
// escolha da opcao
case opcao of
1: writeln( 'Voc escolheu a opo 1...' );
34 / 168
Pascalzim
Exemplo
Program PascalZIM ;
const opSoma = '+' ;
opSubtracao = '-' ;
opProduto = '*' ;
opDivisao = '/' ;
var opcao: char ;
Begin
write( 'Entre com um operador: ' );
readln( opcao );
// escolha da opcao
case opcao of
opSoma: writeln( 'Voc escolheu soma...' );
opSubtracao: writeln( 'Voc escolheu subtracao...' );
opProduto: writeln( 'Voc escolheu produto...' );
opDivisao: writeln( 'Voc escolheu divisao...' );
End ;
End.
Exemplo
Program PascalZIM ;
var opcao: integer ;
Begin
write( 'Entre com uma opcao: ' );
readln( opcao );
// escolha da opcao
case opcao of
1, 2: writeln( 'Voc escolheu a opo 1 ou 2...' );
3: writeln( 'Voc escolheu a opo 3...' );
else
writeln( 'Voc escolheu uma opo diferente de 1, 2, 3...' );
End ;
End.
Exemplo
Program PascalZIM ;
var c: char ;
Begin
write( 'Digite um caractere: ' );
readln( c );
case c of
'A'..'Z', 'a'..'z': writeln( '=> Voc digitou uma letra!' );
'0'..'9': writeln( '=> Voc digitou um digito!' );
'+', '-', '*', '/': writeln( '=> Voc digitou um operador!' );
else
writeln( '=> Voc digitou um caractere!' );
35 / 168
Pascalzim
End ;
End.
Created with the Personal Edition of HelpNDoc: Easily create PDF Help documents
Comandos de repetio
Os comandos de repetio permitem repetir a execuo de um conjunto de comandos.
repeat
while
for
break
continue
Created with the Personal Edition of HelpNDoc: Free EPub and documentation generator
repeat
O comando repeat executa repetidamente uma sequncia de comandos at que uma dada
condio, resultantes da avaliao de uma expresso booleana, seja verdadeira.
Sintaxe
repeat
comando1 ;
...
comandon ;
until expresso ;
Exemplo
repeat
k:= i mod j ;
i:= j ;
j:= k ;
until j = 0 ;
36 / 168
Pascalzim
while
O comando while semelhante ao comando repeat, com a diferena de que a condio para
a execuo repetida de comandos avaliada antes da execuo de qualquer comando interno
da repetio.
Dessa forma, se a condio inicial para o while for falsa, a sequncia de comandos definidos
para o while no ser executada nenhuma vez.
Sintaxe
while expresso do
comando
Onde expresso uma expresso lgica e comando pode ser um comando composto.
Exemplo
for
O comando for, diferente dos comandos repeat e while, permite que uma sequncia de
comandos seja executada um nmero definido de vezes.
Sintaxe
Onde:
Funcionamento
37 / 168
Pascalzim
Exemplo
for i:= 2 to 63 do
if data[ i ] > max then
max:= data[ i ] ;
Exemplo
Created with the Personal Edition of HelpNDoc: Free EBook and documentation generator
O uso de arquivos do tipo texto na linguagem Pascal feito de duas maneiras distintas:
Created with the Personal Edition of HelpNDoc: Easy to use tool to create HTML Help files and Help web sites
append
Abre um arquivo j existente para escrita no final.
Sintaxe
Exemplo
Program Pascalzim ;
var arq: text ;
Begin
// Cria um novo arquivo, adicionando texto nele
assign( arq, 'TEST.TXT ' );
rewrite( arq );
writeln( arq, 'texto inicial ' );
38 / 168
Pascalzim
assign
Associa o nome de um arquivo com uma varivel do tipo arquivo.
Um arquivo, seja ele do tipo texto ou ainda um arquivo binrio, referenciado dentro de um
programa Pascal por meio de uma varivel do tipo arquivo.
Uma varivel do tipo arquivo, por sua vez, deve ser definida com o tipo text (para manipulao
de arquivos do tipo texto) ou o tipo FILE (para manipulao de arquivos binrios).
A associao entre uma varivel do tipo arquivo e o arquivo correspondente realizada atravs
do comando assign.
Sintaxe
Exemplo
Exemplo
Program Pascalzim ;
var nomeArquivo: string [15];
arq: text ;
Begin
write( 'Entre com o nome do arquivo: ' );
readln( nomeArquivo );
assign( arq, nomeArquivo );
End.
Created with the Personal Edition of HelpNDoc: Write eBooks for the Kindle
close
Fecha um arquivo.
39 / 168
Pascalzim
Sintaxe
Exemplo
Program Pascalzim ;
var arq: text ;
Begin
// Cria um novo arquivo, adicionando dados nele
assign( arq, 'TEST.TXT' );
rewrite( arq );
writeln( arq, 'texto inicial' );
Created with the Personal Edition of HelpNDoc: Easily create CHM Help documents
filepos
Retorna a posio corrente (em nmero de registros) do cursor de leitura/escrita no arquivo
binrio.
Sintaxe
Exemplo
Program Pascalzim ;
Begin
// Abre o arquivo para escrita
assign( arq, 'dados.bin' );
40 / 168
Pascalzim
rewrite( arq );
Created with the Personal Edition of HelpNDoc: Single source CHM, PDF, DOC and HTML Help creation
filesize
Retorna a quantidade de registros armazenada em um arquivo binrio.
Sintaxe
Exemplo
Program Pascalzim ;
Begin
// Abre o arquivo para escrita
assign( arq, 'dados.bin' );
rewrite( arq );
41 / 168
Pascalzim
Created with the Personal Edition of HelpNDoc: Single source CHM, PDF, DOC and HTML Help creation
reset
Abre um arquivo j existente, posicionando o cursor de leitura no incio do arquivo.
Sintaxe
Exemplo
Program Pascalzim ;
var arq: text ;
texto: string ;
Begin
// Abre o arquivo e l uma linha de texto dele
assign( arq, 'TEST.TXT' );
reset( arq );
readln( arq, texto );
writeln( texto );
Created with the Personal Edition of HelpNDoc: Produce Kindle eBooks easily
rewrite
Cria um arquivo do tipo texto ou, se ele j existe, apaga seu contedo e cria um novo arquivo,
42 / 168
Pascalzim
Sintaxe
Exemplo
Program Pascalzim ;
var arq: text ;
Begin
// Cria um novo arquivo, adicionando dados nele
assign( arq, 'TEST.TXT' );
rewrite( arq );
writeln( arq, 'texto inicial' );
Created with the Personal Edition of HelpNDoc: Easily create Help documents
seek
Posiciona o cursor de leitura/escrita antes de uma posio especfica (em nmero de registros)
do arquivo binrio.
O comando considera que o primeiro registro armazenado no arquivo est na posio zero.
Sintaxe
Onde posicao uma expresso inteira que informa o registro antes do qual ser posicionado o
cursor de leitura/escrita.
Exemplo
Program Pascalzim ;
43 / 168
Pascalzim
Begin
// Abre o arquivo para escrita
assign( arq, 'dados.bin' );
rewrite( arq );
Created with the Personal Edition of HelpNDoc: Easily create Web Help sites
Arquivos text
Os arquivos do tipo texto so manipulados por meio de variveis do tipo text. Os comandos
para tratamento de arquivos desse tipo, implementados no compilador, so os seguintes:
append
assign
close
ioresult
reset
rewrite
Created with the Personal Edition of HelpNDoc: Free help authoring tool
Arquivos binrios
Os arquivos binrios so manipulados por meio de variveis do tipo file of. Os comandos para
tratamento de arquivos desse tipo, implementados no compilador, so os seguintes:
44 / 168
Pascalzim
append
assign
close
filesize
filepos
ioresult
reset
rewrite
seek
Created with the Personal Edition of HelpNDoc: Create HTML Help, DOC, PDF and print manuals from 1 single
source
ioresult
Retorna o resultado da ltima operao realizada sobre um arquivo.
Se a funo retornar 0, nenhum erro foi encontrado durante a operao. Caso contrrio, foi
encontrado um erro.
Sintaxe
Exemplo
Program PascalZIM ;
var arq: text ;
Begin
assign(arq, 'c:\dados.txt' );
reset(arq);
if (ioresult = 0) then
writeln( 'O arquivo foi aberto para leitura' )
else
writeln( 'O arquivo nao pode ser aberto para leitura' );
End.
Created with the Personal Edition of HelpNDoc: Free PDF documentation generator
Comandos de desvio
Os comandos de desvio permitem interromper a execuo sequencial de comandos.
break
continue
45 / 168
Pascalzim
break
Comando usado para forar a sada de uma estrutura de repetio (while, for, repeat).
Sintaxe
break ;
Onde:
Exemplo
Program PascalZIM ;
var contador: integer ;
Begin
contador:= 1 ;
continue
Usado para desviar a execuo dos comandos de uma estrutura de repetio (while, for,
repeat) para a avaliao da condio de loop.
Sintaxe
continue ;
Onde:
46 / 168
Pascalzim
Aps a execuo do comando a repetio pode parar (se a condio de loop assim
indicar) ou prosseguir com a execuo do primeiro comando da repetio.
Exemplo
Program PascalZIM ;
var contador: integer ;
Begin
contador:= 1 ;
Created with the Personal Edition of HelpNDoc: Easily create PDF Help documents
exit
Termina a execuo do procedimento, funo ou programa.
Sintaxe
exit ;
Funcionamento
Exemplo
Program PascalZIM ;
procedure proc ;
Begin
writeln('abc'); // Mostra abc
exit ; // Sai do procedure
writeln('def'); // Nunca chega aqui
End ;
47 / 168
Pascalzim
Begin
writeln( 'ghi' ); // Mostra ghi
func:= 5 ; // 5 o valor retornado
exit ; // Sai da funcao
writeln( 'jkl' ); // Nunca chega aqui
End ;
Begin
proc ; // Mostra abc
writeln(func); // Mostra ghi, depois 5
exit ; // Sai do programa
writeln( 'nada' ); // Nunca chega aqui
End.
Created with the Personal Edition of HelpNDoc: Create HTML Help, DOC, PDF and print manuals from 1 single
source
goto
Comando usado para forar o desvio do programa para um ponto especfico.
Sintaxe
goto rotuloInstrucao ;
Quando o comando executado, o programa desviado para a instruo que foi rotulada com
o nome informado.
rotuloInstrucao : instruo
Onde:
O rtulo de uma instruo deve ainda ser declarado na seo de declarao de dados do
programa, da seguinte maneira:
Exemplo
Program PascalZIM ;
// Declaracao de rotulos para o comando goto
label 1, 2, tres, 4, 5, 6, sete ;
var x: integer ;
// Declaracao de outros rotulos
label 8, 9 ;
begin
// Desvia o programa para o rotulo 'tres'
goto tres ;
1: writeln('linha 1');
48 / 168
Pascalzim
2: writeln('linha 2');
tres: writeln('linha 3');
4: writeln('linha 4');
5: writeln('linha 5');
6: writeln('linha 6');
sete: writeln('linha 7');
8: writeln('linha 8');
end.
Created with the Personal Edition of HelpNDoc: Free EPub and documentation generator
halt
Termina a execuo do programa.
Sintaxe
halt ;
halt(codigoErro: integer) ;
Exemplo
Program PascalZIM ;
procedure sair ;
Begin
halt(0);
writeln('Esse cdigo no ser executado'); // Nunca chega aqui
End ;
Begin
sair() ;
writeln( 'Esse cdigo tambm no ser executado' );
End.
Created with the Personal Edition of HelpNDoc: Single source CHM, PDF, DOC and HTML Help creation
Subprogramas
Subprogramas so partes de um programa que contm um cabealho, uma seo de definio
e declarao de dados e uma seo de comandos.
Procedimentos
Funes
49 / 168
Pascalzim
Os subprogramas podem ser embutidos; isto , um subprograma pode ser definido dentro do
bloco de declaraes de um outro subprograma. Um subprograma embutido pode ser chamado
somente pelo subprograma que o contm, sendo visvel somente para o subprograma que o
contm.
Created with the Personal Edition of HelpNDoc: Free PDF documentation generator
Procedimentos e funes
A declarao de procedimentos e funes difere apenas no cabealho.
Sintaxe
Procedure NomeProcedimento ;
Sintaxe
Onde:
50 / 168
Pascalzim
Regras de escopo
As regras de escopo, definidas para um programa escrito na linguagem Pascal, so as
seguintes:
Created with the Personal Edition of HelpNDoc: Free PDF documentation generator
Parmetros
Um subprograma pode receber parmetros. A definio dos parmetros passados a um
subprograma deve ser especificada no cabealho do subprograma, dentro de parnteses.
Os parmetros podem ter qualquer um dos tipos predefinidos da linguagem Pascal (dentre os
tipos primitivos implementados no compilador) ou ainda um tipo que pode ser um dentre os
definidos pelo usurio.
No primeiro caso o parmetro assume o valor passado como argumento pela rotina de
chamada, e no segundo caso o parmetro assume o endereo da varivel passada como
argumento pela rotina de chamada.
A passagem por referncia diferenciada da passagem por valor pela presena da palavra
reservada var antes do nome identificador do parmetro.
51 / 168
Pascalzim
exemplo( x );
Created with the Personal Edition of HelpNDoc: Free EPub and documentation generator
Funes recursivas
Uma funo pode chamar a si mesma de dentro de sua prpria seo de comandos. Quando
isto feito, a funo denominada funo recursiva.
O uso de funes recursivas consegue fornecer solues elegantes para certos tipos de
programas, como mostrado no exemplo abaixo, que calcula, para um nmero inteiro n, seu
fatorial:
Created with the Personal Edition of HelpNDoc: Create HTML Help, DOC, PDF and print manuals from 1 single
source
Funes auxiliares
O compilador implementa funes e procedimentos em unidades.
Unidade padro
Unidade graph
Created with the Personal Edition of HelpNDoc: Easy EBook and documentation generator
Unidade Graph
O compilador implementa as seguintes funes e procedimentos da unidade graph:
Arc
Bar
Bar3D
Circle
ClearDevice
ClearViewPort
CloseGraph
52 / 168
Pascalzim
DetectGraph
DrawPoly
Ellipse
FillEllipse
FillPoly
FloodFill
GetArcCoords
GetAspectRatio
GetBkColor
GetColor
GetDefaultPalette
GetDriverName
GetFillPattern
GetFillSettings
GetGraphMode
GetImage
GetLineSettings
GetMaxColor
GetMaxMode
GetMaxX
GetMaxY
GetModeName
GetModeRange
GetPalette
GetPaletteSize
GetPixel
GetTextSettings
GetViewSettings
GetX
GetY
GraphDefaults
GraphErrorMsg
GraphResult
ImageSize
InitGraph
InstallUserFont
Line
LineRel
LineTo
MoveRel
MoveTo
OutText
OutTextXY
PieSlice
PutImage
PutPixel
Rectangle
RestoreCrtMode
Sector
SetActivePage
53 / 168
Pascalzim
SetAllPalette
SetAspectRatio
SetBkColor
SetColor
SetFillPattern
SetFillStyle
SetGraphBufSize
SetGraphMode
SetLineStyle
SetPalette
SetRGBPalette
SetTextJustify
SetTextStyle
SetUserCharSize
SetViewPort
SetVisualPage
SetWriteMode
TextHeight
TextWidth
InstallUserDriver
RegisterBGIdriver
RegisterBGIFont
Created with the Personal Edition of HelpNDoc: Free Web Help generator
Tipos
O compilador implementa os seguintes tipos da unidade graph:
ArcCoordsType
FillPatternType
FillSettingsType
LineSettingsType
PaletteType
PointType
TextSettingsType
ViewPortType
ArcCoordsType
Especifica as coordenadas da ltima chamada ao procedure Arc ou Ellipse.
Sintaxe
54 / 168
Pascalzim
Created with the Personal Edition of HelpNDoc: Free EBook and documentation generator
FillPatternType
Define um padro de preenchimento definido pelo usurio.
Sintaxe
Created with the Personal Edition of HelpNDoc: Easy EPub and documentation editor
FillSettingsType
Define o padro e cor usado para preencher uma rea.
Sintaxe
LineSettingsType
Define o estilo, o padro e a espessura para desenho de linhas.
Sintaxe
55 / 168
Pascalzim
Created with the Personal Edition of HelpNDoc: Easily create PDF Help documents
PaletteType
Define o tamanho e as cores usadas pela paleta.
Sintaxe
const
MaxColors = 15;
Na paleta padro, a cor na posio zero define a cor de fundo da tela grfica.
Created with the Personal Edition of HelpNDoc: Easy EPub and documentation editor
PointType
Especifica as coordenadas (x, y) de um ponto.
Sintaxe
Created with the Personal Edition of HelpNDoc: Easy to use tool to create HTML Help files and Help web sites
TextSettingsType
Define os atributos utilizados para impresso de texto.
Sintaxe
56 / 168
Pascalzim
Vert : integer;
end;
Created with the Personal Edition of HelpNDoc: Create HTML Help, DOC, PDF and print manuals from 1 single
source
ViewPortType
Define o estado de uma janela (ViewPort).
Sintaxe
Created with the Personal Edition of HelpNDoc: Write EPub books for the iPad
Arc
Desenha parte de um crculo de raio r, centrado na coordenada (x, y), iniciando no ngulo
angInicio e finalizando no ngulo angFim.
Sintaxe
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
Begin
// Inicializa o modo grafico
57 / 168
Pascalzim
driver := Detect;
initgraph(driver, modo, '');
// Desenha arco amarelo de raio 40, com angulo entre 45 e 315, centrado em
(60, 70)
setColor(yellow);
arc(60, 70, 45, 315, 40);
Created with the Personal Edition of HelpNDoc: Easy EBook and documentation generator
Bar
Desenha um retngulo com borda nas coordenadas (x1, y1) e (x2, y2), preenchendo o mesmo
com a cor e estilo de preenchimento atuais.
Sintaxe
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
58 / 168
Pascalzim
Created with the Personal Edition of HelpNDoc: Single source CHM, PDF, DOC and HTML Help creation
Bar3D
Desenha um bloco retangular tridimensional, com profundidade p, e borda nas coordenadas
(x1, y1) e (x2, y2), preenchendo o mesmo com a cor e estilo de preenchimento atuais. Se top
true, ento um topo tridimensional desenhado.
Sintaxe
Sintaxe
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
59 / 168
Pascalzim
Created with the Personal Edition of HelpNDoc: Full-featured multi-format Help generator
Circle
Desenha um crculo de raio r, centrado na coordenada (x, y).
Sintaxe
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
60 / 168
Pascalzim
// Desenha ellipse de raio 20, com angulo entre 0 e 270, na coordenada (100,
50)
ellipse(100, 50, 0, 270, 20, 20);
// Desenha pizza verde, de raio 20, com angulo entre 45 e 315, na coordenada
(50, 100)
setColor(green);
pieSlice(50, 100, 45, 315, 20);
Created with the Personal Edition of HelpNDoc: Easily create EPub books
ClearDevice
Limpa a tela com cor de background atual. O cursor coloca na coordenada (0,0).
Sintaxe
procedure ClearDevice ;
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
61 / 168
Pascalzim
// Desenha ellipse de raio 20, com angulo entre 0 e 270, na coordenada (100,
50)
ellipse(100, 50, 0, 270, 20, 20);
// Desenha pizza verde, de raio 20, com angulo entre 45 e 315, na coordenada
(50, 100)
setColor(green);
pieSlice (50, 100, 45, 315, 20);
Created with the Personal Edition of HelpNDoc: Free iPhone documentation generator
ClearViewport
Limpa a janela corrente com cor de background atual. O cursor colocando na coordenada
(0,0).
Sintaxe
procedure ClearViewPort ;
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
62 / 168
Pascalzim
end;
// Limpa a tela
SetBkColor(white) ;
cleardevice ;
Created with the Personal Edition of HelpNDoc: Easily create CHM Help documents
CloseGraph
Finaliza o sistema grfico.
Sintaxe
procedure CloseGraph ;
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
63 / 168
Pascalzim
// Desenha ellipse de raio 20, com angulo entre 0 e 270, na coordenada (100,
50)
ellipse(100, 50, 0, 270, 20, 20);
// Desenha pizza verde, de raio 20, com angulo entre 45 e 315, na coordenada
(50, 100)
setColor(green);
pieSlice (50, 100, 45, 315, 20);
Created with the Personal Edition of HelpNDoc: Create iPhone web-based documentation
DetectGraph
Verifica o hardware e determina automaticamente qual driver e modo grfico deve ser utilizado.
Sintaxe
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
Begin
// Inicializa o modo grafico
detectGraph(driver, modo);
initgraph(driver, modo, '');
64 / 168
Pascalzim
Created with the Personal Edition of HelpNDoc: Free EBook and documentation generator
DrawPoly
Desenha o contorno de um polgono usando o estilo de linha e cores atuais.
Sintaxe
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
vetPontos: array[1..6] of PointType ;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
Created with the Personal Edition of HelpNDoc: Easily create iPhone documentation
Ellipse
65 / 168
Pascalzim
Desenha uma elipse de raio horizontal rx, raio vertical ry, centrada na coordenada (x, y),
iniciando no ngulo angInicio e finalizando no ngulo angFim.
Sintaxe
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
// Desenha ellipse de raio 20, com angulo entre 0 e 270, na coordenada (100,
50)
ellipse(100, 50, 0, 270, 20, 20);
// Desenha pizza verde, de raio 20, com angulo entre 45 e 315, na coordenada
(50, 100)
setColor(green);
pieSlice (50, 100, 45, 315, 20);
66 / 168
Pascalzim
Created with the Personal Edition of HelpNDoc: Easily create EPub books
FillEllipse
Desenha uma elipse de raio horizontal rx, raio vertical ry, centrada na coordenada (x, y),
preenchendo a mesma com a cor e estilo de preenchimento atuais.
Sintaxe
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
// Desenha ellipse
fillellipse(100, 70, 80, 50);
67 / 168
Pascalzim
Created with the Personal Edition of HelpNDoc: Free CHM Help documentation generator
FillPolly
Desenha os contornos de um polgono, depois preenche um polgono.
Sintaxe
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
vetPontos: array[1..6] of PointType ;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
// Desenha o polgono
setFillStyle(solidFill, green);
FillPoly(6, vetPontos);
Created with the Personal Edition of HelpNDoc: Easily create CHM Help documents
FloodFill
Preenche a rea que contm o ponto (x, y). Essa rea est limitada pela corBorda.
68 / 168
Pascalzim
Sintaxe
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
// Limpa a tela
SetBkColor(white) ;
cleardevice ;
Created with the Personal Edition of HelpNDoc: Easily create HTML Help documents
GetArcCoords
Recupera as coordenadas dos pontos correspondentes ao ltimo comando Arc.
Sintaxe
69 / 168
Pascalzim
desejados.
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
coordenadasArco: ArcCoordsType ;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
Created with the Personal Edition of HelpNDoc: Single source CHM, PDF, DOC and HTML Help creation
GetAspectRatio
Recupera, nas variveis xasp e yasp, a proporo efetiva da tela.
Sintaxe
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
xasp, yasp : integer ;
Begin
// Inicializa o modo grafico
70 / 168
Pascalzim
driver := Detect;
initgraph(driver, modo, '');
Created with the Personal Edition of HelpNDoc: Full-featured Kindle eBooks generator
GetBkColor
Retorna a cor de fundo atual.
Sintaxe
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
71 / 168
Pascalzim
Created with the Personal Edition of HelpNDoc: Produce Kindle eBooks easily
GetColor
Retorna a cor de desenho atual.
Sintaxe
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
// Escreve mensagem
setcolor(lightgreen);
outTextXY(10, 10, 'Estou usando a cor ' + intToStr(getColor));
setcolor(red);
outTextXY(10, 30, 'Estou usando a cor ' + intToStr(getColor));
72 / 168
Pascalzim
setcolor(green);
outTextXY(10, 50, 'Estou usando a cor ' + intToStr(getColor));
Created with the Personal Edition of HelpNDoc: Free HTML Help documentation generator
GetDefaultPalette
Recupera a palheta inicial do modo grfico, configurada de acordo com a chamada a InitGraph.
Sintaxe
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo, i: integer ;
palheta, palhetaPadrao: PaletteType;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
73 / 168
Pascalzim
Created with the Personal Edition of HelpNDoc: Single source CHM, PDF, DOC and HTML Help creation
GetDriverName
Retorna o nome do driver utilizado pelo sistema grfico.
Sintaxe
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
// Escreve mensagem
setcolor(lightgreen);
outTextXY(10, 10, 'Estou usando o modo ' + intToStr(getGraphMode));
outTextXY(10, 30, 'O nome desse modo eh ' + getModeName(getGraphMode)) ;
outTextXY(10, 50, 'Estou usando o driver ' + getDriverName) ;
74 / 168
Pascalzim
readkey;
closegraph;
End.
Created with the Personal Edition of HelpNDoc: Easily create CHM Help documents
GetFillSettings
Recupera o padro e cor que esto sendo utilizados para preenchimento de formas.
Sintaxe
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
dadosPreenchimento: FillSettingsType;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
// Guarda o estilo
GetFillSettings(dadosPreenchimento);
75 / 168
Pascalzim
Created with the Personal Edition of HelpNDoc: Free CHM Help documentation generator
GetFillPattern
Recupera o padro de preenchimento que est sendo utilizado para preenchimento de formas.
Sintaxe
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
76 / 168
Pascalzim
End.
Created with the Personal Edition of HelpNDoc: Write EPub books for the iPad
GetGraphMode
Retorna o modo grfico definido na inicializao do sistema grfico.
Sintaxe
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
// Escreve mensagem
setcolor(lightgreen);
outTextXY(10, 10, 'Estou usando o modo ' + intToStr(getGraphMode));
outTextXY(10, 30, 'O nome desse modo eh ' + getModeName(getGraphMode)) ;
Created with the Personal Edition of HelpNDoc: Easy EBook and documentation generator
GetImage
Salva, na varivel bitmap, uma cpia dos pixels armazenados na regio que est delimitada
pelas coordenadas (x1, y1) e (x2, y2).
77 / 168
Pascalzim
Sintaxe
Exemplo
Program Pascalzim ;
uses graph ;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
78 / 168
Pascalzim
Created with the Personal Edition of HelpNDoc: Easily create CHM Help documents
GetLineSettings
Recupera as configuraes do modo grfico para desenho de linhas.
Sintaxe
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
estiloInicial: LineSettingsType;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
79 / 168
Pascalzim
Created with the Personal Edition of HelpNDoc: Easily create iPhone documentation
GetMaxColor
Retorna a maior cor suportada pelo modo grfico.
Sintaxe
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
Created with the Personal Edition of HelpNDoc: Free CHM Help documentation generator
GetMaxMode
Retorna o maior modo grfico suportado pelo driver grfico carregado.
Sintaxe
Exemplo
Program Pascalzim ;
80 / 168
Pascalzim
uses graph ;
var driver, modo, i: integer ;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
Created with the Personal Edition of HelpNDoc: Generate EPub eBooks with ease
GetMaxX
Retorna o nmero de colunas (largura) da tela.
Sintaxe
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo, i: integer ;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
81 / 168
Pascalzim
cleardevice;
Created with the Personal Edition of HelpNDoc: Generate EPub eBooks with ease
GetMaxY
Retorna o nmero de linhas (altura) da tela.
Sintaxe
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo, i: integer ;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
82 / 168
Pascalzim
Created with the Personal Edition of HelpNDoc: Full-featured multi-format Help generator
GetModeName
Retorna o nome do modo grfico informado.
Sintaxe
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
// Escreve mensagem
setcolor(lightgreen);
outTextXY(10, 10, 'Estou usando o modo ' + intToStr(getGraphMode));
outTextXY(10, 30, 'O nome desse modo eh ' + getModeName(getGraphMode)) ;
outTextXY(10, 50, 'Estou usando o driver ' + getDriverName) ;
Created with the Personal Edition of HelpNDoc: Free help authoring environment
83 / 168
Pascalzim
GetModeRange
Retorna o maior e o menor modo grfico suportado pelo driver informado.
Sintaxe
Exemplo
Program Pascalzim ;
uses graph ;
var menorModo, maiorModo: integer;
Begin
GetModeRange(VGAHI, menorModo, maiorModo);
writeln('Menor modo grfico = ', menorModo);
writeln('Maior modo grfico = ', maiorModo);
End.
GetPalette
Recupera a palheta atual e seu tamanho.
Sintaxe
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
palheta: PaletteType;
posicao, cor: integer ;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
84 / 168
Pascalzim
end;
GetPaletteSize
Retorna o tamanho da palheta de desenho.
Sintaxe
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
palheta: PaletteType;
posicao, cor: integer ;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
85 / 168
Pascalzim
Created with the Personal Edition of HelpNDoc: Easy CHM and documentation editor
GetPixel
Retorna a cor do pixel que da coordenada (x, y).
Sintaxe
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
86 / 168
Pascalzim
GraphErrorMsg(graphResult));
exit;
end;
GetTextSettings
Recupera as configuraes do modo grfico para escrita de texto.
Sintaxe
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
estiloInicial: TextSettingsType;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
87 / 168
Pascalzim
SetTextJustify(LeftText, CenterText) ;
OutTextXY(10, 10, 'Texto com estilo inicial');
Created with the Personal Edition of HelpNDoc: Single source CHM, PDF, DOC and HTML Help creation
GetViewSettings
Recupera as configuraes do modo grfico para a janela (viewport) atual.
Sintaxe
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
estiloJanela : ViewPortType ;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
88 / 168
Pascalzim
Created with the Personal Edition of HelpNDoc: Free EBook and documentation generator
GetX
Retorna a coluna (coordenada x) onde est posicionado o cursor grfico.
Sintaxe
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
xs, ys: string;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
89 / 168
Pascalzim
end;
Created with the Personal Edition of HelpNDoc: Free EBook and documentation generator
GetY
Retorna a linha (coordenada y) onde est posicionado o cursor grfico.
Sintaxe
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
xs, ys: string;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
90 / 168
Pascalzim
setbkcolor(blue);
cleardevice;
Created with the Personal Edition of HelpNDoc: Produce Kindle eBooks easily
GraphDefaults
Inicializa todas as variveis do sistema grfico. Essas variveis incluem:
o viewport
o palhetas
o cores de desenho e background
o estilo e padro de linha
o estilo, cor e padro de preenchimento
o fonte ativa, estilo e alinhamento de texto
Sintaxe
procedure GraphDefaults ;
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
91 / 168
Pascalzim
ClearViewPort;
GraphDefaults;
OutText('Texto escrito na cor padrao');
Created with the Personal Edition of HelpNDoc: Free help authoring tool
GraphErrorMsg
Retorna a mensagem de erro correspondente ao cdigo informado.
Sintaxe
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
Created with the Personal Edition of HelpNDoc: Generate EPub eBooks with ease
GraphResult
Retorna um cdigo de erro para a ltima operao grfica.
Sintaxe
92 / 168
Pascalzim
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
Created with the Personal Edition of HelpNDoc: Single source CHM, PDF, DOC and HTML Help creation
93 / 168
Pascalzim
ImageSize
Retorna o nmero de bytes necessrios para armazenar a imagem no retngulo definido pelas
coordenadas (x1, y1) e (x2, y2).
Sintaxe
Exemplo
Program Pascalzim ;
uses graph ;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
94 / 168
Pascalzim
Created with the Personal Edition of HelpNDoc: Easily create PDF Help documents
InitGraph
Inicializa o sistema grfico.
Sintaxe
Se driver armazena o valor dado pela constante Detect, o sistema grfico detecta
automaticamente o driver e o modo.
Se driver armazena um valor diferente de Detect, esse valor assumido como o nmero do
driver a ser utilizado. Esse driver ento selecionado, e o sistema colocado no modo
especificado.
DETECT
VGA
CUSTOM
VGALO
VGAMED
VGAHI
GM_640x480
GM_800x600
GM_1024x768
GM_NOPALETTE
Depois de chamar o procedimento, driver passa a armazenar o driver grfico atual, e modo
passa a armazenar o modo grfico atual.
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
95 / 168
Pascalzim
// Desenha ellipse de raio 20, com angulo entre 0 e 270, na coordenada (100,
50)
ellipse(100, 50, 0, 270, 20, 20);
// Desenha pizza verde, de raio 20, com angulo entre 45 e 315, na coordenada
(50, 100)
setColor(green);
pieSlice (50, 100, 45, 315, 20);
Created with the Personal Edition of HelpNDoc: Easy to use tool to create HTML Help files and Help web sites
InstallUserFont
Habilita uma nova fonte para ser utilizada no modo grfico.
Sintaxe
O valor de retorno corresponde a um inteiro que pode ser utilizado em SetTextStyle para
selecionar a fonte informada.
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
linhaTexto, tamanhoTexto: integer;
texto: string;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
96 / 168
Pascalzim
Created with the Personal Edition of HelpNDoc: Free HTML Help documentation generator
Line
Desenha uma linha que vai da coordenada (x1, y1) at a coordenada (x2, y2).
Sintaxe
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo, i: integer ;
Begin
// Inicializa o modo grafico
driver := Detect;
97 / 168
Pascalzim
Created with the Personal Edition of HelpNDoc: Free EPub and documentation generator
LineRel
Desenha uma linha que vai da coordenada atual (x, y) at a coordenada (x + dx, y + dy).
Sintaxe
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
98 / 168
Pascalzim
setbkcolor(blue);
cleardevice;
Created with the Personal Edition of HelpNDoc: Free iPhone documentation generator
LineTo
Desenha uma linha que vai da coordenada atual at a coordenada (x, y).
Sintaxe
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
99 / 168
Pascalzim
End.
Created with the Personal Edition of HelpNDoc: Produce Kindle eBooks easily
MoveRel
Move o cursor para a coordenada (x + dx, y + dy), assumindo que (x, y) a coordenada atual.
Sintaxe
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
MoveTo
Move o cursor para a coordenada (x, y).
100 / 168
Pascalzim
Sintaxe
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
Created with the Personal Edition of HelpNDoc: Write eBooks for the Kindle
OutText
Escreve o texto na posio corrente da tela, usando as configuraes atuais de fonte e texto.
Sintaxe
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
Begin
// Inicializa o modo grafico
101 / 168
Pascalzim
driver := Detect;
initgraph(driver, modo, '');
Created with the Personal Edition of HelpNDoc: Full-featured Kindle eBooks generator
OutTextXY
Escreve o texto na coordenada (x, y), usando as configuraes atuais de fonte e texto.
Sintaxe
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
102 / 168
Pascalzim
PieSlice
Desenha o setor de um crculo de raio r na coordenada (x, y), iniciando no angulo angInicio e
terminando no angulo angFim. O setor preenchido com a cor atual de primeiro plano.
Sintaxe
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
103 / 168
Pascalzim
exit;
end;
// Desenha ellipse de raio 20, com angulo entre 0 e 270, na coordenada (100,
50)
ellipse(100, 50, 0, 270, 20, 20);
// Desenha pizza verde, de raio 20, com angulo entre 45 e 315, na coordenada
(50, 100)
setColor(green);
pieSlice (50, 100, 45, 315, 20);
Created with the Personal Edition of HelpNDoc: Free Web Help generator
PutImage
Desenha o bitmap na coordenada (x1, y1).
Sintaxe
104 / 168
Pascalzim
NormalPut
CopyPut
XORPut
ORPut
AndPut
NotPut
Exemplo
Program Pascalzim ;
uses graph ;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
PutPixel
Desenha um pixel na coordenada (x, y) com a cor c.
Sintaxe
105 / 168
Pascalzim
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo, lin, col: integer ;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
Created with the Personal Edition of HelpNDoc: Easy to use tool to create HTML Help files and Help web sites
Rectangle
Desenha um retngulo com borda nas coordenadas (x1, y1) e (x2, y2), usando a cor e estilo
atuais.
Sintaxe
Exemplo
106 / 168
Pascalzim
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
Created with the Personal Edition of HelpNDoc: Easily create Web Help sites
RestoreCrtMode
Restaura a tela para o modo que estava ativo antes da inicializao do modo grfico.
Sintaxe
procedure RestoreCrtMode ;
No Turbo Pascal essa funo era utilizada para alternar entre o modo grfico e o modo
console.
Assim, no modo grfico podia-se chamar essa funo para alternar para o modo console e
utilizar comandos de impresso em console (writeln).
No Pascalzim no necessrio chamar essa funo, pois ele mantm duas janelas separadas:
a janela de console e a janela grfica.
107 / 168
Pascalzim
Sector
Desenha com preenchimento o setor de uma elipse de raio horizontal rx, raio vertical ry,
centrado na coordenada (x, y), com incio no angulo angInicio e trmino no angulo angFim.
Sintaxe
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
// Desenha ellipse de raio 20, com angulo entre 0 e 270, na coordenada (100,
50)
ellipse(100, 50, 0, 270, 20, 20);
// Desenha pizza verde, de raio 20, com angulo entre 45 e 315, na coordenada
(50, 100)
setColor(green);
pieSlice (50, 100, 45, 315, 20);
108 / 168
Pascalzim
Created with the Personal Edition of HelpNDoc: Generate EPub eBooks with ease
SetActivePage
Define qual pgina ser utilizada como sada (estar ativa) para os comandos de desenho
informados em seguida.
Sintaxe
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
109 / 168
Pascalzim
SetVisualPage(0);
readkey ;
SetAllPalette
Altera as cores da palheta de desenho atual para as cores especificadas na nova palheta.
Sintaxe
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
posicao, cor: integer ;
novaPaleta, palheta: PaletteType;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
110 / 168
Pascalzim
Colors[2] := lightgreen ;
Colors[3] := lightcyan ;
SetAllPalette(novaPaleta);
end;
Created with the Personal Edition of HelpNDoc: iPhone web sites made easy
SetAspectRatio
Define a proporo efetiva da tela.
Sintaxe
Created with the Personal Edition of HelpNDoc: Free EBook and documentation generator
SetBkColor
Define a cor de background da tela.
Sintaxe
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
111 / 168
Pascalzim
begin
writeln('Erro ao inicializar o modo grafico:',
GraphErrorMsg(graphResult));
exit;
end;
// Desenha ellipse de raio 20, com angulo entre 0 e 270, na coordenada (100,
50)
ellipse(100, 50, 0, 270, 20, 20);
// Desenha pizza verde, de raio 20, com angulo entre 45 e 315, na coordenada
(50, 100)
setColor(green);
pieSlice (50, 100, 45, 315, 20);
SetColor
Define a cor de primeiro plano da tela.
Sintaxe
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
112 / 168
Pascalzim
begin
writeln('Erro ao inicializar o modo grafico:',
GraphErrorMsg(graphResult));
exit;
end;
// Desenha ellipse de raio 20, com angulo entre 0 e 270, na coordenada (100,
50)
ellipse(100, 50, 0, 270, 20, 20);
// Desenha pizza verde, de raio 20, com angulo entre 45 e 315, na coordenada
(50, 100)
setColor(green);
pieSlice (50, 100, 45, 315, 20);
SetFillStyle
Define o estilo para preenchimento de formas.
Sintaxe
113 / 168
Pascalzim
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
// Limpa a tela
SetBkColor(white) ;
cleardevice ;
Created with the Personal Edition of HelpNDoc: Easily create iPhone documentation
SetFillPattern
Define o padro de preenchimento que ser utilizado para preenchimento de formas.
Sintaxe
114 / 168
Pascalzim
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
padraoInicial : FillPatternType;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
Created with the Personal Edition of HelpNDoc: Generate EPub eBooks with ease
SetGraphBufSize
Muda o tamanho do buffer utilizado pelo modo grfico.
Sintaxe
115 / 168
Pascalzim
Created with the Personal Edition of HelpNDoc: Write EPub books for the iPad
SetGraphMode
Seta o modo grfico e limpa a tela.
Sintaxe
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
// Desenha um circulo
circle(50, 50, 30);
readkey;
Created with the Personal Edition of HelpNDoc: Create HTML Help, DOC, PDF and print manuals from 1 single
source
SetLineStyle
Define o estilo para desenho de linhas.
116 / 168
Pascalzim
Sintaxe
Se o estilo UserBitln for utilizado, padrao contm o caractere usado para desenhar a linha. Para
os outros estilos, o valor informado em padrao ser ignorado
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
// Desenha retangulo
SetLineStyle(DottedLn, 0, NormWidth);
Rectangle(10, 10, 200, 60);
// Desenha retangulo
SetLineStyle(DashedLn, 0, NormWidth);
Rectangle(10, 70, 200, 120);
117 / 168
Pascalzim
closegraph;
End.
Created with the Personal Edition of HelpNDoc: Write eBooks for the Kindle
SetPalette
Altera a cor que est armazenada em uma dada posio da palheta.
Sintaxe
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
palheta: PaletteType;
posicao, cor: integer ;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
118 / 168
Pascalzim
SetRGBPalette
Altera a entrada da palheta, na posio especificada, para a cor com valores RGB dados por r,
g e b.
Sintaxe
Exemplo
Program Pascalzim ;
uses graph ;
const maxcor=255;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
119 / 168
Pascalzim
Created with the Personal Edition of HelpNDoc: Easily create iPhone documentation
SetTextJustify
Controla a impresso de um novo texto, com relao ao cursor corrente.
Sintaxe
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
estiloInicial: TextSettingsType;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
120 / 168
Pascalzim
begin
SetTextJustify(Horiz, Vert);
SetTextStyle(Font, Direction, CharSize);
end;
OutTextXY(10, 30, 'Outro texto com estilo inicial');
SetTextStyle
Define o estilo para impresso de texto no modo grfico.
Sintaxe
Para utilizar uma fonte diferente daquelas pr-definidas utilize a funo InstallUserFont.
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
numFonte, numLinha : integer ;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
121 / 168
Pascalzim
// Inicializa variaveis
SetColor(lightgreen);
numLinha := 0;
Created with the Personal Edition of HelpNDoc: Free iPhone documentation generator
122 / 168
Pascalzim
SetUserCharSize
Define o comprimento e a largura de fontes vetoriais.
Sintaxe
O tamanho horizontal dado por Xasp1/Xasp2, enquanto o tamanho vertical dado por Yasp1/
Yasp2.
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
SetViewPort
Define uma janela no retngulo com borda nas coordenadas (x1, y1) e (x2, y2).
123 / 168
Pascalzim
Sintaxe
Se a varivel clip receber o valor true, todos os desenhos subsequentes sero realizados na
janela.
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
// Limpa a tela
SetBkColor(white) ;
cleardevice ;
Created with the Personal Edition of HelpNDoc: Easily create EPub books
SetVisualPage
Define qual pgina ser apresentada na tela.
Sintaxe
124 / 168
Pascalzim
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
Created with the Personal Edition of HelpNDoc: Create HTML Help, DOC, PDF and print manuals from 1 single
125 / 168
Pascalzim
source
SetWriteMode
Controla a maneira como ser feito o desenho de linhas na tela.
Sintaxe
CopyPut
XORPut
Usando o modo XORPut feito um xor entre os pixels da linha e os pixels da tela.
Assim, em termos prticos, quando uma linha desenhada duas vezes em uma mesmo local,
com o modo XORPut setado, no segundo desenho a tela ser restaurada para cor original.
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
x, y: integer ;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
// Desenha retngulo
SetWriteMode(CopyPut);
Rectangle(x, y, x + 100, y + 100);
Delay(500);
// Apara retngulo
SetWriteMode(XORPut);
Rectangle(x, y, x + 100, y + 100);
until KeyPressed;
126 / 168
Pascalzim
readkey;
closegraph;
End.
Created with the Personal Edition of HelpNDoc: Easy CHM and documentation editor
TextHeight
Retorna a altura do texto, em pixels, de acordo com a fonte e tamanho de texto definidos.
Sintaxe
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
linhaTexto, tamanhoTexto: integer;
texto: string;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
127 / 168
Pascalzim
closegraph;
End.
Created with the Personal Edition of HelpNDoc: Free EBook and documentation generator
TextWidth
Retorna o comprimento do texto, em pixels, de acordo com a fonte e tamanho de texto
definidos.
Sintaxe
Exemplo
Program Pascalzim ;
uses graph ;
var driver, modo: integer ;
linhaTexto, tamanhoTexto: integer;
texto: string;
Begin
// Inicializa o modo grafico
driver := Detect;
initgraph(driver, modo, '');
128 / 168
Pascalzim
readkey;
closegraph;
End.
Created with the Personal Edition of HelpNDoc: Single source CHM, PDF, DOC and HTML Help creation
Unidade Padro
O compilador implementa as seguintes funes na unidade padro:
abs
arctan
chr
concat
copy
cos
eof
eoln
exp
frac
FreeMem
GetMem
int
keypressed
length
ln
odd
ord
pos
pred
random
readkey
round
sin
sqr
sqrt
succ
trunc
upcase
wherex
wherey
chdir
clreol
clrscr
cursoroff
cursoron
dec
delay
129 / 168
Pascalzim
delete
delline
erase
getdate
getdir
gettime
gotoxy
highvideo
inc
insert
insline
lowvideo
mkdir
normvideo
randomize
rename
rmdir
str
textbackground
textcolor
val
window
with
Created with the Personal Edition of HelpNDoc: iPhone web sites made easy
abs
Retorna o valor absoluto de um argumento numrico.
Sintaxe
Exemplo
Program Pascalzim ;
var r: real ;
i: integer ;
Begin
r:= abs( -2.3 ); // r recebe 2.3
i:= abs( -157 ); // i recebe 157
End.
Created with the Personal Edition of HelpNDoc: Write EPub books for the iPad
arctan
130 / 168
Pascalzim
Sintaxe
Exemplo
Program Pascalzim ;
var r: real ;
Begin
r:= arctan( 3.14 );
End.
Created with the Personal Edition of HelpNDoc: Free EPub and documentation generator
chr
Recebe como parmetro um inteiro e retorna o caractere ASCII correspondente ao cdigo
identificado com esse inteiro.
Sintaxe
Exemplo
Program Pascalzim ;
var i: integer ;
Begin
for i:= 32 to 126 do
write( chr(I) );
End.
Created with the Personal Edition of HelpNDoc: Easily create CHM Help documents
chdir
Modifica o diretrio de trabalho atual.
Sintaxe
Exemplo
Program PascalZIM ;
var nomePasta: string ;
Begin
// Recupera a pasta de trabalho atual
getdir(0, nomePasta);
writeln('A pasta de trabalho atual ', nomePasta);
131 / 168
Pascalzim
Created with the Personal Edition of HelpNDoc: Easily create HTML Help documents
clreol
Limpa o texto da linha onde est posicionado o cursor do teclado.
Sintaxe
procedure clreol ;
Exemplo
Program PascalZIM ;
uses crt ;
Begin
// Escreve trs linhas de texto
writeln( 'primeira linha' );
writeln( 'segunda linha' );
writeln( 'terceira linha' );
Created with the Personal Edition of HelpNDoc: Free help authoring tool
clrscr
Limpa a tela de impresso.
Sintaxe
procedure clrscr ;
Exemplo
Program PascalZIM ;
Begin
clrscr ;
132 / 168
Pascalzim
Created with the Personal Edition of HelpNDoc: Free iPhone documentation generator
concat
Concatena uma sequencia de cadeias de caracteres.
Sintaxe
Onde s1, s2, s3 so expresses do tipo string. As reticncias indicam que mais de uma
expresso pode ser informada para a funo concat.
Exemplo
Program Pascalzim ;
var s1, s2, cadeia: string ;
vetor: array[1..4] of char ;
Begin
// Exibe Compilador Pascalzim
s1:= 'Compilador';
s2:= 'Pascalzim';
cadeia:= concat(s1, ' ', s2);
writeln( cadeia );
// Exibe pzim
vetor[1]:= 'p' ;
vetor[2]:= 'z' ;
vetor[3]:= 'i' ;
vetor[4]:= 'm' ;
writeln( concat(vetor[1],vetor[2],vetor[3],vetor[4]));
End.
copy
Retorna parte de uma cadeia de caracteres.
Sintaxe
Onde:
133 / 168
Pascalzim
Funcionamento
Retorna uma subcadeia de cadeia, que comea na posio dada por posInicio.
Quantidade denota a quantidade de caracteres que sero retornados a partir da posio
informada.
O primeiro caractere da cadeia est armazenado na posio 1.
Se quantidade for menor ou igual a zero, ser retornada uma cadeia vazia.
Se posInicio for maior que o tamanho da cadeia, ser retornada uma cadeia vazia.
Se posInicio for menor ou igual a zero, ser assumido que posInicio corresponde ao
inicio da cadeia.
Se a soma de posInicio e quantidade for maior que o tamanho da cadeia, retorna a
subcadeia de cadeia que comea em posInicio.
Exemplo
Exemplo
Program Pascalzim ;
var cadeia: string ;
Begin
cadeia:= 'abcdef' ;
writeln( copy(cadeia, 3, 4) ); // Exibe cdef
writeln( copy(cadeia, -3, 4) ); // Exibe abcd
writeln( copy(cadeia, 30, 4) ); // Exibe cadeia vazia
writeln( copy(cadeia, 4, -2) ); // Exibe cadeia vazia
End.
cos
Retorna o cosseno do argumento ( x um ngulo, em radianos ).
Sintaxe
Exemplo
Program Pascalzim ;
var r: real ;
Begin
134 / 168
Pascalzim
Created with the Personal Edition of HelpNDoc: Easily create Help documents
cursoroff
Esconde o cursor do teclado.
Sintaxe
procedure cursoroff ;
Exemplo
Program PascalZIM ;
Begin
write( 'mostrando o cursor' );
readkey ;
cursoroff ;
write( 'cursor escondido' );
readkey ;
cursoron ;
write( 'agora o cursor voltou' );
End.
Created with the Personal Edition of HelpNDoc: Easily create Help documents
cursoron
Deixa visvel o cursor do teclado.
Sintaxe
procedure cursoron ;
Exemplo
Program PascalZIM ;
Begin
write( 'mostrando o cursor' );
readkey ;
cursoroff ;
write( 'cursor escondido' );
readkey ;
cursoron ;
write( 'agora o cursor voltou' );
End.
Created with the Personal Edition of HelpNDoc: Easily create HTML Help documents
135 / 168
Pascalzim
dec
Diminui o valor armazenado em uma varivel.
Sintaxe
Exemplo
Program PascalZIM ;
var intVar: integer ;
Begin
dec( intVar ); { Equivalente a IntVar:= IntVar - 1 }
End.
Um novo decremento de dois, por sua vez, faz o ponteiro apontar para dois elementos antes no
vetor.
Exemplo
Program Pzim ;
// Declara um vetor
const vetor: array[1..5] of integer = ( 10, 20, 30, 40, 50 ) ;
// Guarda o endereco de um inteiro
var p: ^integer ;
Begin
// O ponteiro guarda o endereco do quinto elemento do vetor
p:= @vetor[5] ;
writeln(p^); // Mostra 50
Created with the Personal Edition of HelpNDoc: Free CHM Help documentation generator
136 / 168
Pascalzim
delay
Suspende a execuo do programa durante X milissegundos.
Sintaxe
Onde tempo uma expresso do tipo integer que indica, em milissegundos, quanto tempo a
execuo do programa ser suspensa.
Exemplo
Program PascalZIM ;
var milissegundos: integer ;
Begin
write( 'Quanto tempo (em milissegundos) o programa ficar inativo?' );
readln( milissegundos );
writeln( 'Parando a execuo por um tempo...' );
delay( milissegundos );
writeln( 'De volta ativa! ' );
End.
Created with the Personal Edition of HelpNDoc: Free PDF documentation generator
delete
Usado para remover parte de uma cadeia.
Sintaxe
Funcionamento
Exemplo
137 / 168
Pascalzim
Exemplo
Program PascalZIM ;
var cadeia: string ;
Begin
cadeia:= '1234567' ;
writeln( 'Valor de cadeia: ', cadeia );
delete( cadeia, 3, 4 );
writeln( 'Depois do delete: ', cadeia ); // Mostra 127
End.
Created with the Personal Edition of HelpNDoc: Full-featured multi-format Help generator
delline
Remove do console a linha onde est posicionado o cursor do teclado.
Sintaxe
procedure delline ;
Exemplo
Program PascalZIM ;
uses crt ;
Begin
// Escreve trs linhas de texto
writeln( 'primeira linha' );
writeln( 'segunda linha' );
writeln( 'terceira linha' );
// Posiciona o cursor na segunda linha, depois remove essa linha
gotoxy( 1,2 );
delline ;
readkey ;
End.
138 / 168
Pascalzim
Created with the Personal Edition of HelpNDoc: Free EPub and documentation generator
eof
Usada para verificar se o final de um arquivo foi alcanado durante uma leitura de valores.
Sintaxe
A funo recebe como argumento uma varivel do tipo text, retornando true se o cursor de
leitura do arquivo referenciado por F se encontra no seu fim, false em caso contrrio.
Exemplo
Created with the Personal Edition of HelpNDoc: Create iPhone web-based documentation
eoln
Usada para verificar se o final de uma linha em um arquivo do tipo texto foi alcanado durante
uma leitura de valores.
Sintaxe
A funo recebe como argumento uma varivel do tipo text, retornando true se o cursor de
leitura do arquivo referenciado por F se encontra no fim de uma linha, false em caso contrrio.
Exemplo
139 / 168
Pascalzim
write( caractere );
End ;
End.
Created with the Personal Edition of HelpNDoc: Create HTML Help, DOC, PDF and print manuals from 1 single
source
erase
Apaga um arquivo em disco.
Sintaxe
Exemplo
Program PascalZIM ;
var arq: text ;
begin
// Cria o arquivo de teste
assign(arq, 'c:\teste.txt');
rewrite(arq);
close(arq);
Created with the Personal Edition of HelpNDoc: Easy to use tool to create HTML Help files and Help web sites
exp
Retorna o exponencial do argumento.
Sintaxe
Exemplo
Program Pascalzim ;
Begin
writeln( 'e = ', exp(1.0) );
End.
Created with the Personal Edition of HelpNDoc: Easily create iPhone documentation
frac
Retorna a parte fracionria de um valor numrico.
140 / 168
Pascalzim
Sintaxe
Exemplo
Program Pascalzim ;
Begin
writeln( int(12.34) ); // Mostra 12.00
writeln( frac(12.34) ); // Mostra 0.34
writeln( int(12) ); // Mostra 12.00
writeln( frac(12) ); // Mostra 0.00
End.
Created with the Personal Edition of HelpNDoc: Free PDF documentation generator
FreeMem
Libera uma determinada quantidade de memria (em bytes) que foi alocada para um ponteiro.
Sintaxe
Como alternativa, pode-se utilizar tambm os mtodos new e dispose para alocar e liberar
memria para um ponteiro.
Exemplo
Program Pascalzim ;
var p: ^integer ;
v: integer ;
Begin
GetMem( p, sizeof(integer) ); // Aloca espao para armazenar um inteiro
p^:= 10 ; // Guarda um inteiro na posio apontada por p
writeln( 'Valor armazenado na posicao de memoria: ', p^ );
v:= p^ ; //Guarda em v o valor apontado por p
writeln( 'Valor armazenado em v: ', v );
FreeMem( p, sizeof(integer) ); // Libera a memoria associada a p
readln ;
End.
getdate
Recupera a data corrente.
Sintaxe
procedure getdate( var ano: integer; var mes: integer; var dia: integer; var
diaSemana: integer );
141 / 168
Pascalzim
Onde:
Exemplo
Program PascalZIM ;
const
DiaDaSemana: array[0..6] of
string=('Domingo','Segunda','Tera','Quarta','Quinta','Sexta','Sbado');
MesDoAno: array[1..12] of
string=('Janeiro','Fevereiro','Marco','Abril','Maio','Junho',
'Julho','Agosto','Setembro','Outubro','Nov
embro','Dezembro');
var
dia, mes, ano, diaSemana: integer ;
Begin
// Recupera a data corrente
GetDate(ano, mes, dia, diaSemana);
Created with the Personal Edition of HelpNDoc: Easy CHM and documentation editor
getdir
Recupera o diretrio de trabalho atual.
Sintaxe
Onde:
Exemplo
Program PascalZIM ;
var nomePasta: string ;
Begin
// Recupera a pasta de trabalho atual
getdir(0, nomePasta);
writeln('A pasta de trabalho atual ', nomePasta);
142 / 168
Pascalzim
getdir(0, nomePasta);
writeln('Agora estamos em ', nomePasta);
GetMem
Aloca uma determinada quantidade de memria (em bytes) para um ponteiro.
Sintaxe
Ao especificar a quantidade de memria, uma boa prtica utilizar a funo sizeof para dizer ao
compilador o tamanho do tipo de dados que ser armazenado. Exemplo:
GetMem( p, 10*sizeof(char) );
Isso porque o tamanho dos tipos, no Pascalzim no segue o tamanho dos tipos de acordo com
a definio da linguagem Pascal.
Como alternativa, pode-se utilizar tambm os mtodos new e dispose para alocar e liberar
memria para um ponteiro.
Exemplo
Program Pascalzim ;
var p: ^integer ;
v: integer ;
Begin
GetMem( p, sizeof(integer) ); // Aloca espao para armazenar um inteiro
p^:= 10 ; // Guarda um inteiro na posio apontada por p
writeln( 'Valor armazenado na posicao de memoria: ', p^ );
v:= p^ ; //Guarda em v o valor apontado por p
writeln( 'Valor armazenado em v: ', v );
FreeMem( p, sizeof(integer) ); // Libera a memoria associada a p
readln ;
End.
Created with the Personal Edition of HelpNDoc: Free help authoring tool
gettime
Recupera a hora corrente.
Sintaxe
procedure gettime( var hora: integer; var minuto: integer; var segundo:
integer; var milisegundo: integer );
143 / 168
Pascalzim
Onde:
Exemplo
Program PascalZIM ;
var
hora, minuto, segundo, msegundo: integer ;
Begin
// Recupera a hora corrente
GetTime(hora, minuto, segundo, msegundo);
gotoxy
O comando gotoxy define a posio do cursor do teclado na tela de console.
Essa tela possui vrias linhas, e cada linha possui um conjunto de colunas.
As linhas aumentam de cima para baixo na tela, enquanto as colunas aumentam da esquerda
para a direita.
Sintaxe
Exemplo
Program PascalZIM ;
Begin
gotoxy(10,2);
textcolor( lightcyan );
textbackground( red );
write( 'Ol, mundo!' );
End.
Created with the Personal Edition of HelpNDoc: Free help authoring tool
highvideo
Faz com o texto impresso em console aparea em alta intensidade.
144 / 168
Pascalzim
Sintaxe
procedure highvideo ;
Exemplo
Program PascalZIM ;
uses crt ;
Begin
highvideo ;
writeln( 'Texto em alta intensidade' );
lowvideo ;
writeln( 'Texto em baixa intensidade' );
normvideo ;
writeln( 'Texto com intensidade padrao' );
End.
Created with the Personal Edition of HelpNDoc: Free PDF documentation generator
inc
Aumenta o valor armazenado em uma varivel.
Sintaxe
Exemplo
Program PascalZIM ;
var intVar: integer ;
Begin
inc( intVar ); { Equivalente a IntVar:= IntVar + 1 }
End.
Um novo incremento de dois, por sua vez, faz o ponteiro apontar para o quarto elemento do
vetor.
Exemplo
Program Pzim ;
// Declara um vetor
const vetor: array[1..5] of integer = ( 10, 20, 30, 40, 50 ) ;
145 / 168
Pascalzim
Begin
// O ponteiro guarda o endereco do primeiro elemento do vetor
p:= @vetor ;
writeln(p^); // Mostra 10
Created with the Personal Edition of HelpNDoc: Free help authoring tool
insert
Usado para adicionar uma subcadeia a uma cadeia.
Sintaxe
Onde:
Funcionamento
Exemplo
146 / 168
Pascalzim
abcd1234567
Ao executar o comando insert(' abcd', cadeia, -1) na varivel cadeia fica armazenando
abcd1234567
Exemplo
Program PascalZIM ;
var cadeia: string ;
Begin
cadeia:= '1234567' ;
writeln( 'Valor de cadeia: ', cadeia);
insert( 'abcd', cadeia, 4);
writeln( 'Depois do insert: ', cadeia); // Mostra 123abcd4567
End.
Created with the Personal Edition of HelpNDoc: Produce Kindle eBooks easily
insline
Insere uma linha em branco onde est posicionado o cursor do teclado.
Sintaxe
procedure insline ;
Exemplo
Program PascalZIM ;
uses crt ;
Begin
// Escreve trs linhas de texto
writeln( 'primeira linha' );
writeln( 'segunda linha' );
writeln( 'terceira linha' );
// Posiciona o cursor na segunda linha, insere linha em branco em cima
dessa linha
gotoxy(1,2);
insline ;
readkey ;
End.
Created with the Personal Edition of HelpNDoc: Write EPub books for the iPad
int
Retorna a parte inteira de um valor numrico.
Sintaxe
147 / 168
Pascalzim
Exemplo
Program Pascalzim ;
Begin
writeln( int(12.34) ); // Mostra 12.00
writeln( frac(12.34) ); // Mostra 0.34
writeln( int(12) ); // Mostra 12.00
writeln( frac(12) ); // Mostra 0.00
End.
Created with the Personal Edition of HelpNDoc: Write EPub books for the iPad
keypressed
Verifica se foi pressionada alguma tecla.
Sintaxe
Exemplo
Program PascalZIM ;
Begin
while not keypressed do
Begin
write( 'x' );
End ;
End.
Created with the Personal Edition of HelpNDoc: Create iPhone web-based documentation
length
Retorna o comprimento de uma cadeia de caracteres.
Sintaxe
Exemplo
Program Pascalzim ;
var s: string ;
Begin
write( 'Digite uma cadeia: ' );
readln( s );
writeln( ' O comprimento da cadeia lida = ', length( s ));
148 / 168
Pascalzim
End.
ln
Retorna o logaritmo neperiano do argumento.
Sintaxe
Exemplo
Program PascalZIM ;
var e: real ;
Begin
e:= exp( 1.0 );
writeln( 'ln(e) = ', ln( e ) );
End.
Created with the Personal Edition of HelpNDoc: iPhone web sites made easy
lowvideo
Faz com o texto impresso em console aparea em baixa intensidade.
Sintaxe
procedure lowvideo ;
Exemplo
Program PascalZIM ;
uses crt ;
Begin
highvideo ;
writeln( 'Texto em alta intensidade' );
lowvideo ;
writeln( 'Texto em baixa intensidade' );
normvideo ;
writeln( 'Texto com intensidade padrao' );
End.
Created with the Personal Edition of HelpNDoc: Produce electronic books easily
mkdir
Cria um novo diretrio.
Sintaxe
149 / 168
Pascalzim
Exemplo
Program PascalZIM ;
var nomePasta: string ;
Begin
// Recupera a pasta de trabalho atual
getdir(0, nomePasta);
writeln('A pasta de trabalho atual ', nomePasta);
Created with the Personal Edition of HelpNDoc: Write eBooks for the Kindle
normvideo
Faz com o texto impresso em console aparea na intensidade padro.
Sintaxe
procedure normvideo ;
Exemplo
Program PascalZIM ;
uses crt ;
Begin
highvideo ;
writeln( 'Texto em alta intensidade' );
lowvideo ;
writeln( 'Texto em baixa intensidade' );
normvideo ;
writeln( 'Texto com intensidade padrao' );
End.
Created with the Personal Edition of HelpNDoc: Easily create CHM Help documents
odd
Verifica a paridade do argumento, retornando true se o argumento mpar, false em caso
contrrio.
150 / 168
Pascalzim
Sintaxe
Exemplo
Program PascalZIM ;
Begin
if odd( 5 ) then
writeln( '5 impar!' )
else
writeln( '5 no impar...' );
End.
ord
Recebe como parmetro um caractere e retorna o inteiro correspondente ao cdigo ASCII
referente ao caractere.
Sintaxe
Exemplo
Program Pascalzim ;
Begin
writeln( 'O codigo ASCII para "c" = ', ord( 'c' ), ' decimal' );
End.
paramcount
Retorna o nmero de parmetros informados na linha de comando para o programa.
Sintaxe
Exemplo
Program PascalZIM ;
var i: integer ;
Begin
writeln( 'Nome do programa: ', paramstr(0) ) ;
writeln( 'Nmero de parmetros informados na linha de comando: ',
paramcount ) ;
if(paramcount > 0) then
for i:= 1 to paramcount do
151 / 168
Pascalzim
Begin
writeln('Parmetro ', i, ': ', paramstr(i) );
End;
End.
paramstr
Retorna o valor de um parmetro informado na linha de comando para o programa.
Sintaxe
Exemplo
Program PascalZIM ;
var i: integer ;
Begin
writeln( 'Nome do programa: ', paramstr(0) ) ;
writeln( 'Nmero de parmetros informados na linha de comando: ',
paramcount ) ;
if(paramcount > 0) then
for i:= 1 to paramcount do
Begin
writeln('Parmetro ', i, ': ', paramstr(i) );
End;
End.
Created with the Personal Edition of HelpNDoc: Produce electronic books easily
pos
Retorna a posio de uma subcadeia dentro de uma cadeia de caracteres.
Sintaxe
Onde:
subcadeia a cadeia que ser utilizada na busca.
cadeia a cadeia onde ser procurada a subcadeia
Funcionamento
152 / 168
Pascalzim
Exemplo
Exemplo
Program Pascalzim ;
Begin
writeln( pos( 'zim', 'Pascalzim' ) ); // Mostra 7
writeln( pos( 'zIm', 'Pascalzim' ) ); // Mostra 0
End.
Created with the Personal Edition of HelpNDoc: Produce electronic books easily
pred
Retorna o nmero/caractere que antecede o argumento.
Sintaxe
Exemplo
Program PascalZIM ;
Begin
writeln( 'O predecessor de 5 = ', pred(5) );
writeln( 'O sucessor de 10 = ', succ(10) );
End.
Created with the Personal Edition of HelpNDoc: Free EBook and documentation generator
random
Recebe como parmetro um inteiro x e retorna um nmero n no intervalo 0 <= n < x.
Sintaxe
Exemplo
153 / 168
Pascalzim
Program PascalZIM ;
var i: integer ;
Begin
randomize ;
repeat
i:= i + 1 ;
writeln( random(1000) )
until i>10 ;
End.
Created with the Personal Edition of HelpNDoc: Create iPhone web-based documentation
randomize
Inicializa o gerador de nmeros randmicos do compilador.
Sintaxe
procedure randomize ;
Exemplo
Program PascalZIM ;
var i: integer ;
Begin
randomize ;
repeat
i:= i + 1 ;
writeln( random(1000) );
until i>10 ;
End.
readkey
Solicita a leitura de um caractere do teclado. Pode ser utilizado como um comando ou como
uma funo.
Sintaxe
procedure readkey ;
Exemplo
Program PascalZIM ;
Begin
writeln( 'O programa vai terminar...' );
readkey ;
End.
154 / 168
Pascalzim
Exemplo
Program PascalZIM ;
var umCaractere: char ;
Begin
writeln( 'Digite um caractere:' );
umCaractere:= readkey ;
writeln( 'Voc digitou: ', umCaractere );
End.
Created with the Personal Edition of HelpNDoc: Single source CHM, PDF, DOC and HTML Help creation
rename
Muda o nome de um arquivo em disco.
Sintaxe
Exemplo
Program PascalZIM ;
var arq: text ;
begin
// Cria o arquivo de teste
assign(arq, 'c:\teste.txt');
rewrite(arq);
close(arq);
Created with the Personal Edition of HelpNDoc: Produce Kindle eBooks easily
rmdir
Remove um diretrio.
Sintaxe
Exemplo
Program PascalZIM ;
var nomePasta: string ;
Begin
155 / 168
Pascalzim
Created with the Personal Edition of HelpNDoc: Free iPhone documentation generator
round
Arredonda um valor real em um valor inteiro.
Sintaxe
Exemplo
Program PascalZIM ;
Begin
writeln( 1.4, ' arredondado para ', round( 1.4 ) );
writeln( 1.5, ' arredondado para ', round( 1.5 ) );
writeln( -1.4, ' arredondado para ', round( -1.4 ) );
writeln( -1.5, ' arredondado para ', round( -1.5 ) );
End.
Created with the Personal Edition of HelpNDoc: Full-featured multi-format Help generator
sin
Retorna o seno do argumento ( x um ngulo, em radianos ).
Sintaxe
Exemplo
Program PascalZIM ;
var r: real ;
Begin
r:= sin( 3.14 );
writeln( 'O seno de Pi = ', r );
readln ;
156 / 168
Pascalzim
End.
Created with the Personal Edition of HelpNDoc: Generate EPub eBooks with ease
SizeOf
Retorna o nmero de bytes ocupados pelo argumento.
Sintaxe
Exemplo
Program Pascalzim ;
var p: ^integer ;
v: integer ;
Begin
GetMem( p, sizeof(integer) ); // Aloca espao para armazenar um inteiro
p^:= 10 ; // Guarda um inteiro na posio apontada por p
writeln( 'Valor armazenado na posicao de memoria: ', p^ );
v:= p^ ; //Guarda em v o valor apontado por p
writeln( 'Valor armazenado em v: ', v );
FreeMem( p, sizeof(integer) ); // Libera a memoria associada a p
readln ;
End.
Created with the Personal Edition of HelpNDoc: Easily create Web Help sites
sqr
Retorna o quadrado do argumento.
Sintaxe
Exemplo
Program PascalZIM ;
Begin
writeln( 'O quadrado de 5 = ', sqr(5) ) ;
writeln( 'A raiz quadrada de 2 = ', sqrt(2.0) ) ;
End.
sqrt
Retorna a raiz quadrada do argumento.
157 / 168
Pascalzim
Sintaxe
Exemplo
Program PascalZIM ;
Begin
writeln( 'O quadrado de 5 = ', sqr(5) ) ;
writeln( 'A raiz quadrada de 2 = ', sqrt(2.0) ) ;
End.
Created with the Personal Edition of HelpNDoc: Free PDF documentation generator
str
Usado para converter uma expresso numrica em uma cadeia.
Sintaxe
Funcionamento
Nesse caso:
o par1 informa o tamanho da cadeia obtida na converso
o par2 informa o nmero de casas decimais usada na converso do real
Exemplo
Program PascalZIM ;
var s: string ;
Begin
str(1234, s);
writeln(s); // Mostra 1234
str(789.123456:5:3, s);
writeln(s); // Mostra 789.123
End.
Created with the Personal Edition of HelpNDoc: Easily create iPhone documentation
succ
Retorna o nmero/caractere que sucede o argumento.
158 / 168
Pascalzim
Sintaxe
Exemplo
Program PascalZIM ;
Begin
writeln( 'O predecessor de 5 = ', pred(5) );
writeln( 'O sucessor de 10 = ', succ(10) );
End.
Created with the Personal Edition of HelpNDoc: Free help authoring environment
textbackground
O comando textbackground define a cor de fundo usada na impresso de textos.
Sintaxe
Onde cor pode ser uma constante inteira ou qualquer uma dentre as cores seguintes:
o black
o blue
o green
o cyan
o red
o magenta
o brown
o lightgray
cor = cor % 8
Exemplo. Programa que move o cursor do teclado para a linha 15, coluna 10, e imprime "Ol,
mundo!" na tela.
Program PascalZIM ;
Begin
gotoxy(15,10);
textcolor( lightcyan );
textbackground( red );
write( 'Ol, mundo!' );
159 / 168
Pascalzim
End.
textcolor
O comando textcolor define a cor da fonte usada para impresso de texto na tela.
Sintaxe
Onde cor pode ser uma constante inteira ou qualquer uma dentre as cores seguintes:
o black
o blue
o green
o cyan
o red
o magenta
o brown
o lightgray
o darkgray
o lightblue
o lightgreen
o lightcyan
o lightred
o lightmagenta
o yellow
o white
cor = cor % 16
Exemplo. Programa que move o cursor do teclado para a linha 15, coluna 10, e imprime "Ol,
mundo!" na tela.
Program Pascalzim ;
Begin
gotoxy(15,10);
textcolor( lightcyan );
textbackground( red );
write( 'Ol, mundo!' );
End.
160 / 168
Pascalzim
Created with the Personal Edition of HelpNDoc: Write eBooks for the Kindle
trunc
Trunca um valor real em um valor inteiro.
Sintaxe
Exemplo
Program PascalZIM ;
Begin
writeln( 1.4, ' se torna ', trunc( 1.4 ) ); { 1.0 }
writeln( 1.5, ' se torna ', trunc( 1.5 ) ); { 1.0 }
writeln( -1.4, ' se torna ', trunc( -1.4 ) ); { -1.0 }
writeln( -1.5, ' se torna ', trunc( -1.5 ) ); { -1.0 }
End.
Created with the Personal Edition of HelpNDoc: Easy EBook and documentation generator
upcase
Recebe como parmetro um caractere e retorna sua representao em caixa alta.
Sintaxe
Exemplo
Program Pascalzim ;
var umCaractere: char ;
cadeia: string ;
i: integer ;
Begin
cadeia:= 'Uma frase' ;
for i:=0 to length( cadeia ) do
write( upcase( cadeia[ i ] ) );
End.
Created with the Personal Edition of HelpNDoc: Easy to use tool to create HTML Help files and Help web sites
val
Usado para converter uma cadeia de caracteres em um inteiro ou real.
Sintaxe
161 / 168
Pascalzim
Onde:
Funcionamento
Exemplo
Exemplo
Program PascalZIM ;
var cadeia: string ;
nro, codigoErro: integer ;
Begin
write( 'Digite um nmero inteiro: ' );
readln( cadeia );
val( cadeia, nro, codigoErro );
if ( codigoErro = 0 ) then
writeln( 'O nmero lido e convertido foi: ' , nro )
else
writeln( 'Inteiro invlido, e o cdigo de erro foi: ' , codigoErro );
End.
wherey
Retorna a linha onde est posicionado o cursor do teclado na tela de console.
Sintaxe
162 / 168
Pascalzim
Exemplo
Program PascalZIM ;
Begin
gotoxy(10,20);
write( wherex, ' ', wherey );
End.
Created with the Personal Edition of HelpNDoc: Easily create HTML Help documents
wherex
Retorna a coluna onde est posicionado o cursor do teclado na tela de console.
Sintaxe
Exemplo
Program PascalZIM ;
Begin
gotoxy(10,20);
write( wherex, ' ', wherey );
End.
Created with the Personal Edition of HelpNDoc: Easy EPub and documentation editor
with
Usado para simplificar o acesso aos campos de um registro.
aluno.nome = 'Joaozinho' ;
aluno.idade = 18 ;
with aluno do
Begin
nome = 'Joaozinho' ;
idade = 18 ;
End ;
Sintaxe
163 / 168
Pascalzim
with listaVariveis do
comando ;
Onde:
Nos comandos restringidos pelo with realizada uma anlise para verificar se as variveis ali
encontradas correspondem a campos de alguma das variveis presentes na lista de variveis.
Essa anlise feita tomando-se em considerao a ltima varivel da lista, depois a penltima,
e assim por diante at a primeira.
Se alguma varivel encontrada nos comandos restringidos pelo with no for um campo de
alguma das variveis da lista, verificado se a varivel foi declarada no escopo corrente.
De acordo com essas regras, o trecho de cdigo abaixo imprime o resultado 2 2. Isso acontece
porque o compilador assume que os campos X e Y pertencem ao registro T.
Program testw ;
type Ponto = record
X, Y: integer ;
End ;
var S,T: Ponto ;
Begin
S.X:= 1 ;
S.Y:= 1 ;
T.X:= 2 ;
T.Y:= 2 ;
With S,T do
writeln(X,' ',Y); // imprime 2 2
End.
O exemplo apresentado a seguir mostra como comandos with podem ser aninhados. Nesse
caso, a varivel do with mais interno pode ainda ser um campo da varivel de um with mais
externo.
Exemplo
Program PascalZIM ;
var registro: record
campo1: real ;
campo2: record
campo21: real ;
campo22: char ;
End ;
End ;
Begin
with registro do
with campo2 do // campo2 um campo da
varivel registro
campo22:= 'M' ; // campo22 um campo da
164 / 168
Pascalzim
varivel campo2
writeln(registro.campo2.campo22); // Mostra M
with registro, campo2 do // campo2 um campo da
varivel registro
campo22:= 'P' ;
writeln(registro.campo2.campo22); // Mostra P
End.
Created with the Personal Edition of HelpNDoc: Free EPub and documentation generator
window
Cria uma nova janela em console. Os comandos de escrita em console so feitos dentro dos
limites dessa janela.
Sintaxe
Onde:
Exemplo
Program PascalZIM ;
uses crt ;
Begin
// Pinta o fundo da tela de azul
textbackground(lightblue);
clrscr ;
Tratamento de overflow
O tratamento de overflow, no compilador, realizado para constantes inteiras, reais e literais.
O tratamento consiste em verificar se, durante uma determinada operao, uma constante
ultrapassa o valor mximo permitido para constantes do tipo em questo.
165 / 168
Pascalzim
Created with the Personal Edition of HelpNDoc: Free PDF documentation generator
Comentrios
Os comentrios so usados dentro de um programa com a finalidade de documentar trechos
de cdigo, e no afetam a execuo do programa.
Exemplo
Exemplo
Exemplo
Program PascalZIM ;
Begin
Write( 'Ol, mundo!' ); // Esse um comentrio de linha
End.
Created with the Personal Edition of HelpNDoc: Easy CHM and documentation editor
166 / 168
Pascalzim
para criar bibliotecas de cdigo reutilizvel, e tambm para dividir um programa em partes
menores.
O cabealho de uma unidade iniciado com a palavra reservada Unit, seguido de um nome
que identifica a unidade e um ponto e vrgula. O nome do arquivo que armazena a unidade deve
ter o mesmo nome que identifica a unidade.
Nessa seo so tambm listados os cabealhos das funes e procedimentos que estaro
acessveis a todos os programas que fizerem uso da unidade. A definio completa dessas
funes e procedimentos deve aparecer na parte de implementao da unidade.
A parte de inicializao iniciada com a palavra reservada Begin e terminada com a palavra
reservada End, seguida de ponto. Entre as palavras Begin e End devem ser colocados os
comandos que so executados antes dos comandos de um programa que faz uso da unidade.
Se a parte de inicializao no tiver comandos ela pode tambm ser declarada com a palavra
reservada End, seguida de ponto.
unit NomeUnidade ;
interface
implementation
Begin
Comandos
167 / 168
Pascalzim
End.
Exemplo. A unidade minmax define as funes min e max, usadas para calcular o menor e o
maior de dois valores inteiros.
unit minmax ;
interface
function min(a, b: integer) : integer ;
function max(a, b: integer) : integer ;
implementation
function min(a, b: integer) : integer ;
Begin
if a < b then
min:= a
else
min:= b ;
End ;
Program extremos ;
uses minmax ;
var x, y: integer ;
Begin
x:= 20 ;
y:= 30 ;
writeln( min(x,y):6, max(x,y):6 );
End.
Created with the Personal Edition of HelpNDoc: Free help authoring tool
168 / 168