retour vers le sommaire du cours

Algorithmique - Travaux Dirigés - Séance n°2
Jean HENRI

Un peu de maths - Jeu de 421

Algorithme 1 - Problème de Maths (corrigé - programme Retour en haut de page

Prenez un entier supérieur ou égal à 3. Êtes-vous capable de trouver la décomposition de ce nombre en une somme de termes consécutifs ?

Exemples :  5 = 2 + 3
           30 = 6 + 7 + 8 + 9

Cela ne fonctionne pas avec tous les entiers !

Rédiger l'algorithme Decomposer sous forme d'une procédure :

procédure decomposer (entrée : Nombre est entier
                      sortie : NbDebut, NbFin sont entier)
où (l'exemple est donné pour la décomposition de 30) :
  Nombre représente l'entier à décomposer (par exemple 30)
  NbDébut représente le plus petit entier de la somme (par exemple 6)
  NbFin représente le plus grand entier de la somme (par exemple 9)
 
Si la décomposition est impossible, NbDebut et NbFin contiendront 0

Algorithme 2 - Une partie de 421 (corrigé - programmeRetour en haut de page

On souhaite simuler le jeu de dés appelé 421.

Règle du jeu simplifiée : On utilise 3 dés (faces numérotées de 1 à 6) que l'on peut lancer jusqu'à 3 fois. L'objectif est de former le nombre 421 avec les 3 dés. Lorsque l'un (ou plusieurs) des chiffres sort, on met le dé correspondant de côté et on relance les autres dés.

Dans un premier temps, vous écrirez une procédure Tirage définie comme suit :

procedure Tirage (entrée : NbDesLances est un entier
                  sortie : De1, De2, De3 sont entiers)

Les valeurs fournies en sortie sont toujours données dans l'ordre décroissant. C'est à dire que si le tirage donne les 3 valeurs suivantes : 2 5 3, les valeurs renvoyées seront 5, 3 et 2.

NbDesLances représente le nombre de dés à lancer (0, 1, 2 ou 3 !). Lorsqu'il y a moins de 3 dés de lancés, les valeurs renvoyées en sortie seront 0 pour les dés non joués. Par exemple pour le tirage d'un seul dé donnant 5, les valeurs renvoyées seront 5, 0 et 0.

Ensuite, vous rédigerez une procédure Tester421 définie comme suit :

procedure Tester421 (sortie : nbEssais est entier)

Cela permettra d'appeler la procédure tirage autant de fois que nécessaire pour obtenir le 421. La données NbEssais fournira le nombre de lancers qui auront été nécessaires.

Eventuellement, vous pouvez utiliser les algorithmes suivants :

fonction NbAlea (entrée : Taille est entier) retourne un entier
où l'entier retourné est compris entre 0 et Taille-1

fonction Max (entrée : Nb1, Nb2 sont entiers) retourne un entier
où l'entier retourné est la plus grande valeur de Nb1 et Nb2

fonction Min (entrée : Nb1, Nb2 sont entiers) retourne un entier
où l'entier retourné est la plus petite valeur de Nb1 et Nb2


Page créée en novembre 2003
Auteur : Jean HENRI