Informática, perguntado por Ming13, 7 meses atrás

7. Desafio de lógica: Três missionários e três canibais encontram-se na margem esquerda
de um rio. Nessa margem também existe um bote que pode transportar uma ou duas
pessoas. As seis pessoas pretendem todas passar para a margem direita (usando o bote).
No entanto, os missionários têm de arranjar um plano para consegui-lo de modo que, em
nenhuma circunstância, existam missionários numa margem em minoria relativamente
aos canibais, pois têm receio do que lhes possa acontecer. Quando o bote chega à margem,
os elementos do bote são contados como estando na margem. Assim, se houver apenas um canibal em uma margem, não podemos enviar a essa margem o bote com um canibal
e um missionário, pois, ao chegar à outra margem, serão dois canibais contra um
missionário. Lembre-se de que para o bote ir de uma margem a outra é necessário que
alguém esteja remando, ou seja, o bote nunca atravessa vazio. Faça um algoritmo que
exiba, passo a passo, como efetuar esta travessia de forma segura.

Soluções para a tarefa

Respondido por jiujitsujoao
0

Resposta:

Inicio:

var m 1, m2, m3;

var c = 3

var barco;

var ilha1;

var ilha2;

Se o numero de canibais (c) na ilha 1 ou ilha 2 for maior que o de missionários (m)

imprime( "missionario morreu");

Se o numero de missionarios for maior ou igual que o numero de canibais na ilha 1 e ilha 2

faça:

  Move m1 para o barco e c1 para o barco.

  barco recebe m1 e c1;

     Atravessar m1 e c1.

      Ilha2 recebe c1.

Move no barco para ilha1 m1.

    barco recebe m1

    Ilha 1 recebe m1.

Move no barco para ilha2 c2 e c3.

    barco recebe c2 e c3;

    ilha2 recebe c2.

Move no barco c3 para ilha 1.

    barco recebe c3;

    ilha1 recebe c3.

Move no barco m1 e m2 para ilha2.

    barco recebe m1 e m2

    ilha2 recebe m1

Move no barco para ilha1 m2 e c2

   barco recebe m2 e c2;

   ilha1 recebe c2

Move no barco para ilha2 m2 e m3.

  barco recbe m2 e m3;

  ilha2 recebe m2 e m3

Move no barco para ilha1 c1

   barco recebe c1;

Move no barco para ilha2 c1 e c2

    barco recebe c1 e c2;

    ilha2 recebe c1

Move no barco para ilha1 c2

    barco recebe c2;

Move no barco para ilha2 c2 e c3

   barco recebe c2 e c3

   ilha2 recebe c2 e c3.

Imprime ("ilha1 é igual a 0 tripulantes e na ilha2 consta 3 canibais e 3 missionários");

FIM

Perguntas interessantes