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.

R1.01 – Prog#11 Exercice1

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

void affichVInt (const vector <int> & VInt);

Rendre générique cette fonction en écrivant le corps de la fonction affichVector () de signature :

template <typename T>
void affichVector (const vector <T> & V);

Faites des tests avec différents vecteurs.

R1.01 – Prog#11 Exercice5

Télécharger le corrigé du TP 6 (M1102) : ici.

  1. Dans le fichier nsUtil.cxx, modifier le corps de la fonction EditVString () de façon à n’utiliser que des itérateurs;
  2. Dans le fichier main.cxx, modifier le corps des fonctions Delete (), Insert () et Swap () de façon à n’utiliser que des itérateurs.

Nb: pour les fonctions Insert () et Delete (), vous devez vous appuyer sur les fonctions insert () et erase () de la classe vector.

R1.01 – Prog#7 – Exercice 1

Ecrire la fonction flux_cin() qui, dans une boucle, lit une ligne au clavier et l’affiche à l’écran. La boucle se termine lorsque l’utilisateur tape le caractère “fin du fichier” au clavier (Ctrl + D). Pour cela, utiliser la fonction-membre (méthode) eof() de la classe istream à laquelle appartient le flux standard cin.

Attention : le prédicat eof() n’est vrai qu’après qu’une tentative de lecture a échoué. Il faut donc toujours faire une tentative de lecture avant de tester par eof() si elle a échoué ou non.

R1.01 – Prog#7 – Exercice 2

Dans votre répertoire courant, téléchargez le fichier LaFontaine.txt mis à votre disposition.

Ecrire la fonction afichFich() qui, dans une boucle, lit le fichier source LaFontaine.txt ligne par ligne et l’affiche à l’écran. La boucle se termine à la rencontre de la marque “fin-de-fichier”. Le fichier est associé à un flux d’entrée de la classe ifstream.