--- tags: upsud --- # Projet - Groupe Eco Math Lien vers Jupyterhub : [cliquez ici](https://jupytercloud.lal.in2p3.fr) Page des projets : [cliquez ici](http://nicolas.thiery.name/Enseignement/Info111/projet.html) Pour demander de l'aide : - envoyez-moi un mail (virgile.robles@u-psud.fr) - posez des questions sur le forum : Lien vers le forum : [cliquez ici](https://ecampus.paris-saclay.fr/mod/hsuforum/view.php?id=222408) ## Instructions **écrivez dans votre section où vous en êtes du projet** Si vous avez besoin d'aide, attirez mon attention sur le chat. Si vous pouvez formuler le problème textuellement, vous aurez plus vite une réponse. ## Méthodes de programmation ### RAPPEL : COMMENT COMPILER - une fois le fichier truc.cpp rempli, le sauvegarder (File->Save) - ouvrir un terminal (New->Terminal) - se positionner dans le dossier de la semaine avec `cd ProgImperative/Semaine8` - compiler le fichier avec (en remplaçant truc par votre fichier) `info-111 g++ truc.cpp -o truc` - exécuter le programme compilé avec `./truc` ### Comment créer un nouveau type de variables avec des mots (énumération) On crée le type, comme par exemple : ```c++ enum Volume { Faible, Moyen, Fort }; ``` On peut ensuite déclarer une variable de ce type : ```c++ Volume v = Moyen; v = Fort; v = 1 //Ne fonctionne pas ! ``` ## Débugguer avec GDB Lorsqu'on compile avec l'option `-g`, on indique au compilateur de générer un exécutable qui contient toutes les informations nécessaires pour enquêter en cas de problème. En cas d'erreur grave, le programme s'arrête subitement et dit "... (core dumped)", ce qui signifie qu'il a créé un fichier `core.XXX`, qui est un rapport d'erreur. En l'occurence pour `calcul.cpp`, on nous dit : `Floating point exception (core dumped)` Pour analyser ce rapport, on lance le débuggeur : `gdb ./calcul` Puis on lui indique quel rapport d'erreur analyser : `core core.XXXX` (remplacer XXXX par les chiffres chez vous) Immédiatement, on nous dit à quel ligne il y a eu une erreur : ``` #0 0x0000558372a2d228 in main () at calcul.cpp:20 20 resultat = resultat + 1/(x-i); ``` C'est à dire à la ligne 20, au moment de faire une division. Pour savoir les valeurs de toutes les variables à ce moment-là, on utilise la commande `where full` qui nous indique : ``` #0 0x0000558372a2d228 in main () at calcul.cpp:20 i = 40 x = 40 resultat = 1 ``` Or, dans notre division on divise par `(x-i)`. Mais `x` et `i` ont la même valeur, on divise donc par zéro ! D'où le plantage. ## Répartition des groupes ### Groupe 1 - Anna Mosaki / Pierre Clayton -> Données-libres Exo 7 ### Groupe 2 - Clara Baley / Laura Giménez -> Projet Puyo Définition des fonctions de base ### Groupe 3 - Diabate Marie / Besbes Ines -> Donnees libres exercice 5 ### Groupe 4 - Roux Caroline / Foricheur Romane -> Donnees Libres Exercices 1, 2, 3, 4, 5, 6, 7, 8 terminés ### Groupe 5 (3 sur collab) - Lorenzo Brucato / Rafael Medus -> Projet Puyo Création du mode IA ### Groupe 6 - Théo Lebreton / Rémi Calvet -> Données libres Exercice 6 Ex 1,2,3,4,5,7,8 terminés Ex 9 terminé ex 11 q1 terminée ### Groupe 7 - Hovik Aleksanyn / Vincent Gimenes -> Données Libres debut exercice 9 ### Groupe 8 - Nolwenn Lenglet / Lina Dauvergne -> Données Libres ex 4-5 ### Groupe 9 - Hongji Zhang / Eythan Cazin -> Données Libres Exercice 5 ### Groupe 10 - Axel Sadaoui / Axel Geertsen -> Données Libres ### Groupe 11 - Xiaolin Ye -> Projet Puyo mode simulation ##### Groupe 12 - Juliette Macchi/Baptiste Richard->Donnees libres** ex 5