Informations

Date limite Pas de date limite
Limite de soumission Pas de limite

Etiquettes

Se connecter

[1.4] INGInious [Obligatoire]

INGInious est la plateforme sur laquelle vous vous trouvez et qui permet de corriger automatiquement vos exercices. Dans ce cours, cela est fait en testant vos programmes avec des valeurs d'entrée variées, en analysant les bonnes pratiques de votre code et en vérifiant le formatage de celui-ci.

Parfois, cela renvoie des messages d'erreurs du compilateur comme le message suivant :

/task/code.c: In function ‘main’:
/task/code.c:9:14: warning: format ‘%lf’ expects argument of type ‘double *’, but argument 2 has type ‘int *’ [-Wformat=]
    scanf("%lf", &rayon);
            ~~^   ~~~~~~
            %d

Ce message indique que vous avez utilisé le mauvais format dans la fonction scanf pour lire une valeur de type double.

Néanmoins, les messages d'erreurs des tests et du formatage sont affichés sous la forme d'un diff comme celui-ci :

- La circonférence du cercle vaut: 25.132741
+ La longueur du rectangle d'or vaut: 6.472136

Ce diff indique que la sortie du programme ne correspond pas à ce qui est attendu :

  • Ce qui a été produit par le programme est précédé d'un - donc "La circonférence du cercle vaut: 25.132741"
  • Ce qui est attendu est précédé d'un + donc "La longueur du rectangle d'or vaut: 6.472136"

Quand il manque des caractères dans une ligne, le diff indique plus précisément où se situe la différence avec des + sous la ligne :

- La longueur du rectangle vaut: 6.472136
+ La longueur du rectangle d'or vaut: 6.472136
?                          +++++
  • Ce qui a été produit par le programme est précédé d'un - donc "La longueur du rectangle vaut: 6.472136"
  • Ce qui est attendu est précédé d'un + donc "La longueur du rectangle d'or vaut: 6.472136"
  • La ligne avec des ? indique où se situe la différence dans la ligne au dessus avec des +

Quand il y a trop de caractères dans une ligne, le diff indique aussi plus précisément où se situe la différence mais avec des - sous la ligne :

- La longueur du rectangle d'or vaut la valeur: 6.472136
?                                   ----------
+ La longueur du rectangle d'or vaut: 6.472136

Enfin, quand il manque des lignes entières ou qu'il y en a en trop, le diff les indique juste avec un - ou un +.


Question 1: Que veut dire le diff ? (partie 1)
  #include <stdio.h>

  #define PI 3.14159265359

  int main(void) {
      double rayon;

      printf("Quelle est la taille du rayon du cercle dont vous voulez connaitre la circonférence ? ");
      scanf("%lf", &rayon);

- printf("La circonférence du cercle vaut: %lf\n", 2 * rayon * PI);
+     printf("La circonférence du cercle vaut: %lf\n", 2 * rayon * PI);
? ++++

      return 0;
  }

Qu'est-ce que veut dire le diff ci-dessus ?

Question 2: Que veut dire le diff ? (partie 2)
  #include <stdio.h>

  #define PI 3.14159265359

  int main(void) {
      double rayon;

      printf("Quelle est la taille du rayon du cercle dont vous voulez connaitre la circonférence ? ");
-         scanf("%lf", &rayon);
? ----
+     scanf("%lf", &rayon);

      printf("La circonférence du cercle vaut: %lf\n", 2 * rayon * PI);

      return 0;
  }

Qu'est-ce que veut dire le diff ci-dessus ?

Question 3: Que veut dire le diff ? (partie 3)
  #include <stdio.h>

  #define PI 3.14159265359

  int main(void) {
      double rayon;

      printf("Quelle est la taille du rayon du cercle dont vous voulez connaitre la circonférence ? ");
      scanf("%lf", &rayon);

-     printf("La circonférence du cercle vaut: %lf\n", 2*rayon*PI);
+     printf("La circonférence du cercle vaut: %lf\n", 2 * rayon * PI);
?                                                       + +     + +

      return 0;
  }

Qu'est-ce que veut dire le diff ci-dessus ?

Question 4: Que veut dire le diff ? (partie 4)
  #include <stdio.h>

  #define PI 3.14159265359

  int main(void) {
      double rayon;

      printf("Quelle est la taille du rayon du cercle dont vous voulez connaitre la circonférence ? ");
      scanf("%lf", &rayon);

-     printf("La circonférence du cercle vaut: %lf\n", 2 * rayon *   PI);
?                                                                 --
+     printf("La circonférence du cercle vaut: %lf\n", 2 * rayon * PI);

      return 0;
  }

Qu'est-ce que veut dire le diff ci-dessus ?

Question 5: Que veut dire le diff ? (partie 5)
  #include <stdio.h>

  #define PI 3.14159265359

  int main(void) {
      double rayon;

      printf("Quelle est la taille du rayon du cercle dont vous voulez connaitre la circonférence ? ");
      scanf("%lf", &rayon);

-
      printf("La circonférence du cercle vaut: %lf\n", 2 * rayon * PI);

      return 0;
  }

Qu'est-ce que veut dire le diff ci-dessus ?