TP : tableaux : prise en main

TP : tableaux : prise en main#

Comme indiqué dans le cours, on utilisera les vector de C++ comme tableaux. Pour cela, il est nécessaire de charger la bibliothèque standard pour les vector:

#include <vector>
using namespace std;

Exercice: (Cours)

  • Retrouvez dans le cours les trois étapes de la construction d’un tableau

  • Dans la cellule suivante, on effectue deux des trois étapes.

    • Quelle étape est effectuée à la première ligne? BEGIN SOLUTION Déclaration END SOLUTION

    • Quelle étape est effectuée à la deuxième ligne? BEGIN SOLUTION Allocation END SOLUTION

vector<int> v;
v = vector<int>(5);

v est maintenant un tableau de taille 5. Exécutez la cellule suivante pour voir les valeurs contenues dans le tableau.

v

Il n’y a que des zéros ! C’est le comportement par défaut du compilateur que nous utilisons sur Jupyter mais ce n’est pas un standard du C++. On peut initialiser v de la façon suivante.

v = {4, 1, 5, 2, 3};

Dans la cellule suivante, déclarez, allouez et initilisez un tableau d’entier v2 de taille 8 et contenant les valeurs : 2,5,1,8,4,6,3,5.

/// BEGIN SOLUTION 
vector<int> v2;
v2 = vector<int>(8);
v2 = {2, 5, 1, 8, 4, 6, 3, 5};
/// END SOLUTION

Exécutez les cellules suivantes pour vérifier que votre tableau contient les bonnes valeurs.

v2.size() // doit afficher 8
v2 // doit afficher {2, 5, 1, 8, 4, 6, 3, 5}

On vérifie à présent avec CHECK

CHECK ( v2.size() == 8 )
CHECK(v2 == vector<int>({2, 5, 1, 8, 4, 6, 3, 5}))

Un tableau permet l’accès à ces différentes valeurs à travers un accès par indice. Exécutez les cellules suivantes en exemple.

v
v[0] // la première valeur du tableau (4)
v[3] //  la valeur à l'indice 3 (2)

De la même façon, affichez la dernière valeur du tableau

/// BEGIN SOLUTION
v[4]
/// END SOLUTION

L’accès par indice permet aussi de modifier le tableau. Par exemple :

v = { 4, 7, 3, 2, 3 };
v[1] = 3;
v // qu'est-ce qui a changé ?

De la même façon, complétez le code ci-dessous pour que le test CHECK soit vérifié.

v = { 4, 1, 3, 2, 3 };
/// BEGIN SOLUTION
v[3] = 5;
/// END SOLUTION
CHECK( v == vector<int>({4,1,3,5,3} ) )