Tester l'algorithme :


(cliquer sur le bouton ci-dessus pour lancer ou relancer l'exécution de l'algorithme)

Remarque :

Cette version est volontairement dépouillée afin de rendre l'algorithme lisible. Une autre version affiche des commentaires pendant l'éxécution.

Il faut lire les documents (Comment chercher et l'extrait de Mathématiques amusantes de Court)  et faire preuve de sagesse dans le choix des valeurs des contenances. Notamment, on entre dans l'ordre grand vase, petit vase et fut. La capacité du fût doit être le double de la somme des 2 petits.

 

RÉsultat :

Code de l'algorithme :
VARIABLES
  x EST_DU_TYPE NOMBRE
  y EST_DU_TYPE NOMBRE
  z EST_DU_TYPE NOMBRE
  xvase EST_DU_TYPE NOMBRE
  yvase EST_DU_TYPE NOMBRE
  zvase EST_DU_TYPE NOMBRE
  tmp EST_DU_TYPE NOMBRE
  but EST_DU_TYPE NOMBRE
  encore EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
  LIRE x
  LIRE y
  LIRE z
  xvase PREND_LA_VALEUR 0
  yvase PREND_LA_VALEUR 0
  zvase PREND_LA_VALEUR z
  but PREND_LA_VALEUR floor(z/2)
  TANT_QUE (xvase != but) FAIRE
    DEBUT_TANT_QUE
    SI (xvase == 0) ALORS
      DEBUT_SI
      SI (x >= zvase) ALORS
        DEBUT_SI
        xvase PREND_LA_VALEUR zvase
        zvase PREND_LA_VALEUR 0
        FIN_SI
        SINON
          DEBUT_SINON
          xvase PREND_LA_VALEUR x
          zvase PREND_LA_VALEUR zvase - x
          FIN_SINON
      FIN_SI
      SINON
        DEBUT_SINON
        SI (yvase < y ) ALORS
          DEBUT_SI
          tmp PREND_LA_VALEUR y - yvase
          SI (( xvase + yvase ) > y ) ALORS
            DEBUT_SI
            yvase PREND_LA_VALEUR y
            xvase PREND_LA_VALEUR xvase - tmp
            FIN_SI
            SINON
              DEBUT_SINON
              yvase PREND_LA_VALEUR yvase + xvase
              xvase PREND_LA_VALEUR 0
              FIN_SINON
          FIN_SI
          SINON
            DEBUT_SINON
            zvase PREND_LA_VALEUR zvase + yvase
            yvase PREND_LA_VALEUR 0
            FIN_SINON
        FIN_SINON
    AFFICHER zvase
    AFFICHER " "
    AFFICHER xvase
    AFFICHER " "
    AFFICHER yvase
    FIN_TANT_QUE
  zvase PREND_LA_VALEUR zvase + yvase
  yvase PREND_LA_VALEUR 0
  AFFICHER zvase
  AFFICHER " "
  AFFICHER xvase
  AFFICHER " "
  AFFICHER yvase
FIN_ALGORITHME