From f29f588e00a2044cb35cb91b477a5e0848691c3d Mon Sep 17 00:00:00 2001 From: Adrien Rougny <rougny@gmail.com> Date: Fri, 12 Feb 2016 17:52:51 +0100 Subject: [PATCH] ajouts dans README.rst --- test~coding~readingCppPrograms.fr/README.rst | 35 ++++++++++++++------ 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/test~coding~readingCppPrograms.fr/README.rst b/test~coding~readingCppPrograms.fr/README.rst index dd0f478..1527925 100644 --- a/test~coding~readingCppPrograms.fr/README.rst +++ b/test~coding~readingCppPrograms.fr/README.rst @@ -21,13 +21,15 @@ g Étendre le module avec de nouveaux programmes --------------------------------------------- -Le répertoire `data/`_ contient des programmes C++. Le nom des -programmes est de la forme ``<theme>_nom.cpp`` ou ``<theme>_nom_input.cpp``. - -Dans le premier cas, l'utilisateur doit deviner la sortie du -programme. Dans le second cas, le programme doit lire un entier entre +Le répertoire `data/`_ contient des programmes C++, qui peuvent être de deux types. +Pour les programmes du premier type, l'utilisateur doit deviner la sortie du programme. +Ces programmes sont nommés sous la forme ``<theme>_<nom>.cpp``. +Les programme du decuième type doivent lire un entier entre 0 et 99 sur l'entrée standard, et l'utilisateur doit deviner lequel donne 42; pour l'instant cet entier doit être unique. +Ces programmes sont nommés ``<theme>_<nom>_input.cpp`` +Pour les deux types de programme, le thème peut être constitué d'un thème principal et de sous-thèmes, séparés par des ``_`` (p. ex. ``loop_for``, ``loop_while``). +Les noms de fichiers ne doivent contenir que des caractères alphanumériques et le caractère ``_``. En vue d'obtenir un peu de variabilité les programmes sont transformés avant affichage et compilation, de la manière suivante: @@ -61,20 +63,33 @@ L'infrastructure du module est implant premier type affiche au moins un caractère. Éviter les caractères unicode compliqués aussi :-) +Création automatique des exercices de type OEF +---------------------------------------------- + +L'entête du fichier `src/cpp/read_program.cpp` permet de définir les exercices de type OEF qui vont être construits automatiquement par WIMS lors de l'import du module (voir section suivante). +L'entête doit être de la forme ``target=<cible1> <cible2> <cible3> ...``. +WIMS crée un exercice OEF par cible sous la forme d'un fichier `src/<cible>.oef`. +Lors de chaque exécution de l'exercice OEF `<cible>.oef`, un programme est choisi aléatoirement parmi tous les programmes de `data/static` dont le nom commence par ``<cible>``. +Il est ainsi possible de définir un exercice OEF prenant en compte tous les programmes ayant un certain thème, ou un certain thème et sous-thème, ou simplement un seul exercice (dans ce dernier cas, la cible doit être le nom du programme complet, sans l'extension ``.cpp``). + +Pour chaque cible, le fichier `src/cpp/read_program.cpp` doit contenir les définitions suivantes: -Mise à jour de l'exercice sur WIMS ----------------------------------- +``#if defined TARGET_<cible> +#define TARGET <cible> +#define TARGET_FR <Titre de l'exercice> +#endif`` + +Importer ou mettre à jour le module sur WIMS +-------------------------------------------- Lancer `make archive` dans ce répertoire. Cela créé une archive: /tmp/modtool-test~coding~readingCppPrograms.fr.tgz -Que l'on peut charger dans son compte modtools sur sur WIMS avec: +Charger l'archive dans son compte modtools sur WIMS avec: wims.u-psud.fr -> serveur de l'université -> Accueil WIMS -> modtools -> login -> Restauration - - Documentation générique des modules WIMS ======================================== -- GitLab