Les tableaux permettent le stockage organisé de données.
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;
}
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");
}