M1103 – TP6 Exercice 2

On remplace les plots par des vecteurs d’entiers naturels afin de pouvoir afficher le contenu de chaque vecteur après chaque déplacement.

Coder la fonction void Hanoi (const unsigned & N, vector <unsigned> & Dep, vector <unsigned> & Arr, vector <unsigned> & Int);

NB:

  • N’oublier pas d’initialiser le plot de départ avant l’appel de la fonction;
  • L’affichage d’un vecteur se fera sur la même ligne pour plus de simplicité.

M1103 – TP minGL – exo2

Télécharger ce projet.

Compléter le contenu pour afficher l’histogramme du tableau (on vous donne la procédure de génération du tableau et la recherche de la valeur maximale).
Veillez à bien dimensionner votre fenêtre.

M3103 – TP4 Exercice 3

Modifier l’exercice précédent de façon à ce que l’arbre ait une structure de maximier : contrairement à l’arbre binaire de recherche, le maximier est un arbre dans lequel la valeur de la racine (ici un entier) est supérieure celle de n’importe laquelle de ses sous arbres.

M1103-TP5 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.

M1103-TP5 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);

Modifier l’exercice 1 en conséquence.

M1103-TP5 Exercice 3 Space Invaders

Télécharger la correction du TP2 (Projet) suivante : Correction_projet.

Ajouter les lignes suivantes :

struct CMyParam {
    std::map <std::string, char> MapParamChar;
    std::map <std::string, unsigned> MapParamUnsigned;
    std::map <std::string, std::string> MapParamString;
};

const std::map <std::string, std::string> KColor
{
    {"KReset", "0"},
    {"KBlack", "30"},
    {"KRed", "31"},
    {"KGreen", "32"},
    {"KYellow", "33"},
    {"KBlue", "34"},
    {"KMAgenta", "35"},
    {"KCyan", "36"},
};

void InitParams (CMyParam &amp; Param)
{
    //Move Keys
    Param.MapParamChar["KeyLeft"] = 'w';
    Param.MapParamChar["KeyRight"] = 'x';
    Param.MapParamChar["VesselToken"] = 's';
    Param.MapParamChar["KShoot"] = ' ';

    //Size of grid — suppose to be a rectangle (or a square)
    Param.MapParamUnsigned["NbColumn"] = 10;

    //Display Colors
    Param.MapParamString["VesselColor"] = KColor.find("KRed")->second ;
    Param.MapParamString["InvaderColor"] = KColor.find("KGreen")->second ;
}


Modifier la fonction InitParams () de façon à spécifier le caractère de l’invader ainsi que nombre de lignes de la grille.

Modifier les fonction DisplaySpace () et InitSpace () pour prendre en compte la structure de données.