Você está na página 1de 5

CARTILHA DE PASCAL

(ORIENTAÇAO PARA ALUNOS QUE PROGRAMARAM ANTERIORMENTE COM O VISUALG)


Por Professor Msc. Jorge Costa Leite Júnior

Estrutura Básica de um programa em visualg Versão em Pascal


algoritmo "nomedoprograma" program nomedoprograma;
//Comentários em visualg uses Crt;
var {Comentários em pascal}
var
inicio
// Seção de Comandos begin
fimalgoritmo { Seção de Comandos}
end.

Comentários:
- Nome de identificador no pascal não pode ser composto.
– A linha uses Crt; indica apenas uma biblioteca padrão do Pascal. No pascalzim não é necessária a inclusão
desta linha
– Begin (significa inicio) e serve para o início do programa. Não se coloca “;” depois de Begin em nenhuma situação.
– End. (end com um ponto no final) indica o fim do programa.

Declaração de variáveis no visualg Declaração de variáveis no pascal


var var

v1,v2:inteiro v1,v2:integer;

Observe que as variáveis no pascal são definidas de forma semelhante ao visualg:

<nome da variável> : Tipo [agora é OBRIGATÓRIO o uso do “;” (ponto-e-virgula)]

Tipos de Variáveis no Visualg Tipos de Variáveis no Pascal


Inteiro Integer
Real Real
Literal String
Logico (verdadeiro/falso) Boolean (true/false)
Literal (um caractere) Char

Palavras reservadas (aquelas que não podem ser usadas como identificadores)
ABSOLUTE AND ARRAY BEGIN CASE
CONST DIV DO DOWTO ELSE
EXTERNAL FILE FOR FORWARD FUNCTION
GOTO IF IMPLEMENTATION IN INTERFACE
INTERRUPT LABEL MOD NIL NIT
OF OR PACKED PROGRAM RECORD
REPEAT SET SHL SHR STRING
THEN TO UNIT UNTIL USES
VAR WHILE WITH XOR

Operador de atribuição no visualg Operador de atribuição no Pascal


variavel<-valor Variavel:=valor;

* Esse material não substitui de forma alguma manuais, livros ou tutoriais, é apenas uma cartilha de transição ao Pascal
Operadores em Visualg Operadores em Pascal
E AND
OU OR
Não NOT
Divisão inteira: \ DIV
Módulo da divisão inteira (Resto): % MOD

*Obs: só coloquei os operadores que são diferentes nas duas linguagens

Comando de entrada/saída no visualg Comando de entrada/saida no Pascal


leia(variavel) read(variavel);
readln(variavel); {lê pulando uma
linha}
escreva(valor) write(valor);
escreval(valor) writeln(valor); {escreve e pula uma
linha}
Readkey; {lê uma tecla}

Estrutura condicional SE no visualg Estrutura condicional Se no pascal


Se (x >0) entao If (x>0) then
//bloco de comandos begin
fimse {bloco de comandos}
end;
Estrutura Se/Senao no visualg Estrutura Se/Senao no pascal
Se (x >0) entao If (x>0) then
//bloco de comandos begin
senao {bloco de comandos}
//bloco de comandos end
fimse else
begin
{bloco de comandos}
end;

Observações:

1. se = if entao = then senao = else end = fimse


2. begin é obrigatório quando o bloco de comandos tem mais de uma linha
3. Não se colocar ponto-e-virgula (;) no end anterior a um else
4. Diferentemente do visualg, no pascal se deve fechar o mais breve possível o SE (IF) com o END;

Repita até no visualg Repita até no pascal


Repita Repeat
//comandos {comandos}
até (condição) until(condicao);
Observação: O ponto-e-virgula é obrigatório após o UNTIL

Enquanto até no visualg Enquanto até no pascal


Enquanto (condicao) faça While (condicao) do
//comandos begin
fimenquanto {comandos}
end;

* Esse material não substitui de forma alguma manuais, livros ou tutoriais, é apenas uma cartilha de transição ao Pascal
Observação: begin/end; obrigatórios
Para / Faça no visualg Para / Faça no Pascal
Para i de 1 ate N faça For i:= 1 to N do
//bloco de comandos Begin
fimpara {bloco de comandos}
end;
Observação: begin/end; obrigatórios

Vetores em Visualg Vetores em Pascal


Na declaração do vetor Na declaração do vetor
Nomedovetor: vetor [1..10] de inteiro Nomedovetor: array [1..10] of integer;

na atribuição de valor ao elemento na atribuição de valor ao elemento


nomedovetor[i]<-x nomedovetor[i]:= x;

Algumas funções úteis do Pascal

int(x) Retorna a parte inteira de um número Real (a que vem antes da vírgula). O resultado é um
número real.

frac(x) Retorna a parte fracionária de um número Real (a que vem depois da vírgula). O resultado é um
número real.
abs(y) Retorna o valor absoluto de um número inteiro (ou seja, o número sem seu sinal).
sqr(y) Retorna o quadrado de um número.
sqrt(y) Retorna a raiz quadrada de um número
round(x) Retorna a parte inteira de um número, arredondando-o. O resultado é um número inteiro.
trunc(x) Retorna a parte inteira de um número Real, sem arredondá-lo. O resultado é semelhante ao da
função int, com exceção que o resultado é um número inteiro.
clrscr
Apaga a tela

clreol Apaga da posição atual do cursor até o final da linha


delline Apaga a linha onde está o cursor
insline Insere uma linha na posição atual do cursor
gotoxy(c,l) Posiciona o cursor na coluna (c) e linha (l) especificados
textcolor(c) Altera a cor do texto para a cor especificada (c)
textbackgroun Altera a cor de fundo do texto para a cor especificada (c)
d(c)
random(x) Retorna um número entre 0 e x

keypressed Retorna true se uma tecla foi pressionada


sizeof(var) Retorna o tamanho em bytes de uma variável ou tipo de variável
chr(n) Retorna o caractere correspondente ao código (n) na tabela ASCII
ord(c) Retorna o código do caractere (c) na tabela ASCII

ERROS
1. O programa de exemplo não apresenta nenhuma ocorrência de erros, mas isto não reflete a realidade de um
programador(a).
2. Normalmente, são cometidos erros de codificação, edição ou mesmo erros inerentes a solução dada aos
problemas.
3. A detecção de erros durante as etapas de processamento de um programa é um fato bastante comum.

* Esse material não substitui de forma alguma manuais, livros ou tutoriais, é apenas uma cartilha de transição ao Pascal
ERROS DE COMPILAÇÃO NO PASCAL
Identifier expected - Identificador esperado. Neste local era esperado um identificador, ou houve a tentativa de
redefinir uma palavra reservada.
Unknown identifier - Identificador não declarado no programa.
Duplicate identifier - Identificador repetido no mesmo bloco.
Syntax error - Erro de sintaxe. Existe algum caracter ilegal na declaração ou os "abre-fecha" aspas em torno de uma
string não estão corretos.
Error in real constant - Constante real inválida.
Error in integer constant - Constante inteira inválida.
String constant exceeds line - Constante string maior que 255. Verificar os "abre-fecha" aspas.
Unexpected end of file - Fim de Arquivos esperado. Pode-se verificar:
- o casamento dos begin-end.
- o casamento de "abre-fecha" chaves de comentários.
- se algum arquivo de inclusão está finalizando de forma inválida.
- o compilador não encontrou o end de final de arquivo.
Type identifier expected - Identificador de tipo era esperado.
Undefined type in pointer definition - Tipo pointer não definido.
Variable identifier expected - Identificador de variável esperado.
Error in type - Erro em definição de tipo, o caracter encontrado é inválido.
Invalid string length - String com mais de 255 caracteres.
Type mismatch - Tipo trocado. Pode-se verificar o seguinte:
- incompatibilidade de tipos em um comando de atribuição.
- incompatibilidade de parâmetros e argumentos num procedimento ou função.
- incompatibilidade entre índices de vetores em uma declaração.
- incompatibilidade entre tipos de operandos em uma expressão.
Integer constant expected - Constante inteira esperada.
Constant expected - Constante esperada.
Integer ou real constant expected - Constante real ou inteira esperada.
Type identifier expected - Identificador de tipo esperado.
BEGIN expected - BEGIN esperado.
END expected - END esperado.
Integer expression expected - Expressão inteira esperada.
Ordinal expression expected - Expressão ordinal esperada.
Boolean expression expected - Expressão booleana esperada.
Operand types do not match operator - Tipo do operando incompatível com o tipo do operador.
Error in expression - Verifique a validade de sua expressão.
Illegal assignment - Não é permitido atribuir valores a variáveis sem tipo, nem a arquivos. Outra verificação é que um
identificador de função somente poderá receber valores dentro da própria função.
OF expected - Cláusula OF esperada.
THEN expected - THEN esperado.
TO or DOWNTO expected - TO ou DOWNTO esperado.

* Esse material não substitui de forma alguma manuais, livros ou tutoriais, é apenas uma cartilha de transição ao Pascal
Division by zero - Divisão por zero.
Cannot Read or Write variables of this type - Não é possível usar uma variável deste tipo com os procedimentos
READ ou WRITE.
Pointer variable expected - Variável do tipo POINTER esperada.
String variable expected - Variável do tipo STRING esperada.
String expression expected - Expressão do tipo STRING esperada.
Constant and case types do not match - Tipos trocados entre as constantes do CASE e a variável seletor.
";" expected - ; esperado.
":" expected - : esperado.
"," expected - , esperada.
"(" expected - ( esperado.
")" expected - ) esperado.
"=" expected - = esperado.
":=" expected - := esperado.
"[" or "(." expected - [ ou ( esperado.
"]" or ".)" expected - ] ou ) esperado.
"." expected - . esperado.
".." expected - .. esperado.
Too many variables - Muitas variáveis. O total de variáveis não pode ultrapassar o limite dos 64KB, considerando:
procedimentos, funções, units e programas.
Invalid FOR control variable - Variável do FOR inválida.
Integer variable expected - Variável inteira esperada.
Character expression expected - Expressão do tipo caracter esperada.
Error in statement - Erro no comando. Verifique se o nome da função ou procedure está correto.
Invalid qualifier - Qualificador inválido. Verificar:
- Quando usar conjuntos indexar apenas uma variável.
- Quando especificar campos, definir antes qual o registro.
- A referência somente pode se retirada das variáveis tipo pointer.
Too many conditional symbols - Símbolos condicionais em excesso.
Division by zero - Divisão por zero.
Range check error - Intervalo de variação do índice de um array está fora da faixa.

* Esse material não substitui de forma alguma manuais, livros ou tutoriais, é apenas uma cartilha de transição ao Pascal