Exercícios Resolvidos de Algoritmos estruturados

Ver Teoria

Enunciado

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, um bode e um maço de alfafa. O que o homem deve fazer para conseguir atravessar o rio sem perder suas cargas? Escreva um algoritmo utilizando a linguagem natural para mostrar a resposta, ou seja, indicando todas as ações necessárias para efetuar uma travessia segura.

Passo 1

Antes de tudo, devemos reunir algumas características do problema.

Informações:

  • Um barco com 2 lugares;
  • Um homem;
  • Um lobo;
  • Um bode;
  • Um maço de alfafa.

E que se ficarem sozinhos (sem a presença do homem):

  • Lobo devora bode;
  • Bode devora alfafa.

Passo 2

Estando todos em uma margem do rio, a primeira travessia no barco deve ser feita com o homem e o bode, deixando o lobo e o maço de alfafa sozinhos:

Passo 3

Agora, devemos voltar ao lado oposto do rio para buscar um dos remanescentes:

Passo 4

Já no lado oposto, podemos realizar a travessia de volta com o lobo ou o maço de alfafa, nesse caso escolheremos o lobo e deixaremos o maço:

Passo 5

Com o lobo e o bode na outra margem do rio, o homem não pode voltar sem carga para buscar o maço de alfafa, pois o lobo devora o bode:

Passo 6

Já na margem oposta, o mesmo acontece com o bode e o maço de alfafa. Então, o homem deve deixar o bode e atravessar com o maço de alfafa:

Passo 7

Nesse momento, temos em uma margem o Lobo e o maço de alfafa e na outra o bode. Como não há problema em deixar o maço de alfafa e o lobo sozinhos:

Passo 8

Na margem oposta resta apenas o bode, sendo assim:

Resposta

Dessa forma, o algoritmo completo para a realização de travessias seguras é: