Documente Academic
Documente Profesional
Documente Cultură
Computação
Unidade IV:
Introdução à Programação Pascal
1
Escola Nacional de Ciências Estatísticas
Introdução
A linguagem Pascal é uma linguagem de alto nível desenvolvida no início dos anos
70 por Niklaus Wirth. A linguagem Pascal é uma linguagem de propósito geral; isto quer
dizer que, através dela, é possível construir qualquer tipo de programa (desde um programa
simples que soma dois números, até programas complexos como um controle de estoque,
ou mesmo, um sistema operacional).
A partir do fim dos anos 90, a linguagem PASCAL deixou de ser utilizada em
aplicações comerciais e passou a ser pouco utilizada em sistemas acadêmicos e científicos
(como acontecia nos anos 70 e 80). No entanto, mesmo nos dias de hoje, a linguagem ainda
apresenta algumas características vantajosas, conforme descrito a seguir:
2
Escola Nacional de Ciências Estatísticas
Todo programa escrito em Pascal possui a estrutura apresentada na Figura IV.1. Ele
deve ser composto por um um cabeçalho e um bloco de comandos.
begin } bloco de
<comandos> } comandos
end. }
Figura IV.1 – Forma geral de um programa escrito em Pascal.
3
Escola Nacional de Ciências Estatísticas
O conceito de variável pode ser entendido pelo aluno da seguinte forma: o nome de
um local onde é possível guardar um determinado valor. Este valor pode ter sido
especificado como entrada pelo usuário (via teclado, por exemplo) ou pode ter sido
calculado dentro do programa. Para simplificar ainda mais, você pode imaginar a variável
como sendo uma “caixinha” que possui um nome e guarda um determinado valor (Figura
IV.2).
Figura IV.3 – Uma variável aponta para algum endereço da memória principal.
4
Escola Nacional de Ciências Estatísticas
program Declara1;
var NOME: string;
IDADE: integer;
SALARIO: real;
POSSUI_CARRO: boolean;
begin
...
end.
É possível declarar diversas variáveis de um mesmo tipo de uma vez só, bastando
separar os nomes de cada variável por vírgula (Figura IV.5).
program Declara2;
var NOME, ENDERECO, PROFISSAO: string;
IDADE, QUANT_FILHOS: integer;
begin
...
end.
5
Escola Nacional de Ciências Estatísticas
Os nomes a seguir são inválidos (não podem ser utilizados como nomes de
variáveis):
6
Escola Nacional de Ciências Estatísticas
• Real: pode armazenar um número real (fracionário). , seja ele negativo, nulo ou
positivo. Exemplos: 0, 1, -1, 3.14, -99.99, 1.50, 1000, 100000.
7
Escola Nacional de Ciências Estatísticas
informação cujo valor será ou verdadeiro ou falso (ex: Possui Carro? Possui
Casa Própria? Tem cartão de crédito?).
IV.3.3 Atribuição
program Atribui1;
var NOME: string;
IDADE: integer;
SALARIO: real;
POSSUI_CARRO: boolean;
begin
NOME := ‘Maria’;
IDADE := 33;
SALARIO := 1500.05;
POSSUI_CARRO := TRUE;
end.
8
Escola Nacional de Ciências Estatísticas
variável, o valor antigo é apagado (por isso, é dito que a operação de atribuição é
destrutiva).
program Contas;
var I1, I2, I3, I4, I5 : integer;
R1: real;
begin
I1 := 6 + 1 * 10;
I2 := (6 – 1) * 10;
I3 := I1 + I2;
I4 := 15 DIV 2;
I5 := 15 MOD 2;
R1 := 10 – 4 / 2;
end.
9
Escola Nacional de Ciências Estatísticas
readln(NOME);
OBS: o comando READ também é usado para entrada em Pascal, mas não será utilizado
neste curso.
Para escrever uma mensagem na tela, basta usar o comando writeln (ou write) e
especificar a mensagem entre aspas simples, conforme apresentado no programa da Figura
IV.8.
10
Escola Nacional de Ciências Estatísticas
program HelloWorld;
begin
writeln(‘Hello World’);
readln;
end.
Este programa não possui entrada e não realiza nenhum processamento. Somente
escreve uma mensagem na tela através do comando localizado na terceira linha. O comando
readln na quarta linha serve apenas para esperar o usuário digitar ENTER antes de terminar
o programa (é um “macete” costumeiramente usado no Pascal).
Para escrever o valor de uma variável, é necessário especificar a variável sem usar
aspas simples. Veja o exemplo da Figura IV.9: o que aparece na tela é o valor de X (10).
program EscreveVariavel;
var X: integer;
begin
X := 10;
writeln(X);
readln;
end.
11
Escola Nacional de Ciências Estatísticas
Para escrever o valor de uma expressão, basta introduzir esta expressão entre
parênteses (sem usar as aspas! Elas são usadas apenas quando desejamos imprimir
mensagens). No exemplo da Figura IV.10 o Pascal calcula a expressão X * 10 + 100
(resulta em 200, pois X é igual a 10) e, em seguida, exibe o seu resultado na tela.
program EscreveVariavel;
var X: integer;
begin
X := 10;
writeln(X * 10 + 100);
readln;
end.
Os comandos write e writeln são idênticos a não ser por uma característica: o
comando writeln imprime a informação desejada e, depois, força uma quebra de linha. O
comando write imprime a mensagem e não “pula linha”. Veja o exemplo da Figura IV.11.
program HelloWorld2;
begin
writeln(‘ Hello’);
writeln(‘ World’);
write(‘ Hello’);
write(‘ World’);
readln;
end.
12
Escola Nacional de Ciências Estatísticas
RESOLUÇÃO:
program Milhas_Para_Km;
var MILHAS, Km: real;
begin
writeln('* * Programa Conversor: Milhas -> Km * *');
writeln;
write('Digite o valor da distancia em Milhas: ');
readln(MILHAS);
Km := MILHAS * 1.61;
writeln;
writeln('O valor equivalente em km eh: ', Km);
readln;
end.
EXPLICAÇÃO:
2. A segunda linha contém a declaração das variáveis MILHAS e Km. Conforme visto
anteriormente, uma variável serve para armazenar informações que serão utilizadas
pelo programa.As duas variáveis foram declaradas como sendo do tipo real.
4. A quarta linha exibe uma mensagem que informa ao usuário sobre o propósito do
programa.
5. A comando da linha 5 (writeln sem nenhum parâmetro) é usado apenas por motivos
“estéticos”. Ele faz com que uma linha em branco seja impressa na tela.
13
Escola Nacional de Ciências Estatísticas
6. A linha 6 exibe uma mensagem no vídeo, pedindo com que o usuário digite o valor
de uma distância em milhas.
7. A linha 7 é a responsável, de fato, por receber o valor que será digitado pelo usuáiro
e armazenar na variável MILHAS. Ela contém o comando readln, o comando de
entrada do Pascal. Quando o computador “vê” a instrução readln(MILHAS) ele
“sabe” que deve esperar o usuário digitar um valor no teclado e “sabe” que deve
copiar este valor para a variável MILHAS.
10. A linha 10 imprime uma mensagem e o valor armazenado na variável Km. Note que
a mensagem é especificada entre aspas, depois usa-se o caractere virgula e o
identificador Km (a vírgula é utilizada para separar as coisas que desejamos
imprimir no writeln).
11. O readln final (linha 11) serve apenas para “segurar a tela”.
Uma maneira mais “bonita” de resolver este programa é alterar a linha 11 da seguinte
forma:
Esta alteração faz com que o valor da variável Km seja impresso com 5 casas inteiras e
duas casas decimais. Isto chama-se “máscara de exibição”. Se não utilizamos uma máscara,
o Pascal imprime o valor de variáveis reais usando notação científica.
RESOLUÇÃO ALTERNATIVA:
program Milhas_Para_Km;
var MILHAS: real;
begin
writeln('* * Programa Conversor: Milhas -> Km * *');
writeln;
write('Digite o valor da distancia em Milhas: ');
readln(MILHAS);
writeln;
writeln('O valor equivalente em km e: ', MILHAS * 1.61);
readln;
end.
14
Escola Nacional de Ciências Estatísticas
EXPLICAÇÃO:
Neste exemplo, optamos por não declarar a variável Km. O valor da conversão de milhas
para quilômetros é calculado e impresso dentro do próprio comando writeln.
EXEMPLO IV.6.2 A conversão de graus Celsius para graus Fahrenheit é obtida pela seguinte
fórmula:
F = C x 1,8 + 32
Elabore um programa que receba como entrada o valor da temperatura em graus Celsius e
imprima o valor da temperatura em graus Fahrenheit.
RESOLUÇÃO:
program Temperatura;
var C, F: real;
begin
writeln('--> Programa Conversor: Celsius -> Fahrenheit');
writeln;
write('Digite o valor da temperatura em graus Celsius: ');
readln(C);
F := C * 1.8 + 32;
writeln;
writeln('Valor equivalente em Fahrenheit = ', F:5:2);
readln;
end.
RESOLUÇÃO:
program Consumo;
var DIST, CONSUMO, LITROS: real;
begin
writeln('* * Programa LITROS DE GASOLINA * *'); writeln;
write('Digite o valor da distancia que voce vai percorrer (em Km): ');
readln(DIST); writeln;
write('Especifique o consumo do seu carro (em Km/l): ');
readln(CONSUMO); writeln;
LITROS := DIST / CONSUMO;
writeln('Voce deve abastecer ', LITROS:3:2, ' litros de combustivel');
readln;
end.
15
Escola Nacional de Ciências Estatísticas
O usuário então, digita seu nome e, em seguida, o computador deve imprimir a seguinte
mensagem na tela:
RESOLUÇÃO:
program Interacao;
var N: string;
begin
writeln('Qual o seu nome?');
readln(N);
writeln;
writeln('Bom dia ', N, '!');
writeln('Voce ja está ficando “fera” em Pascal... ');
readln;
end.
RESOLUÇÃO:
program Variavel;
var NOME: string;
begin
NOME:= 'ENCE';
Writeln(NOME);
NOME := 'IBGE';
Writeln(NOME);
Readln;
end.
16
Escola Nacional de Ciências Estatísticas
Inicialmente, o programa deve ler um número inteiro digitado pelo usuário e armazená-lo
numa variável chamada x.
Em seguida, o sistema deve calcular e imprimir o valor da função y = f(x) + g(x), onde:
h(x) = x2 – 16
f(x) = h(x) x 2;
g(x) = h(x) + 4;
RESOLUÇÃO:
program Fxy;
var X, Y, Hx, Fx, Gx: integer;
begin
writeln('programa y = f(x) + g(x)');
writeln;
writeln('Digite o valor de x'); readln(x);
hx := (x * x) – 16;
fx := hx * 2;
gx := hx + 4;
y := fx + gx;
writeln;
writeln('y = ', y);
readln;
end.
IV.7 Comentários
IV.8 Constantes
17
Escola Nacional de Ciências Estatísticas
EXEMPLO IV.6.7 Escreva um programa que receba como entrada o valor do raio de uma
esfera e calcule e imprima o valor da área e do volume.
A = 4πr2
V = 4π r3 ÷ 3
RESOLUÇÃO:
program Esfera;
const PI = 3.14;
var raio, A, V: real;
begin
writeln('programa que calcula a area e volume da esfera');
writeln;
writeln('Digite o valor do raio:'); readln(raio);
A := 4 * PI * (raio * raio);
V := 4/3 * PI * (raio * raio * raio);
Writeln('Area = ', A);
Writeln('Volume = ', V);
end.
18
Escola Nacional de Ciências Estatísticas
program Funcoes;
var X, Y, Q, R: real;
Z1, Z2: integer;
begin
X:=100; Y:= 9;
R := sqrt(X); {R recebe 10}
Q := sqr(Y); {Q recebe 81}
Writeln(X:2:2,' ', Y:2:2, ' ', R:2:2, ' ',Q:2:2);
X := 1.8;
Z1 := round(X); {Z1 recebe 2}
Z2 := trunc(X); {Z2 recebe 1}
Writeln(X:2:2,' ', Z1,' ', Z2);
Readln;
end.
As palavras reservadas têm um sentido predefinido em Pascal. Isto quer dizer que
elas conseguem ser “decodificadas” como instruções pelo compilador Pascal. As principais
palavras reservadas são indicadas na Tabela IV.1.
Na prática isto quer dizer, que você não pode, por exemplo, chamar o seu programa de
Program Array, pois ARRAY é uma palavra reservada. Um nome de programa nunca pode
ser igual ao de uma palavra reservada. Da mesma maneira, você não pode declarar uma
variável ou constante com o nome de uma palavra reservada.
Exercícios
(1) Faça um programa que solicite a idade de uma pessoa e que, depois, imprima quantos
anos ela terá em 2030.
(2) Faça um programa que receba a base e a altura de um triângulo e que calcule e imprima
a sua área.
19
Escola Nacional de Ciências Estatísticas
(4) Quais serão os valores das variáveis X1, X2, Y1, Y2 ao final da execução do programa
abaixo?
program Valores;
var X1, X2: real;
Y1, Y2: integer;
begin
X1:=0; X2:=2; Y1:= sqr(9);
Y2 := (Y1 MOD 5) + (Y1 DIV 9);
Y1 := trunc(8.9) + round(9.1);
X1 := 5 * 10 + 12 / 3; X1 := Y1 * 10;
readln;
end.
(5) Escreva um programa que receba como entrada o valor de um número inteiro N e que
calcule o valor de S da seguinte forma:
S = 1 * (N - 1) + 2 * (N - 2) + 3 * (N - 3) + 4 * (N - 4) + 5 * (N - 5)
(6) Escreva um programa para o cálculo do valor de uma prestação em atraso, utilizando a
fórmula: prestação = valor + (valor * (taxa / 100) * tempo).
OBS: observe a fórmula acima e decida que dados você precisará receber como entrada.
(7) Faça um programa que receba como entrada o nome, a idade e o valor do salário mensal
de uma pessoa. Em seguida calcule o salário desta pessoa em quantidade de salários
mínimos e imprima a seguinte mensagem na tela:
Seu nome é fulano, você tem x anos e você recebe z salários mínimos por mês.
20
Escola Nacional de Ciências Estatísticas
(9) Faça um programa que receba 10 números como entrada e calcule e imprima a média
destes 10 números.
Exercícios Especiais
(10) Considere uma empresa de engenharia que possui um programa para a contratação de
recém-formados. Neste programa, 10 engenheiros “trainees” são contratados anualmente.
Estes novos funcionários começam a trabalhar no mês de janeiro, com salário inicial de R$
2.000,00. No mês de junho os trainees recebem um aumento salarial de 2%. No mês de
Dezembro o salário é aumentado em mais 5%. Elabore um programa que calcule e imprima
o valor gasto pela empresa ao final do ano com os salários dos 10 engenheiros trainees.
(11) Escreva um programa que leia o valor de duas variáveis A e B do tipo char, efetuar a
troca dos valores, de forma que a variável A passe a ter o valor da variável B e que a
variável B passe a ter o conteúdo da variável A. Apresente na tela os valores trocados.
(12) Faça um programa que leia um número inteiro de 4 dígitos e que imprima, em duas
linhas separadas, os dois primeiros e os dois últimos algarismos deste número:
21