Logo creanet 2.0
Les tableaux

 
Les tableaux sont très utiles. Ils permettent, de façon assez simple, de gérer plusieurs variables de même type. De plus, au chapitre suivant, vous saurez comment créer du texte avec le type char et ce grâce aux tableaux! Il est donc important de comprendre ce chapitreSmiley souris


Prenons un exemple:

Imaginons que vous ayez besoin de 5 variables de type int. Vous devez faire ceci:

int variable0;
int variable1;
int variable2;
int variable3;
int variable4;


Là, c'est juste pour 5 variables, imaginez pour plus...
Et bien voici maintenant la même chose sous forme de tableau:

                 int tableau[5]; //Nous définissons un tableau de 5 int.

Remarquez que "tableau" peut être nommé comme vous le souhaitezSmiley souris

Pour accéder à une variable, il suffit de faire ceci:

                 tableau[indice];

Où indice est un nombre (où une variable, c'est pareil).


Par exemple, si nous voulons accéder à la deuxième variable du tableau, il vous faut écrire:
                 tableau[1]; //Non il n'y  pas d'erreur, lisez la suiteSmiley souris

 
panneau attentionAttention! Un tableau commence toujours par l'indice numéro 0! panneau attention
Ce qui veut dire que dans le cas présent, il n'y a pas d'indice numéro 5!
 


Donc la troisième variable du tableau est bien à l'indice numéro 2 (0, 1, 2).

 
Il faut impérativement comprendre cela car c'est une source d'erreurs très très fréquente!


Voyons maintenant comment affecter une valeur à une case du tableau:


tableau[indice] = valeur;

Et oui, c'est super simpleSmiley rigole  Si vous voulez que la case du tableau à l'indice numéro 3 ait pour valeur 46 il suffit d'écrire ceci:


tableau[2] = 46; //Case numéro 3. (Elle vaut maintenant 46).


Comprenez bien que tableau[2] est considéré comme une variable à part entière de type int. Si bien qu'il est parfaitement correct d'écrire ceci pour afficher une case d'un tableau:

printf("%d", tableau[indice]);


Prenons un code complet pour l'exemple:


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


int main()
{
    int monTableau[5]; //Tableau de 5 int (0, 1, 2, 3, 4).

    monTableau[2] = 46;

    printf("montableau[2] vaut %d", monTableau[2]);

    return 0;
}
Ce qui donne bien:
 
exemple tableau tuto C


Les boucles

Ce qui est intéressant avec les boucles, c'est que l'on peut parcourir des tableaux avec une variable et non "manuellement" Smiley souris

Ce que je veux dire par là c'est: essayez d'afficher toutes les valeurs de ce tableau:

int tableau[100];

tableau[0] = 45;
tableau[1] = 84;
tableau[2] = 36;
tableau[3] = 78;
tableau[4] = 12;
tableau[5] = 29;
tableau[6] = 30;

..........................


Vous allez faire quelque chose comme un printf à chaque fois:

printf("%d", tableau[0]);
printf("%d", tableau[1]);
printf("%d", tableau[2]);
printf("%d", tableau[3]);
printf("%d", tableau[4]);


Ba, c'est un peu long quoiSmiley rigole Alors qu'il suffit d'une boucle pour tout afficher:


#define TAILLE_TABLEAU 5 /*Petit rappel sur les defines, qui peuvent servir pour initialiser la taille d'un tableau.*/

int i = 0;
int tableau[ TAILLE_TABLEAU] ;

tableau[0] = 45;
tableau[1] = 84;
tableau[2] = 36;
tableau[3] = 78;
tableau[4] = 12;

while(  i   != TAILLE_TABLEAU)
{
      printf("%d ", tableau[i]);
      i++;
}
Ce qui nous donne:
 
exemple tableau 2 tuto C

C'est beaucoup plus rapideSmiley rigole

À propos de la déclaration de la taille d'un tableau:


Vous ne pouvez pas déclarer la taille d'un tableau avec une variable comme ceci:

int variable = 5;

int tableau[variable];
 
Ceci est incorrect (cela s'appelle un tableau à taille dynamique, incorrect en langage C)


Certaines personnes vont peut-être demander pourquoi on peut mettre un define mais pas une variable pour déclarer un tableau. La réponse est qu'un define n'est pas une variable.
Il s'agit juste, je vous le rappelle, d'un "mot-clé" remplacé à la compilation par un nombre, des instructions, etc...


Grâce aux boucles, vous pouvez aussi initialiser les tableaux facilement comme ceci:


#define TAILLE_TABLEAU 5 /*Petit rappel sur les defines, qui peuvent servir pour initialiser la taille d'un tableau.*/

int i = 0;
int tableau[TAILLE_TABLEAU];


while(i != TAILLE_TABLEAU)
{
      tableau[i] = 0;
      i++;
}



Une autre manière d'initialiser les tableaux est sous cette forme:

int tableau[TAILLE_TABLEAU] = {0}; //Initialise toutes les cases du tableau à zéro.

Notez que le fait de faire ceci:


int tableau[TAILLE_TABLEAU] = {36, 45, 78};

Initialise la première case (n°0) à 36, la seconde (n°1) à 45, la troisième (n°2) à 78 et tout le reste à zéro. Smiley souris
 

Attention! Le fait de marquer ceci:
 
 
int tableau[TAILLE_TABLEAU] = {36};

N'initialise pas toutes les cases à 36 mais seulement la première!
Les autres seront à zéro!


Voilà, maintenant que vous connaissez les tableaux, nous allons (enfinSmiley rigole) voir les chaines de caractères. C'est-à-dire que nous allons, dans le chapitre suivant, apprendre à manipuler du texte!Smiley souris

Allez c'est parti!


   
TP: Administration du FBI                                                        Les chaines de caractères





















 
 
 



Créer un site
Créer un site