Escolar Documentos
Profissional Documentos
Cultura Documentos
Manual Do UAL
Manual Do UAL
Comandos em UAL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Introduo ...................................................... 3
Estrutura do UAL ........................................... 4
Palavras-Chave .............................................. 5
Pontuao ....................................................... 6
Maisculas e Minsculas ............................... 7
Tipos de Dados................................................ 8
Declarao de Variveis ................................. 9
Inicializao de Variveis ............................ 10
Fluxos de Entrada e Sada ............................ 11
Precedncia de Operadores .......................... 12
Operadores ................................................... 13
Comandos para Tomada de Deciso ........... 15
Comandos de Repetio ............................... 16
Comandos de Desvio..................................... 18
Vetores .......................................................... 20
Funes ......................................................... 21
UALGraph ..................................................... 25
1.
2.
Todo programa UAL inicia-se com a palavra reservada prog
seguida do nome do programa, que obedece as normas de nomenclatura
de identificadores. A seguir, so feitas as declaraes de variveis, caso
existam, conforme o item 7 deste manual e, posteriormente, so
inseridos os blocos de comandos, encerrando-se o programa com a
palavra-chave fimprog.
prog meuPrimeiroPrograma
string ola;
ola <- Ol Mundo!;
imprima ola;
fimprog
Que tambm pode ser representado da seguinte forma:
prog meuPrimeiroPrograma
imprima Ol Mundo!;
fimprog
3.
prog
fimprog
senao
div
int
enquanto
raiz
sen
faca
cos
intreal
realint
strtam
strconcat
strcomp
strult
real
tan
logico
para
exp
formatar
strcopia
strnprim
saia
string
leia
log
imprima
pi
abs
continue
strprim
se
pare
strelem
strnresto
4.
Um sinal de pontuao um tipo de palavra-chave abreviada. um
smbolo composto por um ou dois caracteres, que tem um significado especial
para o interpretador. O conjunto completo de sinais da linguagem inclui os
seguintes smbolos:
/* */ # { } ( ) [ ] , ; \n \t
O sinal ; encerra uma instruo, exceto nos casos em que a mesma
possua delimitadores, como no comando enquanto. Esse sinal informa ao
interpretador que ocorreu o fim de uma instruo. Desse modo, podemos ter
mais de uma instruo na mesma linha ou ter uma nica instruo em mais
de uma linha.
O uso dos delimitadores ser demonstrado mais adiante, nos itens 12 e
13.
Os smbolos #, /* e */ devem ser inseridos para especificar um
comentrio. Comentrios em programas so mensagens que s sero vistas
pelo programador, sendo completamente ignoradas pelo interpretador. So
utilizados visando dar maior compreenso ao algoritmo.
O smbolo # permite que apenas uma linha seja comentada por vez,
como segue o exemplo:
# Isto um comentrio
# Autor <nome>
prog meuPrimeiroPrograma
string ola; # Declarando varivel ola
ola <- Ol Mundo!;
imprima ola;
fimprog
J os smbolos /* e */ delimitam o incio e o fim de um comentrio,
independente do nmero de linhas que o mesmo possua, como no exemplo
abaixo:
/* Este o incio de um comentrio
Autor <nome>
Data: <data>
*/
Esses comentrios podem ser inseridos em qualquer posio dentro do
programa.
O smbolo \t efetua uma tabulao em uma string e o \n permite
uma quebra de linha na sada do programa. No item 9 dado um exemplo de
suas aplicaes, juntamente com o comando imprima.
6
5.
A linguagem UAL sensvel a maisculas e minsculas em seus
identificadores e palavras reservadas. Exemplo:
ola, Ola, OLA, olA
So variveis diferentes para o UAL.
String - No uma palavra reservada como string.
Devido a esta diferena, recomendvel utilizar um padro para a
nomenclatura dos identificadores. Aconselhamos que os identificadores sejam
sempre iniciados por letras minsculas, seguidas de iniciais maisculas para
nomes compostos.
6.
O UAL fornece um conjunto de tipos de dados bsico, onde cada um
deles serve a um propsito especfico, definindo desse modo, o escopo dos
valores que as variveis podem assumir no programa.
Os tipos bsicos existentes so:
- representando o conjunto dos nmeros inteiros;
- representando os pontos flutuantes;
- representando um conjunto de um ou mais caracteres
- representando os valores lgicos verdadeiro e falso.
7.
Todas as variveis devem ser declaradas antes de serem usadas. Esta
declarao deve ser feita no incio do programa.
As variveis possuem uma caracterstica em comum: um tipo de dado
associado. Isso significa que, alm de escolhermos um nome apropriado para
uma varivel, devemos tambm dizer que tipo de informao deve ser
armazenada nela.
Uma declarao definida por um tipo, seguido por uma lista de uma
ou mais variveis daquele tipo, tal como o seguinte exemplo:
int num2;
string resp;
string nome;
Os nomes das variveis podem ser compostos de letras e dgitos, sendo
que o primeiro caractere deve ser, obrigatoriamente, uma letra.
Identificadores vlidos: count, teste123, Programa.
Identificadores invlidos: 123count, Teste_de_loop, Teste...Novo.
8.
Para inicializar uma varivel, ou seja, atribuir um valor a ela, deve-se
proceder da seguinte forma:
var <- 4;
onde var o nome da varivel declarada, <- o smbolo de atribuio e 4 o
valor a ela atribudo.
Quando interpretamos as instrues acima, os nomes das variveis so
substitudos pelos valores associados na memria. importante observar que o
resultado da expresso do lado direito de um comando de atribuio deve ser
coerente com o tipo declarado para a varivel do lado esquerdo.
Ao longo do programa possvel, atravs de novas atribuies, alterar
os valores dessas variveis na memria.
10
9.
O UAL permite que um programa receba ou envie dados para o
ambiente externo. Isto pode ocorrer com o uso dos comandos leia e imprima,
respectivamente.
O comando leia permite a entrada de um nico dado, fornecido pelo
usurio, atravs da entrada padro, que normalmente o teclado. Ao
executarmos esse comando, atribuiremos o dado fornecido a uma varivel,
conforme demonstra o seguinte exemplo:
int x;
leia x;
Nesse momento, o programa aguardar a entrada de um valor inteiro
que ser armazenado na varivel x. O usurio deve fornecer esse valor
digitando um nmero e pressionando, em seguida, a tecla <Enter>.
O comando imprima permite que sejam apresentados na sada padro,
normalmente o monitor, mensagens e valores obtidos atravs da execuo do
programa, como mostra o exemplo abaixo:
a <- 400;
imprima \tO valor de a = , a, \n;
Este comando pode vir acompanhado do comando formatar, que
permite delimitar o nmero de casas decimais de um algarismo em ponto
flutuante, de acordo com a sintaxe abaixo:
a <- 400.6794;
imprima "Valor de a = ", formatar(a,2);
Cujo resultado ser:
Valor de a = 400.67
Obs.: O comando formatar converte um nmero real para o tipo string,
efetuando o truncamento em suas casas decimais.
11
10.
Todas as operaes realizadas no UAL obedecem aos critrios de
precedncia dos operadores, conforme a relao abaixo:
Primeiro
Segundo
Terceiro
Quarto
Quinto
Sexto
- funes e parnteses
- expresses aritmticas (potncia e mdulo)
- expresses aritmticas (multiplicao e diviso)
- expresses aritmticas (adio e subtrao)
- operadores relacionais.
- operadores lgicos.
12
11.
O UAL composto de operadores - smbolos que executam vrias
operaes sobre os seus argumentos. O sinal de mais (+) um operador. Em
uma expresso, ele soma dois valores:
a <- b + c;
As variveis a, b, c poderiam ser de quaisquer tipos numricos de dados.
Nesta operao, b acrescentado a c, sendo o resultado atribudo varivel a.
O sinal de atribuio <- nessa expresso tambm um operador, com a
capacidade nica de copiar um valor a sua direita para a varivel a sua
esquerda.
No UAL, existem operadores aritmticos, relacionais, lgicos e de
atribuio, que esto demonstrados abaixo.
Operaes aritmticas:
adio (+)
subtrao (-)
multiplicao (*)
diviso real (/)
diviso inteira (div)
mdulo (%)
potncia real (**)
potncia inteira (^)
Caso as operaes sejam efetuadas com os operandos de um mesmo tipo,
o valor retornado seguir a mesma tipagem, caso contrrio, o valor retornado
ser do tipo real.
Vale ressaltar que as operaes aritmticas permitidas aceitam apenas
os tipos inteiro e/ou real.
Operadores relacionais:
maior (>)
maior ou igual (>=)
menor (<)
menor ou igual (<=)
igual (==)
diferente (<>)
13
Operadores lgicos:
conjuno (&&)
disjuno (||)
negao (!)
Esses dois ltimos operadores tem como resultado um valor lgico, do
tipo verdadeiro ou falso.
Operadores de atribuio:
atribuio (<-)
incremento (++)
decremento ()
Os operadores de incremento e decremento so similares atribuio,
realizando operaes de adio e subtrao, respectivamente. Dessa forma,
uma varivel incrementada ou decrementada em uma unidade. Portanto,
essa varivel deve ser do tipo inteiro.
Em uma atribuio, no podem ser usados operadores de incremento e
decremento.
Exemplos:
x <- a;
x;
x <- x-1;
x++;
x <- x++ ou x <- x;
# x recebe o valor de a.
# x decrementado em 1.
# operao idntica a anterior.
# x incrementado em 1.
# operaes no permitidas.
14
12.
15
13.
Na linguagem UAL, podemos utilizar os comandos enquanto, para ou
faca-enquanto, para aplicar instrues repetidamente.
A INSTRUO enquanto
O comando enquanto tem sintaxe semelhante a do comando se,
bastando inserir uma expresso que retorne um tipo lgico aps a palavrachave enquanto e uma lista de comandos entre chaves, como mostra o
exemplo:
i <- 0;
enquanto ( i < 10)
{
leia var;
i++;
}
Nesse comando, a expresso relacional avaliada antes da execuo da
instruo ou bloco de comandos, ou seja, caso essa expresso seja falsa no
incio da execuo do loop, os comandos no sero executados.
A INSTRUO para
Quando um programa pode calcular previamente o nmero de vezes que
um bloco de instrues deve ser executado, uma instruo para
normalmente, a melhor escolha para a construo da estrutura de repetio.
A instruo para possui os seguintes elementos:
A palavra-chave para;
Uma expresso composta por trs partes, entre parnteses;
Uma instruo ou bloco de comandos entre chaves.
geral:
17
14.
O UAL tem trs comandos que realizam desvios incondicionais:
continue, pare e saia. Destes, voc pode usar o saia em qualquer lugar em seu
programa. Os comandos pare e continue devem ser utilizados em comandos de
repetio.
A INSTRUO saia
O comando saia permite a sada de um programa. Este comando
provoca uma terminao imediata do programa inteiro, forando um retorno
ao sistema operacional.
A forma geral do comando saia :
saia;
A INSTRUO pare
O comando pare serve para forar a terminao imediata de um lao,
isto , o lao interrompido evitando o teste condicional. A seguir, so
executados os comandos que sucedem o lao.
b <- 3;
para (i<-o;i<10;i++) {
a <- b * i;
imprima " a = ", a;
se (a > 10) {
pare;
}
}
A sada do programa ser:
a = 0 a = 3 a = 6 a = 9 a = 12
18
A INSTRUO continue
O comando continue trabalha de uma forma parecida com a do
comando pare. Porm, em vez de forar a terminao do lao, ele fora que
ocorra a prxima iterao, no executando nenhum cdigo intermedirio.
b <- "Este teste remove os espaos em branco";
para (i<-o; i<strtam(b); i++) {
se (strelem(b,i) == " ") {
continue;
} senao {
imprima strelem(b,i);
}
}
A sada do programa ser:
Estetesteremoveosespaosembranco
19
15.
Os vetores renem vrias informaes de um mesmo tipo em uma nica
estrutura. Para isso, necessrio declarar, alm do nome do vetor, o seu
tamanho. Devemos informar antecipadamente quantos elementos o vetor ir
armazenar dentro dele, ou seja, seu tamanho esttico (no varia com a
execuo do programa).
No exemplo abaixo, declaramos um vetor do tipo inteiro com 10
posies.
int x[10];
Cada elemento de um vetor tratado como se fosse uma varivel
simples. Para referncia a um elemento do vetor, utiliza-se o nome do vetor
seguido da identificao do elemento (ndice) entre colchetes. Esse ndice deve
ser do tipo inteiro. Exemplo:
x[0] <- 0;
x[9] <- 9;
No UAL, o primeiro elemento de um vetor sempre representado pelo
ndice 0, ou seja, se um vetor contiver 10 posies, seus ndices iro variar de 0
a 9.
20
16.
As funes em UAL esto divididas em Funes Matemticas, Funes
Para Manipulao de Strings e Funes de Converso de Tipos, conforme
detalhamento abaixo:
Funes Matemticas
Englobam as seguintes funes: raiz, sen, cos, tan, pi, exp, log, abs.
raiz
Retorna a raiz quadrada de um nmero, em real. Se voc cham-la com
argumento negativo, ocorrer um erro de domnio.
Exemplo: imprima raiz(49);
Resultado: 7.0
sen
Retorna o seno de um nmero, em radianos.
Exemplo: imprima sen(0);
Resultado: 0.0
cos
Retorna o coseno de um nmero, em radianos.
Exemplo: imprima cos(0);
Resultado: 1.0
tan
Retorna a tangente de um nmero, em radianos.
Exemplo: imprima tan(0);
Resultado: 0.0
pi
Retorna a constante pi, em real
Exemplo: imprima pi;
Resultado: 3,141592653589793
21
exp
Retorna o exponencial de um nmero, em real.
Exemplo: imprima exp(0);
Resultado: 1.0
log
Retorna o logaritmo de um nmero, em real. Se voc cham-la com argumento
negativo, ocorrer um erro de domnio.
Exemplo: imprima log(1);
Resultado: 0.0
abs
Retorna o valor absoluto de um nmero.
Exemplo: imprima abs(-5);
Resultado: 5
22
strprim
Retorna o primeiro elemento de uma string.
Exemplo: imprima strprim("string");
Resultado: s
strresto
Retorna todos os elementos de uma string, exceto o primeiro.
Exemplo: imprima strresto("string");
Resultado: tring
strelem
Retorna o ensimo elemento de uma string.
Exemplo: imprima strelem("string", 3);
Resultado: r
strcomp
Compara duas strings, retornado "maior", "menor" ou "igual".
Exemplo: imprima strcomp("string", "String");
Resultado: maior
strult
Retorna o ltimo elemento de uma string.
Exemplo: imprima strult("string");
Resultado: g
strnprim
Retorna os n primeiros elementos de uma string.
Exemplo: imprima strnprim("string", 3);
Resultado: str
strnresto
Retorna os elementos de uma string aps os n primeiros.
Exemplo: imprima strelem("string", 2);
Resultado: ring
23
24
17.
O Mdulo UALGraph permite a execuo dos programas fontes feitos em UAL
em um ambiente grfico, ou seja, possvel visualizar a representao lgica
desses algoritmos atravs da animao, para compreender, de forma rpida e
dinmica, como as estruturas desenvolvidas se comportam.
Os smbolos que representam a estrutura do programa seguem os seguintes
padres: