VOTRE POIDS ET TAILLE EN FONCTION DE LA NORMAL + MASSE CORPORELLE

Utilisateur anonyme - 25 mai 2007 à 08:41
ciberrique Messages postés 589 Date d'inscription lundi 25 août 2003 Statut Membre Dernière intervention 18 juillet 2010 - 26 mai 2007 à 20:44
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/42832-votre-poids-et-taille-en-fonction-de-la-normal-masse-corporelle

ciberrique Messages postés 589 Date d'inscription lundi 25 août 2003 Statut Membre Dernière intervention 18 juillet 2010 1
26 mai 2007 à 20:44
nannnnnnnnnnnn !!!
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
26 mai 2007 à 20:09
Oui mortalino a raison tu as peut etre confondu avec une discution qui avait eté faite sur le sujet des IIf vs If

enfin bref :p
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
26 mai 2007 à 14:42
Mouhahhha !

En fait c'est le Iif qui est plus long qu'un If traditionnelle.
(j'en suis sûr, c'est pour ça que je poste) :D
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
26 mai 2007 à 00:38
hahahah, surement j'en dit tellement.

non en fait ça depend si tu fais :

Select Case X
Case 1
Case 2
Case 3
Case ...
Case 256
End Select

c'est sur que si tu te tape 255 case avant d'arriver a la case 256 a chaque cycle ce sera plus lent que si tu faisais directement un If x = 256 mais c'est au cas par cas mais le resulata sera different qutant utiliser un tableau de valeur. En fait c'est une question de lisibilité il faut l'employer avec intelligence et pas a tire la rigo.

Bon ok... on comprend rien... je sors
ciberrique Messages postés 589 Date d'inscription lundi 25 août 2003 Statut Membre Dernière intervention 18 juillet 2010 1
26 mai 2007 à 00:33
Parceque c'est toi qui me l'a appris :p

Encore une betise que tu as balbutier XD
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
26 mai 2007 à 00:27
Pourquoi "select case" serait plus lent que if ??? select case c'est rien d'autre que des if imbriqué. encore une fausse idée :p
ciberrique Messages postés 589 Date d'inscription lundi 25 août 2003 Statut Membre Dernière intervention 18 juillet 2010 1
25 mai 2007 à 23:34
J'ajoute :
Select Case = plus clair que If mais plus lent que if... elseif, apres pour un code comme celui la il vaut mieu utiliser le select case car le code n'a pas besoin d'etre rapide, mais plutot d'etre clair.
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
25 mai 2007 à 21:29
Encore !!!

Y'a une source comme celle-ci qui a été déposé récemment (je dirai dans les 30 derniers jours).

Je comprends que ce soit ton premier code, mais je rejoins EBArtSoft...

Sinon, idem DKS pour les If, faut imbriquer les If avec des Select Case

++
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
25 mai 2007 à 13:20
je vide la case de l'age, pour saisir mon nombre de bougies => CRASH (13)

un peu bancal, ton Timer2 qui masque toujours le resultat... certaines fois, si on cliques sur resultat, le Timer2 se déclenche juste après, à peine le temps de lire le verdict

dommage qu'il y ai ce bouton 'Resultat' faudrait calculer au fil de l'eau, pour un truc si simple et rapide a calculer

tout effacer => CRASH


COPIE A REVOIR en prenant en compte tout ce qui a été dit précedemment par les autres visiteurs de ta source
Utilisateur anonyme
25 mai 2007 à 13:19
lol! Et lançons nous dans la philo! Sujet: "Qu'est ce que la normalité?, intro, thèse anti-thèse et conclusion.
Cacophrene Messages postés 251 Date d'inscription lundi 29 mars 2004 Statut Membre Dernière intervention 4 mars 2008 1
25 mai 2007 à 13:18
Juste une précision suite à mon premier message : Il faudrait donc remplacer "trop petit et en surpoids" par : votre IMC indique que vous êtes en surpoids. Ne pas écrire "trop petit" qui n'a aucun sens (et comme le soulignait Moustachu, on ne peut pas vraiment changer de taille...).

@+
Cacophrene Messages postés 251 Date d'inscription lundi 29 mars 2004 Statut Membre Dernière intervention 4 mars 2008 1
25 mai 2007 à 13:15
Salut !

Je voudrais quant à moi ajouter quelque chose qui ne relève pas de la programmation proprement dite mais de ce qu'il se propose de calculer, et qui me choque.

La masse corporelle revêt un sens biologique. En effet, les personnes en surpoids ou en sous-poids s'exposent à des problèmes de santé plus ou moins graves, et qui doivent retenir leur attention (notamment des accidents cardio-vasculaires, pour ne citer qu'eux). Ces problèmes font d'ailleurs l'objet de campagnes de prévention.

En revanche, il n'y a aucune raison biologique de considérer quelqu'un comme "trop petit" ou "trop grand", (sauf cas extrêmes de nanisme ou gigantisme, assez rares). C'est là l'application d'une idée de norme purement arbitraire, et, qui plus est, grave. Songez que certaines personnes procèdent à des interventions douloureuses pour gagner quelques centimètres parce qu'elles perçoivent mal leur petite taille, notamment parce que certains concours fixent une limite inférieure de taille. Et de terminer ce message par une citation du regretté Coluche : "ya pas d'grands ya pas d'petits. La bonne longueur pour les jambes c'est quand les pieds touchent bien par terre".

A bon entendeur,
Cacophrène
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
25 mai 2007 à 12:43
Mouai encore un truc qui devrait etre interdit dans les conditions general d'utilisation du site avec les calculatrice et autre convertisseur d'euro...

Aller courage

@+
cs_moustachu Messages postés 1079 Date d'inscription jeudi 14 novembre 2002 Statut Membre Dernière intervention 1 janvier 2012
25 mai 2007 à 12:01
Ouaisssss !!! Je suis dans les normes :o)

J'ai vu qu'on pouvait être en surpoids, là on peut faire quelque chose... Mais si on est trop grand ?!

++
Moustachu
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
25 mai 2007 à 10:44
Oui là c'est sûr que tu as bien dû t'amuser à le coder ton premier programme : que de if !!!

Récupère la formule de calcul, cela soulagera ton code, et le rendre bien plus compréhensible et lisible.
ciberrique Messages postés 589 Date d'inscription lundi 25 août 2003 Statut Membre Dernière intervention 18 juillet 2010 1
25 mai 2007 à 09:48
Comme le dit Drikc il y a un calcul pour l'imc : Taille / Masse² ce qui supprime une grosse partie de tes If et qui rend ton code tout petit. Bon partons dans le principe que tu gardes les conditions tu pourrais t'y prendre comme ça (juste le premier bloc de If).

Remplace ca :

If txtage.Text 1 And Option1.Value True And txttaille.Text > 80 Then
lblresultat.Caption = "Vous êtes trop grand"
End If
If txtage.Text 1 And Option1.Value True And txttaille.Text < 65 Then
lblresultat.Caption = "Vous êtes trop petit"
End If
If txtage.Text 1 And Option1.Value True And txtpoids.Text > 12 Then
lblresultat.Caption = "Vous êtes en surpoids"
End If
If txtage.Text 1 And Option1.Value True And txtpoids.Text < 7 Then
lblresultat.Caption = "Vous êtes en souspoids"
End If
If txtage.Text 1 And Option1.Value True And txttaille.Text > 80 And txtpoids.Text > 12 Then
lblresultat.Caption = "Vous êtes en surpoids et trop grand"
End If
If txtage.Text 1 And Option1.Value True And txttaille.Text < 65 And txtpoids.Text < 7 Then
lblresultat.Caption = "Vous êtes en souspoids et trop petit"
End If
If txtage.Text 1 And Option1.Value True And txttaille.Text > 80 And txtpoids.Text < 7 Then
lblresultat.Caption = "Vous êtes trop grand et en souspoids"
End If
If txtage.Text 1 And Option1.Value True And txttaille.Text < 65 And txtpoids.Text > 12 Then
lblresultat.Caption = "Vous êtes trop petit et en surpoids"
End If

Par ça :

Taille = txttaille.Text
Poids = txtpoids.Text

If Option1.Value Then

If txtage.Text = 1 Then

With lblresultat

If Taille > 80 And Poids > 12 Then
.Caption = "Vous êtes en surpoids et trop grand"
ElseIf Taille < 65 And Poids < 7 Then
.Caption = "Vous êtes en souspoids et trop petit"
ElseIf Taille > 80 And Poids < 7 Then
.Caption = "Vous êtes trop grand et en souspoids"
ElseIf Taille < 65 And Poids > 12 Then
.Caption = "Vous êtes trop petit et en surpoids"
ElseIf Taille > 80 Then
.Caption = "Vous êtes trop grand"
ElseIf Taille < 65 Then
.Caption = "Vous êtes en trop petit"
ElseIf Taille > 12 Then
.Caption = "Vous êtes en surpoids"
ElseIf Taille < 7 Then
.Caption = "Vous êtes en souspoids"
End If

End With

End If

End If

Le fait d'utiliser des conditions imbriquées permet d'éviter de refaire à chaque fois les conditions ce qui est inutile.
J'ai mis If ... Then ... ElseIf, car cela permet qu'une fois un des If (ElseIf) réalisé tous les autres de la condition sont sautés, car inutile.

L'instruction With permet d'executer une série d'instruction appliquée à un seul objet.

Une petite remarque sur :
Dim Taille, Poids As Integer
La tu déclares Taille en Variant et Poids en Integer, si tu veux les deux en Integer tu dois mettre :
Dim Taille as Integer, Poids As Integer

Une petite remarque sur :
Taille = txttaille.Text
Poids = txtpoids.Text

Cela est faux, un Integer ne peut pas être égal à un String, en effet
Integer = 2 Octets
Et String dans ton cas txttaille.Text est une String longueur variable donc c'est de 1 à 64 Ko (environ 2^16 caractère) , pour un String à longueur fixe c'est environ 2^31 caractères.
Si tu sais pas comment définir une variable String fixe c'est ainsi :
Dim MaVar As String * NombreDeCaratere

Donc pour assigner un Text dans un Integer la notation correcte est :
Taille = CInt(txttaille.Text)
Poids = CInt(txtpoids.Text)

CInt permet d'assurer la conversion du type de donnée. Bon malgrés tout vb gére automatiquement cette erreur ^^.

Dernière petite chose que tu peux faire c'est de remplacer les txttaille.Text "" par txttaille.Text vbNullString
Je suis d'accord sur le fait que vbNullString et "" ce n'est pas pareil, mais dans la majoritée des cas cela revient au même, la différence est dans le fait que vbNullString c'est une chaine ayant la valeur 0 et "" c'est une chaine de longueur nulle.

Voila je crois que j'ai dis beaucoup car j'ai les doigts qui commencent à fatiguer. Pour les références j'ai utilisé l'aide Msdn de Microsoft pour donner certaines indications.

Pour finir, je dirais pour un premier code c'est un bon début, et désolé si j'ai fait des fautes d'orthographe.

Ps : Essaye de mettre des Tabulations pour formater ton code c'est plus lisible.
Utilisateur anonyme
25 mai 2007 à 08:41
Salut, il est un peu lourd ton code avec tous ces if et end if (utilise des else et des else if). Mais normalement tu n'as besoin de faire ça, il existe une formule pour calculer imc (indice de masse corporelle) vois les nombreuses sources la dessus.
Rejoignez-nous