Planning 2024-2025

Semaine du 31 aout

  • Amphi 01
  • Amphi 02

Semaine du 7 septembre

Semaine du 14 septembre

  • Amphi 05
  • rendre fiche amphi 1 à 4
  • TD3
  • TD4

Semaine du 21 septembre

  • Amphi 06
  • TD5
  • TD6
  • rendre fiche amphi 1 à 4 complétée par les TDs 1 à 4

Semaine du 28 septembre

  • Amphi 07
  • TD7
  • TD10
  • TP1

Semaine du 05 octobre

  • Amphi 08
  • TD8
  • Coder TD8 (prog 9)
  • Test Algo
    • partie #1 QCM (environ 15 questions / 15 min)
    • partie #2 : qu’est ce que ça fait (15 min)
    • partie #3 (un gros exercice), indice sur le thème : Mégaptère;
    • Document autorisé : 1 feuille A4 (recto/verso) – sauf pour ceux qui ont un justificatif des dysgraphie, auquel cas, ils pourront imprimé leur document autorisé.
    • rendre fiche amphi 1 à 4 complétée par les TDs 1 à 7
    • bonus (1pt) : blague carambar
  • rendre les minis test 1 à 6

Semaine du 12 octobre

Semaine du 19 octobre

  • SAE 1.02 (lecture – 1h)
  • Prog5

Semaine du 2 novembre

  • amphi 9
  • séance encadrée SAE 1.02
  • Prog 5

Semaine du 9 novembre

  • rendu SAE mardi 10 novembre
  • amphi 10
  • Prog7

Semaine du 16 novembre

  • amphi 11
  • soutenance SAE 1.02

Semaine du 23 novembre

  • amphi 12
  • prog8 (!! 2h)
  • prog11 (!!2h)

Semaine du 30 novembre

  • SAE 1.01 : prog 10

Semaine du 07 décembre

  • TP12

Semaine du 14 décembre

  • TP13  + SAE 1.01
  • séance encadrée SAE 1.01

Semaine du 04 janvier

  • soutenance SAE 1.01
  • test C++

 

R1.01 – Prog#8 – Exercice 2

Le code suivant contient la procédure de génération d’un tableau et la recherche de la valeur maximale.

using namespace std;

void initVect (vector & V, const size_t & _size, const unsigned & min, const unsigned & max)
{
    V.resize(_size);
    for (unsigned & val : V)
        val = min + rand() % (max - min);
}

unsigned maxElemem (const vector & V)
{
    return *max_element (V.begin(), V.end());
}

int main()
{
    srand (time(nullptr));

    vector  V;
    unsigned maxAGenerer (20);
    initVect (V, 10, 1, maxAGenerer);

    //TODO

    return 0;
}

Compléter le contenu pour afficher l’histogramme du tableau.
Veillez à bien dimensionner votre fenêtre.

R1.01 – PROG#13 – Exercice 1

Déclarerez une variable de type map < string, string >. La première chaine de caractères désigne un nom de famille, le second le prénom d’une personne.

Dans le main () :

  1. déclarer une map,
  2. insérer 4 éléments dans cette map,
  3. parcourez la map pour l’afficher.

R1.01 – PROG#13 – Exercice 2

Ecrire le corps de la fonction insertIntoMapIfNotExists () de signature :

void insertIntoMapIfNotExists (map <string, string> & MyMap, const string & Nom, const string & prenom);

Cette fonction doit insérer dans la map le couple (nom, prenom) que si le nom n’est pas déjà présent.

Ecrire ensuite le corps de la fonction doublement générique showMap () de signature :

template <typename T, typename U>
void showMap (const map <T, U>& MyMap);

Quelles sont les spécifications de cette nouvelle fonction ?

Modifier l’exercice 1 en conséquence.

Que se passe-t-il s’il y a plusieurs membres d’une même famille.
Recoder tout!

R1.01 – PROG#13 – Exercice 3 Pacman

Télécharger la correction du projet suivante

Générer la documentation à l’aide de doxygen.

Modifier le fichier type.h en y ajoutant la struct suivante :

struct CMyParamV2{
char tokenP1 = (‘X’);
char tokenP2 = (‘Y’);
char KeyUp = (‘z’);
char KeyDown = (‘s’);
char KeyLeft = (‘q’);
char KeyRight = (‘d’);
std::size_t NbColumn = (10);
std::size_t NbRow = (10);
std::string ColorP1 = KColor.find(“Blue”)->second;
std::string ColorP2 = KColor.find(“Green”)->second;
};
Puis ajouter le code suivant dans params.h :

#include “type.h”
void initParams (CMyParamV2 & param);

Créer le fichier params.cpp dans le répertoire Correct_Prof et insérer le code suivant :
#include <string>
#include “params.h”
#include “game.h”

using namespace std;

 

void initParams (CMyParamV2 & Param)
{//Move Keys
Param.KeyUp = ‘z’;
Param.KeyDown = ‘s’;

Param.tokenP1 = ‘A’;
Param.tokenP2 = ‘X’;

//Size of grid — suppose to be a rectangle
Param.NbColumn = 10;

//Display Colors
Param.ColorP1 = KColor.find(“KRed”)->second ;
}

Modifier la fonction initParams () de façon à spécifier les touches gauches et droite, ainsi que le nombre de lignes et la couleur du second joueur.

Dans game.cpp :
Ajouter l’appel à la fonction initParams () dans ppal ().

Dans gridmanagement.cpp, modifier les fonction displayGrid () et initGrid () pour prendre en compte la structure de données.

 

R1.01 – PROG#13 – exercice 4

Le but de cet exercice est de charger un fichier de configuration au format YAML.

Télécharger le fichier config.yaml, et changez l’extension. Modifiez le si besoin.

Ajouter la définition de la fonction

void LoadParams (CMyParamV2 & Param);

Cette fonction doit lire le fichier config.yaml de façon à remplir la struct MyParms, après son initialisation.

Pour ce faire, procéder de la sorte :

  1. Vérifier que vous arrivez bien à atteindre le fichier config.yaml en utilisant un chemin relatif;
  2. Parcourez ce fichier de façon à extraire tous les clés (de types string) et toutes les valeurs;
  3. Faites les insertions dans la structure de données de type CMyParam, si besoin