A maior rede de estudos do Brasil

Grátis
146 pág.
Programando com PASCAL - Jaime Evaristo

Pré-visualização | Página 11 de 50

integer ou real fornecendo resultado do tipo real se pelo menos um dos operandos é do tipo real e 
resultado do tipo integer se ambos os operandos são deste tipo. O operador / sempre fornece resultados do 
tipo real. Isto significa que o resultado de uma expressão como 6/2 não pode ser armazenado numa variável 
do tipo integer. 
Além destes, o sistema oferece dois outros operadores aritméticos que operam apenas com valores do 
tipo integer resultando valores também deste tipo. São os operadores div e mod que fornecem, 
respectivamente, o quociente e o resto da divisão inteira do primeiro operando pelo segundo. Por exemplo, 
30 div 7 = 4 e 30 mod 7 = 2, enquanto que 5 div 7 = 0 e 5 mod 7 = 5. Como os operandos devem ser do tipo 
integer, uma expressão do tipo 30.0 div 7 gerará um erro de compilação.
Na avaliação de expressões, o sistema efetua primeiro as operações envolvendo div, mod, *, /, para 
depois efetuar as operações envolvendo (+) e (-). Isto é chamado de prioridade dos operadores. Observe que 
div, mod, (*) e (/) têm a mesma prioridade e que esta é maior do que a prioridade de (+) e (-). Como em 
matemática, a prioridade pode ser alterada com a utilização de parênteses. Se uma expressão envolvendo 
operadores de igual prioridade não for parentetizada, o sistema a avalia da esquerda para direita. Por 
exemplo, 60/4*3 = 15*3 = 45 enquanto que 60/(4*3) = 60/12 = 5. 
Um detalhe mais ou menos evidente é que operandos podem ser conteúdos de variáveis. Neste caso, o 
operando é indicado pelo identificador da variável (é para isto que serve o identificador, para se fazer 
referência aos valores que na variável estão armazenados).
2.4 Relações
Os compiladores da linguagem Pascal realizam comparações entre valores numéricos, realizadas no 
sentido usual da matemática, e entre cadeias de caracteres, realizadas de acordo com a ordenação do código 
ASCII. Estas comparações são chamadas relações e são obtidas através dos operadores relacionais:
Tabela 5 Operadores relacionais
Operador Operação
> maior do que
>= maior do que ou igual a
< menor do que
<= menor do que ou igual a
= igual
<> diferente
O resultado da avaliação de uma relação é true, se a relação for verdadeira, ou false se a relação for falsa. 
Assim, 3 > 5 resulta no valor false, enquanto que 7 <= 7 resulta no valor true. Sendo um valor true ou false, 
o resultado da avaliação de uma relação pode ser armazenado numa variável do tipo boolean.
Os operandos de uma relação podem ser expressões aritméticas. Nestes casos, as expressões aritméticas 
são avaliadas em primeiro lugar para, em seguida, ser avaliada a relação. Por exemplo, a relação 
3*4 - 5 < 2*3 - 4 resulta no valor false, pois 3*4 - 5 = 7 e 2*3 - 4 = 2. Isto significa que os operadores 
relacionais têm prioridade mais baixa que os aritméticos. 
2.5 Expressões lógicas
Os compiladores da linguagem Pascal também avaliam expressões lógicas obtidas através da aplicação 
dos operadores lógicos binários and e or a duas relações ou da aplicação do operador lógico unário not a 
uma relação. 
Se r1 e r2 são duas relações, a avaliação da aplicação dos operadores lógicos binários, de acordo com os 
valores de r1 e r2, são dados na tabela abaixo.
Tabela 6 Avaliação de expressões lógicas com os operadores and e or
r1 r2 (r1) and (r2) (r1) or (r2)
true true true true
true false false true
false true false true
false false false false
Uma expressão lógica do tipo (r1) and (r2) só recebe o valor true se os valores de r1 e de r2 forem iguais a 
true; uma expressão lógica do tipo (r1) or (r2) só recebe o valor false se os valores de r1 e de r2 forem iguais a 
false.
A aplicação do operador unário not simplesmente inverte o valor original da relação:
Tabela 7 Operador unário not
r1 not r1
true false
false true
Considerando que os operadores and e or possuem o mesmo grau de prioridade, se uma expressão não 
parentetizada possuir mais de uma relação, ela será avaliada da esquerda para direita. O operador unário not 
tem prioridade em relação aos operadores binários. Assim, not (5 > 3) or (5 < 3) tem valor false, pois
not (5 > 3) é uma relação falsa e 5 < 3 também é. Como os operadores relacionais têm prioridade mais baixa 
que os operadores lógicos, os parênteses nas expressões acima são necessários. 
2.6 Estrutura de um programa em Pascal
Estamos aprendendo a escrever programas na linguagem Pascal. Já vimos que se o programa necessitar 
manipular variáveis, estas devem ser declaradas. Vimos também que se pode definir constantes. 
Aprenderemos agora que um programa em Pascal contém áreas de programa distintas, cada uma delas com 
finalidade específica. A última das áreas de programa é a única que é obrigatória, é chamada programa 
principal e contém as instruções do programa propriamente dito e as ativações ou chamadas de 
procedimentos e de funções. O programa principal deve ser iniciado com a palavra begin (início, em inglês) e 
concluído com a palavra end (fim, em inglês), seguida de um ponto final. Desta forma, o "conjunto de 
instruções"
begin
end.
é um programa em Pascal (o menor programa em Pascal possível) que nada realiza, pois não contém 
nenhuma instrução propriamente dita. Os termos begin e end são chamados delimitadores e como veremos 
adiante são utilizados em muitas outras partes de um programa.
De um modo geral, as áreas de um programa em Pascal são:
identificação do programa,
relação das unidades utilizadas, 
definições de tipos de dados, 
declaração de constantes,
declaração de variáveis,
definições dos procedimentos e funções e
programa principal.
Em seguida discutiremos apenas a identificação do programa, a relação das unidades utilizadas, as 
definições de tipos de dados e as definições de procedimentos e funções já que as declarações de constantes 
e de variáveis e o programa principal já foram matéria de comentários.
A identificação do programa começa pela palavra obrigatória program seguida de um identificador, 
devendo o identificador seguir as mesmas regras de identificação de variáveis. Complementando o que já foi 
dito na seção 2.1, dois identificadores situados numa mesma área do programa devem ser distintos, distinção 
esta que deve ocorrer até 63º (sexagésimo terceiro) caractere. A identificação do programa é concluída com a 
aposição de um ; (ponto e vírgula) após o identificador.
Uma unidade é um programa dos compiladores Pascal que contém vários procedimentos e funções pré-
definidos, cujas utilizações facilitam muitas tarefas de programação. Por exemplo, o sistema possui a 
unidade Crt que contém o procedimento ClrScr cuja execução faz com que a tela do usuário seja limpa. 
Usualmente os compiladores Pascal oferecem uma tela para edição, chamada tela de edição, e uma tela pela 
qual são fornecidos os dados de entrada e os resultados do processamento são exibidos. Esta é a tela do 
usuário ou tela de trabalho (para se abrir a tela do usuário a partir da tela de edição deve se digitar <alt> + 
F5; para se retornar para a tela de edição, basta se digitar qualquer tecla). 
Para que um programa possa utilizar um procedimento que pertence a uma determinada unidade, é 
necessário que a tal unidade seja relacionada no programa, isto sendo feito através da seguinte sintaxe:
uses lista das unidades;
Por exemplo,
program LimpaTela;
uses Crt;
begin
 ClrScr;
end.
é um programa que limpa a tela do usuário eventualmente utilizada por uma anterior execução de um outro 
programa.
Além da unidade Crt, os compiladores Pascal, de um modo geral, possuem as unidades Dos, Graph, 
Printer e System. A unidade System contém procedimentos e funções básicas de programação e não há 
necessidade de ser incluída na lista de unidades,