Escolar Documentos
Profissional Documentos
Cultura Documentos
O ILA é um interpretador para ambiente Windows / DOS. Foi desenvolvido por uma
equipe coordenada pelo Prof. D.Sc. Sérgio Crespo e pelos bolsistas pesquisadores: MSc. João
Luis Tavares da Silva e Hamilton Freitas Coutinho com patrocínio da Universidade do Vale do
Rio dos Sinos – UNISINOS.( http://www.unisinos.tche.br>)
O ILA é um interpretador pequeno (82K) e permite que você trabalhe com disquete.
O arquivo HELP.EXE é um pequeno manual sobre o interpretador.
Não existe nenhum processo de instalação. Veja como é simples:
PASSOS:
1. copie para seu disquete o ILA.EXE
2. clique em: Iniciar / Programas / Prompt do MSDOS
3. coloque o disquete com o Interpretador ILA no drive A
4. digite: A: e pressione ENTER
5. digite EDIT e pressione ENTER
5. digite um algoritmo
6. após digitar o algoritmo, clique em Arquivo / Salvar
7. digite para nome: EX1.ILA (exemplo de um nome valido)
8. clique em Arquivo / SAIR
9. digite ILA EX1
Observação: Se você não tem prática com DOS, é importante que seus algoritmos estejam no
mesmo diretório do arquivo ILA.EXE.
Algumas considerações
1
500 ALGORITMOS RESOLVIDOS
Auto re s : ANITA LOPES / GUTO GARCIA
Em relação aos vetores/ matrizes, as diferenças são importantes, pois o UAL trabalha
com vetores numéricos e strings, mas não trabalha com matrizes enquanto o ILA trabalha com
vetores e matrizes só numéricos.
Finalmente, em relação à possibilidade do usuário criar suas próprias funções, somente
o ILA permite isto com algumas restrições.
No livro, apresentamos sete listas das quais cinco, integralmente, puderam ser feitas
no UAL e duas não. Entretanto no ILA não foi possível fazer nenhum algoritmo que envolvesse
funções strings ou vetores strings mas puderam ser feitos muitos exercícios de todas as
listas.
Nossa escolha pelo UAL foi porque ele apresenta uma estrutura muito parecida com a
linguagem C enquanto que o ILA tem uma estrutura mais parecida com a linguagem PASCAL
COMANDOS
UAL - versão 2.0 ILA - versão 1.01
prog <identificador> // < qualquer comentário para dar nome >(não
obrigatório)
<declaração_ de_ variáveis> variavies
<corpo_ do_ algoritmo> <declaração_ de_ variáveis>
<funções>
fimprog inicio
....
fim
inicio
<corpo_ do_ algoritmo>
fim
2
500 ALGORITMOS RESOLVIDOS
Auto re s : ANITA LOPES / GUTO GARCIA
tipos: tipo:
int, real, string numerico
Observação 1: cada vetor/matriz precisa ser
declarado separadamente.
Exemplo: Exemplo:
real pesos[15], notas[15], alturas[15]; variaveis
matriz numerico pesos[15]
matriz numerico notas[15]
matriz numerico alturas[15]
3
500 ALGORITMOS RESOLVIDOS
Auto re s : ANITA LOPES / GUTO GARCIA
"\n" alimenta linha Não disponíveis
"\t" tabula (1 / 9 / 17 /25 / 33 /41 / 49 /
57 / 65 / 73 )
formatar(<identificador>, < n > )
faca caso
caso <expressäo 1>:
<bloco-de-comandos 1>
caso <expressäo 2>:
Não disponível <bloco-de-comandos 2>
caso <expressäo 3>:
<bloco-de-comandos 3>
outro_caso <expressäo>:
<bloco-de-comandos.>
fim_caso
4
500 ALGORITMOS RESOLVIDOS
Auto re s : ANITA LOPES / GUTO GARCIA
envolvendo o identificador>) <bloco-de-comandos.>
{ proximo
comando; ou
< seqüência de comandos separados por ;> Observação: o passo<expressäo3> só será
} obrigatório se for diferente de 1.
Exemplo: Exemplo:
para( x <- 1 ; x <= 10; x++) para x = 1 ate 10
{ ...
... proximo
}
comandos associados:
pare; Não disponíveis
continue;
faca
{
< bloco de comandos separados por ; > Não disponível
}
enquanto( < condição > )
OPERADORES e FUNÇÕES
UAL - versão 2 ILA - versão 1.01
OPERADORES ARITMÉTICOS
+ adição +
- subtração -
* multiplicação *
/ divisão /
** potenciação - real Não disponível
^ potenciação - inteira ^ ( qualquer tipo )
OUTROS OPERADORES
a% b resto da divisão entre dois inteiros resto( a, b )
a div b quociente da divisão entre dois inteiros inteiro( a / b )
a ++ incremento a =a + 1 (equivalente)
a -- decremento a =a – 1 (equivalente)
OPERADORES RELACIONAIS
5
500 ALGORITMOS RESOLVIDOS
Auto re s : ANITA LOPES / GUTO GARCIA
> maior >
< menor <
== igual =
>= maior ou igual >=
<= menor ou igual <=
<> diferente <>
OPERADORES LÓGICOS
&& conjunção e
|| disjunção ou
! negação nao
No ILA, quando usamos os operadores e ou ou, o uso de parênteses é obrigatório.
se ( a > b +c || b > a + c || c > a+b) se ( a > b +c) ou ( b > a + c) ou ( c > a + b) entao
FUNÇÕES NUMÉRICAS
sen(x) seno de um ângulo em radianos sen(x)
cos(x) co-seno de um ângulo em radianos cos(x)
tan(x) tangente de um ângulo em radianos tan(x)
abs(x) x independente do sinal Não disponível
exp(x) número e elevado a x Não disponível
log(x) neperiano logaritmo de x log(x) decimal
raiz(x) quadrada raiz de x raiz(x,índice)
intreal(x) converte x para real Não disponível
realint(x) arredonda converte x para inteiro inteiro(x) trunca
Observação: Tanto no UAL quanto no ILA, os argumentos das funções trigonométricas
precisam estar em radianos.
FUNÇÕES STRINGS
strtam(cadeia) nº de caracteres de uma cadeia comprimento(cadeia)
strelem(cad,pos) retorna o caracter de cad que se Não disponível
encontra posição pos
strprim(cadeia) retorna o primeiro elemento Não disponível
strresto(cadeia) retornam todos exceto o 1 o
Não disponível
strult(cadeia) retorna o último elemento Não disponível
strnprim(cad,n) retorna os n primeiros Não disponível
strnresto(cad, n) retorna os elementos da cadeia após os n Não disponível
primeiros
strcopia(cadeia) copia cadeia Não disponível
strcomp(cad1,cad2) compara duas cadeias, retornando:
(ordem alfabética) igual se forem iguais Não disponível
menor se cad1 vier antes de cad2
maior se cad1 vier depois de cad2
6
500 ALGORITMOS RESOLVIDOS
Auto re s : ANITA LOPES / GUTO GARCIA
strconcat(str1,str2) concatena duas strings str1 + str2
CONSTANTES NUMÉRICAS
pi 3.14159265359 pi
Não disponível 2.71828182846 np
(Número Nepperiano)
Exemplo de um algoritmo
UAL - versão 2 ILA - versão 1.01
prog algoritmo110 //prog algoritmo110
real a, b; variaveis
imprima "\ndigite 1o numero: "; numerico a, b
leia a; inicio
imprima "\ndigite 2o numero: "; limpar
leia b; escrever "digite 1O numero: "
se(a == b) posicionar 1, 19
{ imprima "\niguais"; } ler a
senao escrever "digite 2O numero: "
{ imprima "\ndiferentes"; } posicionar 2, 19
imprima "\n"; ler b
fimprog se a = b entao
escrever "iguais"
senao
escrever "diferentes"
fim_se
fim