Programmer en C++
Les tableaux

1. Introduction

Les tableaux permettent le stockage organisé de données.

2. Tableaux statiques

Ce sont des tableaux dont on connait à l'avance les dimensions (on ne peut pas en changer pendant l'utilisation). Prenons tout de suite de bonnes habitudes en déclarant la longueur du tableau à l'aide d'une valeur constante. Nous choisissons par exemple une valeur de 7.
ATTENTION puisque les indices d'un tableau commencent à 0, les valeurs valides seront : 0, 1, 2, 3, 4, 5, et 6.
Prendre 7 comme indice provoquera une erreur.

int const longTableau(7);

La syntaxe pour déclarer un tableau statique est :

    Type nomDuTableau[dimension];

Voyons de suite un exemple avec un tableau qui contiendra des données au format "string" :

string monTableau[longTableau];

Remplissons maintenant notre tableau avec des données :

monTableau[0] = "Lundi";
monTableau[1] = "Mardi";
monTableau[2] = "Mercredi";
monTableau[3] = "Jeudi";
monTableau[4] = "Vendredi";
monTableau[5] = "Samedi";
monTableau[6] = "Dimanche";

je reconnais que remplir un tableau de cette façon, celà peut devenir très long. S'il y a beaucoup de données, il est préférable de lire ces données dans un fichier, mais nous verrons cette technique plus tard.
Vous allez voir que pour lire le tableau c'est nettement plus rapide avec une boucle "for".

for (int i(0); i < 7; i++)
{
    cout << monTableau[i] << endl;
}

3. Utilisation des tableaux avec une fonction

Dans une fonction, c'est l'adresse du tableau qui est transmise par l'argument. Ce serait en effet trop long pour un programme de transmettre par valeur la totalité du tableau. A noter qu'il est inutile, et ça serait une erreur, d'ajouter l'esperluette. La conséquence de ce mode de transmission est que la fonction travaille directement sur le tableau et non sur une copie (la fonction peut modifier le tableau).
Découvrons maintenant un exemple utilisant le tableau précédent "monTableau" :

void supprimeJeudi(string monTableau[])
{
    monTableau[3] = "...";
}

Il n'est pas difficile de comprendre ce que fait la fonction : Elle remplace "Jeudi" par "...".
Pour exécuter cette fonction nous écrirons dans le programme principal :

supprimeJeudi(monTableau);

Notez qu'il ne faut mettre aucun crochet [] ici.

Je vous propose maintenant un exemple de programme complet qui crée un tableau de 5 variables aléatoires, puis qui affiche le tableau en utilisant des fonctions :

#include <iostream>
#include <cstdlib>
#include <time.h>

using namespace std;

void remplirAleatoirementTableau(double tab[], int nbElement)
{
    for (int i = 0; i < nbElement; i++)
    {
        tab[i] = rand() % 10 + 1;     // nb aleatoire entre 1 et 10
    }
}

void afficherTableau(double tab[], int nbElement)
{
    for (int i = 0; i < nbElement; i++)
    {
        cout << tab[i] << endl;
    }
}

int main()
{
    int nombreElement(5);
    double monTableau[nombreElement];

    // Les variables seront différentes à chaque démarrage.
    time_t temps;
    srand((unsigned int)time(&temps));

    remplirAleatoirementTableau(monTableau, nombreElement);
    afficherTableau(monTableau, nombreElement);

    cout << endl << endl;     // Séparation de 2 lignes pour faire propre.
    system("PAUSE");
}