A maior rede de estudos do Brasil

Grátis
96 pág.
Livro ILA Edicao 2

Pré-visualização | Página 8 de 31

para gerenciamento de 
microcomputadores foi o DOS (Disk Operating System). Quando um computador é ligado, de 
imediato o sistema operacional é armazenado na memória e só a partir daí o computador está apto a 
executar outros programas. Estes programas podem ser um game, que transforma o "computador" 
num poderoso veículo de entretenimento; podem ser um processador de texto, que transforma o 
"computador" num poderoso veículo de edição de textos; podem ser uma planilha eletrônica, que 
transforma o "computador" num poderoso veículo para manipulação de tabelas numéricas, podem 
ser programas para gerenciar, por exemplo, o dia a dia comercial de uma farmácia e podem ser 
ambientes que permitam o desenvolvimento de games ou de programas para gerenciar o dia a dia 
comercial de uma farmácia. Talvez com exceção de um game, os programas citados acima são, na 
verdade, conjuntos de programas que podem ser executados de forma integrada. Um conjunto de 
Aprendendo a Programar Programando numa Linguagem Algorítmica Executável (ILA) - Página 20 
programas que podem ser executados de forma integrada é chamado software. Por seu turno, as 
unidades do computador, associadas a outros equipamentos chamados periféricos, como uma 
impressora, constituem o hardware. O que nos é útil é um conjunto software + hardware. Um 
conjunto deste tipo é chamado de um sistema de computação. De agora em diante, os nossos 
processadores serão sistemas de computação. Isto é, queremos escrever programas que sejam 
executado por um sistema de computação.
Como foi dito acima, o desenvolvimento de um programa que gerencie o dia a dia comercial 
de uma farmácia requer um compilador (ou um interpretador) que o traduza para a linguagem de 
máquina. Antigamente, as empresas que desenvolviam compiladores desenvolviam apenas estes 
programas, de tal sorte que o programador necessitava utilizar um processador de texto à parte para 
edição do programa fonte. Atualmente, os compiladores são integrados num sistema de computação 
que contém, entre outros: 
1. Processador de texto, para a digitação dos programas fontes;
2. Depurador, que permite que o programa seja executado comando a comando, o que facilita 
a descoberta de erros de lógica;
3. Help, que descreve as sintaxes e as semânticas de todas as instruções da linguagem;
4. Linker, que permite que um programa utilize outros programas.
Rigorosamente falando, um sistema constituído de um compilador e os softwares listados 
acima deveria ser chamado de ambiente de programação; é mais comum, entretanto, chamá-lo 
simplesmente de compilador.
O ambiente de programação utilizado neste livro, denominado ILA, contém um interpretador, 
um depurador e um help e foi desenvolvido pelo Professor Sérgio Crespo, da Universidade do Vale 
do rio dos Sinos, UNISINOS. O interpretador interpreta programas desenvolvidos numa linguagem 
algorítmica na qual os comandos são escritos em português e possuem sintaxes bastante simples. 
Como o ILA não tem integrado um editor de texto, os programas devem editados num processador 
de texto que grave os textos editados em código ASCII, como, por exemplo, o bloco de notas do 
Windows.
1.11 Exercícios propostos
1. Três índios precisam afastar de suas terras três brancos invasores. Para tal e dispondo de um 
barco cuja capacidade é de apenas duas pessoas, precisam atravessar um rio. Por questões de 
segurança, os índios não querem ficar em minoria, em nenhum momento e em nenhuma das 
margens. Escreva um algoritmo que oriente os índios para realizarem a travessia nas condições 
fixadas. (Cabe observar que, usualmente, este exercício é enunciado envolvendo três jesuítas e três 
canibais. A alteração feita é uma modesta contribuição para o resgate da verdadeira história dos 
índios).
2. O jogo conhecido como Torre de Hanói consiste de três torres chamadas origem, destino e 
auxiliar e um conjunto de n discos de diâmetros diferentes, colocados na torre origem na ordem 
decrescente dos seus diâmetros. O objetivo do jogo é, movendo um único disco de cada vez e não 
podendo colocar um disco sobre outro de diâmetro menor, transportar todos os discos para torre 
destino, podendo usar a torre auxiliar como passagem intermediária dos discos. Escreva algoritmos 
para este jogo nos casos n = 2 e n = 3.
3. Imagine que se disponha de três esferas numeradas 1, 2 e 3 iguais na forma, duas delas com 
pesos iguais e diferentes do peso da outra. Escreva um algoritmo que, com duas pesagens numa 
balança de dois pratos, determine a esfera de peso diferente e a relação entre seu peso e o peso das 
esferas de pesos iguais. 
4. A média geométrica de n números positivos é a raiz n-ésima do produto destes números. 
Supondo que o processador é capaz de calcular raízes n-ésimas, escreva um algoritmo para 
determinar a média geométrica de n números dados.
5. Sabendo que o dia 01/01/1900 foi uma segunda-feira, escreva um algoritmo que determine 
Aprendendo a Programar Programando numa Linguagem Algorítmica Executável (ILA) - Página 21 
o dia da semana correspondente a uma data, posterior a 01/01/1900, dada. Por exemplo, se a data 
dada for 23/01/1900, o algoritmo deve fornecer como resposta terça-feira.
6. O show de uma banda de rock, que será realizado na margem de um rio, deve começar 
exatamente às 21 h. Atrasados, às 20 h 43 min, os quatro integrantes da banda estão na outra 
margem do rio e necessitam, para chegar ao palco, atravessar uma ponte. Há somente uma lanterna 
e só podem passar uma ou duas pessoas juntas pela ponte, e sempre com a lanterna. Cada integrante 
possui um tempo diferente para atravessar a ponte: o vocal leva 10 minutos, o guitarrista 5 minutos, 
o baixista 2 minutos e o baterista 1 minuto. Evidentemente, quando dois atravessam juntos, o tempo 
necessário é o do mais lento. Escreva um algoritmo que permita que a banda atravesse a ponte de 
modo que o show comece na hora marcada. 
7. Resolva a questão 3 para o caso de oito esferas.
Observação
Para obter o caderno das soluções dos exercícios propostos basta encaminhar e-mail 
para jaime@ccen.ufal com assunto RESPOSTAS LIVRO ILA e contendo NOME, 
CATEGORIA (docente, discente, autodidata), CIDADE/ESATADO e, se for o caso, 
INSTITUIÇÃO/CURSO.
2. Introdução à Linguagem Algorítmica
2.1 Variáveis simples
Nos exemplos do capítulo anterior, utilizamos instruções do tipo chame de a, b e c os 
coeficientes. Com isto queríamos admitir que processador fosse capaz de associar cadeias de 
caracteres a valores numéricos. Como o nosso processador, de agora em diante, será um sistema de 
computação, as coisas têm que ser mais rigorosas.
Na seção 1.1 foi dito que uma das unidades básicas de um computador é a memória, cuja 
finalidade é armazenar dados e informações que serão manipulados pela unidade central de 
processamento. Na seção anterior também foi dito que os programas para serem executados devem 
estar armazenados na memória. Ou seja, a memória armazena programas que serão executados e 
dados que estes programas vão manipular. Estes dados podem ser dados de entrada ou dados 
gerados pela execução do programa. Para que a memória possa armazenar dados e programas, ela é 
dividida em partes, chamadas posições de memória, podendo o sistema operacional acessar cada 
uma destas posições para armazenar tais dados. O acesso do sistema operacional às posições de 
memória é possível porque a cada uma delas é associada uma sequência de bit’s, chamada endereço 
da posição de memória. 
Em programação de computadores, uma variável simples (ou simplesmente variável) é uma 
posição de memória à qual estão associados um identificador e um tipo de dado. O identificador é 
uma sequência de letras, dígitos e caractere para sublinhamento (sequência