Page 1 of 1

[Résolu] Problème programme avec randInt

Unread postPosted: 23 Mar 2016, 19:43
by martin cm
Salut à tous !
Je vous expose mon problème. J’essayais de créer un programme sur ma nouvelle Nspire CX CAS, dans lequel la machine prend une valeur comprise par exemple entre 0 et 100, et l'utilisateur doit la deviner (oui, comme une épreuve du Juste Prix). Bref.
Malheureusement, ce programme ne fonctionne pas du tout. Tantôt il dit que la valeur cherchée est inférieure à 10, et dans la même série supérieur à 80. Je m'en remets donc à vous pour savoir ce que je dois corriger.
Merci beaucoup d'avance, et voici le code !!! :
Code: Select all
Define LibPub justeprix()=
Prgm
valeur:=randInt(1,100)
Lbl top
Request "Prix b de l'objet ?",prix
If valeur<prix Then
Text "C'est + cher"
Goto top
Else
If valeur>prix Then
Text "C'est - cher"
Goto top
Else
If valeur=prix Then
Text "Bravo !"
EndIf
EndIf
EndIf
EndPrgm

Re: Problème programme avec randInt

Unread postPosted: 23 Mar 2016, 19:50
by alan2010
Evite d'utiliser les Goto Lbl qui sont des structures archaïques :)

Essaie de réécrire ton programme avec des if imbriqués dans une boucle while.

Re: Problème programme avec randInt

Unread postPosted: 23 Mar 2016, 20:33
by martin cm
Tout d'abord, merci de ta réponse rapide ! Malheureusement et après plusieurs essais, je ne vois pas du tout comment faire...
Je viens de Casio Grpah 35+ et cela marchait parfaitement avec les Goto et Lbl...
Je ne comprends pas pourquoi cela ne fonctionne pas. Merci encore !

Re: Problème programme avec randInt

Unread postPosted: 23 Mar 2016, 20:40
by alan2010
Je te donne le programme mais il se peut qu'il y ait quelques erreurs de syntaxe :

Code: Select all
Define LibPub JustePrix()=
Prgm
nbATrouver:=randInt(0,100)
nbJoue:=-1
While nbJoue ≠ nbATrouver
  Request "Nombre?",nbJoue
  If nbJoue > nbATrouver Then
    Text "C'est moins"
  ElseIf nbJoue < nbATrouver Then
    Text "C'est plus"
  EndIf
EndWhile
Text "Bravo !!"
EndPrgm



Normalement, ça devrait marcher comme ça.

Après, tu peux l'améliorer avec un compteur ou plusieurs intervalles pour le choix du nombre...

Re: Problème programme avec randInt

Unread postPosted: 23 Mar 2016, 20:49
by martin cm
Merci beaucoup pour ton aide, je suis étonné de ta rapidité !
Je ne comprends pas comment c'est possible que le nombre joué soit égal au nombre trouvé (si nbjoué=-1 et nbtrouvé est entre 0 et 100) ?
désolé, j'ai compris. Mais quand je lance ce programme, il me dit que "Le test n'a pas donné de résultat TRUE ou FALSE" et me renvoie à cette ligne avec le While... Je ne vois pas l'erreur, même avec le signe !=...
merci !

Re: Problème programme avec randInt

Unread postPosted: 23 Mar 2016, 21:12
by martin cm
Ca marche ! Merci beaucoup ! Je ne comprends pas pourquoi ca ne fonctionnait pas avec les Lbl et Goto mais bon... Tant pis !
Merci encore ;)

Re: Problème programme avec randInt

Unread postPosted: 24 Mar 2016, 15:54
by Bisam
On ne t'a jamais dit que ça ne fonctionnait pas avec les "Lbl" et "Goto".
On t'a simplement dit que c'est une structure de programmation qu'il vaut mieux éviter car elle engendre des difficultés pour lire le code créé et peut donc gêner énormément le "débogage", en particulier s'ils sont utilisés pour faire des boucles.

Re: [Résolu] Problème programme avec randInt

Unread postPosted: 24 Mar 2016, 18:38
by alan2010
Alors ton programme marche désormais?

Pour la petite histoire, les Lbl et Goto étaient surtout utilisés sur les anciens modèles type TI80 ou 81 quand il n'y avait pas encore les boucles For et While...

Si tu veux essayer d'améliorer le code et de rajouter des fonctions, on attend avec impatience ton code :)