14.03.2015 Views

ILA - Unisinos

ILA - Unisinos

ILA - Unisinos

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Aprendendo a Programar Programando numa Linguagem Algorítmica Executável (<strong>ILA</strong>) - Página 17<br />

Por incrível que possa parecer, um dos algoritmos mais eficientes para o cálculo do máximo<br />

divisor comum de dois números foi desenvolvido pelo matemático grego Euclides duzentos anos<br />

Antes de Cristo. O algoritmo de Euclides nos é apresentado nas séries intermediárias do ensino<br />

fundamental através de um esquema como o diagrama do exemplo abaixo, cujo objetivo é<br />

determinar (de novo!) o máximo divisor comum de 120 e 84.<br />

120 84 36 12 0<br />

1 2 3<br />

O esquema funciona da seguinte forma: divide-se 120 por 84 obtendo-se resto 36; a partir daí,<br />

repetem-se divisões até que o resto seja zero, sendo o dividendo da divisão atual o divisor da<br />

divisão anterior e o divisor da divisão atual o resto da divisão anterior. O último divisor é o máximo<br />

divisor procurado. Como se pode ver, estas instruções escritas desta forma não são nada<br />

compreensíveis, o que faz com elas sejam transmitidas oralmente nas salas do ensino fundamental.<br />

No capítulo 4 (quatro), teremos a oportunidade de discutir este algoritmo com detalhes e veremos<br />

que ele é um algoritmo bastante interessante no desenvolvimento da lógica de programação.<br />

4. Discutiremos agora o algoritmo para o cálculo da média de uma relação contendo um<br />

número grande (digamos, 10 000) de números dados. No caso da equação do segundo grau, eram<br />

três os dados de entrada e, portanto, os chamamos de a, b, e c. Mas agora são 10 000 os dados de<br />

entrada! Uma solução possível é receber os números um a um, somando-os antes de receber o<br />

seguinte, conforme vimos na seção 1.5.<br />

1. Chame de A o primeiro número dado.<br />

2. Faça S = A.<br />

3. Repita 9 999 vezes as instruções 3.1 e 3.2.<br />

3.1 Chame de A o próximo número dado.<br />

3.2 Substitua o valor de S por S + A.<br />

4. Calcule M = S/10 000.<br />

5. Forneça M para o valor da média.<br />

Por exemplo, se a relação de números fosse {5, 3, 8, 11, ...} até a quarta execução de 3.1 e 3.2<br />

teríamos a seguinte tabela:<br />

A S M<br />

5 5<br />

3 8<br />

8 16<br />

11 27<br />

Está fácil perceber que após 9.999ª execução das instruções 3.1 e 3.2 a variável S conterá a<br />

soma de todos os números da relação, o que justifica a instrução 4.<br />

5. Um outro exemplo que justifica plenamente a necessidade do conhecimento do que o<br />

processador é capaz de executar é a determinação do maior número de uma relação de números. Se<br />

o processador for um aluno do ensino médio e a relação contiver poucos números, uma simples<br />

olhada na relação permitirá se identificar o maior número. Mas, e se o processador for um aluno das<br />

classes iniciais do ensino fundamental? E se a relação contiver 10 000 números? E se os números<br />

estiverem escritos em forma de fração ordinária?<br />

Uma solução possível é supor que o maior número é o primeiro da relação e comparar este<br />

suposto maior com os demais números, alterando-o quando for encontrado um número na relação<br />

maior do que aquele que até aquele momento era o maior.<br />

1. Chame de A o primeiro número dado.<br />

2. Faça M = A.<br />

3. Repita 9 999 vezes as instruções 3.1 e 3.2.<br />

3.1 Chame de A o próximo número dado.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!