From 01637d311904d5ea29130c6d92d90e2349880818 Mon Sep 17 00:00:00 2001 From: Simoes Lukas Date: Tue, 10 Sep 2024 15:05:59 +0200 Subject: [PATCH] =?UTF-8?q?Modification=20r=C3=A9ponses?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DEV1.1/TP05/TP05_reponses.txt | 65 +++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) diff --git a/DEV1.1/TP05/TP05_reponses.txt b/DEV1.1/TP05/TP05_reponses.txt index e69de29..3e72a4d 100644 --- a/DEV1.1/TP05/TP05_reponses.txt +++ b/DEV1.1/TP05/TP05_reponses.txt @@ -0,0 +1,65 @@ +---- TP05: Réels ---- + + + +1. Avec 12 chiffres après la virgule, on obtient bien le nombre de chiffres +souhaités, mais le programme affiche un 4 au lieu d'un 3 à la fin. +Avec 15 chiffres, on se rend compte que le programme affiche des chiffres +qu'on ne lui a pas demandé d'afficher, ce qui s'explique sûrement par +le fait qu'au niveau binaire, ce nombre est impossible à représenter +de façon exacte comme en base 10. Le 13e chiffre étant un 5, +on comprend donc que le progamme a simplement arrondi le nombre +à partir du 12e chiffre après la virgule. + + + +2. Lors de l'emploi de l'opérateur %, on effectue l'opération sur deux réels +(de type double), ceci provoque une erreur car il n'y aura jamais de reste +dans une opération entre réels, car on effectue toujours une division +non euclidienne. + + + +3. On obtient les résultats suivants : + +inf +-inf +-nan + +Les 2 premiers résulats peuvent peut-être s'expliquer par le fait qu'informatiquement, +on divise +1.0 et -1.0 par une valeur nulle, ce qui revient donc +à multiplier ces nombres par l'inverse de la "valeur nulle", donc l'infini. + + + +4. En écrivant le programme de façon classique, on se rend compte que le tampon +stocke le saut de ligne comme un caractère lorsque l'utilisateur valide le réel +qu'il a entré. Le programme affiche donc 5 fois un saut de ligne sans attendre quoique +ce soit de l'utilisateur car le tampon n'est en réalité pas vide. Pour pallier ce problème, +il suffit d'ajouter un getchar qui ne stockera rien pour se débarasser du caractère \n : + +On a donc le programme suivant : + +# include +# include + +int main(void) { + double nombre; + char lettre; + printf("Veuillez saisir un réel : "); + scanf("%lf", &nombre); + printf("\nSa notation scientifique est : %e\n", nombre); + printf("Veuillez taper un caractère : "); + getchar(); + lettre = getchar(); + printf("%c\n", lettre); + printf("%c\n", lettre); + printf("%c\n", lettre); + printf("%c\n", lettre); + printf("%c\n", lettre); + return EXIT_SUCCESS; +} + + + +5. \ No newline at end of file