ILA - Unisinos
ILA - Unisinos
ILA - Unisinos
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Aprendendo a Programar Programando numa Linguagem Algorítmica Executável (<strong>ILA</strong>) - Página 11<br />
No exemplo anterior, para se definir qual seria a primeira instrução, como existem apenas três<br />
possibilidades, verifica-se o que aconteceria ao se escolher determinada instrução. Foi o que, de<br />
passagem, foi feito acima: se o homem atravessasse primeiro o milho, a raposa devoraria as<br />
galinhas; se o homem atravessasse primeiro a raposa, as galinhas comeriam o milho. Neste caso,<br />
podemos dizer que foi utilizada a técnica da exaustão: como o número de alternativas era pequeno,<br />
analisamos todas elas, uma a uma.<br />
Esta técnica pode ser utilizada também na solução do seguinte problema: dispõe-se de três<br />
esferas idênticas na forma, sendo duas delas de mesmo peso e a terceira de peso maior. A questão é<br />
descobrir qual a esfera de peso diferente, realizando-se apenas uma pesagem numa balança de dois<br />
pratos. Para isto chamemos de A e B as esferas de mesmo peso e de C a de maior peso. Se optarmos<br />
por colocar duas esferas num dos pratos (indicando por X + Y, o fato de colocarmos as esferas X e<br />
Y num mesmo prato da balança) e a outra esfera no outro, temos as seguintes possibilidades:<br />
a) (A+B, C).<br />
b) (A+C, B).<br />
c) (B+C, A).<br />
No primeiro caso, pode acontecer qualquer coisa: a balança pode ficar equilibrada, se<br />
Peso(C) = Peso(A+B); ficar inclinada para o lado esquerdo, se Peso(C) > Peso(A+B) ou ficar<br />
inclinada para o lado direito se Peso(C) < Peso(A+B). Observe que nada pode distinguir a esfera C.<br />
Nos dois últimos casos, a balança se inclinará para a esquerda, mas, outra vez, nada distingue a<br />
esfera C. Por exaustão, resta então escolhermos duas esferas e colocarmos cada uma delas num dos<br />
pratos da balança. Agora os casos possíveis são:<br />
a) (A, B).<br />
b) (A, C).<br />
c) (B, C).<br />
No primeiro caso, a balança ficará equilibrada, o que indica que a mais pesada é aquela não<br />
escolhida; nos outros dois casos, a balança se inclinará para a direita, indicando que a esfera mais<br />
pesada é aquela que ocupa o prato respectivo. Temos então o seguinte algoritmo:<br />
1. Escolha duas esferas.<br />
2. Coloque cada uma das esferas escolhidas num dos pratos da balança.<br />
3. Se a balança ficar equilibrada, forneça como resposta a esfera não escolhida; caso contrário,<br />
forneça como resposta a esfera do prato que está num nível mais baixo.<br />
Uma outra técnica de resolução de problemas consiste em se tentar resolver casos particulares<br />
da questão ou resolver a questão para dados menores do que os dados que foram fixados. Para<br />
exemplificar, consideremos a seguinte questão: como obter exatamente 4 litros de água dispondo de<br />
dois recipientes com capacidades de 3 litros e 5 litros 1 ? Como 4 = 3 + 1 ou<br />
4 = 5 – 1 conseguiremos resolver a questão se conseguirmos obter 1 litro. Mas isto é fácil, pois<br />
1 = 3 + 3 – 5! Temos então o seguinte algoritmo:<br />
1. Encha o recipiente de 3 litros.<br />
2. Transfira o conteúdo do recipiente de 3 litros para o recipiente de 5 litros.<br />
3. Encha o recipiente de 3 litros.<br />
4. Com o conteúdo do recipiente de 3 litros, complete o recipiente de 5 litros.<br />
5. Esvazie o recipiente de 5 litros.<br />
6. Transfira o conteúdo do recipiente de três litros para o recipiente de 5 litros.<br />
7. Encha o recipiente de 3 litros.<br />
8. Transfira o conteúdo do recipiente de 3 litros para o recipiente de 5 litros.<br />
Para compreender o algoritmo, sejam A e B os recipientes de 3 litros e de 5 litros,<br />
respectivamente, e indiquemos por (X, n) o fato de o recipiente X conter n litros de água. No início<br />
1<br />
A solução desta questão foi necessária num filme da série Duro de Matar para o protagonista desativar uma bomba.