INTRODUÇÃO À LINGUAGEM TURBO PASCAL
letras
maiúsculas: A..Z;
letras minúsculas: a..z;
dígitos: 0..9;
caracter sublinhado: _ e
outros caracteres especiais: * - = + / ( ) { } [ ] < > & %
$ # @ : ; , . ? ” ’ \ ! ~
` ^ espaço
Os
símbolos especiais individualmente ou em pares caracterizam os operadores
e delimitadores:
. | fim de programa, decimal, seleção de membro em record |
( ) | precedência, parâmetro |
+ | adição, concatenação |
- | subtração, negação |
/ | divisão real |
not | não |
div | divisão inteira |
mod | resto da divisão inteira |
and | e |
or | ou |
xor | ou exclusivo |
= | igualdade, declaração |
<> | desigualdade ou diferente |
> | maior que |
< | menor que |
>= | maior ou igual |
<= | menor ou igual |
* | multiplicação |
:= | atribuição |
in | pertence a ou está contido |
# | prefixo que identifica o valor ordinal de caracter (0..255 - tabela ASCII) |
, | separador de lista |
‘ | delimitador de sequência de caracteres |
$ | prefixo que indica um número hexadecimal |
: | declaração de tipo |
.. | identifica intervalo em tipo ordinal simples ou faixa de valores |
; | separa declarações e indica fim de definições, cabeçalhos, blocos, ... |
[ ] | referência a um elemento de um array |
(. .) | referência a um elemento de um array |
{ } | delimita um comentário dentro de um programa |
(* *) | delimita um comentário dentro de um programa |
São nomes simbólicos que servem para representar programas, unidades, constantes, tipos, variáveis, procedimentos, funções. Existem identificadores predefinidos e definidos pelo usuário.
Um identificador deve respeitar as seguintes regras:
- o 1º caracter tem que ser uma letra;
- os demais podem ser letras, dígitos e o caracter sublinhado;
- somente os primeiros 63 caracteres são significativos;
- letras maiúsculas e minúsculas são consideradas
iguais;
- não é permitido o uso de palavras reservadas e
- a redefinição de um identificador padrão impede
o uso do procedimento, função ou constante normalmente
associado a ele.
São palavras reservadas: AND, ARRAY, BEGIN, CASE, CONST, DIV, DO,
DOWNTO, ELSE, END, FILE, FOR, FUNCTION, IF, IN, MOD, NOT, OF, OR, PROCEDURE,
PROGRAM, RECORD, REPEAT, STRING, THEN, TO, TYPE, UNTIL, USES, VAR, WHILE
e outras.
OPERADORES ARITMÉTICOS
+ | adição |
- | subtração |
* | multiplicação |
/ | divisão real |
div | divisão inteira - quociente |
mod | divisão inteira - resto |
OPERADORES LÓGICOS
or | e |
and | ou |
xor | ou exclusivo |
not | não |
OPERADORES RELACIONAIS
> | maior |
>= | maoir ou igual |
< | menor |
<= | menor ou igual |
= | igual |
<> | diferente |
in | contido |
TIPO LÓGICO
O tipo lógico é chamado de BOOLEAN, que assume um entre dois
valores predefinidos: false (falso) ou true (verdade), representados internamente
por 0 e 1, respectivamente.
TIPOS CARACTERES
Caracteres ordenados de acordo com o conjunto ASCII extendido (0..255),
normalmente representado entre apóstrofes. Podem ser: CHAR ou STRING.
CHAR | Admite apenas um caracter. |
STRING | Admite uma cadeia de até 255 caracteres. Deve-se declarar a quantidade máxima de caracteres que se pretende guardar. |
TIPOS NUMÉRICOS INTEIROS
|
INTERVALO DE VALORES |
BYTE | 0 .. 255 |
SHORTINT | -128 .. 127 |
INTEGER | -32768 .. 32767 |
WORD | 0 .. 65535 |
LONGINT | -2147483648 .. 2147483647 |
TIPOS NUMÉRICOS REAIS
TIPO |
|
REAL | 2.9 * 10 E -39 .. 1.7 * 10 E 38 |
SINGLE | 1.5 * 10 E -45 .. 3.4 * 10 E 38 |
DOUBLE | 5.0 * 10 E -324 .. 1.7 * 10 E 308 |
EXTENDED | 3.4 * 10 E -4932 .. 1.1 * 10 E 4932 |
COMP | -2 E 63 + 1 .. 2 E 63 - 1 |
ESTRUTURA DE UM PROGRAMA EM TURBO PASCAL
Os programas em Turbo Pascal podem ser estruturados utilizando a seguinte
sequência:
cabeçalho do programa, área de declarações
e bloco de comandos.
PROGRAM nome_programa; { Identifica o programa; é
opcional. }
USES nome_unit1, nome_unit2, ...; { Cláusula uses:
identifica as bibliotecas (units) usadas pelo programa. }
UNITS PADRÃO DO TURBO PASCAL
SYSTEM | Usada pelas outras units padrão, contém todos os procedimentos e funções padrões do Turbo Pascal. É sempre carregada no programa. |
DOS | Funções e procedimentos do DOS. |
CRT | Rotinas que permitem acesso a recursos de hardware do micro (vídeo e som). |
PRINTER | Declara um arquivo texto chamado LST e associa-o com o dispositivo LTP1 (impressora). |
GRAPH | Contém rotinas gráficas. Requer a unit CRT. |
OVERLAY | Permite uso de programas maiores do que a memória. Troca partes do programa entre o disco e a memória. |
WINDOWS | Funções e procedimentos do ambiente windows. |
STRINGS | Possui procedimentos e funções que permitem manipular strings. |
CONST constante1 = valor1; constante2 = valor2; ...; { Declara
constante; o valor atribuído à constante determina o tipo
da mesma; é opcional. }
TYPE tipo1 = definição_tipo1; tipo2 = definição
_tipo2; ...; { Declara novos tipos a partir de outros já
existentes; é opcional. }
VAR variável1, variável2, ...: tipo1; variávelx1,
variávelx2: tipox; ...; { Declara variáveis a
serem usadas no programa. }
O bloco de comandos começa com a palavra reservada BEGIN e termina com a palavra reservada END. Pode conter, procedimentos e funções.
BEGIN comando1; comando2; ...; END; {Define um bloco de comandos.
Se a sintaxe do Turbo Pascal permite um comando simples também permitirá
um bloco de comandos. }
CASE expressão OF {Comando condicional de múltipla
escolha.}
opção1:
comando1;
opção2:
comando2;
...
ELSE comando;
{O else (falso) é opcional. }
END;
FOR variável := início TO fim DO comando; { Comando com repetição automática, variável crescendo de início até fim. }
FOR variável := fim DOWNTO início DO comando; { Comando com repetição automática, variável decrescendo de fim até início. }
IF condição THEN comando1 ELSE comando2; { Comando condicional. Se condição for verdade o comando1 é executado, caso contrário, o comando2 é executado. O else (falso) é opcional. }
REPEAT comando; ... UNTIL condição; { Executa o comando até que a condição seja verdade. }
WHILE condição DO comando; { Executa o comando enquanto
condição for verdade. }
PROCEDIMENTOS E FUNÇÕES
PREDEFINIDOS
CHR(n) | Retorna o caracter correspondente ao código ASCII n. O mesmo que #código. |
CLREOL | Apaga todos os caracteres desde a posição do cursor até o fim da linha, mantendo a localização do cursor. |
CLRSCR | Limpa a tela e coloca o cursor no canto superior esquerdo. |
DELAY(x) | Espera durante x milisegundos. |
GETDATE(ano, mês, dia, diasem) | Retorna a data do sistema operacional. |
GETTIME(hora, min, seg, s100) | Retorna o horário do sistema operacional. |
GOTOXY(coluna, linha) | Posiciona, em modo texto, o cursor nas coordenadas especificadas. |
KEYPRESSED | Retorna true se alguma tecla for pressionada. |
NOSOUND | Interrompe um tom iniciado por sound. |
RANDOM(faixa) | Retorna um número pseudo aleatório entre 0 e faixa. Se faixa não for especificada retorna valor entre 0.0 e 1.0. |
RANDOMIZE | Inicializa o gerador de números aleatórios com o valor atual do relógio do sistema. |
READLN(variável) | Lê variável. |
READKEY | Retorna um caracter lido do teclado. |
SOUND(hz) | Inicia um tom na frequência hz e continua até executar nosound. |
TEXTBACKGROUND(cor) | Seleciona a cor do fundo em modo texto. |
TEXTCOLOR(cor) | Seleciona a cor do texto em modo texto. |
UPCASE(c) | Retorna o caracter c convertido em maiúscula. |
WINDOW(col1,lin1,col2,lin2) | Define em modo texto uma janela no vídeo. |
WRITE(‘...’, variável) | Escreve o que estiver entre apóstrofes e/ou o valor da variável. |
Exemplos de Programas em Turbo Pascal:
{ Dados dois valores numericos maiores que 0 calcular e }
{ escrever as quatro operacoes aritmeticas basicas.
}
program exemplo;
uses crt;
var x, y, soma, subt, mult, divi: real;
begin
{ Prepara tela. }
textbackground(3);
textcolor(1);
clrscr;
gotoxy(20,4); write('OPERACOES ARITMETICAS');
gotoxy(15,7); write('1º Numero........:');
gotoxy(15,9); write('2º Numero........:');
gotoxy(15,11); write('Adicao...........:');
gotoxy(15,13); write('Subtracao........:');
gotoxy(15,15); write('Multiplicacao....:');
gotoxy(15,17); write('Divisao..........:');
window(35,7,75,20);
{ Entrada de dados, calculo e saida de resultados.
}
repeat
gotoxy(1,1); clreol; readln(x);
until x>0;
repeat
gotoxy(1,3); clreol; readln(y);
until y>0;
soma:= x+y;
subt:= x-y;
mult:= x*y;
divi:= x/y;
gotoxy(1,5); write(soma:4:1);
gotoxy(1,7); write(subt:4:1);
gotoxy(1,9); write(mult:4:1);
gotoxy(1,11); write(divi:4:1);
gotoxy(1,14); write('Tecle <enter> para sair.');
repeat until readkey=#13;
clrscr;
{ Retorna a tela toda e as cores padrao de fundo e texto. }
window(1,1,80,25);
textcolor(15);
textbackground(0);
clrscr;
end.
{ Exemplo de programa em Turbo Pascal }
program exemplo;
uses crt;
var ra: string[9];
nome: string[25];
nota1, nota2, ntrab, media: real;
k: byte;
begin
{ Prepara tela. }
textbackground(3);
textcolor(5);
clrscr;
gotoxy(20,4); write('CONTROLE DE NOTAS');
gotoxy(15,7); write('Registro Academico.:');
gotoxy(15,9); write('Nome do Aluno......:');
gotoxy(15,11); write('1ª Prova...........:');
gotoxy(15,13); write('2ª Prova...........:');
gotoxy(15,15); write('Trabalho...........:');
gotoxy(15,18); write('Media Final........:');
window(37,7,75,20);
textbackground(7);
clrscr;
{ Entrada de dados, calculo e saida de resultados.
}
gotoxy(1,1); clreol; readln(ra);
while ra<>'' do
begin
repeat
gotoxy(1,3); clreol; readln(nome);
until nome<>'';
repeat
gotoxy(1,5); clreol; readln(nota1);
until (nota1>=0) and (nota1<=10);
repeat
gotoxy(1,7); clreol; readln(nota2);
until (nota2>=0) and (nota2<=10);
repeat
gotoxy(1,9); clreol; readln(ntrab);
until (ntrab>=0) and (ntrab<=10);
media := (nota1+nota2+ntrab)/3;
gotoxy(1,12); write(media:4:1);
gotoxy(1,14); write('Tecle <enter> para continuar.');
repeat until readkey=#13;
clrscr;
gotoxy(1,14); write('Digite RA ou tecle <enter> para sair.');
gotoxy(1,1); clreol; readln(ra);
gotoxy(1,14); clreol;
end;
{ Retorna a tela toda e as cores padrao
de fundo e texto. }
window(1,1,80,25);
textcolor(15);
textbackground(0);
clrscr;
end.
![]() |
![]() |
![]() |
|