Deug
Technologie Industrielle 2ème année, IUP MIAGE, Gc,
Génie Méca
TP de programmation numéro 3
Positionnement du prix d'un lot
objectifs : Itération - Traitement séquentiel
Les 3 exercices correspondent à des programes de "complexité" croissante. Aussi, il vous est demandé de ne passer à un nouvel exercice qu'après avoir complétement terminé l'exercice précédent, c'est à dire tapé, compilé et exécuté le programme demandé.
Exercice 1
Le jeu consiste à découvrir par essais successifs le prix d'un lot . Pour chaque essai, le joueur reçoit un message : "Trop grand", "Trop petit" ou "BRAVO ! Vous avez trouvé en K essais". Le jeu est fini quand le joueur a trouvé le prix du lot.
On propose d'écrire un programme JAVA PrixLot1.java qui joue le rôle de meneur de jeu ; l'exécution de ce programme vous fera tenir le rôle du joueur. Le programme Prixlot1doit définir le prix du lot en tirant un entier aléatoire entre 1 et 1000 et dialoguer avec le joueur pendant le jeu.
Pour choisir un nombre au hasard on utilisera la méthode random de la classe Math qui retourne un réel (double) tiré au hasard et de manière uniforme dans l'intervalle [0 1].
exemple :
double x;
x = Math.random();
exemple d’exécution du programme PrixLot1
eudoxe%java PrixLot1
Le but est de chercher un prix entre 0 et 1000
Tapez un prix : 566
Trop grand
Tapez un prix : 400
Trop grand
Tapez un prix : 150
Trop petit
Tapez un prix : 200
Trop petit
Tapez un prix : 214
BRAVO ! Vous avez gagné en 5 essais
eudoxe%
Algorithme du programme PrixLot1
tirer au sort un prix entre 1 et 1000
//
accéder au premier essai
demander au joueur un essai et le lire
initialiser le compteur du nombre d'essais à 1
tant que l'essai est différent du prix
//
traiter l'essai
écrire le message approprié
suivant que l'essai est plus petit ou plus grand que le prix
// accéder à l'essai suivant
demander au joueur un nouvel essai et le
lire
augmenter de 1 le compteur du nombre d'essais
fin de la boucle tant que
//
l'essai est égal au prix
afficher un message de BRAVO et le nombre d'essais
Exercice 2
Copier dans le fichier PrixLot2.java le fichier PrixLot1.java, et modifier PrixLot2.java de manière à pouvoir :
exemple d’exécution du porgramme PrixLot2
eudoxe%java PrixLot2
Le but est de chercher un prix entre 0 et 1000
1ère partie. Nombre maximum d’essais : 4
Tapez un prix : 678
Trop petit
Tapez un prix : 920
Trop grand
Tapez un prix : 860
Trop petit
Tapez un prix : 910
Trop petit
PERDU ! Vous avez épuisé le nombre d’essais autorisés
Le prix était : 917
Voulez-vous rejouer O/N ? o
2ème partie. Nombre maximm d’essais : 8
Tapez un prix : 678
Trop grand
Tapez un prix : 333
Trop grand
Tapez un prix : 300
Trop petit
Tapez un prix : 320
Trop petit
Tapez un prix : 324
BRAVO !
Vous avez gagné en 5 essais
Voulez-vous rejouer O/N ? n
euxode%
Exercice 3
En jouant avec le programme précédent, essayer de trouver une stratégie systématique et efficace. Ecrire un programme PrixLot3.java qui fait jouer l'ordinateur à votre place suivant la tactique que vous venez de définir ; les deux rôles de meneur de jeu et de joueur sont donc à la charge du programme, le joueur "ignorant" évidemment le prix connu du meneur de jeu, mais "sachant" si son essai est plus grand ou plus petit que le prix.
Le programme PrixLot3 effectue 20 parties ; il affiche pour chaque partie le prix tiré au sort et le nombre d'essais successifs qui ont été nécessaires pour le trouver avec la tactique programmée.
Pouvez-vous prévoir, pour la tactique que vous avez choisie, l'ordre de grandeur des nombres d'essais ? Compléter le programme PrixLot3 en lui faisant calculer la moyenne des 20 nombres d'essais obtenus pour les 20 parties.