Académique Documents
Professionnel Documents
Culture Documents
Apndice A. Pseudo-Linguagem
A.1 Consideraes Preliminares
Os computadores convencionais se baseiam no conceito de uma memria principal
que consiste de clulas elementares, cada qual identificada por um endereo. O
contedo de uma clula o valor da mesma. O valor de uma clula pode ser lido e/ou
modificado. Esta modificao feita pela substituio de um valor por outro. Alm
disso, circuitos permitem o acesso a uma clula de cada vez. Com poucas excees, as
linguagens de programao podem ser consideradas como abstraes, em nveis
diferentes, do comportamento destes computadores convencionais. Em particular, o
conceito de varivel introduzido como uma abstrao de clulas de memria, e o
conceito de comando de atribuio como uma abstrao destrutiva destas clulas.
Uma varivel caracterizada por um nome e dois atributos bsicos: valor e tipo. O
nome usado para identificar e fazer referncia varivel. O valor de uma varivel
representado, de forma codificada, na rea de memria amarrada varivel. Este
cdigo interpretado de acordo com o tipo da varivel. O tipo de uma varivel pode
ser considerado como uma especificao da classe de valores que podem ser
associados varivel, bem como das operaes que podem ser usadas para criar,
acessar e modificar estes valores.
A amarrao entre uma varivel e o valor armazenado na rea de memria
correspondente , em geral, dinmica, j que este valor pode ser modificado por
operaes de atribuio. Uma atribuio como b a causa o armazenamento de uma
cpia do valor da varivel a na rea de memria amarrada varivel b.
Algumas linguagens, entretanto, permitem o congelamento da amarrao entre uma
varivel e o seu valor quando a amarrao estabelecida. A entidade resultante , sob
qualquer aspecto, uma constante simblica definida pelo programador.
Por exemplo, em Pascal se pode escrever:
const
pi = 3.1416;
e ento usar pi em uma expresso como circunferncia:= 2 * pi * raio;.
A varivel pi est amarrada ao valor 3.1416, e este valor no pode ser modificado;
isto , o compilador acusa erro se existir uma atribuio pi.
Poderamos usar o valor 3.1416 diretamente na expresso acima, dispensando o
uso da constante simblica pi (circunferncia:= 2 * 3.1416 * raio;). Neste caso,
chamamos 3.1416 de constante literal.
A.2 Pseudo-linguagem LPE
Nos itens subseqentes iremos descrever as regras sintticas e semnticas de uma
linguagem de construo de algoritmos chamada Linguagem de Programao
Estruturada (LPE). Esta linguagem tem por objetivo permitir a elaborao de um
algoritmo sem termos que nos preocupar com as regras rgidas de uma linguagem de
Ivan Mathias Filho
Pgina 1
09/03/2010
Apostila de Programao I
<nome> = <valor>;
variveis
<nome> : <tipo>;
<nome> : <tipo>;
incio
<comando>;
<comando>;
fim.
No lay-out acima, tudo o que estiver em negrito faz parte da sintaxe da linguagem;
e o que estiver entre < > ser posteriormente substitudo por construes dos
programadores. Esta construes, porm, tero tambm que obedecer s regras da
LPE.
A.2.1 Nomes
Um nome de uma varivel, ou de uma constante simblica, uma seqncia de no
mximo 32 caracteres alfanumricos, alm do caracter sublinhado ( _ ). O primeiro
caracter tem que ser obrigatoriamente alfabtico. A linguagem LPE no faz distino
entre caracteres maisculos e minsculos.
Exemplo:
a
nome_aluno
c8
valor
xyz
A.2.2 Tipos
A.2.2.1 Inteiro
O tipo inteiro usado para representar valores inteiros positivos e negativos. As
operaes disponveis para o tipo inteiro so representadas pelos operadores +
Ivan Mathias Filho
Pgina 2
09/03/2010
Apostila de Programao I
'
'
/*
/*
/*
/*
tipo
tipo
tipo
tipo
real */
lgico */
inteiro */
caracter */
Pgina 3
09/03/2010
Apostila de Programao I
Exemplo:
3
/* uma constante uma expresso */
abc
/* uma varivel uma expresso */
n mod 2
salrio * 1.25
(renda_bruta - desconto) * 0.15
Neste ponto iremos apresentar os operadores relacionais. Os operadores
relacionais so amplamente usados na matemtica e dispensam apresentaes. Estes
operadores so usados para relacionar duas expresses; criando uma nova expresso.
O valor desta nova expresso sempre uma valor lgico; isto , verdadeiro ou falso.
Os operadores relacionais so os seguintes:
=
>
<
>=
<=
(igual)
(diferente)
(maior)
(menor)
(maior ou igual)
(menor ou igual)
3.
4.
5.
6.
Parnteses
Operadores Aritmticos
2.1.
+, - (unrios)
2.2.
*, /, div, mod
2.3.
+, - (binrios)
Operadores Relacionais
~ (no)
(e)
(ou)
Pgina 4
09/03/2010
Apostila de Programao I
Exemplo:
idade 3;
/* uma constante uma expresso */
x n mod 2;
salrio salrio * 1.25;
imposto (renda_bruta - desconto) * 0.15;
endereo 'Rua JK, 23';
A.2.4.3 Comando de Leitura
O comando de leitura tem a seguinte sintaxe:
leia(<var1>,<var2>,,<varN>);
onde os termos <varK> devem ser substitudos por variveis declaradas na seo
variveis, exceto por variveis do tipo lgico. O comando de leitura tem por objetivo
transferir dados de um perifrico, por exemplo o teclado, e armazen-los nas variveis
fornecidas no comando.
Exemplo:
leia(matrcula,nome,idade,sexo);
A.2.4.4 Comando de Escrita
O comando de escrita tem a seguinte sintaxe:
escreva(<exp1>,<exp2>,,<expN>);
onde os termos <expK> devem ser substitudos por expresses vlidas na linguagem
LPE, exceto por expresses que tm valor do tipo lgico. O comando de escrita tem
por objetivo transferir dados da memria principal para um perifrico; por exemplo
um monitor de vdeo.
Exemplo:
escreva('O Nome do Aluno e ',nome);
escreva('Salrio - ',salrio,' Imposto - ',salrio*0.1);
A.2.5 Estrutura de Controle
A.2.5.1 Bloco
Um bloco consiste de um conjunto de comandos delimitados pelas palavras incio
e fim. Um bloco pode ser interpretado como sendo um comando composto por vrios
Ivan Mathias Filho
Pgina 5
09/03/2010
Apostila de Programao I
outros comandos, e cuja a execuo tem efeito igual ao obtido pela execuo dos
vrios comandos nele inseridos.
Na sintaxe da LPE, todas as vezes que aparecer o smbolo <comando>, indicando a
obrigatoriedade de se codificar um comando; este poder se substitudo por um bloco.
Exemplo:
variveis
i, j, k : inteiro;
abc: real;
incio
i 0;
j 0;
incio
k (i + j) * 3;
abc k * 8.5;
escreva(abc);
fim;
escreva(i,j,k);
fim.
A.2.5.2 Seleo
O comando de seleo tem duas formas:
se <expresso lgica> ento
<comando>;
nesta forma a <expresso lgica> avaliada inicialmente. Se o valor da expresso for
verdadeiro, o <comando> executado. Se o valor da expresso for falso, o
<comando> no executado.
Exemplo
variveis
mdia, nota1, nota2, nota3 : real;
incio
escreva('Informe as notas do aluno');
leia(nota1, nota2, nota3);
mdia (nota1+nota2+nota3)/3;
se mdia >= 5.0 ento
escreva('Aluno Aprovado');
escreva(mdia);
fim.
Pgina 6
09/03/2010
Apostila de Programao I
Incio
media>=5.0?
sim
escreva('Aluno aprovado);
no
escreva(media);
Fim
Pgina 7
09/03/2010
Apostila de Programao I
Incio
escreva('Aluno reprovado);
no
media>=5.0?
sim
escreva('Aluno aprovado);
escreva(media);
Fim
Pgina 8
09/03/2010
Apostila de Programao I
A.2.5.3 Repetio
O comando de repetio tem a seguinte sintaxe:
enquanto <expresso lgica> faa
<comando>;
neste comando a <expresso lgica> avaliada inicialmente. Se o valor da
expresso for verdadeiro, o <comando> executado e a <expresso lgica>
avaliada novamente. Este ciclo repetido at que a <expresso lgica> seja avaliada
como falso. importante notar que se a <expresso lgica> for avaliada inicialmente
como falso o <comando> no ser executado nenhuma vez. Outra observao
importante que o <comando> dever alterar de alguma forma as variveis presentes
na <expresso lgica>. Se isto no ocorrer, a <expresso lgica> ser sempre avaliada
como verdadeiro (supondo que a <expresso lgica> seja avaliada como verdadeiro
na primeira avaliao) e o <comando> ser executado continuamente. Diremos ento
que o "programa entrou em um looping infinito".
Exemplo
O exemplo a seguir exibir no monitor de vdeo todos os nmeros inteiros entre 0 e
99.
variveis
cont : inteiro;
incio
cont 0;
enquanto cont < 100 faa
incio
escreva(cont);
cont cont + 1;
fim;
fim.
Pgina 9
09/03/2010
Apostila de Programao I
Incio
cont<-0;
cont<100?
sim
escreva(cont);
cont<-cont+1;;
no
Fim
Pgina 10
09/03/2010