Inscription / Connexion Nouveau Sujet
Niveau seconde
Partager :

DM Maths programme

Posté par
depths_of_glory
31-12-14 à 15:13

Bonjour à tous ! Ceci est mon tout premier topic sur ce site, merci d'être indulgent. Alors voilà, je viens ici pour vous exposer mon problème de mathématiques que je dois rendre pour la rentrée et sur lequel je suis bloqué depuis hier. Ceci est un exercice de programmation sur calculatrice Texas Instruments (Ti82+, Ti83+ et Ti84+). J'espère donc qu'il y a des possesseurs d'un de ces modèles de calculatrice qui sera capable de m'aider, ou du moins de m'avancer dans mes recherches.

Sujet:
1) Créer un programme sous forme de jeu où il faudra trouver un nombre entre 1 et 50 via plusieurs propositions de nombres. Si le nombre proposé est supérieur au nombre que l'on cherche il faut afficher le message "Trop grand, réessaie", à l'inverse, si il est inférieur, alors il faut afficher "Trop petit, réessaie". Une fois que le nombre proposé est égal au nombre que l'on cherche alors il faut afficher "Bravo" à l'écran de la calculatrice.


2) Améliorer ce programme de sorte à ce que:
Si au bout de 5 essais, le joueur n'a pas trouvé la bonne réponse, la machine lui dit "vous avez perdu" (et elle donne la bonne réponse) et s'il a trouvé la bonne réponse, la machine lui dit "vous avez gagné en … essais". On demande de bien séparer, avec des couleurs différentes, ce qui faisait déjà partie de l'ancien programme (du type ci-dessus) et ce qui fait partie de l'amélioration demandée (à écrire d'une autre couleur).

3) Expliquer pourquoi un joueur intelligent a environ une chance sur deux de gagner (un peu
plus ou un peu moins d'une chance sur deux ?). On pourra se contenter de donner un ou deux
exemples car envisager toutes les possibilités n'est pas évident.


Pour l'instant, j'ai uniquement répondu à la question 1 voici donc la forme de mon algorithme:

ent(NbrAléat*50)+1 (un nombre aléatoire entre 1 et 50) --> N
Disp « TROUVEZ MON NOMBRE ENTRE 1 ET 100 »
Prompt P (demander un nombre qui sera stocké dans la mémoire P)
While (P≠N)
If (P>N)
Then
Disp « TROP GRAND REESSAYE »
Else
Disp « TROP PETIT REESSAYE »
End (fin du If)
Prompt P
End (fin du While)
Disp « BRAVO »

Tout ce qui est en italique constitue des "repères" que j'ai décidé de placer afin de me repérer dans l'algorithme, ils n'apparaissent donc pas sur ma copie. Pour la seconde question j'ai commencé à trouver quelques idées mais aucune piste concrètes, si quelqu'un pouvait m'aider à résoudre les deuxièmes et troisièmes questions je lui en serais infiniment reconnaissant, cordialement !

Posté par
Leile
re : DM Maths programme 31-12-14 à 16:25

bonjour,

pour laisser 5 essais on pourrait modifier l'algo comme ça :

ent(NbrAléat*50)+1 (un nombre aléatoire entre 1 et 50) --> N
Disp « TROUVEZ MON NOMBRE ENTRE 1 ET 50 »
nb = 1     /* initialiser le nombre d'essais */

Prompt P (demander un nombre qui sera stocké dans la mémoire P)
While (P≠N) et nb < 6   /* autorise 5 essais maxi */
If (P>N)
Then
Disp « TROP GRAND REESSAYE »
Else
Disp « TROP PETIT REESSAYE »
End (fin du If)
nb = nb+1     /* essai suivant  */
Prompt P
End (fin du While)
si (P=N)
Disp "vous avez gagné en " nb " essais "
else
Disp "vous avez perdu".
Fin prog

NB : je n'ai pas de calculatrice ; je te laisse vérifier la syntaxe.

Posté par
depths_of_glory
re : DM Maths programme 31-12-14 à 16:32

Merci de ta prompte réponse !
En effet le "Trouver mon nombre entre 1 et 100" était faux car j'avais repris cette phrase d'un de mes anciens programmes, merci de bien m'avoir fait remarquer que c'était 50.

En ce qui concerne les essais cela me semble bien mais je dois néanmoins tester ça avec le langage de la calculatrice pour voir si ça marche. En vérité j'avais pensé à faire quelque chose comme ça mais je ne savais pas où placer les lignes à rajouter. Merci donc beaucoup pour cette aide.

Ce qui me semble incorrect, par contre c'est ta ligne "nb = 1     /* initialiser le nombre d'essais */ " car si je fais ça le compteur démarrera directement à 1 et non à 0 il y aura donc uniquement 4 essais non ?

Posté par
Leile
re : DM Maths programme 31-12-14 à 16:32

Question 3 :
exemple nombre choisi = 42

entre 1 et 50, il y a 50 nombres.
1er essai, je me place au milieu, je propose 25
on me répond trop petit
==> le nombre à trouver est entre 25 et 50
je me place au milieu, je propose 37
on me dit trop petit
==> le nombre à trouver est entre 37 et 50
je me place au mileu, je propose 44
on me dit trop grand
je me place au milieu entre 37 et 44 , je propose 41
on me dit trop petit
il me reste 2 choix : 42 ou 43
donc j'ai une chance sur deux..

tu peux essayer avec un autre nombre de départ.

OK ?

Posté par
Leile
re : DM Maths programme 31-12-14 à 16:36

nb = 1 ==> quand tu passes pour la première fois dans la boucle while, c'est le premier essai.
tu auras 5 esais, puisque ca s'arrête quand nb=6
mais n'hésite pas à tester l'algorithme, en cas de doute.

OK ?

Posté par
depths_of_glory
re : DM Maths programme 31-12-14 à 16:40

Ok ok je teste l'algorithme et je te tiens au courant car jusqu'à là toutes tes explications me semblent cohérentes !

Posté par
depths_of_glory
re : DM Maths programme 31-12-14 à 17:28

J'ai testé l'algorithme en marquant ça sur ma calculatrice:

ent(NbrAléat*50)+1 (un nombre aléatoire entre 1 et 50) --> N
Disp « TROUVEZ MON NOMBRE ENTRE 1 ET 50 »
1 --> E
Prompt P (demander un nombre qui sera stocké dans la mémoire P)
While (P≠N) et (E<6)
If (P>N)
Then
Disp « TROP GRAND REESSAYE »
Else
Disp « TROP PETIT REESSAYE »
End (fin du If)
E+1 --> E
Prompt P
End (fin du While)
If (P=N)
Disp « VOUS AVEZ GAGNE EN "E" ESSAIS »
Else
Disp « VOUS AVEZ PERDU »


"E" représente le nombre d'essais effectués. J'ai souligné les plusieurs éléments qui me posent problème, tout d'abord le "et (E<6)" que je n'arrive pas à faire avec ma calculatrice (je ne sais pas faire un While qui prend en compte deux éléments, en tout cas à la calculatrice). Concrètement ça ne pose pas de problème, sauf que j'ai un nombre d'essais illimités au lieu d'en avoir seulement 5. Vu que tu ne possède pas de calculatrice, je vais continuer à chercher sur internet.

Le second problème est le dernier "Else" qui me donne une erreur à chaque fois que j'exécute le programme, après qui m'ait donné la phrase "vous avez gagné en "E" essais" cet Else provoque une erreur.

Posté par
depths_of_glory
re : DM Maths programme 31-12-14 à 17:35

Edit: J'ai rectifié le premier problème car j'ai trouvé la commande "et" mais le second problème est toujours présent.

Posté par
depths_of_glory
re : DM Maths programme 31-12-14 à 17:47

Edit 2: Aussi réctifié car j'ai remplacé le fameux Else par un "If (P≠N)" et tout fonctionne. Comme quoi j'aurais dû utiliser mon cerveau plutôt que de poster trois messages d'affilés. Bref, problème résolu !

Posté par
Leile
re : DM Maths programme 31-12-14 à 18:00

ha ha ! oui, les solutions sont souvent dans les cerveaux !

pour le else qui te posait problème, c'est peut-être parce qu'il manquait un then après le if.
mais avec deux if successifs, c'est bien aussi.

Alors bon réveillon !!

Posté par
depths_of_glory
re : DM Maths programme 31-12-14 à 18:14

Oui j'en étais revenu à la même déduction, en tout cas maintenant que le problème est réglé tout est bon !

Bon réveillon !!



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 1742 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 !