Avertissement :Il s'agit d'une page optimisée pour la navigation mobile. Voir la
page originale.
IMC problème..
None le 10/10/2012 à 20:10
Bonsoir !
Alors voilà j'ai dois faire un programme d'IMC sur ma TI-82, jusque là aucun problème. On m'a aidé à trouver etc, j'ai réussi mais le problème c'est que je voudrais rajouter au dessus de SURPOIDS, OBESE. Mais je n'y arrive pas, ça me met toujours SURPOIDS et OBESE en même temps..
Voici le programme sans OBESE.
:Input "M (en kg)=",M
:Input "T (en m)=",T
:M/T²->A
: Disp "IMC=",A
:If A<18
:Then
: Disp "MAIGRE"
:Else
:If A>25
:Then
: Disp "SURPOIDS"
:Else
: Disp "NORMAL"
:End
Et celui avec OBESE
:Input "M (en kg)=",M
:Input "T (en m)=",T
:M/T²->A
: Disp "IMC=",A
:If A<18
:Then
: Disp "MAIGRE"
:Else
:If A>25
:Then
: Disp "SURPOIDS"
:Else
:If A>30
:Then
: Disp "OBESE"
:Else
: Disp "NORMAL"
:End
Je ne sais pas d'où vient le problème, si vous pourriez m'aider ce serait sympa.
Merci au revoir !

Samos le 10/10/2012 à 20:26
Code
:Input "M (en kg)=",M
:Input "T (en m)=",T
:M/T² -> A
: Disp "IMC=",A
:If A<18
:Disp "MAIGRE"
:If A>25 et A <= 30
:Disp "SURPOIDS"
:If A>30
:Disp "OBESE"
:If A >= 18 et A <= 25
:Disp "NORMAL"
Voila!
Lorsqu'on ne met pas de Then, la condition éxecute juste la ligne suivante.
Tu avais oublié de préciser que la masse est comprise entre 25 et 30 pour le surpoids.
Si la personne à un indice de 35, Il aurait été en surpoids et en obesité avec ton ancien programme

blg_flg le 10/10/2012 à 20:29
Remarque, une personne obèse est aussi en surpoids, donc ce n'était pas entièrement faux.

None le 10/10/2012 à 20:40
Bonsoir, merci de votre réponse mais
:Input "M (en kg)=",M
:Input "T (en m)=",T
:M/T² -> A
: Disp "IMC=",A
:If A<18
:Disp "MAIGRE"
:If A>25 et A <= 30
:Disp "SURPOIDS"
:If A>30
:Disp "OBESE"
:If A >= 18 et A <= 25
:Disp "NORMAL"
C'est supérieur ou égal / inférieur ou egal ? ? Est-ce que je met le ET ?
Merci d'avance.blg_flg le 10/10/2012 à 20:55
<= correspond à inférieur ou égal et >= à supérieur ou égal.
Et il faut que tu mettes le "et" (ou "and" si ta calto est en anglais) du menu "test".

None le 10/10/2012 à 20:59
J'ai fait exactement le même programme, mais j'ai une erreur syntaxe :/blg_flg le 10/10/2012 à 21:02
Où ça?None le 10/10/2012 à 21:04
Quand je fais 90 kg pour 1M60, ça me fait erreur syntaxe.
Après je reclique sur entrer et ça me met l'IMC mais sans OBESE, Ni surpoids..
J'ai reproduit ce programme, à l'identique sans les Then, Else et End
Citation
:Input "M (en kg)=",M
:Input "T (en m)=",T
:M/T² -> A
: Disp "IMC=",A
:If A<18
:Disp "MAIGRE"
:If A>25 et A <= 30
:Disp "SURPOIDS"
:If A>30
:Disp "OBESE"
:If A >= 18 et A <= 25
:Disp "NORMAL"
Je dois les laisser ?
blg_flg le 10/10/2012 à 21:25
Fais "VOIR" et indique nous où est le bug.

linkakro le 10/10/2012 à 21:31
L'espace en début de ligne est une faute de frappe, tu ne devrais pas l'avoir copié mais puisque tu plantes je propose quand même.
Celle DES solutions la plus complète est la suivante ; j'ai ajouté des indentations pour mettre en valeur la structure des boucles.
Il y a bien d'autres solutions mais elles sont moins rigoureuses.
Code
Input "M (en kg)=",M
Input "T (en m)=",T
M/T² -> A
Disp "IMC=",A
If A<=18
Then
Disp "MAIGRE"
Else
If A<=25
Then
Disp "NORMAL"
Else
If A<=30
Then
Disp "SURPOIDS"
Else
Disp "OBESE"
End
End
End
EDIT 15/10/2012 : solution économe en If (mais pas en condition) :
Code
Input "M (en kg)=",M
Input "T (en m)=",T
M/T² -> A
Disp "IMC=",A
If A<=18
Disp "MAIGRE"
If 18<=A et A<=25
Disp "NORMAL"
If A<=30
Disp "SURPOIDS"
If 30<A
Disp "OBESE"
None le 10/10/2012 à 21:45
Re, j'ai réussi le programme.
Merci à vous !

thedarkprogrammeur le 14/10/2012 à 22:29
C'est marrant , j'ai déjà créé le même programme sur ma TI

linkakro le 14/10/2012 à 22:35
Je le vois en deux ou trois exemplaires chaque année.

thedarkprogrammeur le 14/10/2012 à 22:45
moi le mien il est comme cela:
:EffEcr
:Input "VOTRE POID (KG) ",M
:Input "VOTRE TAILLE (M)",T
:M/(T²)->R
:EffEcr
:Disp "VOTRE IMC EST DE",R
:If R <= 12:Disp"ANNOREXIE GRAVE"
:If R > 12 et R <= 16.5 : Disp "DENUTRITION"
:If R > 16.5 et R <= 18.5 : Disp "MAIGREUR"
:If R > 18.5 et R <= 25 : Disp "POID CORRECT"
:If R > 25 et R <= 30 : Disp "SURPOID"
:If R > 30 et R <= 35 : Disp "OBESITE MODEREE"
:If R > 35 et R <= 40 : Disp "OBESITE SEVERE"
:If R >40 : Disp "OBESITE MORBIDE"
Voilà, dans ma version, je n'ai pas mit de "Then...End", est-ce que vous pensez que c'est indispensable? ou que sa n'affecte pas du tout le programme quand il est écrit sous cette forme ?
Merci encorelinkakro le 14/10/2012 à 22:50
Cela n'affecte pas le programme car les conditions sont strictement exclusives (il ne peut pas y en avoir deux de vrai en même temps) et que les instructions qui en dépendent ne font qu'une seule ligne.thedarkprogrammeur le 14/10/2012 à 23:34
donc ma version est ok

thedarkprogrammeur le 14/10/2012 à 23:38
attention none il y a plusieurs boucles que tu n'a pas fermé, suis l'exemple que linkakro te donne au dessus

(je voulais mettre un smiley clin d'oeil, mais comme y'en a pas , je met celui là)
blg_flg le 15/10/2012 à 20:58
HS: Fais ; ) (sans l'espace)

Avertissement :Il s'agit d'une page optimisée pour la navigation mobile. Voir la
page originale.