Algorithme :
fonction boireUnPack (packPlein : entier) : booléen
___packBu ← faux
___tant que packPlein ≠ 0 faire
______si soif = vrai
_________alors canette = pack.prendreUneCanette
_____________ canette.decapsuler
_____________ canette.boire
_________sinon canette = pack.prendreUneCanette
_____________ canette.donnerAQuun
_________fsi
______packPlein ← packPlein - 1
______ftant
______packBu ← vrai
______retourne packBu
___fin
Lexique :
___packPlein : entier, capacité d'un pack avant usage.
___soif : booleen, vrai si j'ai soif, faux sinon.
___packBu : booleen, vrai quand le pack est totallement bu.
___fonction prendreUneCanette() : canette, retourne une canette pleine.
___fonction decapsuler, décapsule une canette.
___fonction boire, boit une canette.
___fonction donnerAQqun, donne une canette a un tiers.