Boujour,
Pour mercredi prochain, j'ai un DM de maths à rendre. Voici l'énoncé d'un des exercices :
"Un point M peut se déplacer sur un quadrillage, d'un pas (c-à-d d'un carreau), dans l'une des quatre directions. Les déplacements possibles se font au hasard (ils sont équiprobables). Au départ, M est en O. M se déplace jusqu'à ce qu'il sorte du disque de centre O et de rayon 5 pour la première fois. On appelle alors N la variable aléatoire qui indique le nombre de pas effectués.
On se propose d'utiliser un algorithme pour calculer des valeurs prises par N.
Protocole : On code par 0 un déplacement d'un pas vers la droite; par 1 un déplacement vers la gauche; par 2 un déplacement vers le haut; par 3 un déplacement vers le bas. Chaque déplacement se traduit par une relation sur les coordonnées (x;y) du point M.
Code Déplacement Relation
0 1 pas vers la droite x devient x+1
1 1 pas vers la gauche x devient x-1
2 1 pas vers le haut y devient y+1
3 1 pas vers le bas y devient y-1"
En pièce jointe, mon algorithme. Il me semble bon, pourtant il y a un problème. Si je lance mon programme (sans le mode pas à pas), Algobox finit par m'afficher que "Algorithme interrompu ligne 30 : dépassement de la capacité autorisée pour les boucles".
J'ai donc décidé de le lancer en mode "pas à pas" pour voir ce qu'il se passe (voir pièces jointes) : Et là, gros problème ! Si Z=0 alors aucun problème, mais si Z=3 (par exemple), la condition est vérifié à la ligne 18, soit "Si Z=1 alors" ... Forcément, ce n'est pas bon ... N'étant que la première partie de l'exercice, ce bug m'empêche de faire la suite, ce qui est tout de même dommage ...
Je demande donc votre aide ... Si quelqu'un peut m'expliquer à quel endroit mon algorithme est faux (ou pourquoi il bug ...), ça serait vraiment sympa ...
Merci d'avance à toutes les personnes qui prendront le temps de me lire et de me répondre
-----