Chapitre précédantChapitre suivant

Les Tableaux

Nous allons maintenant aborder les tableaux qui seront très utiles dans vos programme. Vous savez créer des variables de plusieurs types (int, double, etc) mais si vous voulez créer un tableau de variable ce ne sera pas bien dur, il vous suffit de préciser le type de variable qui sera contenu dans chaque case du tableau, le nom de la variable tableau, et le nombre de cases du tableau, comme ceci:

double mon_tableau[10];


ceci crée un tableau de 10 cases pouvant contenir des double
Un gros défaut du C est que la taille d’un tableau doit être définie, vous ne pouvez pas faire:

int i=3;
...
double mon_tableau[i];


mais vous pouvez faire car les define sont remplacés par leur valeur avant la compilation:

#define SIZE 3
...
double mon_tableau[SIZE];



Pour atteindre une case du tableau pour récupérer ou remplacer sa valeur il suffit de mettre le nom du tableau suivi de crochets entre lesquels on indiquera le numéro de la case à modifier ou à récupérer, le numéro peut être donné par une variable.

Attention le numéro des cases d’un tableau commence à 0 et se termine à taille du tableau -1.



Voici comment on les utilise:

#include <stdio.h>
#include <stdlib.h>

int main()
{
int mon_tableau[5];//declaration d’un tableau à 5 cases

mon_tableau[0]=23;//------définition de la première case
printf("la case 0 contient %d",mon_tableau[0]);//affichage

mon_tableau[1]=12;//------définition de la deuxième case
printf("la case 1 contient %d",mon_tableau[1]);//affichage

mon_tableau[2]=4;//-------définition de la troisième case
printf("la case 2 contient %d",mon_tableau[2]);//affichage

mon_tableau[3]=68;//------définition de la quatrième case
printf("la case 3 contient %d",mon_tableau[3]);//affichage

mon_tableau[4]=78;//------définition de la cinquième case
printf("la case 4 contient %d",mon_tableau[4]);//affichage

system("PAUSE");
return 0;
}


Ce qui donne:

la case 0 contient 23
la case 1 contient 12
la case 2 contient 4
la case 3 contient 68
la case 4 contient 78
Appuyez sur une touche pour continuer...



Imaginez que le tableau fasse plus de 100 cases, vous risquez de galérer pour écrire un même programme; c’est à ce moment que les boucles surtout for deviennent intéressantes, voyez plutôt ce programme:

#include <stdio.h>
#include <stdlib.h>
#define SIZE 10

int main()
{
int mon_tableau[SIZE];//déclaration d’un tableau à 10 cases
int i;//compteur
for(i=0;i<SIZE;i++)//part de la case 0 et s’arrete à la case 9
{
mon_tableau[i]=10+i;//définition de la case i
printf("la case %d contient %d",i,mon_tableau[i]);//affichage
}
system("PAUSE");
return 0;
}


Ce qui donne:

la case 0 contient 10
la case 1 contient 11
la case 2 contient 12
la case 3 contient 13
la case 4 contient 14
la case 5 contient 15
la case 6 contient 16
la case 7 contient 17
la case 8 contient 18
la case 9 contient 19
Appuyez sur une touche pour continuer...


Génial n’est-ce pas!

Voila vous êtes peut-être en train d’apprendre un des points les plus importants du C mais sachez que c’est aussi celui qui risque de vous poser le plus de problèmes. En effet si vous essayez d’atteindre une case située en dehors du tableau vous risquez d’avoir des problèmes inconpréhensibles, le pire c’est que vous aurrez soit une donnée complètement erroné soit votre programme s’arrêtera sans vous demander quoi que ce soit.


Il est aussi possible de faire des tableaux à 2 dimensions, voici comment:

int tableau[5][5];


pour récupérer ou modifier une valeur vous faites comme ceci:

tableau[3][2]=0;


Supposons que vous vouliez faire le même programme que pour les tableaux à une dimension en utilisant une boucle for, il vous faudra faire:

#include <stdio.h>
#include <stdlib.h>
#define COLONNES 4
#define LIGNES 4

int main()
{
int mon_tableau[COLONNES][LIGNES];//déclaration d’un tableau à 4*4 cases
int i, e;//2 compteurs
for(i=0;i<COLONNES;i++)//part de la colonne 0 et s’arrete à la colonne 3
{
for(e=0;e<LIGNES;e++)//part de la ligne 0 et s’arrete à la ligne 3
{
mon_tableau[i][e]=e+i;//définition de la case [e][i]
printf("la ligne %d de la colonne %d contient %d",e,i,mon_tableau[i][e]);//affichage
}
}
system("PAUSE");
return 0;
}


la ligne 0 de la colonne 0 contient 0
la ligne 1 de la colonne 0 contient 1
la ligne 2 de la colonne 0 contient 2
la ligne 3 de la colonne 0 contient 3
la ligne 0 de la colonne 1 contient 1
la ligne 1 de la colonne 1 contient 2
la ligne 2 de la colonne 1 contient 3
la ligne 3 de la colonne 1 contient 4
la ligne 0 de la colonne 2 contient 2
la ligne 1 de la colonne 2 contient 3
la ligne 2 de la colonne 2 contient 4
la ligne 3 de la colonne 2 contient 5
la ligne 0 de la colonne 3 contient 3
la ligne 1 de la colonne 3 contient 4
la ligne 2 de la colonne 3 contient 5
la ligne 3 de la colonne 3 contient 6
Appuyez sur une touche pour continuer...



Et pour les tableaux à 3 ou plusieurs dimensions c’est le même principe.

Initialisation d’un tableau


Comme pour les variables il est possible d’initialiser les valeurs des cases d’un tableau en mettant des accolades et en séparant chaque valeur par une virgule:

int mon_tableau[3][2]={
3,2,4,1,4,5
};


l’ordinateur initialise les valeurs ligne par ligne sachant que le nombre de lignes est le deuxième chiffre dans la déclaration (ici 2).
si vous n’initialisez pas de valeur, la valeur de chaque case sera un nombre totalement aléatoire
si vous n’initialisez pas toutes les valeurs, les valeurs restantes seront égales à 0.
pour initialiser tout votre tableau à 0 il suffit de faire:

int mon_tableau[3][2]={
};

Chapitre précédantChapitre suivant

Copyright "NOS Corporation", tous droits réservés
pour me contacter polo_asm@hotmail.fr
Valid XHTML 1.0 Strict