Professional Documents
Culture Documents
1
- Mahatma Gandhi -
Algoritmos
Sumário:
1.1- O Computador
1.2- Conceito de Algoritmo
1.3- Metodologia para Resolução de Problemas
1.4- Metodologia para Construção de Algoritmos
1.5- Exercícios Propostos
1
Fundamentos de Programação em C: Uma Abordagem Algorítmica
1.1- O Computador
Segundo Von Neuman, todo computador é constituído por três partes: a
unidade central de processamento, a memória e os dispositivos de entrada e
saída.
A memória pode ser representada por gavetas. Cada gaveta possui oito
regiões e cada região é chamada de bit. Os oito bits de uma região formam
um byte e cada byte está associado à uma identificação numérica que é
denominada por endereço. Em cada endereço pode-se armazenar uma
informação, que pode ser uma instrução que diz ao computador o que fazer, ou
um dado que será utilizado para algum processamento.
2
Fundamentos de Programação em C: Uma Abordagem Algorítmica
3
Fundamentos de Programação em C: Uma Abordagem Algorítmica
A maior parte das pessoas resolve esse problema com os seguintes passos:
4
Fundamentos de Programação em C: Uma Abordagem Algorítmica
É necessário ter muito cuidado e ser muito preciso, para garantir que o
computador execute as acções que realmente pretendemos. Por exemplo, a
instrução “calcular a média das notas de uma turma”, é muito imprecisa, apesar
de exprimir o que queremos. Muitos detalhes foram omitidos. Para que essa
instrução possa ser executada por um computador é necessário detalhar as
seguintes acções: Onde estão as notas, quantos alunos são, quantas notas por
aluno, se os ausentes devem ser incluídos, se o cálculo da média baseia-se na
média aritmética ou ponderada, se for a média ponderada qual o valor dos
pesos, etc. Esta é a essência da programação.
5
Fundamentos de Programação em C: Uma Abordagem Algorítmica
Com esse refinamento, o nosso algoritmo para trocar o pneu de um carro tem
agora oito passos:
6
Fundamentos de Programação em C: Uma Abordagem Algorítmica
2- Desenroscar as porcas
3- Levantar o carro
4- Retirar o pneu furado
5- Colocar o pneu de socorro
6- Enroscar as porcas
7- Baixar o carro
8- Guardar a ferramenta e opneu furado
Mas, esta versão não pode ser executada pelo nosso robô doméstico, porque
algumas acções são realizadas por várias operações mais simples. Por
exemplo: Levantar o carro, consiste em:
7
Fundamentos de Programação em C: Uma Abordagem Algorítmica
Para não tornar o problema muito complexo, vamos supor que o macaco e a
chave de rodas estão em condições.
8
Fundamentos de Programação em C: Uma Abordagem Algorítmica
9
Fundamentos de Programação em C: Uma Abordagem Algorítmica
(ii)Qualquer disco não pode ser colocado sobre outro de menor tamanho.
1.6.11-Suponhamos que temos dois jarros, um de cinco litros e outro com três
litros. Suponhamos também que temos uma fonte inesgotável de água.
Determine uma sequência de movimentos para encher e esvaziar os jarros de
tal modo que no fim da sequência tenhamos quatro litros de água dentro de um
jarro e cinco litros dentro de outro.
10