Outils pour utilisateurs

Outils du site


profgra:peda:puce-jpr

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

profgra:peda:puce-jpr [2016/02/26 18:43] (Version actuelle)
82.232.79.126 créée
Ligne 1: Ligne 1:
 +# Le retour de la puce
  
 +Une puce se promène sur les nombres entiers relatifs $\mathbb Z$ en partant de la position 0.
 +À chaque saut, elle ajoute ou retire une unité à sa position, de manière équiprobable.
 +
 +## Position de la puce
 +
 +Voyons où elle se retrouve au bout de 20 sauts.
 +
 +### Affichage direct
 +
 +L’algorithme basique. Pour tirer à pile ou face, la puce choisit un entier parmi 0 et 1. Si elle tombe sur 0, elle retire 1 à sa position, et si elle tombe sur 1, elle ajoute 1 à sa position.
 +
 +Pour simplifier la partie algorithmique (c’est discutable),​ on peut remplacer le `Si` par :
 +
 +    (Affecter_a position (+ position (- (* 2 (Entier@ 0 1)) 1)))
 +
 +(MicroAlg "​puce-position-directe"​)
 +(Declarer position De_type "​nombre"​)
 +(Affecter_a position 0)
 +(Repeter 20 Fois
 +    (Si (= 0 (Entier@ 0 1))
 +     Alors
 +        (Affecter_a position (- position 1))
 +     Sinon
 +        (Affecter_a position (+ position 1))
 +    )
 +)
 +(Afficher position)
 +(/MicroAlg)
 +
 +### Avec Definir
 +
 +Tout le code précédent,​ excepté les déclarations,​ est placé dans la définition d’une nouvelle commande : `Position-puce`.
 +
 +L’affichage est remplacé par un retour de valeur. Ainsi, dans un programme où elle est définie, l’appel de la commande : `(Position-puce)` sera remplacé par la valeur retournée par cette commande.
 +
 +(MicroAlg "​puce-position-definir"​)
 +(Declarer position De_type "​nombre"​)
 +(Definir (Position-puce)
 +    (Affecter_a position 0)
 +    (Repeter 20 Fois
 +        (Si (= 0 (Entier@ 0 1))
 +         Alors
 +            (Affecter_a position (- position 1))
 +         Sinon
 +            (Affecter_a position (+ position 1))
 +        )
 +    )
 +    (Retourner position)
 +)
 +(Afficher (Position-puce))
 +(/MicroAlg)
 +
 +## Le retour de la puce
 +
 +Dans le programme suivant, la commande `Position-puce` a déjà été définie. Il ne reste plus qu’à l’utiliser !
 +
 +(MicroAlg "​puce-predef"​ {"​presrc":"​(Declarer position De_type \"​nombre\"​)(Definir (Position-puce)(Affecter_a position 0)(Repeter 20 Fois (Affecter_a position (+ position (- (* 2 (Entier@ 0 1)) 1))))(Retourner position))"​})
 +(Afficher (Position-puce))
 +(/MicroAlg)
profgra/peda/puce-jpr.txt · Dernière modification: 2016/02/26 18:43 par 82.232.79.126