Résultat de calcul et instruction qui donne pas le bon résultat

Fermé
dyhiadia Messages postés 2 Date d'inscription mardi 9 août 2016 Statut Membre Dernière intervention 9 août 2016 - Modifié par dyhiadia le 9/08/2016 à 13:58
 Profil bloqué - 10 août 2016 à 14:03
Bonjour,
1/je veux avoir le résultat de calcul de moyenne
donc j'ai écrit le programme en prenant en considération que la méthode est: (a+b)/2 et quand j’exécute (ex: pour a=15 et b=8) j obtient 1.15000000000E+01 et pour(a=5 et b=4) j obtient 4.5000000000E+00 (pas compris ces valeurs)
2/en plus j ai rajouter une instruction pour trouver si l'étudiant est admis ou pas (vu que si moy>=10 il est admis sinon il ne l'ai pas) et pour ces valeurs la j obtient que les 2 étudiants sont pas admis alors que le premier il est admis et le 2ème n'est pas admis(pourquoi?)
svp je veux une solution ou un programme qui va me donner un bon résultat
mrc d'avance

2 réponses

NHenry Messages postés 15163 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 1 novembre 2024 345
9 août 2016 à 14:10
1) ces 2 valeurs sont justes, 11.5 pour le premier te 4.5 pour le second, le E c'est a*10^x
2) Avec quel code ?
0
dyhiadia Messages postés 2 Date d'inscription mardi 9 août 2016 Statut Membre Dernière intervention 9 août 2016
9 août 2016 à 14:46
1/j'ai pas compris tu peux me donner un exemple stp??(en plus y on a le(+01) et (+00)
2/tu veux dire quoi par code?(si tu veux dire l'instruction j'ai utiliser si (if))
0
NHenry Messages postés 15163 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 1 novembre 2024 345
9 août 2016 à 16:45
E+00 *10^0 == *1
E+01 *10^1 == *10

1.15E+01 == 1.15*10^1 == 1.15*10 == 11.5

Oui, le code que tu utilise.
0
program RealFormat;

var A, B,
Moyenne : Real;

begin

A := 50000;
B := 4001;

Moyenne := (A + B)/7;

{ Le nombre est affiché sur quatre caractères dont deux après la virgule,
la virgule est comprise en compte }

WriteLn(Moyenne:4:2);

WriteLn;
WriteLn;

{ Ci-dessous des exemples de formatage
pour aider à comprendre le comportement du compilateur }

WriteLn(Moyenne:5:2);
WriteLn(Moyenne:0:2);
WriteLn(Moyenne:0:10);
WriteLn(Moyenne:0:1);
WriteLn(Moyenne:0:0);
WriteLn(Moyenne:2:3);
WriteLn(Moyenne:1:2);
WriteLn(Moyenne:1:1);
WriteLn(Moyenne:10:2);

{ Si les arguments sont en excès la sortie est augmentée
à gauche par des espaces et à droite par des zéros, sinon,
sa longueur est ignorés à gauche et tronquéé à droite }


Readln;
{ TODO -oUser -cConsole Main : placez le code ici }
end.
0