Bonjour,
J'ai doit réaliser un programme sur Algobox qui doit me permettre de calculer l'alcoolémie d'une personne.
Voila les informations dont je dispose:
Il faut multiplier le volume d'alcool (en ml) par 0,8 pour avoir le poids d'alcool pur correspondant (en g)
Le coefficient de diffusion est égal à 0,7 pour l'homme et à 0,6 pour la femme. L'alcoolémie est maximale 30 min après l'absorption de l'alcool
Le calcul de l'alcoolémie une heure après l'absorption et à jeun s'effectue par la formule t=a/(c*m) où a est la masse d'alcool absorbé (en g), m la masse de la personne qui l'a absorbé (en kg) et c le coefficient de diffusion. t mesure l'alcoolémie, en (g/l) au bout d'une heure.
Il faut savoir qu'entre l'absorption d'alcool à jeun et l'absorption de même quantité d'alcool au cours d'un repas, l'alcool diminue d'un tiers.
test: une femme de 55kg, à jeun, qui consomme 2 verres de 25 cl aura une alcoolémie d'environ 0,61g/l et non à jeun de 0,40 g/l
Voila la moitié de l'algorithme (que avec l'homme) sachant qu'avec la femme je referais la même chose. J'ai essayé de rentrer les données en testant l'algorithme cependant il y a de multiples erreurs. Si il existe un algorithme plus rapide et facile je suis preneuse.
Merci d'avance pour votre aide
Voilà les erreurs que je vois à priori :
il faut mettre des . à la place des virgule dans les nombres décimaux, 0.8 et pas 0,8
dommage de mettre alcoolémie prend_la_valeur ... et de refaire le calcul la ligne d'après
pourquoi la ligne d'après ne pas mettre simplement Afficher alcoolémie
les déclarations H est de type chaine et F est de type chaine ne servent à rien, ces variables ne sont pas utilisées.
à la question "Etes vous à jeun ?" si la personne répond Oui, ou non, cela ne rentrera pas dans la variable a_jeun qui est de type nombre
SI(a_jeun) alors n'a pas de sens
j'aurais compris un SI (a_jeun =="Oui") ALORS avec une variable de type chaine
Merci beaucoup je vais le modifier en prenant compte de vos remarques.
Si il y a un problème je vous tiens au courant.
J'ai suivis vos indications cependant il y a une erreur à la ligne 11 à "lire sexe"
Si je rajoute la femme cela fonctionnera?
La dernière indication veut dire qu'il faut que je mette alcoolémie en chaine ?
non alcoolémie c'est un résultat de calcul, c'est bien un nombre.
je ne vois pas pourquoi ça marche pas à la ligne 11, j'ai fait des essais et chez moi ça marche sans problème.
dommage que tu ne donnes pas ton code en mode éditeur de texte, j'aurais pu le tester directement alors que là je ne peux pas.
VARIABLES
Poids EST_DU_TYPE NOMBRE
sexe EST_DU_TYPE CHAINE
alcoolémie EST_DU_TYPE NOMBRE
volumeabsorbe EST_DU_TYPE NOMBRE
ajeun EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
AFFICHER "etes vous un homme ou une femme? (H ouF)"
LIRE sexe
SI (sexe==H) ALORS
DEBUT_SI
AFFICHER "Quel est le volume absorbé?"
LIRE volumeabsorbe
AFFICHER "Poids"
LIRE Poids
AFFICHER "Etes-vous a jeun?"
LIRE ajeun
SI (ajeun=="oui") ALORS
DEBUT_SI
alcoolémie PREND_LA_VALEUR (volumeabsorbe*0.8)/(0.7*poids)
AFFICHER alcoolémie
AFFICHER "g/L dans le sang"
FIN_SI
SINON
DEBUT_SINON
alcoolémie PREND_LA_VALEUR ((volumeabsorbe*0.8)/(0.7*poids))*1/3
AFFICHER alcoolémie
AFFICHER "g/L dans le sang"
FIN_SINON
SI (sexe==F) ALORS
DEBUT_SI
AFFICHER "Quel est le volume absorbé?"
LIRE volumeabsorbe
AFFICHER "Poids"
LIRE Poids
AFFICHER "Etes-vous a jeun?"
LIRE ajeun
SI (ajeun=="oui") ALORS
DEBUT_SI
alcoolémie PREND_LA_VALEUR (volumeabsorbe*0.8)/(0.6*poids)
AFFICHER alcoolémie
AFFICHER "g/L dans le sang"
FIN_SI
SINON
DEBUT_SINON
alcoolémie PREND_LA_VALEUR ((volumeabsorbe*0.8)/(0.6*poids))*1/3
AFFICHER alcoolémie
AFFICHER "g/L dans le sang"
FIN_SINON
FIN_ALGORITHME
Voila l'algorithme réaliser en ligne je ne l'ai pas testé car je ne sais pas comment faire
attention à la variable Poids qui avait une minuscule ou une majuscule
il manquait des Fin_SI
des "" dans "H" et "F"
voici un code corrigé qui tourne (que tu peux copier/coller en ligne ou en mode éditeur de texte) :
VARIABLES
Poids EST_DU_TYPE NOMBRE
sexe EST_DU_TYPE CHAINE
alcoolémie EST_DU_TYPE NOMBRE
volumeabsorbe EST_DU_TYPE NOMBRE
ajeun EST_DU_TYPE CHAINE
DEBUT_ALGORITHME
AFFICHER "etes vous un homme ou une femme? (H ou F) ? "
LIRE sexe
SI (sexe=="H") ALORS
DEBUT_SI
AFFICHER "Quel est le volume absorbé ? "
LIRE volumeabsorbe
AFFICHER "Poids ?"
LIRE Poids
AFFICHER "Etes-vous a jeun ?"
LIRE ajeun
SI (ajeun=="oui") ALORS
DEBUT_SI
alcoolémie PREND_LA_VALEUR volumeabsorbe*0.8/(0.7*Poids)
AFFICHER alcoolémie
AFFICHER "g/L dans le sang"
FIN_SI
FIN_SI
SINON
DEBUT_SINON
alcoolémie PREND_LA_VALEUR volumeabsorbe*0.8/(0.7*Poids)*(1/3)
AFFICHER alcoolémie
AFFICHER "g/L dans le sang"
FIN_SINON
SI (sexe=="F") ALORS
DEBUT_SI
AFFICHER "Quel est le volume absorbé ?"
LIRE volumeabsorbe
AFFICHER "Poids ?"
LIRE Poids
AFFICHER "Etes-vous a jeun ?"
LIRE ajeun
SI (ajeun=="oui") ALORS
DEBUT_SI
alcoolémie PREND_LA_VALEUR volumeabsorbe*0.8/(0.6*Poids)
AFFICHER alcoolémie
AFFICHER "g/L dans le sang"
FIN_SI
SINON
DEBUT_SINON
alcoolémie PREND_LA_VALEUR volumeabsorbe*0.8/(0.6*Poids)*(1/3)
AFFICHER alcoolémie
AFFICHER "g/L dans le sang"
FIN_SINON
FIN_SI
FIN_ALGORITHME
oui, il y a encore un FIN_SI qui était mal placé
VARIABLES
Poids EST_DU_TYPE NOMBRE
sexe EST_DU_TYPE CHAINE
alcoolémie EST_DU_TYPE NOMBRE
volumeabsorbe EST_DU_TYPE NOMBRE
ajeun EST_DU_TYPE CHAINE
DEBUT_ALGORITHME
AFFICHER "etes vous un homme ou une femme? (H ou F) ? "
LIRE sexe
SI (sexe=="H") ALORS
DEBUT_SI
AFFICHER "Quel est le volume absorbé ? "
LIRE volumeabsorbe
AFFICHER "Poids ?"
LIRE Poids
AFFICHER "Etes-vous a jeun ?"
LIRE ajeun
SI (ajeun=="oui") ALORS
DEBUT_SI
alcoolémie PREND_LA_VALEUR volumeabsorbe*0.8/(0.7*Poids)
AFFICHER alcoolémie
AFFICHER "g/L dans le sang"
FIN_SI
SINON
DEBUT_SINON
alcoolémie PREND_LA_VALEUR ((volumeabsorbe*0.8)/(0.7*Poids))/3
AFFICHER alcoolémie
AFFICHER "g/L dans le sang"
FIN_SINON
FIN_SI
SI (sexe=="F") ALORS
DEBUT_SI
AFFICHER "Quel est le volume absorbé ?"
LIRE volumeabsorbe
AFFICHER "Poids ?"
LIRE Poids
AFFICHER "Etes-vous a jeun ?"
LIRE ajeun
SI (ajeun=="oui") ALORS
DEBUT_SI
alcoolémie PREND_LA_VALEUR volumeabsorbe*0.8/(0.6*Poids)
AFFICHER alcoolémie
AFFICHER "g/L dans le sang"
FIN_SI
SINON
DEBUT_SINON
alcoolémie PREND_LA_VALEUR volumeabsorbe*0.8/(0.6*Poids)*(1/3)
AFFICHER alcoolémie
AFFICHER "g/L dans le sang"
FIN_SINON
FIN_SI
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :