Inscription / Connexion Nouveau Sujet
Niveau Licence Maths 1e ann
Partager :

Algorithmique Expérimentale

Posté par
netherx
22-10-14 à 11:33

Bonjour à tous !

J'aurais besoin d'aide pour programmer un algorithmique sous java's cool.

On me pose :

Le but de cet exercice est de concevoir un programme permettant d'aider un utilisateur jouant au «421». Dans ce jeu, le joueur et ses adversaires doivent lancer trois dés en différentes phases, et le vainqueur dépend principalement des combinaisons obtenues. Le programme que vous allez écrire a pour but d'indiquer à un utilisateur novice quelle combinaison qu'il a obtenu :

-Le 421 se compose d'un 1, d'un 2 et d'un 4. Il vaut 11 points.
-Une paire d'as se compose de deux dés valant 1 et d'un dé différent.La valeur du dé différent donne le nombre de points obtenus.
-Un brelan se compose de trois dés identiques.La valeur commune indique le nombre de point, sauf 111 qui donne 7 points.
-Une tierce se compose de trois valeurs consécutives, par exemple 4, 2 et 3 forment une tierce.Elle vaut 2 points.
-Toutes les autres combinaisons valent 1 point.

Question 1:
Écrire un programme demandant à l'utilisateur la valeur de chacun des trois dés.
L'utilisateur entrera les valeurs des dés dans n'importe quel ordre.
Pour l'instant, le programme se contentera d'afficher les valeurs saisies telles quelles.

Question 2:
Modifier le programme afin qu'il affiche «Brelan» ainsi que le nombre de points correspondant si les valeurs forment un brelan.

Question 3:
Modifier le programme afin qu'il prenne également en compte les paires d'as.

Question 4:
Modifier le programme afin qu'il prenne également en compte les 421.
Une partie de la difficulté des questions précédentes vient du fait que l'utilisateur entre les valeurs dans l'ordre qu'il souhaite.
Si l'on trie les valeurs tout de suite après la saisie, cela simplifie la suite.

Question 5:
Ajouter ce qu'il faut à votre programme pour que, juste après la saisie des valeurs par l'utilisateur, les valeurs saisies soient triées.
La valeur la plus petite doit être stockée dans une variable deMinimum, la valeur intermédiaire dans une variable
deIntermediaire et la valeur maximale dans une variable deMaximum.

Question 6:
Modifier le programme afin qu'il prenne également en compte les tierces.

Question 7:
Simplifier vos réponses aux questions 2, 3, 4.

Alors ce que moi j'ai penser à faire, c'est d'utiliser la commande "random"; si c'est pour celà merci de m'aider.


Cordialement.

Posté par
LeDino
re : Algorithmique Expérimentale 22-10-14 à 12:38

Citation :
Alors ce que moi j'ai penser à faire, c'est d'utiliser la commande "random"; si c'est pour celà merci de m'aider

Mort de rire !
Faut surtout pas faire ça malheureux !
Les dés ne sont pas tirés au sort dans cet exercice !

Ils sont entrés par l'utilisateur...
Donc AUCUN besoin de la fonction random : il faut juste appliquer les règles de calcul précises expliquées dans l'énoncé, en procédant étape par étape comme c'est indiqué.

Avant de répondre à un problème, quel qu'il soit, il est en général furieusement recommandé de LIRE l'énoncé. Honnêtement : ça aide .

Posté par
netherx
re : Algorithmique Expérimentale 22-10-14 à 13:35

Ok merci de ta réponse, peux-tu peut-être me donner le début du programme ?

Posté par
LeDino
re : Algorithmique Expérimentale 22-10-14 à 16:21

Voici l'algorithme du début, écrit en pseudo langage. A toi de l'adapter au langage que tu utilises.
Remarque : pour afficher du code, il est très pratique d'utiliser les balises "code" :

[ code ] Exemple de source inscrit entre les balises "code"... [ /code ] 


Citation :
Q1:  Écrire un programme demandant à l'utilisateur la valeur de chacun des trois dés.
L'utilisateur entrera les valeurs des dés dans n'importe quel ordre.
Pour l'instant, le programme se contentera d'afficher les valeurs saisies telles quelles.

a, b, c  Sont de type Entiers
Entrer  "Veuillez entrer la valeur des 3 dés : ",  a, b, c
Afficher  "Les valeurs saisies sont : ",  a, b, c


Citation :
Q2:  Modifier le programme afin qu'il affiche «Brelan» ainsi que le nombre de points correspondant si les valeurs forment un brelan.

a, b, c, valeur  Sont de type Entiers
Entrer  "Veuillez entrer la valeur des 3 dés : ",  a, b, c
Afficher  "Les valeurs saisies sont : ",  a, b, c
Si (a=b) et (b=c)  Alors 
    valeur = a
    Si  (a=1)  Alors  valeur = 7
    Afficher  "Il s'agit d'un Brelan, de valeur",  valeur
    Fin_si


Citation :
Q3:  Modifier le programme afin qu'il prenne également en compte les paires d'as.

#-----------------------------------------------------------------
# Calcul des valeurs au 421 
#-----------------------------------------------------------------

#--------(Saisie des valeurs)-------------------------------------
a, b, c, valeur, mini, medium, maxi  Sont de type Entiers
Entrer  "Veuillez entrer la valeur des 3 dés : ",  a, b, c
Afficher  "Les valeurs saisies sont : ",  a, b, c

#--------(Brelan)-------------------------------------------------
Si (a=b) et (b=c)  Alors 
    valeur = a
    Si  (a=1)  Alors  valeur = 7
    Afficher  "Il s'agit d'un Brelan, de valeur",  valeur
    Fin_si

#--------(Paire d'as)----------------------------------------------
mini = min(a,b,c)
maxi = max(a,b,c)
medium = a + b + c - mini - maxi
Si  (mini=1) et (medium=1)  Alors 
    valeur = maxi
    Si  (maxi=1)  Alors  valeur = 7
    Afficher  "Il s'agit d'une paire d'as, de valeur",  valeur
    Fin_si

Posté par
LeDino
re : Algorithmique Expérimentale 22-10-14 à 18:45

Et enfin, voici un exemple d'algorithme complet.
Reste juste à le retranscrire dans le langage souhaité ...


#-----------------------------------------------------------------------
# Calcul des valeurs au 421 
#-----------------------------------------------------------------------

#--------(Saisie, tri et affichage des trois dés)-----------------------
a, b, c, valeur, mini, inter, maxi  Sont de type Entiers
Entrer  "Veuillez entrer les valeurs des trois dés : ",  a, b, c
mini = min(a,b,c)
maxi = max(a,b,c)
inter = a + b + c - mini - maxi
Afficher  "Les valeurs triées des 3 dés sont : ",  mini, inter, maxi

#--------(Valeur par défaut, pour une combinaison ordinaire)------------
valeur = 1

#--------(Brelan)-------------------------------------------------------
Si (a=b) et (b=c)  Alors 
    valeur = a
    Si  (a=1)  Alors  valeur = 7
    Afficher  "Il s'agit d'un Brelan, de valeur : ",  valeur
    Fin_si

#--------(Paire d'as)----------------------------------------------------
Si  (mini=1) et (inter=1) et (maxi > 1)  Alors 
    valeur = maxi
    Afficher  "Il s'agit d'une paire d'as, de valeur : ",  valeur
    Fin_si

#--------(421)-----------------------------------------------------------
Si  (mini=1) et (inter=2) et (maxi=4)  Alors 
    valeur = 8
    Afficher  "Bravo ! Il s'agit d'un 421, de valeur : ",  valeur
    Fin_si

#--------(Suite)---------------------------------------------------------
Si  ((inter-mini)=1) et ((maxi-inter)=1)  Alors 
    valeur = 2
    Afficher  "Il s'agit d'une suite, de valeur : ",  valeur
    Fin_si

#--------(Combinaison ordinaire)-----------------------------------------
Si  (valeur=1)  Alors 
    Afficher  "Il s'agit d'une combinaison ordinaire, de valeur : ",  valeur
    Fin_si

#-----------------------------------------------------------------------
# F I N
#-----------------------------------------------------------------------

Posté par
netherx
re : Algorithmique Expérimentale 05-11-14 à 14:12

Bonjour,

Merci bien pour tes réponses qui m'ont été très utiles.
Mais je voudrais savoir si ton algorithme que tu as fait, c'est pour ta les questions ?

PS : je voudrais avoir la correction de toutes les questions, car notre professeur de TD nous as pas donner de corrigés.

Cordialement.

Posté par
LeDino
re : Algorithmique Expérimentale 05-11-14 à 14:34

Citation :
Mais je voudrais savoir si ton algorithme que tu as fait, c'est pour ta les questions ?

L'algorithme final posté le 22-10-14 à 18:45 est complet.
Il répond à l'ensemble de l'énoncé au sens où il valorise chaque figure du jeu.
Il intègre également l'astuce suggérée par l'énoncé qui consiste à trier les trois dés la saisie pour simplifier la programmation ultérieure.
C'est donc l'algorithme "idéal" auquel on aboutit après avoir répondu à toutes les questions allant de Q1 à Q7.

Pour les réponses "intermédiaires", c'est à toi de les faire, étape par étape.
Je t'ai donné les trois premières (Q1, Q2, Q3) dans mon message posté le 22-10-14 à 16:21.
Quant à Q5, sa réponse est présente dans l'algorithme final que j'ai posté.

Il reste donc éventuellement Q4 et Q6 à produire, qui seraient les réponses intermédiaires avant d'arriver à l'algorithme final complet et optimisé... Mais ces variantes intermédiaires ne sont pas très "intéressantes" à produire dans la mesure où le tri des valeurs dès la saisie s'impose de lui même pour n'importe quel programmeur. Ces étapes intermédiaires sont donc très "artificielles".

L'essentiel pour toi c'est d'avoir bien compris comment on aboutit à l'algorithme final et d'être capable de le reproduire par toi même.
Est-ce que c'est OK pour toi ?

Posté par
netherx
re : Algorithmique Expérimentale 05-11-14 à 15:05

Ok, merci bien pour ton aide.

Cordialement.



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1674 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !