You are on page 1of 5

Chapitre 5 Les tableaux

I. Définition

Un tableau est un regroupement, dans une même variable, de plusieurs variables simples,
toutes de même type.
Ils sont caractérisés par le nombre d'éléments et le nombre de dimensions (unidimensionnel
ou multidimensionnel).

Syntaxe:
<type> <identificateur> [nb. éléments de la première dimension]... [nb. éléments de nième
dimension];

II. Tableau à une dimension

II.1. Déclaration

Dans un tableau le premier élément est l'indice 0 et le dernier élément est l'indice
nombre éléments-1.

Exemple :
int i[10]; /*est un tableau nommé i de 10 entiers*/
/* Le premier élément est i[0] */
/* Le dernier élément est i[10-1] -> i[9] */

Si un tableau est formé de N composantes et si une composante a besoin de M octets en


mémoire, alors le tableau occupera de N*M octets.

Remarque :
La taille du tableau doit être une constante (par opposition à variable), donc int t1[n] ; où n
serait une variable déjà déclarée est une mauvaise déclaration. Par contre si on a défini
#define N 100 en directive, on peut déclarer int t1[N] ; car N est alors une constante.

II.2. Initialisation
Lors de la déclaration d'un tableau, on peut initialiser les composantes du tableau, en
indiquant la liste des valeurs respectives entre accolades.
Exemple :

float tab[5] = { 1, 2, 3, 4, 5} ; /* init. de tous les éléments de tab */


float toto[10] = {2, 4, 6} ; /* equ. à toto[0]=2 ; toto[1]=4 ; toto[2]=6 ; */
/* les autres éléments de toto sont mis à 0. */

Remarque :
Si la dimension n'est pas indiquée explicitement lors de l'initialisation, alors l'ordinateur
réserve automatiquement le nombre d'octets nécessaires.
Exemple :
int A[] = {10, 20, 30, 40, 50};
==> Réservation de 5*sizeof(int) octets
Une autre méthode d’initialiser un tableau est d’accéder à chaque élément à parts.

Exemple :

II.3. Affichage d’un tableau unidimensionnel


int A[5];
int I; /* Compteur */
for (I=0; I<5; I++)
printf("%d ,", A[I]); ou bien printf (“x(%d)=%d”,I,A[I]);

II.4. Lecture d’un tableau unidimensionnel


int A[5];
int I; /* Compteur */
for (I=0; I<5; I++)
scanf("%d", &A[I]);

II.5. Somme des éléments d’un tableau unidimensionnel


int A[5] ;
S=0 ;
For(int i=0 ;i<5 ;i++)
S=S+A[i];

II.6. Recherche du maximum dans un tableau unidimensionnel


 par valeur :
Int A[5] ;
Int max=A[0] ;
For(int i=1 ;i<5 ;i++)
If(A[i]>max)max=A[i];
 par adresse :
int kmax=0;
For(int i=1 ;i<5 ;i++)
If(A[i]>A[kmax])kmax= i;

II.7. Recherche d’une valeur dans un tableau unidimensionnel


Existe-t-il un éléments A[i] qui est égal à v ?

 1ère méthode:(toutes les occurrences)

Int A[5] ;
Int k=0 ;
For(int i=0 ;i<5;i++)
If (A[i]==v)
{printf(“trouvé à la position %d”,i);
K++ ;}
If(k==0) printf(“valeur non trouvée “) ;

 2ème méthode:(première occurrence)

Int A[5] ;
i=0 ;
while(A[i] !=v && i<5) i=i+1 ;
if(i>=5) printf(“non trouvée”)
else
printf(“trouvée à la position %d”,i);

II.8. Insertion d’une valeur dans un tableau unidimensionnel


On veut insérer une valeur v à la position k d’un tableau.

Const int n=5 ;


Int A[n] ;
For(int i=4 ;i>=k ;i--)
A[i+1]=A[i];
A[k]=v;
n++;

II.9. Destruction d’une valeur d’un tableau unidimensionnel


On veut détruire une valeur v à la position k d’un tableau.

Const int n=5 ;


Int A[n] ; int k;
For(int k+1 ;i<=n-1k ;i++)
A[i-1]=A[i];
n=n-1;

III. Tableau à deux dimensions

III.1. Déclaration

<type> <identificateur> [nb. lignes] [nb. colonnes];

Exemple :

int tableau[2][3] ; /* tableau de 2 lignes et 3 colonnes */


tableau[i][j] fait référence à l’élément de la ligne i et de la colonne i de tableau. Tout comme
un élément d’un tableau à 1 dimension, tableau[i][j] se manipule comme n’importe quelle
variable

III.2. Initialisation
Lors de la déclaration d'un tableau, on peut initialiser les composantes du tableau, en
indiquant la liste des valeurs respectives entre accolades. A l'intérieur de la liste, les
composantes de chaque ligne du tableau sont encore une fois comprises entre accolades.

Exemple :
III.3. Affichage d’un tableau à deux dimensions
int A[5][10];
int I,J;
/* Pour chaque ligne ... */
for (I=0; I<5; I++)
{
/* ... considérer chaque composante (colonne) */
for (J=0; J<10; J++)
printf("%7d", A[I][J]);
}

III.4. Lecture d’un tableau à deux dimensions


int A[5][10];
int I,J;
/* Pour chaque ligne ... */
for (I=0; I<5; I++)
/* ... considérer chaque composante (colonne) */
for (J=0; J<10; J++)
scanf("%d", &A[I][J]);

Exercice1 :
Ecrire le programme qui lit une liste de Nb nombres, calcule et affiche la moyenne.

Exercice2 :
Saisir une matrice d'entiers 2x2, calculer et afficher son déterminant.

You might also like