ILA - Unisinos
ILA - Unisinos
ILA - Unisinos
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.