Prévia do material em texto
Instituto Federal de Santa Catarina – Campus Criciúma Programação / Lógica de Programação Iuri Sônego Cardoso 1 INSTITUTO FEDERAL DE SANTA CATARINA – CAMPUS CRICIÚMA PROGRAMAÇÃO / LÓGICA DE PROGRAMAÇÃO Professor: Iuri Sônego Cardoso – iuri.cardoso@ifsc.edu.br Este trabalho está licenciado sob a Licença Atribuição-NãoComercial- CompartilhaIgual 4.0 Internacional Creative Commons. Para visualizar uma cópia desta licença, visite http://creativecommons.org/licenses/by-nc-sa/4.0/ ou mande uma carta para Creative Commons, PO Box 1866, Mountain View, CA 94042, USA. EXERCÍCIOS: INTRODUÇÃO À LÓGICA E A ALGORITMOS Exemplo A. Um homem precisa atravessar um rio com um barco que possui capacidade apenas para carregar ele mesmo e mais uma de suas três cargas, que são: um lobo, uma ovelha e uma couve. Por medida de segurança, o homem, ao atravessar o rio, não pode deixar para trás o lobo juntamente com a ovelha, ou a ovelha juntamente com a couve, pois isto colocaria sempre em risco a segunda carga de cada par mencionado. O que o homem deve fazer para conseguir atravessar o rio sem perder suas cargas? Solução: 0 Lobo Ovelha Couve Homem Rio 1 Lobo Couve Homem Ovelha 2 Lobo Couve Homem Ovelha 3 Lobo Homem Ovelha Couve 4 Lobo Ovelha Homem Couve 5 Ovelha Homem Lobo Couve 6 Ovelha Homem Lobo Couve 7 Homem Lobo Ovelha Couve Exercício 1. Resolva o problema de uma Torre de Hanói, que consiste em três hastes (a - b - c), uma das quais serve de suporte para três discos de tamanhos diferentes (l - 2 - 3), os menores sobre os maiores. Pode-se mover um disco de cada vez para qualquer haste, contanto que nunca seja colocado um disco maior sobre um menor. O objetivo é transferir os três discos para outra haste. Adaptação de exercício proposto por Forbellone e Eberspächer (2005). http://creativecommons.org/licenses/by-nc-sa/4.0/ Instituto Federal de Santa Catarina – Campus Criciúma Programação / Lógica de Programação Iuri Sônego Cardoso 2 Exemplo B. Elabore um algoritmo que descreva a solução do problema apresentado no Exemplo A. Solução: Algoritmo “O bode, a ovelha e a couve” 1. Transpor a ovelha; 2. Retornar sozinho; 3. Transpor a couve; 4. Retornar com a ovelha; 5. Transpor o lobo; 6. Retornar sozinho; 7. Transpor a ovelha. Exercício 2. Elabore um algoritmo que descreva a solução do problema apresentado no Exercício 1. Observe que é necessário ter encontrado a solução para que você possa descrevê-la. Exercício 3. João tem três barris. No barril A, que está vazio, cabem 8 litros. No barril B, que está cheio, 5 litros. No barril C, que também está cheio, 3 litros. Escreva um algoritmo que manipule o conteúdo destes barris, fazendo com que os barris A e B fiquem com 4 litros cada e o C fique vazio. Os próprios barris deverão ser utilizados para medir o volume de água que está sendo manipulado. OBS: não esqueça que antes de escrever o algoritmo, é necessário resolver o problema. Adaptação de exercício proposto por Forbellone e Eberspächer (2005). Exercício 4. Três jesuítas e três canibais precisam atravessar um rio; para tal, dispõem de um barco com capacidade para duas pessoas. Por medida de segurança, não se deve permitir que em alguma margem a quantidade de jesuítas seja inferior à de canibais. Qual a solução para efetuar a travessia com segurança? Elabore um algoritmo mostrando a resposta, indicando as ações que concretizam a solução deste problema. Adaptação de exercício proposto por Forbellone e Eberspächer (2005). Exercício 5. Com base no Exercício 1, amplie a solução apresentada de maneira a completar a operação descrita, de troca dos discos da torre A para a torre B, considerando a existência de 4 discos. Adaptação de exercício proposto por Forbellone e Eberspächer (2005). Referências Bibliográficas FORBELLONE, A. L. V.; Eberspacher, H. F. Lógica de Programação – A Construção de Algoritmos e Estruturas de Dados. São Paulo: Makron Books, 2005.