Tester l'algorithme :


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


Remarque : les consignes sont données dans la version sans commentaire.

Attention : Cet algo s'arrête à chaque étape et attend l'entrée d'un nombre (quelconque) pour passer à l'étape suivante.

Si vous n'introduisez rien il bloque. (AlgoBox est encore un peu jeune.)

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
    AFFICHER "J'entre dans tq"
    AFFICHER zvase
    AFFICHER " "
    AFFICHER xvase
    AFFICHER " "
    AFFICHER yvase
    SI (xvase == 0) ALORS
      DEBUT_SI
      AFFICHER "xvase vide"
      SI (x >= zvase) ALORS
        DEBUT_SI
        AFFICHER "zvase < x"
        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
        AFFICHER "xvase pas vide"
        SI (yvase < y ) ALORS
          DEBUT_SI
          AFFICHER "yvase n'est pas plein : "
          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
          AFFICHER "tmp (y - yvase) = "
          AFFICHER tmp
          AFFICHER " ; xvase (xvase - tmp ) = "
          AFFICHER xvase
          FIN_SI
          SINON
            DEBUT_SINON
            AFFICHER "yvase plein"
            zvase PREND_LA_VALEUR zvase + yvase
            yvase PREND_LA_VALEUR 0
            FIN_SINON
        FIN_SINON
    AFFICHER zvase
    AFFICHER " "
    AFFICHER xvase
    AFFICHER " "
    AFFICHER yvase
    LIRE encore
    FIN_TANT_QUE
FIN_ALGORITHME