Um Programa em Pascal é composto por um cabeçalho do programa, seguido por um bloco, finalizando com um ponto.

O cabeçalho de um programa dá o nome ao mesmo e define o modo como ele comunica com o mundo exterior. O bloco contém a descrição das entidades usadas pelo programa e o algoritmo que manipula essas entidades.

Um bloco é definido sintacticamente do seguinte modo:
<bloco> ::= <zona de declaração de rótulos>
<zona de definição de constantes>
<zona de definição de tipos>
<zona de declaração de variáveis>
<zona de declaração de procedimentos ou funções>
<zona de instruções>


Em baixo ficam alguns exemplos de programas em Pascal.


Exemplo 1 - Pretende-se um Algoritmo que registe 6 temperaturas ocorridas diariamente numa localidade e que calcule a média dessas temperaturas. O Algoritmo também deve indicar quais as temperaturas que tiveram valores acima da média.


PROGRAM TEMP_MEDIA ;

VAR
i: integer;
soma, media: real;
temp: array [1..6] of real;

BEGIN
writeln ('Introduza os valores das 6 temperaturas');
FOR i := 1 TO 6 DO
readln (temp[i])
soma := 0; {Cálculo da média}
FOR i := 1 TO 6 DO
soma := soma + temp[i];
media := soma / 6;
FOR i := 1 TO 6 DO {Valores acima da média}
BEGIN
IF temp[i] > media THEN
writeln ('Temperatura acima da média: ', temp[i]);
END;
readln
END.


Exemplo 2 - Pretende-se um Programa que, utilizando vectores, solicite ao utilizador as classificações de 10 alunos, calcule a sua média e a escreva no écran .


PROGRAM EX_VECTORES;

CONST
NALUNOS=10; A constante NALUNOS é substituida pelo seu valor no programa antes da compilação

VAR
NOTA : ARRAY [1..NALUNOS] OF INTEGER;
I, SOMA : INTEGER;
MEDIA : REAL;

BEGIN Pede ao utilizador para introduzir as 10 Notas
FOR I:=1 TO NALUNOS DO
BEGIN
WRITE ('Introduza a Nota do Aluno ', I, ' : ');
READLN (NOTA[I]);
END;

Calculo da Média
SOMA := 0;
FOR I:=1 TO NALUNOS DO
SOMA := SOMA + NOTA[I];
MEDIA := SOMA / NALUNOS;
Escreve o Resultado
WRITELN ('A Média é : ', MEDIA:4:1); A MEDIA é apresentada com 1 casa decimal (4 digitos, 1 decimal)
READLN;
END.


Exemplo 3: Programa que mostra o cálculo do factorial com repetições

PROGRAM FACTORIAL ;

VAR

Factorial: integer ;
i: integer ;
N: Integer;

Begin
WRITE
('Informe o Valor de N: ');
READLN (N);

Factorial:= 1;
for i:= 1 to N do
Begin
Factorial:=Factorial * i;
end;


Mostra resultado
WRITE
('O Valor de ', N, ' Factorial é: ', factorial);
End.


Exemplo 4:
Programa que demonstra a utilização de Arrays, Procedures e Functions em PASCAL

este programa em Pascal através de vectores, solicita ao utilizador a classificação de 15 alunos, através de um procedimento que as
armazena num array, e calcula a média das classificações, através de uma função, fazendo o seu display no écran;

PROGRAM EXEMPLO_ARRAY;

CONST

NALUNOS=15; A constante NALUNOS é substituida pelo seu valor no programa antes da compilação

VAR

NOTA : ARRAY [1..NALUNOS] OF INTEGER ; poderíamos alterar o array para valores reais , nesse caso a soma também terá de passar a ser real, no entanto o indice do array "I" terá de continuar inteiro
MEDIA : REAL ; Não há indices reais para arrays

PEDE AO UTILIZADOR PARA INTRODUZIR AS 15 CLASSIFICAÇÕES

PROCEDURE PEDEDADOS;

VAR

I : INTEGER ;

BEGIN
FOR I:=1 TO NALUNOS DO
BEGIN
WRITE ('Introduza a Nota do aluno',I,' : ');
READLN (NOTA[I]);
END;
END;

CALCULO DA MEDIA

FUNCTION CALCULAMEDIA:REAL;

VAR
I,SOMA : INTEGER ;
BEGIN
SOMA := 0 ;
FOR I:=1 TO NALUNOS DO
SOMA := SOMA + NOTA[I];
CALCULAMEDIA := SOMA / NALUNOS ;
END;

PROGRAMA PRINCIPAL

BEGIN
PEDEDADOS ;
MEDIA := CALCULAMEDIA ;

Escreve o Resultado
WRITELN ('A Média é : ', MEDIA:4:1);
A MEDIA é apresentada com 1 casa decimal (2 inteiros + "." + 1decimal)
READLN;
END.


Exemplo 5: Programa que demonstra a utilização de Arrays Bi-dimensionais em PASCAL

PROGRAM Vendas ;

VAR

j,m : INTEGER ;

venda : ARRAY [1..3,1..3] OF REAL ;

BEGIN

FOR j := 1 TO 3 DO
FOR m := 1 TO 3 DO
BEGIN
WRITELN ('Qual a venda da loja ', j ,' no mês ', m) ;
READLN (venda[j,m])
END;
WRITELN ('Qual a loja que pretende consultar ? ');
READLN(j);
WRITELN('Em que mês ? ');
READLN(m);
WRITELN('As vendas da loja ',j,' no mês ',m,' foram ',vendas[j,m],' Euros')
READLN;
END.

Exemplo 6: Programa que converte de decimal em binário em Pascal

PROGRAM converte

(Converte um inteiro em binário)

VAR
stack: array[1..100] of integer;
topo, num: integer;
digito: integer;

PROCEDURE push (digito: integer);

BEGIN
topo := topo + 1;
stack[topo] := digito
END;

PROCEDURE pop(var digito: integer);
BEGIN
digito := stack[topo];
topo := topo - 1
END;

BEGIN
topo := 0;
CLRSCR;
WRITELN ('introduza o numero em decimal');
READLN (num); WRITELN;

WHILE num>1 DO
BEGIN
digito := num MOD 2; push(digito);
num := num DIV 2
END;
push (num);

WRITELN ('Conversão para binario: ');

WHILE topo > 0 DO
BEGIN
pop (digito); write(digito:2)
END

END.


Exemplo 7: Programa que lê uma matriz 3 x 3, multiplica a diagonal principal por uma constante K, que também deve ser lida, imprime a matriz original, e a matriz modificada

Program Matriz ;

VAR
i,j,k: integer;
M: array [1..4, 1..4] of integer;

Begin
For i:= 1 to 3 do
For j:= 1 to 3 do
Begin
write('Entre com o valor M[',i, ',',j, '] : ');
readln(M[i,j]);
End;


write('Entre com um valor K : ');
readln(k);

writeln('Matriz original : ');
For i:= 1 to 3 do
writeln(M[i,1]:4, M[i,2]:4, M[i,3]:4);


For i:= 1 to 3 do
M [ i, i ] := K * M [ i, i ] ;

writeln('Nova Matriz : ');
For i:= 1 to 3 do
writeln(M[i,1]:4, M[i,2]:4, M[i,3]:4);

End.