From 14cd5779b76c7fe3920c17b149312e9f759d522e Mon Sep 17 00:00:00 2001 From: Orestis <orestis.malaspinas@pm.me> Date: Mon, 28 Nov 2022 20:38:00 +0100 Subject: [PATCH] added examen for 2022 --- slides/examen.md | 112 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 slides/examen.md diff --git a/slides/examen.md b/slides/examen.md new file mode 100644 index 0000000..88645c0 --- /dev/null +++ b/slides/examen.md @@ -0,0 +1,112 @@ +--- +title: "Précisions pour l'examen" +date: "2022-11-29" +--- + +# Administration + +- L'examen dure au plus 4h (il est prévu pour 3 exceptions jusqu'à 4). +- Votre code devra être dans un repo `git`. +- Chaque exercice dans un répertoire (`ex1`, `ex2`, `ex3`, `ex4`). +- Le lien vers votre git devra figurer dans la réponse à chaque exercice. +- Chaque exercice doit posséder son propre `Makefile` pour la compilation. + - Il est impératif de compiler avec les warnings et les sanitizers. + +**N'hésitez pas à préparer des templates pour que tout ça aille plus vite.** + +# 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" où vous pouvez tester l'exécution de votre programme. +- Il faut implémenter les trois pour avoir tous les points. + +# Évaluation (technique) + +- L'évaluation se base surtout sur des critères de fonctionnement: + - le code compile-t-il? + - s'exécute-t-il? + - le code demandé est-il réalisé? + - donne-t-il des résultats corrects? +- Si vous laissez des warnings ou des erreurs de sanitizers vous aurez des malus. + +# É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 dans le terminal (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 +sur une nouvelle ligne et affiche +la somme des deux entiers en argument sur une nouvelle ligne. + +## Exemple + +```bash +12 +19 + +31 +``` + +# Exercice 2 + +\footnotesize + +Ce programme prend en argument 12 nombres à virgule flottante se trouvant chacun +sur une nouvelle ligne. Multiplie chaque nombre par deux et affiche leur somme +sur une nouvelle ligne suivi de CHF. + +## Exemple + +```bash +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 sur des lignes séparées (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