Déterminer l'IMC d'une personne

Calcul et interprétation de l'indice de masse corporelle (IMC)

Vous devez coder un programme permettant de calculer l'IMC d'une personne et afficher un message correspondant au résultat de ce calcul.

Pour cela, il faut commencer par demander à l'utilisateur sa taille en mètre et son poids en kg. La taille et le poids seront des nombres réels (flottant).

Ensuite il faut calculer l'IMC. La formule du calcul est la suivante : IMC = poids en Kg / (taille en mètre)².

Pour finir, il faut afficher une phrase qui interprète cette valeur suivant le tableau ci-dessous.

ATTENTION : ce calcul n'est qu'un indicateur et n'est donc pas à prendre pour une vérité absolue (et puis moi, ça m'arrange ... non, je ne suis pas en surpoids ... je suis juste un peu enveloppé).

Conseils :

  • Il ne faut pas se précipiter => on ne saisie pas des lignes de code sans avoir effectuer un minimum de préparation ;

  • Réfléchissez aux actions qui doivent être entreprises et dans quels ordres => écrire un algorithme qui structurera votre programme ;

  • Il n'y a jamais une solution unique mais toujours plusieurs ;

  • Ne vous découragez pas, se tromper est légitime et vous permet de progresser.

Question

Étape 1 : écrire un algorithme du programme - première partie (calcul de l'IMC)

Indice

Vous pouvez utiliser les variables déjà proposées dans l'énoncé : taille, poids et IMC.

Indice

L'algorithme commence par l'acquisition des données taille et poids puis on effectue le calcul de l'IMC.

Solution

Proposition d'algorithme - première partie (calcul de l'IMC)

DÉBUT

Acquérir taille

Acquérir poids

IMC = poids / (taille)2

Question

Étape 2 : écrire un algorithme du programme - seconde partie (afficher le message)

Indice

Il faut choisir la structure algorithmique qui correspond à nos besoins.

Indice

Il faut afficher un message différent en fonction de la valeur de l'IMC, il y a donc plusieurs alternatives ...

Indice

Si IMC < 16 alors

| Afficher "message 1"

Et si 16 <= IMC < 18.5 alors

| Afficher "message 2"

...

Sinon

| Afficher "message 7"

Remarque : le "<=" avant "16" est important, sinon dans le cas ou IMC = 16, l'ordinateur sera dans l'incapacité de poursuivre l'exécution du programme et risque de 'planter' !

Solution

Proposition d'algorithme complet

DÉBUT

Acquérir taille

Acquérir poids

IMC = poids / (taille)2

|

Si IMC < 16 alors

| Afficher "Anorexie ou dénutrition"

Et si 16 <= IMC < 18.5 alors

| Afficher "Maigreur"

Et si 18.5 <= IMC < 25 alors

| Afficher "Corpulence normale"

Et si 25 <= IMC < 30 alors

| Afficher "Surpoids" (ou "légèrement enveloppé", au choix)

Et si 30 <= IMC < 35 alors

| Afficher "Obésité modérée (classe 1)"

Et si 35 <= IMC < 40 alors

| Afficher "Obésité élevé (classe 2)"

Sinon

| Afficher "Obésité morbide ou massive"

Question

Étape 3 : Coder cet algorithme en langage Python puis l'exécuter afin de le valider.

Maintenant, c'est à vous de jouer.

Je me tiens à votre disposition, via le groupe de discussion de Pronote, si besoin.

Vous pouvez m'envoyer votre programme finalisé ou non finalisé (avec des questions) à mon adresse professionnelle : herve.fougassie@ac-limoges.fr

Bon courage.

Indice

Ne pas oublier de configurer vos variables en nombre réel (type float) après en avoir fait l'acquisition.

Solution

Et non, pas de solution cette fois.