INTRODUÇÃO À LINGUAGEM TURBO PASCAL

SÍMBOLOS BÁSICOS

            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

IDENTIFICADORES

             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

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

TIPOS PREDEFINIDOS SIMPLES

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
 
 
TIPO
INTERVALO DE VALORES
BYTE 0 .. 255
SHORTINT -128 .. 127
INTEGER -32768 .. 32767
WORD 0 .. 65535
LONGINT -2147483648 .. 2147483647

TIPOS NUMÉRICOS REAIS
 
 
TIPO
INTERVALO DE VALORES
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.

CABEÇALHO DO PROGRAMA

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.

 

ÁREA DE DECLARAÇÕES

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

BLOCO DE COMANDOS

             O bloco de comandos começa com a palavra reservada BEGIN e termina com a palavra reservada END. Pode conter, procedimentos e funções.

COMANDOS

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.
 



 

Dúvidas, críticas, sugestões??? Clique aqui.