From 020852d9ed6dbd7a7bd7efa4648db8aaefe7ea6c Mon Sep 17 00:00:00 2001 From: Orestis <orestis.malaspinas@pm.me> Date: Wed, 15 Nov 2023 16:57:04 +0100 Subject: [PATCH] added precisions pour l'exmane --- slides/examen.md | 100 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 slides/examen.md diff --git a/slides/examen.md b/slides/examen.md new file mode 100644 index 0000000..5bc4bda --- /dev/null +++ b/slides/examen.md @@ -0,0 +1,100 @@ +--- +title: "Précisions pour l'examen" +date: "2023-11-16" +--- + +# Administration + +- L'examen dure au plus 4h (il est prévu pour 3 exceptions jusqu'à 4). +- Votre code devra être dans le répertoire prévu à cet effet. +- Chaque exercice dans un répertoire (`ex1`, `ex2`, `ex3`, ...). +- Chaque exercice doit posséder son propre `Makefile` pour la compilation. + - Il est impératif de compiler avec les warnings. + - Le `Makefile` ainsi qu'un fichier minimal sera mis à disposition pour chaque exercice. + +# Les exercices + +- Deux ou trois parties à chaque énoncé: + - Une partie "théorique" qui décrit les structures de données et fonctionnalités. + - Une partie "technique" qui propose un exemple d'exécution de votre programme avec entrées et sorties. + - Une partie "exemple" (pas obligatoire) où d'autres exemples sont donnés afin de tester l'exécution de votre programme. +- Votre code doit avoir **exactement** le comportement des exemples donnés **sous peine de sanctions**. +- Chaque code doit être **dans un unique fichier .c** (`ex1.c`, `ex2.c`, ...). +- Donc **inutile** d'écrire des fichiers `.h` ou d'avoir d'autres `.c` + +# Évaluation (technique) + +- L'évaluation se base surtout sur des critères de fonctionnement: + - le code compile-t-il? (on regarde même pas) + - s'exécute-t-il? (on regarde un peu) + - le code demandé est-il réalisé? + - donne-t-il des résultats corrects? + - votre code possède-t-il des comportements indéfinis? +- Si vous laissez des warnings vous serez pénalisé·e·s. + +# Évaluation (style) + +- Le code est-il joli? + - Présentation (indentation cohérente, variables nommées de façon raisonnable). + - Modularité (utilisation de fonctions). + - Pas de variables globales inutiles. + - Utilisation de boucles, structures de contrôle, struct, ... + - Fonctions récursives, ... + +# Les exemples + +- Chaque exemple contient: + - un input à rentrer à la ligne de commande (on peut copier-coller l'input de l'énoncé). + - un output à écrire dans le terminal (on peut comparer la sortie avec celle de l'énoncé). +- La structure de l'input doit être **exactement** la même que celle décrite dans l'énoncé. +- L'output de vos exercices doit être celui de l'énoncé. + +Et maintenant place à des exemples (simplifiés)! + +# Exercice 1 + +Ce programme prend en argument deux entiers se trouvant chacun et affiche +leur somme sur une nouvelle ligne. + +## Exemple + +```bash +$ ./prog 12 19 + +31 +``` + +# Exercice 2 + +\footnotesize + +Ce programme prend en argument des nombres à virgule flottante. +Il multiplie chaque nombre par deux et affiche leur somme +sur une nouvelle ligne suivi de CHF. + +## Exemple + +```bash +$ ./prog 12.2 45.5 1.5 65.1 89.4 567.6 112.8 67.0 35.1 112.2 3.3 9.8 + +2243.000000 CHF +``` + +# Exercice 3 + +Ce programme prend en argument 2 chaînes de caractères (longueur max de 80), +les sépare au milieu et retourne les 4 chaînes chacune sur une nouvelle ligne +(si la longueur N est paire on sépare en 2 chaînes de longueur N/2, sinon la première +aura une longueur de N/2 et la seconde N/2+1). + +## Exemple + +```bash +abcdefgh +asdfghjkl + +abcd +efgh +asdf +ghjkl +``` -- GitLab