RETROGICIEL
LE METABOLISME BASAL
RETROGICIEL
LE METABOLISME BASAL
⇩. Présentation
Le métabolisme basal, noté MB, est la quantité d’énergie minimale, exprimée en kilocalorie, noté kcal, qui sera nécessaire à un individu au repos total et à jeun, pour assurer ses fonctions vitales tels que la respiration, la circulation sanguine, le maintien de la température corporelle, les activités cellulaires. Il dépend principalement de l’âge, de la taille, du genre biologique, de la masse corporelle et de la part sa masse maigre. Le MB représente en général 60 à 75 % des besoins énergétiques journalier .
Au fil du temps, plusieurs spécialistes du domaine ont établi des formules permettant de l’estimer, La formule de Black et al est actuellement la formule de référence, en particulier dans le cas des sujets en surpoids et des personnes âgées de plus de 60 ans. Les formules proposées par cet exemple sont celles de Black et al, de Harris et Benedict, de Mifflin – St Jeor, et de la méthode d'oxford, et leur moyenne. Libre à vous d'en choisir d'autres.
Pour estimer les besoins énergétiques journaliers d'un individu, il faudra appliquer un facteur au MB en fonction de l'intensité de ses activités physiques :
- sédentaire : MB x 1,2 ;
- légèrement actif : MB x 1,375 ;
- assez actif : MB x 1,55 ;
- très actif : MB x 1,25 ;
- extrêmement actif : MB x 1,9.
⇩. Consignes
Le programme doit :
obtenir le poids en kilogrammes ;
obtenir le taille en centimètres ;
obtenir l'age en années ;
obtenir le genre biologique ;
obtenir l'intensité physique ;
calculer le MB selon la formule de Black et al ;
calculer le MB selon la formule de Harris et Benedict ;
calculer le MB selon la formule de Mifflin – St Jeor ;
calculer le MB selon la formule de la méthode d'Oxford ;
calculer la moyenne de ces estimations ;
calculer les besoins journaliers en fonction de la moyenne ;
demander si l'utilisateur souhaite une autre estimation ou ;
quitter le programme.
D'abord, faite-le fonctionner. Ensuite, faite-le beau. Enfin, faite-le performant.
Amusez-vous bien !
Télécharger RETROGICIEL - Le métabolisme basal.
Cette présentation nécessite que Python 3 soit installé sur votre machine.
Après avoir téléchargé le fichier Le metabolisme basal.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 métabolisme basal ---
# -*- coding: utf-8 -*-
# --- DÉFINITION DES FONCTIONS PERSONNALISEES ---
# --- Saisie du niveau d'activité ---
def FNC_Activites ( ) :
print ( "\nVotre pratique sportive : " )
print ( "1 : sédentaire, pratiquement aucun exercice." )
print ( "2 : légèrement actif (1 à 3 fois par semaine)." )
print ( "3 : assez actif (3 à 5 fois par semaine)." )
print ( "4 : très actif (tous les jours)." )
print ( "5 : extrêmement actif (travail physique ou grand sportif)." )
while True :
try :
kchoix = int ( input ( "Votre choix 1, 2, 3, 4 ou 5 ... " ) )
match kchoix :
case 1 : return 1.2
case 2 : return 1.375
case 3 : return 1.55
case 4 : return 1.725
case 5 : return 1.9
except : print ( "Erreur de saisie !" )
# --- Saisie du genre ---
def FNC_Genre ( ) :
print ( "\nQuel est votre genre biologique (M ou F) ? " )
while True :
kgenre = input ( "Entrez M ou F ... " ).upper ( )
if kgenre == "M" or kgenre == "F" : break
print ( "Erreur de saisie !" )
return kgenre
# --- Saisies et controle de validité ---
def FNC_Saisie ( Qvaleur ) :
print ( f"\n{ Qvaleur }" )
kvaleur = False
while True :
try : kvaleur = float ( input ( "Votre réponse ... " ) )
except : print ( "Erreur de saisie !" )
if kvaleur : return kvaleur
# --- PRESENTATION ---
print ( "LE MÉTABOLISME BASAL.\n" )
# --- BOUCLE PRINCIPALE ---
while True :
# --- Saisies des spécificités ---
kpoids = FNC_Saisie ( "Quel est votre poids (en kg) ?" )
ktaille = FNC_Saisie ( "Quel est votre taille (en cm) ?" )
kage = FNC_Saisie ( "Quel est votre age (en années) ?" )
kgenre = FNC_Genre ( )
kactif = FNC_Activites ( )
print ( "\nVotre métabolisme basal est estimé à :" )
# --- Métabolisme basal selon la formule de Black ---
if kgenre == "M" : kblack = ( 1.083 * ( kpoids ** .48 ) ) * ( ( ktaille / 100 ) ** .50 ) * ( kage ** -.13 ) * 239
else : kblack = ( .963 * ( kpoids ** .48 ) ) * ( ( ktaille / 100 ) ** .50 ) * ( kage ** -.13 ) * 239
print ( f"- { int ( kblack ) } kilocalories selon la formule de Black ;" )
# --- Métabolisme basal selon la formule de Harris Benedict ---
if kgenre == "M" : kharris = 8.362 + ( 13.397 * kpoids ) + ( 4.799 * ktaille ) - ( 5.677 * kage )
else : kharris = 447.593 + ( 9.247 * kpoids ) + ( 3.098 * ktaille ) - ( 4.330 * kage )
print ( f"- { int ( kharris ) } kilocalories selon la formule de Harris Benedict ;" )
# --- Métabolisme basal selon la formule d’Oxford ---
koxford = ( 14.2 * kpoids ) + 593
print ( f"- { int ( koxford ) } kilocalories selon la méthode d'Oxford ;" )
# --- Métabolisme basal selon la formule de Mifflin St-Jeor ---
if kgenre == "M" : kmifflin = ( 10 * kpoids ) + ( 6.25 * ktaille ) - ( 5 * kage ) + 5
else : kmifflin = ( 10 * kpoids ) + ( 6.25 * ktaille ) - ( 5 * kage ) - 161
print ( f"- { int ( kmifflin ) } kilocalories selon la formule de kmifflin ; " )
# --- Calcul de la moyenne ---
kmoyenne = ( kblack + kharris + koxford + kmifflin ) / 4
print ( f"- soit une moyenne de { int ( kmoyenne ) } kilocalories." )
# --- Besoin energétique estimé ---
kbesoin = int ( kmoyenne * kactif )
print ( "\nVotre besoin énergétique en fonction de votre activité" )
print ( f"physique hebdomadaire est donc de { kbesoin } kilocalories.\n" )
# --- Choix du bouclage du programme ---
kchoix = input ( "Voulez-vous faire une autre estimation (O ou N) ?" )
if kchoix.upper ( ) == "N" : break
# --- FIN DU PROGRAMME ---
print ( "Au revoir" )
# --- Programme : JFB ---
# --- Décembre 2025 ---
# --- Fin ---
Pour mieux comprendre l'exemple en PYTHON sans tkinter.
# --- Origine Nerd ---
# --- RETROGICIEL - TKINTER ---
# --- Le métabolisme basal ---
# -*- coding: utf-8 -*-
# --- IMPORTATION DES MODULES ---
# --- Modules de la bibliothèque standard ---
import tkinter
# --- DÉFINITION DES FONCTIONS PERSONNALISEES ---
# --- Calcul des formules du métabolisme basal ---
def FNC_Calculer ( ) :
# --- controle la validité des valeurs ---
kp = TKV_Poids.get ( )
kt = TKV_Taille.get ( )
ka = TKV_Age.get ( )
ks = int ( SPI_Actif.get ( ).split ( "." ) [ 0 ] )
if kp < 5 or kt < 50 or ka < 3 :
for kvariable in ( TKV_Poids,TKV_Taille,TKV_Age,TKV_Black,TKV_Harris,TKV_Oxford,TKV_Mifflin,TKV_Moyenne,TKV_Besoin )kvariable.set ( 0 )
return
# --- Métabolisme basal selon la formule de Black ---
if TKV_Genre.get ( ) == "M" : kblack = ( 1.083 * ( kp ** .48 ) ) * ( ( kt / 100 ) ** .50 ) * ( ka ** -.13 ) * 239
else : kblack = ( .963 * ( kp ** .48 ) ) * ( ( kt / 100 ) ** .50 ) * ( ka ** -.13 ) * 239
TKV_Black.set ( int ( kblack ) )
# --- Métabolisme basal selon la formule de Harris Benedict ---
if TKV_Genre.get ( ) == "M" : kharris = 8.362 + ( 13.397 * kp ) + ( 4.799 * kt ) - ( 5.677 * ka )
else : kharris = 447.593 + ( 9.247 * kp ) + ( 3.098 * kt ) - ( 4.330 * ka )
TKV_Harris.set ( int ( kharris ) )
# --- Métabolisme basal selon la formule d’Oxford ---
TKV_Oxford.set ( int ( ( 14.2 * kp ) + 593 ) )
# --- Métabolisme basal selon la formule de Mifflin St-Jeor ---
if TKV_Genre.get ( ) == "M" : kmifflin = ( 10 * kp ) + ( 6.25 * kt ) - ( 5 * ka ) + 5
else : kmifflin = ( 10 * kp ) + ( 6.25 * kt ) - ( 5 * ka ) - 161
TKV_Mifflin.set ( int ( kmifflin ) )
# --- Calcul de la moyenne ---
TKV_Moyenne.set ( int ( ( kblack + kharris + TKV_Oxford.get ( ) + kmifflin ) / 4 ) )
# --- Besoin énergétique estimé ---
match ks :
case 1 : kc = 1.2
case 2 : kc = 1.375
case 3 : kc = 1.55
case 4 : kc = 1.725
case 5 : kc = 1.9
TKV_Besoin.set ( int ( TKV_Moyenne.get ( ) * kc ) )
# --- CREATION DE L'INTERFACE GRAPHIQUE ---
# --- Création de la fenêtre principale ---
TKI_Principal = tkinter.Tk ( )
TKI_Principal.title ( "RETROGICIEL - Le nom du programme" )
# --- Création des variables de controles ---
TKV_Poids = tkinter.DoubleVar ( )
TKV_Taille = tkinter.DoubleVar ( )
TKV_Age = tkinter.DoubleVar ( )
TKV_Genre = tkinter.StringVar ( )
TKV_Actif = tkinter.StringVar ( )
TKV_Black = tkinter.IntVar ( )
TKV_Harris = tkinter.IntVar ( )
TKV_Oxford = tkinter.IntVar ( )
TKV_Mifflin = tkinter.IntVar ( )
TKV_Moyenne = tkinter.IntVar ( )
TKV_Besoin = tkinter.IntVar ( )
# --- Création des controles nommées ---
FRM_Genre = tkinter.Frame ( TKI_Principal )
FRM_Resultats = tkinter.LabelFrame ( TKI_Principal , text = " Estimation en kilogalories d'après " )
SPI_Actif = tkinter.Spinbox ( TKI_Principal , justify = "center" )
# --- Mise en place des controles (anonymes et nommés) dans la fenêtre principale ---
tkinter.Radiobutton ( FRM_Genre , text = "Masculin" , value = "M" , variable = TKV_Genre ).pack ( side = "left" )
tkinter.Radiobutton ( FRM_Genre , text = "Feminin" , value = "F" , variable = TKV_Genre ).pack ( side = "left" )
tkinter.Label ( FRM_Resultats , text = "formule de Black : " , justify = "right" ).grid ( row = 0 , column = 0 , sticky = "e" )
tkinter.Label ( FRM_Resultats , textvariable = TKV_Black , justify = "left" ).grid ( row = 0 , column = 1 , sticky = "w" )
tkinter.Label ( FRM_Resultats , text = "formule de Harris : " , justify = "right" ).grid ( row = 1 , column = 0 , sticky = "e" )
tkinter.Label ( FRM_Resultats , textvariable = TKV_Harris , justify = "left" ).grid ( row = 1 , column = 1 , sticky = "w" )
tkinter.Label ( FRM_Resultats , text = "formule de Oxford : " , justify = "right" ).grid ( row = 2 , column = 0 , sticky = "e" )
tkinter.Label ( FRM_Resultats , textvariable = TKV_Oxford , justify = "left" ).grid ( row = 2 , column = 1 , sticky = "w" )
tkinter.Label ( FRM_Resultats , text = "formule de Mifflin : " , justify = "right" ).grid ( row = 3 , column = 0 , sticky = "e" )
tkinter.Label ( FRM_Resultats , textvariable = TKV_Mifflin , justify = "left" ).grid ( row = 3 , column = 1 , sticky = "w" )
tkinter.Label ( FRM_Resultats , text = "Soit une moyenne de : " , justify = "right" ).grid ( row = 4 , column = 0 , sticky = "e" )
tkinter.Label ( FRM_Resultats , textvariable = TKV_Moyenne , justify = "left" ).grid ( row = 4 , column = 1 , sticky = "w" )
tkinter.Label ( FRM_Resultats , text = "en fonction de votre activité : " , justify = "right" ).grid ( row = 5 , column = 0 )
tkinter.Label ( FRM_Resultats , textvariable = TKV_Besoin , justify = "left" ).grid ( row = 5 , column = 1 , sticky = "w" )
FRM_Genre.grid ( row = 0 , column = 0 , columnspan = 2 , sticky = "nesw" )
tkinter.Label ( TKI_Principal , text = "Votre poids en Kg " , justify = "left" ).grid ( row = 1 , column = 0 , sticky = "w" )
tkinter.Entry ( TKI_Principal , textvariable = TKV_Poids , width = 7 ).grid ( row = 1 , column = 1 , sticky = "nesw" )
tkinter.Label ( TKI_Principal , text = "Votre taille en cm " , justify = "left" ).grid ( row = 2 , column = 0 , sticky = "w" )
tkinter.Entry ( TKI_Principal , textvariable = TKV_Taille , width = 7 ).grid ( row = 2 , column = 1 , sticky = "nesw" )
tkinter.Label ( TKI_Principal , text = "Votre age en années " , justify = "left" ).grid ( row = 3 , column = 0 , sticky = "w" )
tkinter.Entry ( TKI_Principal , textvariable = TKV_Age , width = 7 ).grid ( row = 3 , column = 1 , sticky = "nesw" )
SPI_Actif.grid ( row = 4 , column = 0 , sticky = "nesw" )
FRM_Resultats.grid ( row = 5 , column = 0 , columnspan = 2 , sticky = "nesw" )
tkinter.Button ( TKI_Principal , text = "Calculer" , command = FNC_Calculer ).grid ( row = 4 , column = 1 , sticky = "nesw" )
tkinter.Button ( TKI_Principal , text = "Quitter" , command = TKI_Principal.destroy ).grid ( row = 13 , column = 0 , columnspan = 2 , sticky = "nesw" )
# --- Mise à jour de controle ---
kactivites = [ "1. sédentaire" , "2. légèrement actif" , "3. assez actif" , "4. très actif" , "5. extrêmement actif" ]
SPI_Actif [ "value" ] = kactivites
TKV_Genre.set ( "F" )
# --- DEBUT DU PROGRAMME ---
TKI_Principal.mainloop ( )
# --- Programme : JFB ---
# --- Décembre 2025 ---
# --- Fin ---
Pour mieux comprendre l'exemple en PYTHON avec tkinter.
' --- Origine Nerd propose pour ---
' --- RETROGICIEL - QB64 ---
' --- Le metabolisme basal ---
' --- DEBUT DU PROGRAMME ---
PRINT "LE METABOLISME BASAL."
VIEW PRINT 3 TO 25
' --- BOUCLE PRINCIPALE ---
DO
' --- Saisie ... ---
CLS
kpoids = FNC_Poids
ktaille = FNC_Taille
kage = FNC_Age
kgenre = FNC_Genre
kactivite = FNC_Activite
LOCATE 10, 1: PRINT "Votre metabolisme basal est estime a :"
' --- Metabolisme basal selon la formule de Black ---
IF kgenre = 1 THEN
kblack = (1.083 * (kpoids ^ .48)) * ((ktaille / 100) ^ .50) * (kage ^ -.13) * 239
ELSE
kblack = (.963 * (kpoids ^ .48)) * ((ktaille / 100) ^ .50) * (kage ^ -.13) * 239
END IF
PRINT "-"; INT(kblack); "kilocalories selon la formule de Black ;"
' --- Metabolisme basal selon la formule de Harris Benedict ---
IF kgenre = 1 THEN
kharris = 8.362 + (13.397 * kpoids) + (4.799 * ktaille) - (5.677 * kage)
ELSE
kharris = 447.593 + (9.247 * kpoids) + (3.098 * ktaille) - (4.330 * kage)
END IF
PRINT "-"; INT(kharris); "kilocalories selon la formule de Harris Benedict ;"
' --- Metabolisme basal selon la formule d'Oxford ---
koxford = INT((14.2 * kpoids) + 593)
PRINT "-"; INT(koxford); "kilocalories selon la formule d'Oxford ;"
' --- Metabolisme basal selon la formule de Mifflin St-Jeor ---
IF kgenre = 1 THEN
kmifflin = (10 * kpoids) + (6.25 * ktaille) - (5 * kage) + 5
ELSE
kmifflin = (10 * kpoids) + (6.25 * ktaille) - (5 * kage) - 161
END IF
PRINT "-"; INT(kmifflin); "kilocalories selon la formule de Mifflin ;"
' --- Calcul de la moyenne ---
kmoyenne = INT((kblack + kharris + koxford + kmifflin) / 4)
PRINT "- soit une moyenne de"; kmoyenne; "kilocalories."
' --- Besoin energetique estime ---
kbesoin = INT(kmoyenne * kactivite)
PRINT "Votre besoin energetique en fonction de votre activite"
PRINT "physique hebdomadaire est donc de estime a"; kbesoin; "kilocalories."
' --- Bouclage du programme ---
INPUT "Voulez-vous faire une autre estimation [ O ou N ] "; kchoix$
LOOP UNTIL UCASE$(kchoix$) = "N"
' --- FIN DU PROGRAMME ---
PRINT "Au revoir."
END
' --- DEFINITION DES FONCTIONS PERSONNALISEES ---
' --- Saisie du type d'activites ---
FUNCTION FNC_Activite
kactif = 0
DO
LOCATE 7, 1: PRINT STRING$(75, 32): LOCATE 7, 1
INPUT "Vous etes de 1 (sedentaire) a 5 (extremement actif) "; kactif
SELECT CASE kactif
CASE 1: FNC_Activite = 1.2
CASE 2: FNC_Activite = 1.375
CASE 3: FNC_Activite = 1.55
CASE 4: FNC_Activite = 1.725
CASE 5: FNC_Activite = 1.9
END SELECT
LOOP WHILE kactif = 0 OR kactif > 5
END FUNCTION
' --- Saisie de l'age ---
FUNCTION FNC_Age
DO
LOCATE 5, 1: PRINT STRING$(75, 32): LOCATE 5, 1
INPUT "Entrez votre age en annees "; kage
LOOP WHILE kage < 1
FNC_Age = kage
END FUNCTION
' --- Saisie du genre biologique ---
FUNCTION FNC_Genre
kgenre = 0
DO
LOCATE 6, 1: PRINT STRING$(75, 32): LOCATE 6, 1
INPUT "Entrez votre genre biologique (M ou F) "; kgenre$
IF UCASE$(kgenre$) = "M" THEN kgenre = 1
IF UCASE$(kgenre$) = "F" THEN kgenre = 2
LOOP WHILE kgenre = 0
FNC_Genre = kgenre
END FUNCTION
' --- Saisie du poids ---
FUNCTION FNC_Poids
DO
LOCATE 3, 1: PRINT STRING$(75, 32): LOCATE 3, 1
INPUT "Entrez votre poids en Kg "; kpoids
LOOP WHILE kpoids < 15
FNC_Poids = kpoids
END FUNCTION
' --- Saisie de la taille ---
FUNCTION FNC_Taille
DO
LOCATE 4, 1: PRINT STRING$(75, 32): LOCATE 4, 1
INPUT "Entrez votre taille en cm "; ktaille
LOOP WHILE ktaille < 40
FNC_Taille = ktaille
END FUNCTION
' --- FIN DU PROGRAMME ---
PRINT "Au revoir."
END
' --- Programme : JFB ---
' --- Decembre 2025 ---
' --- Fin ---
Pour mieux comprendre l'exemple en QB64.
REM --- Origine Nerd propose pour ---
REM --- RETROGICIEL - BBC BASIC ---
REM --- Le metabolisme basal ---
REM --- DEBUT DU PROGRAMME ---
PRINT "LE METABOLISME BASAL."
VDU 28 , 0 , 25 , 80 , 3
REM --- BOUCLE PRINCIPALE ---
REPEAT
REM --- Saisies ---
CLS
kpoids = FN_Poids
ktaille = FN_Taille
kage = FN_Age
kgenre = FN_Genre
kactivite = FN_Activite
PRINT TAB( 0 , 6 ) "Votre metabolisme basal est estime a :"
REM --- Metabolisme basal selon la formule de Black ---
IF kgenre = 1 THEN
kblack = (1.083 * (kpoids ^ .48)) * ((ktaille / 100) ^ .50) * (kage ^ -.13) * 239
ELSE
kblack = (.963 * (kpoids ^ .48)) * ((ktaille / 100) ^ .50) * (kage ^ -.13) * 239
ENDIF
PRINT "- "; INT(kblack); " kilocalories selon la formule de Black ;"
REM --- Metabolisme basal selon la formule de Harris Benedict ---
IF kgenre = 1 THEN
kharris = 8.362 + (13.397 * kpoids) + (4.799 * ktaille) - (5.677 * kage)
ELSE
kharris = 447.593 + (9.247 * kpoids) + (3.098 * ktaille) - (4.330 * kage)
ENDIF
PRINT "- "; INT(kharris); " kilocalories selon la formule de Harris Benedict ;"
REM --- Metabolisme basal selon la formule d'Oxford ---
koxford = INT((14.2 * kpoids) + 593)
PRINT "- "; INT(koxford); " kilocalories selon la formule d'Oxford ;"
REM --- Metabolisme basal selon la formule de Mifflin St-Jeor ---
IF kgenre = 1 THEN
kmifflin = (10 * kpoids) + (6.25 * ktaille) - (5 * kage) + 5
ELSE
kmifflin = (10 * kpoids) + (6.25 * ktaille) - (5 * kage) - 161
ENDIF
PRINT "- "; INT(kmifflin); " kilocalories selon la formule de Mifflin ;"
REM --- Calcul de la moyenne ---
kmoyenne = INT((kblack + kharris + koxford + kmifflin) / 4)
PRINT "- soit une moyenne de "; kmoyenne; " kilocalories."
REM --- Besoin energetique estime ---
kbesoin = INT(kmoyenne * kactivite)
PRINT "Votre besoin energetique en fonction de votre activite"
PRINT "physique hebdomadaire est donc de estime a "; kbesoin; " kilocalories."
REM --- Bouclage du programme ---
INPUT "Voulez-vous faire une autre estimation [ O ou N ] "; kchoix$
UNTIL kchoix$ = "N" OR kchoix$ = "n"
REM --- FIN DU PROGRAMME ---
PRINT "Au revoir."
END
REM --- DEFINITION DES FONCTIONS PERSONNALISEES ---
REM --- Saisie du type d'activites ---
DEF FN_Activite
REPEAT
PRINT TAB( 0 , 4 ) STRING$( 75 , " " )
INPUT TAB( 0 , 4 ) "Vous etes de 1 (sedentaire) a 5 (extremement actif) "; kactif
CASE kactif OF
WHEN 1 : = 1.2
WHEN 2 : = 1.375
WHEN 3 : = 1.55
WHEN 4 : = 1.725
WHEN 5 : = 1.9
ENDCASE
UNTIL 1 = 0
REM --- Fin de la fonction FN_Activite ---
REM --- Saisie de l'age ---
DEF FN_Age
REPEAT
PRINT TAB( 0 , 2 ) STRING$( 75 , " " )
INPUT TAB( 0 , 2 ) "Entrez votre age en annees "; kage
UNTIL kage > 0
= kage
REM --- Fin de la fonction FN_Age ---
REM --- Saisie du genre biologique ---
DEF FN_Genre
REPEAT
PRINT TAB( 0 , 3 ) STRING$( 75 , " " )
INPUT TAB( 0 , 3 ) "Entrez votre genre biologique (M ou F) "; kgenre$
IF kgenre$ = "M" OR kgenre$ = "m" THEN = 1
IF kgenre$ = "F" OR kgenre$ = "f" THEN = 2
UNTIL 1 = 0
REM --- Fin de la fonction FN_Genre ---
REM --- Saisie du poids --- <
DEF FN_Poids
REPEAT
PRINT TAB( 0 , 0 ) STRING$( 75 , " " )
INPUT TAB( 0 , 0 ) "Entrez votre poids en Kg "; kpoids
UNTIL kpoids > 14
= kpoids
REM --- Fin de la fonction FN_Poids ---
REM --- Saisie de la taille ---
DEF FN_Taille
REPEAT
PRINT TAB( 0 , 1 ) STRING$( 75 , " " )
INPUT TAB( 0 , 1 ) "Entrez votre taille en cm "; ktaille
UNTIL ktaille > 39
= ktaille
REM --- Fin de la fonction FN_Taille ---
REM --- Programme : JFB ---
REM --- Decembre 2025 ---
REM --- Fin ---
Pour mieux comprendre l'exemple en BBC BASIC.