Escrita de Algoritmos



next up previous contents
Next: Resumindo Up: Metodologia Previous: Definição das Estruturas

Escrita de Algoritmos

Quando o problema que pretendemos resolver atinge uma dimensão razoável, não é fácil (ou possível) escrever, de uma acentada, um algoritmo que o resolva. É mais fácil começar por dividir o problema em subproblemas mais pequenos e tentar resolver cada um deles em separado. Eventualmente, cada um desses subproblemas pode ser também subdividido em subproblemas ainda mais pequenos. Este processo repetir-se-á até termos um conjunto de subproblemas suficientemente pequenos e simples para os quais sabemos escrever algoritmos que os resolvam. Esses algoritmos são depois combinados para formar um algoritmo que resolve o problema inicial, sempre que se entenda conveniente podemos transforma-los em funções.

Consideremos o problema de ler dez valores reais e calcular quantos são superiores à sua médiagif.

Primeiro temos que definir as estruturas de dados. Como estamos a tratar dez valores do mesmo tipo, podemos utilizar uma tabela. Definimos então o tipo Numeros:

= tab[10] de REAL;
O primeiro passo para a escrita dos algoritmos é, como vimos, subdividir o problema. Vamos então identificar as etapas principais de resolução do nosso problema. Cada etapa será descrita por uma frase em protuguês. Cada frase será escrita entre parêntises rectos para indicar que ainda não se trata de uma ``verdadeira'' instrução algoritmica. Temos quatro grandes tarefas a executar:

Temos agora que resolver cada um deste subproblemas. Consideremos o segundo: [calcular a media dos dez valores]. Para resolver este problema temos que:

[somar os dez valores] já é um problema mais simples e pode ser resolvido do seguinte modo (t é a tabela com os valores):

[dividir a soma por dez para calcular a media] é ainda mais simples:

podemos agora juntar os dois subalgoritmos:

e podemos, finalmente escrever o algoritmo de [calcular a media dos dez valores] na forma de uma função:

Fica como exercício escrever uma função

_nums: Numeros
para [ler os dez valores] e uma função
_maiores: Numeros REAL REAL
para [contar quantos valores são superiores à média]. Com estas três funções podemos reescrever o nosso algoritmo principal:

 



next up previous contents
Next: Resumindo Up: Metodologia Previous: Definição das Estruturas



Jose Franscisco Creissac Campos
Wed Jan 31 22:03:31 MET 1996