cartilhapascal

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" //Comentários em visualg var inicio // Seção de Comandos fimalgoritmo program nomedoprograma; uses Crt; {Comentários em pascal} var begin { 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 v1,v2:inteiro var 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 ã ã

description

Linguagem pascal zim, basica

Transcript of cartilhapascal

Page 1: cartilhapascal

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 Pascalalgoritmo "nomedoprograma"//Comentários em visualgvar

inicio// Seção de Comandos fimalgoritmo

program nomedoprograma;uses Crt;{Comentários em pascal}varbegin { 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 pascalvar

v1,v2:inteiro

var

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 PascalInteiro IntegerReal RealLiteral StringLogico (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 Pascalvariavel<-valor Variavel:=valor;

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

Page 2: cartilhapascal

Operadores em Visualg Operadores em PascalE ANDOU ORNão NOTDivisão inteira: \ DIVMó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 Pascalleia(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 pascalSe (x >0) entao //bloco de comandosfimse

If (x>0) then begin {bloco de comandos} end;

Estrutura Se/Senao no visualg Estrutura Se/Senao no pascalSe (x >0) entao //bloco de comandossenao //bloco de comandosfimse

If (x>0) then begin {bloco de comandos} endelse begin {bloco de comandos} end;

Observações:

1. se = if entao = then senao = else end = fimse2. begin é obrigatório quando o bloco de comandos tem mais de uma linha3. Não se colocar ponto-e-virgula (;) no end anterior a um else4. 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 pascalRepita//comandosaté (condição)

Repeat{comandos}until(condicao);

Observação: O ponto-e-virgula é obrigatório após o UNTIL

Enquanto até no visualg Enquanto até no pascalEnquanto (condicao) faça//comandosfimenquanto

While (condicao) dobegin{comandos}end;

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

Page 3: cartilhapascal

Observação: begin/end; obrigatóriosPara / Faça no visualg Para / Faça no PascalPara i de 1 ate N faça//bloco de comandosfimpara

For i:= 1 to N doBegin{bloco de comandos}end;

Observação: begin/end; obrigatórios

Vetores em Visualg Vetores em PascalNa declaração do vetorNomedovetor: vetor [1..10] de inteiro

na atribuição de valor ao elementonomedovetor[i]<-x

Na declaração do vetorNomedovetor: array [1..10] of integer;na atribuição de valor ao elementonomedovetor[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úmeroround(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.

clrscrApaga a tela

clreol Apaga da posição atual do cursor até o final da linhadelline Apaga a linha onde está o cursorinsline Insere uma linha na posição atual do cursor

gotoxy(c,l) Posiciona o cursor na coluna (c) e linha (l) especificadostextcolor(c) Altera a cor do texto para a cor especificada (c)textbackgroun

d(c)Altera a cor de fundo do texto para a cor especificada (c)

random(x) Retorna um número entre 0 e x

keypressed Retorna true se uma tecla foi pressionadasizeof(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 ASCIIord(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ã ã

Page 4: cartilhapascal

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ã ã

Page 5: cartilhapascal

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ã ã