RETROGICIEL
LE POIDS IDEAL
RETROGICIEL
LE POIDS IDEAL
⇩. Présentation
La formule pour calculer le poids idéal d'un individu du Dr Friedrich LORENTZ (de l’institut du sport de Hambourg), s’inspire de celle de Broca mais tient compte de la taille et du sexe de la personne.
D'après cette formule le poids idéal se caculerait de la façon suivante :
Poids idéal = ( taille - 100 ) - ( ( taille - 150 ) / Q ) ) avec :
- Poids en kilogrammes ;
- taille en centimètres ;
- Q = 4 pour un individu masculin ;
- Q = 2,5 pour un individu féminin.
⇩. Consignes
Le programme doit :
demander la taille en cm de l'utilisateur ;
demander de genre, masculin ou féminin, de l'utilisateur ;
vérifier la validité des données saisies ;
calculer le poids idéal de l'utilisateur en fonction des données ;
afficher le poids idéal.
D'abord, faite-le fonctionner. Ensuite, faite-le beau. Enfin, faite-le performant.
Amusez-vous bien !
Télécharger RETROGICIEL - Le poids idéal.
Cette présentation nécessite que Python 3 soit installé sur votre machine.
Après avoir téléchargé le fichier Le poids ideal.7z, décompressez-le dans le répertoire de votre choix.
Ouvrez le répertoire qui vient d'être créé.
Lancez le fichier Retrogiciel.py.
Cliquez sur l'onglet RUN et testez le programme.
Créez votre propre script dans un des langages proposés ou un autre de votre choix.
Le répertoire contient aussi :
- Python.py, l'exemple en PYTHON sans tkinter ;
- Tkinter.py, l'exemple en PYTHON avec tkinter ;
- Qb84.bas, l'exemple en QBASIC avec qb64 ;
- Bbc.bas, l'exemple en BBC BASIC avec bbc sdl.
# --- Origine Nerd ---
# --- RETROGICIEL - PYTHON ---
# --- Le poids idéal ---
# -*- coding: utf-8 -*-
# --- PRESENTATION ---
print ( "CALCULER LE POIDS IDEALE D'UN INDIVIDU" )
print ( "SELON LA FORMULE DU DOCTEUR LORENTZ." )
# --- BOUCLE PRINCIPALE ---
while True :
# --- Saisies et controles des 2 nombres entiers ---
kgenre = input ( "\nEtes-vous du genre masculin ( O ou N ) ? " )
ktaille = input ( "Entrez votre taille en cm : " )
kvalide = True
# --- Controle de la validité de la taille ---
try :
ktaille = int ( ktaille )
except :
print ( "\nERREUR DE SAISIES.\nVeuillez saisir une taille en centimetres.\n" )
kvalide = False
# --- calcul du poids idéal ---
if kvalide :
kcoeficient = 2.5 if kgenre.upper ( ) == "N" else 4
ksexe = "une fille" if kgenre.upper ( ) == "N" else "un garçon"
kpoids = ( ktaille - 100 ) - ( ( ktaille - 150 ) / kcoeficient )
print ( f"\nSelon le dr LORENTZ le poids idéal\nd'{ ksexe } de { ktaille } cm est de { kpoids } kg.\n" )
# --- Choix du bouclage du programme ---
kchoix = input ( "Voulez-vous calculer un autre poids (O ou N) ?" )
if kchoix.upper ( ) == "N" : break
# --- FIN DU PROGRAMME ---
print ( "Au revoir" )
# --- Programme : JFB ---
# --- Mars 2023 ---
# --- Fin ---
Pour mieux comprendre l'exemple en PYTHON sans tkinter.
# --- Origine Nerd ---
# --- RETROGICIEL - TKINTER ---
# --- Le poids idéal ---
# -*- coding: utf-8 -*-
# --- IMPORTATION DES MODULES ---
# --- Modules de la bibliothèque standard ---
import tkinter
# --- DÉFINITION DES FONCTIONS PERSONNALISEES ---
# --- Calcul d'un poids idéal en fonction de données de l'utilisateur ---
def FNC_Calculer ( ) :
if ENT_Taille.get ( ).isdecimal ( ) :
ktaille = abs ( int ( ENT_Taille.get ( ) ) )
kcoeficient = 2.5 if TKI_Genre.get ( ) == "fille" else 4
ksexe = "une fille" if TKI_Genre.get ( ) == "fille" else "un garçon"
kpoids = ( ktaille - 100 ) - ( ( ktaille - 150 ) / kcoeficient )
LAB_Resultat [ "text" ] = f"\nSelon le dr LORENTZ le poids idéal\nd'{ ksexe } de { ktaille } cm est de { kpoids } kg.\n"
else :
LAB_Resultat [ "text" ] = f"\nImpossible de calculer le poids idéal\navec { ENT_Taille.get ( ) } comme taille en cm.\n"
ENT_Taille.delete ( 0 , "end" )
# --- CREATION DE L'INTERFACE GRAPHIQUE ---
# --- Création de la fenêtre principale ---
TKI_Principal = tkinter.Tk ( )
TKI_Principal.title ( "RETROGICIEL - Le poids idéal" )
# --- Création des variables de controles ---
TKI_Genre = tkinter.StringVar ( )
# --- Création des controles nommées ---
ENT_Taille = tkinter.Entry ( TKI_Principal , width = 5 )
LAB_Resultat = tkinter.Label ( TKI_Principal , text = "\nen attente\n...\n" )
# --- Mise en place des controles (anonymes et nommés) dans la fenêtre principale ---
tkinter.Label ( TKI_Principal , text = "\nLE POIDS IDEAL.\n" ).grid ( row = 0 , column = 0 , columnspan = 3 , sticky = "nesw" )
tkinter.Label ( TKI_Principal , text = "Indiquez votre genre : " ).grid ( row = 1 , column = 0 , sticky = "e" )
tkinter.Radiobutton ( TKI_Principal , text = "Garçon" , value = "garcon" , variable = TKI_Genre ).grid ( row = 1 , column = 1 , sticky = "w" )
tkinter.Radiobutton ( TKI_Principal , text = "Fille" , value = "fille" , variable = TKI_Genre ).grid ( row = 1 , column = 2 , sticky = "w" )
tkinter.Label ( TKI_Principal , text = "Entrez votre taille en cm : " ).grid ( row = 2 , column = 0 , sticky = "e" )
ENT_Taille.grid ( row = 2 , column = 1 , sticky = "nesw" )
tkinter.Button ( TKI_Principal , text = "Calculer" , command = FNC_Calculer ).grid ( row = 2 , column = 2 , sticky = "nesw" )
LAB_Resultat.grid ( row = 3 , column = 0 , columnspan = 2 , sticky = "nesw" )
tkinter.Button ( TKI_Principal , text = "Quitter" , command = TKI_Principal.destroy ).grid ( row = 3 , column = 2 , sticky = "nesw" )
# --- Mise à jour de controle ---
TKI_Genre.set ( "fille" )
# --- DEBUT DU PROGRAMME ---
TKI_Principal.mainloop ( )
# --- Programme : JFB ---
# --- Mars 2023 ---
# --- Fin ---
Pour mieux comprendre l'exemple en PYTHON avec tkinter.
' --- Origine Nerd propose pour ---
' --- RETROGICIEL - QB64 ---
' --- Le poids ideal ---
' --- DEBUT DU PROGRAMME ---
PRINT "LE POIDS IDEAL SELON LORENTZ"
' --- BOUCLE PRINCIPALE ---
DO
' --- Saisie de la taille ---
INPUT "Entrez votre taille en cm "; ktaille
' --- Saisie du sexe biologique ---
INPUT "Vous etes un homme [ O ou N ] "; ksexe$
' --- Determination du coeficient en fonction du sexe ---
IF UCASE$(ksexe$) = "O" THEN kcoeficient = 4 ELSE kcoeficient = 2.5
' --- Calcul du poids ideal théorique en fonctin des données saisies ---
kpoids = (ktaille - 100) - ((ktaille - 150) / kcoeficient)
' --- Affichage du résultat ---
PRINT "D'apres la formule du Docteur LORENTZ,"
PRINT "votre poids ideal est de"; kpoids; "Kg."
' --- Bouclage du programme ---
INPUT "Voulez-vous recommencer [ O ou N ] "; kchoix$
LOOP UNTIL UCASE$(kchoix$) = "N"
' --- FIN DU PROGRAMME ---
PRINT "Au revoir."
END
' --- Programme : JFB ---
' --- Mars 2023 ---
' --- Fin ---
Pour mieux comprendre l'exemple en QB64.
REM --- Origine Nerd propose pour ---
REM --- RETROGICIEL - BBC BASIC ---
REM --- Le poids ideal ---
REM --- DEBUT DU PROGRAMME ---
PRINT "LE POIDS IDEAL SELON LORENTZ"
REM --- BOUCLE PRINCIPALE ---
REPEAT
REM --- Saisie de la taille ---
INPUT "Entrez votre taille en cm "; ktaille
REM --- Saisie du sexe biologique ---
INPUT "Vous etes un homme [ O ou N ] "; ksexe$
REM --- Determination du coeficient en fonction du sexe ---
IF ksexe$ = "O" OR ksexe$ = "o" THEN kcoeficient = 4 ELSE kcoeficient = 2.5
REM --- Cacul du poids idéal (theorique) en fonction des donnees de l'utilsateur ---
kpoids = (ktaille - 100) - ((ktaille - 150) / kcoeficient)
REM --- Affichage du résultat ---
PRINT "D'apres la formule du Docteur LORENTZ,"
PRINT "votre poids ideal est de "; kpoids; "Kg."
REM --- Bouclage du programme ---
INPUT "Voulez-vous recommencer [ O ou N ] "; kchoix$
UNTIL kchoix$ = "N" OR kchoix$ = "n"
REM --- FIN DU PROGRAMME ---
PRINT "Au revoir."
END
REM --- Programme : JFB ---
REM --- Mars 2023 ---
REM --- Fin ---
Pour mieux comprendre l'exemple en BBC BASIC.