Livro
Livro com dois capítulos (cada capítulo com 1 sub-capítulos)
1. Capítulo 1
5.0 - Introdução a Programação Pascal
Linguagem de alto nível e, com propósito geral, criado pelo professor NIKLAUS WIRTH da Universidade Técnica de Zuric, na Suíça, em 1971. O nome é uma homenagem ao famoso filósofo e matemático Francês do século XVII Blaise Pascal.
- Linguagem estruturada, confiável e possui portabilidade.
- Não é uma linguagem case sensitive !
- Linguagem compilada.
- Variáveis - Devem ser declaradas no início do programa.
INTEGER - 2488
REAL 1.0
CHAR ‘Y’
BOOLEAN TRUE, FALSE
TEXT
STRING “145” - 255 Caracteres.
- Pascal Padrão - ISO (International Standard Organization)
36 palavras reservadas
5 tipos de dados
20 funções
15 procedimentos
5.1 - Palavras Reservadas
ABSOLUTE |
LABEL |
VAR |
AND |
MOD |
WHILE |
ARRAY |
NIL |
XOR |
BEGIN |
NOT |
|
CASE |
OF |
|
CONST |
OR |
|
DIV |
PACKED |
|
DO |
PROCEDURE |
|
DOWNTO |
PROGRAM |
|
ELSE |
RECORD |
|
END |
REPEAT |
|
EXTERNAL |
SET |
|
FILE |
SHI |
|
FOR |
SHR |
|
FORWARD |
THEN |
|
FUNCTION |
TO |
|
GOTO |
TYPE |
|
IF |
UNTIL |
|
IN |
|
|
|
|
|
5.2 - Estrutura do Programa
Ex. 1.
program alo;
begin
writeln(‘Alo ai !’);
end.
Ex. 2.
program teu;
procedure jose
begin
end
function jose1
begin
end
begin
.
.
end.
5.3 - Operadores
Aritméticos - + , - , * , / , Div (inteira), Mod (módulo)
Lógicos - not, and, or
Relacionais - =, <>, >, < , >= , <=
Strings - +
5.3.1 - Output
Procedure Writeln : é a mais comum função de output do Pascal. Sua finalidade é escrever informações na tela. O formato geral é:
Writeln(item, item, ....);
Item pode ser um valor literal, um caractere, uma string ou um valor booleano. Após a impressão o cursor se move para o início da próxima linha. Para manter o cursor após o último caractere impresso, use o comando
Write(item, item, ....);
Pode-se também usar especificadores para definir o comprimento de um dado item:
Writeln(item:width);
Onde width é uma expressão inteira.
Ex.:
A:= 10; b:= 100;
Name := ‘FRANK’;
writeln(A,B); 10100
Writeln(A,’ ‘,B); 10 100
Writeln(A:4,B:4); 10 100
Writeln(‘Hi’, Name); HiFRANK
Writeln(‘Hi’,Name:6,A:3); Hi, FRANK 10
5.3.2 - InPut
O Pascal Padrão tem duas funções, Read e Readln, que lêem dados do teclado:
Read (item , item, ....);
Readln (item , item, ...);
Seu funcionamento é semelhante ao do Writeln.
5.4 - Constantes e Variáveis
5.4.1 - Constantes
Constantes são objetos cujos valores não variam durante a execução do programa. Elas podem ser qualquer tipo de dado. O tipo de uma constante é compreendido pelo formato de seu valor literal ou atribuído.
5.4.1.1 - Área de Declaração
const
contagem_max =25;
data =‘03/06/58’;
versao =‘12.2’;
raio =1.22;
caractere_bip = ^G;
5.4.2 - Variáveis
Variáveis são objetos nomeados cujos valores podem variar durante a execução do programa. O tipo de cada variável deve ser explicitamente declarado antes dela ser usada num programa. As variáveis no Pascal não são automaticamente inicializadas com um valor quando são declaradas e, portanto, uma variável é considerada indefinida até um valor ser explicitamente atribuído a ela. As declarações de variáveis possuem a forma:
<declaração de variável> :=<identificador>{,<identificador>}:<tipo>;
5.4.2.1 - Área de Declaração
var
ch : char;
preco : real;
indice1,indice2,contagem: integer;
nome :string[30];
5.4.2.2 - Tipos de Variáveis
O Pascal Padrão fornece vários tipos de dados predefinidos ou padrões para variáveis e constantes:
INTEGER
REAL
CHARacter
BOOLEAN
TEXT
Onde cada tipo pode representar uma abrangencia de valores e caracteres.
5.4.3 - Pontuação
Os programas em Pascal utilizam três tipos básicos de pontuação: a vírgula (,), o ponto e vírgula (;) e o ponto (.).
A vírgula é utilizada para separar itens numa lista, como no português. Portanto, a declaração
var
contador, indice, valor :integer;
definirá cada um dos três identificarores como variáveis do tipo integer.
O ponto e vírgula é um separador de comandos e não um finalizador de comandos. Este, talvez, seja um dos mais confusos conceitos para os novos programadores em Pascal.
Não existe ponto e vírgula separando begin e o primeiro comando, e o último comando e end num comando composto porque begin e end são delimitadores, e não comandos. O comando composto é considerado como um simples comando no Pascal, e assim um separador com o ponto e vírgula é utilizado normalmente após o delimitador end, a menos que o comando composto forme uma parte intermediária de outra estrutura.
O ponto é utilizado após o último comando end para indentificar o último comando no programa. Isto permite o compilador verificar que todos os delimitadores begin possuem um delimitador end respectivo.
5.4.4 - Expressões
Comandos e atribuições
x = x + 1
Composta por variáveis , constantes e operadores.
Ex.:
program vazio;
var
soma, a, b : integer;
begin
begin
writeln(‘Programa soma de 2 numeros’);
writeln;
write(‘Entre com o primeiro numero - ‘);
readln(a);
writeln;
write(‘Entre com o segundo numero - ‘);
readln(b);
writeln;
soma:=a+b;
writeln(‘A soma de a e b é - ‘ , soma);
end
end.
5.4.5 - Exercícios
1. Fazer um programa para ler três numeros do teclado e tirar a média aritmética deles.
2. Escreva o resultado do programa abaixo :
Program teste;
Var
X1,X2,X3,X4,X5,X6,X7,X8 : integer;
begin
X1 := 1;
X2 := 2;
X3 := 3;
X4 := 4;
X5 := 5;
X6 := 6;
X7 := 7;
X8 := 8;
Writeln (X1:2, X2:2, X3:2, X4:2 , X5:2, X6:2, X7:2, X8:2);
X1 := X8;
X2 := X7;
X3 := X6;
X4 := X5;
X5 := X4;
X6 := X3;
X7 := X2;
X8 := X1;
Writeln (X1:2, X2:2, X3:2, X4:2 , X5:2, X6:2, X7:2, X8:2);
end.
3. Calcule as expressões abaixo e indique quais são invalidas. Justifique.
Dados X : integer e Y : real
A) X := 4 /2;
B) Y := 0;
X := 2;
Y := (X+1) << X;
X := X * 7;
Y := Y + X div 3 - X mod 4;
C) Y := 4;
X := Y + 1
D) X := 1;
Y := (X -1) / (X >> 1);
5.5 - Estruturas de Controle
5.5.1 - Comando IF
Casos em que você quer executar uma parte do seu programa somente quando uma dada condição é verdadeira ou não.
IF condição THEN comando
IF condição THEN comando1
ELSE comando2;
if (a < b ) then
a=b
else
a=c
Se for necessário executar mais de um comando dentro do if então deve-se usar um comando composto. Um comando composto consiste da palavra chave begin, alguns comandos separados por ;, e a palavra chave end.
Ex.:
If b = 0.0 then
writeln(´Divisão por zero não é permitido´)
else
begin
ratio := a/b;
writeln(´A razão é ´, ratio);
end;
5.5.2 - Comando CASE
Este comando dá ao seu programa a possibilidade de escolher entre alternativas sem ter que especificar muitos if´s.
O comando case consiste de uma expressão ou condição e uma lista de comandos, cada um precedido por um case label (rótulo) do mesmo tipo da expressão ou condição.
CASE expressão OF
constante1 : comando1;
constante2 : comando n;
END;
Ex.:
case soma of
1: resultado:= a + b;
2: resultado:= a - b;
3: resultado:= a * b;
else
resultado:=0;
end;
Ex.:
case resposta of
´S´,´s´ : writeln(‘Opcao confirmada.´);
´N´,´n´ : writeln(‘Opcao cancelada.´)
else
writeln(´Opcao invalida.´);
end;
5.5.3 - Comando WHILE (Laços/Loop)
Assim como há comandos que você os executa sob certas condições, há outros comandos que você pode querer executá-los repetidamente.
WHILE condição DO
comando;
WHILE condição DO
begin
comandos
comandos
end;
Ex.:
program laco1;
const
limite=20;
var
k:integer;
begin
write(‘Entre com o valor inicial (menos o que’,limite,’)-’);
readln(k);
while(k<>limite) do
begin
k:=k+2;
writeln(k);
end;
write;
end.
5.5.4 - Comando REPEAT ... UNTIL
REPEAT
comando(s);
UNTIL condição;
Ex.:
repeat
begin
k:=k+z;
writen(k);
end;
until(k=limite);
5.5.5 - Comando FOR
É o tipo de loop encontrado na maioria das linguagens de programação. Basicamente consiste de um conjuntos de comandos executados um número fixado de vezes, enquanto uma variável, conhecida como variável de índice, passa pelos valores da faixa especificada.
FOR var:=expressão1 TO expressão2 DO comando;
FOR var:=expressão1 DOWNTO expressão2 DO comando;
Ex.1:
program media3;
var
contagem, itens : integer;
dado,soma,media : real;
begin
write(‘Entre com o numero de itens para a média - ‘);
readln(itens);
soma:=0.0;
for contagem:=1 to itens do
begin
write(‘Entre com o valor’,contagem,’- ‘);
readln(dado);
soma:=soma+dado;
end;
media:=soma / itens;
write(‘Media=‘,media:8:2);
end.
Ex.2:
program eu;
var
i: integer;
begin
i:=1;
for i:=1 to 100 do
writeln(i);
end.
Ex.3: Usando while
programa eu;
var
i:integer;
begin
i:=1;
while(i<1000) do
begin
writeln(i);
i:=i+1;
end;
Ex.4:
programa saida;
var
a:integer;
b:real;
c:char;
d:boolean;
e:string[15];
begin
a := 45;
b := 1.33;
c ´:= ´x´
d := false;
e := ´Turbo Pascal´;
writeln(a,b,c,d,e);
writeln(a,´ ´,b,´ ´,c,´ ´,d,´ ´,e);
end.
Lista de Procedure e Funções do Pascal
CLREOL - Apaga os caracteres desde a posição do cursor até o fim da linha.
CLRSCR - Limpa a tela.
DELLINE - Apaga uma linha.
INSLINE - Inseri uma linha vazia.
GOTOXY (C,L)- Posiciona o cursor (Coluna, Linha).
DELAY(num) - Laço de atraso de tempo (Segundos).
EXIT - Sai do bloco corrente.
HALT - Força o retorno ao DOS.
ABS(num) - Valor absoluto - Argumento inteiro ou real.
ARCTAN(num) - Ângulo em radianos cuja tangente é num - inteiro ou real.
COS(num) - Co-seno do ângulo.
EXP(num) - Exponencial.
FRAC(num) - Parte fracinaria de num.
INT(num) - Parte inteira de num.
LN(num) - Logaritmo natural.
SIN(num) - Seno do ângulo.
SQR(num) - Quadrado de num.
SQRT(num) - Raiz quadrada de num.
CHR(num) - Retorna o valor da tabela ASCII.
ROUND(num) - Arredondamento.
TRUNC(num) - Truncamento da expressão real -> inteiro
RANDOM(num) - Retorna um número randómico >= 0
STR(valor) - Converte o valor da expressão númerica para String.
VAL(st) - Converte st para um valor numerico que ela representa.
CONCAT(st1,st2,..) - Retorna uma string que é o resultado da concatenação de todos os strings.
LENGTH(st) - Retorna o tamanho em caracteres da string st.
POS(obj,alvo) - Procura a primeira ocorrência do string obj. Retornando a posição do primeiro caracter se for detectado a coinncidência e zero, caso contrário.