Vous êtes sur la page 1sur 18

Chapitre 5 Les tableaux

1 GM 1
Plan

Introduction

Tableaux à une dimension

Tableaux à deux dimensions

Tableaux à n dimensions

1 GM 2017/2018 2
Introduction
Introduction du concept :
Exemple : Écrire un programme C qui calcule la somme de 10
entiers saisis par l’utilisateur.

1ère Solution :
#include<stdio.h>
main( )
{
int a, b, c, … ;
scanf ("%d %d…", &a , &b , &c , …) ;
Som = a + b + c … ;
printf ("La somme = %d", Som) ;
}

2ème Solution : Utilisation d’un Tableau


1 GM 2017/2018 3
Tableaux à une dimension
Définition :
Un tableau est une structure de données qui permet de
manipuler plusieurs valeurs de même type en utilisant un seul
nom de variable.

Déclaration
Syntaxe :
Type Nom[Dim] ;

Avec :
Type : Type des éléments du tableau.
Nom : Nom du tableau
Dim : Dimension du tableau
1 GM 2017/2018 4
Tableaux à une dimension
Exemple : float Moyenne [5];

Moyenne
0 1 2 3 4

Remarques :
L’indice du premier élément est toujours 0.
L’indice du dernier élément est alors dim-1.
Il est possible d’affecter directement le contenu d’un tableau
à un autre tableau (T2 = T1) ⇒ Les deux tableaux doivent
avoir le même type des éléments ainsi que la même taille.
La comparaison de deux tableaux se fait obligatoirement
élément par élément.

1 GM 2017/2018 5
Tableaux à une dimension
Accès aux éléments :
Syntaxe :
Nom [indice]

Exemples :
// Affecter la valeur 17 au 2ème élément du tableau
Moyenne[1] = 17 ;

// Saisie de la valeur du 5ème élément du tableau


scanf( “ %f “ , &Moyenne[4] );

// Affichage de la valeur du 5ème élément du tableau


printf( “ %f “ , Moyenne[4] );

1 GM 2017/2018 6
Tableaux à une dimension

Exercice :

Écrire un programme C qui permet de :

Lire et d’afficher un tableau T de 10 entiers.

Calculer la somme des éléments de T.

Chercher le maximum et le minimum de T.

1 GM 2017/2018 7
Tableaux à une dimension
#include<stdio.h>
main( )
{
int T[10] ; // Déclaration d’un tableau de 10 entiers
int i, Som, Max, Min ;

// Lire le tableau T
for( i = 0 ; i < 10 ; i++)
{
printf ("Donner l’élément d’indice %d", i) ;
scanf ("%d", &T[i]) ;
}

// Affichage du tableau T
for( i = 0 ; i < 10 ; i++)
printf (" %d \t", T[i] );

1 GM 2017/2018 8
Tableaux à une dimension

// Somme de T
Som = 0;
for( i = 0 ; i < 10 ; i++ )
Som = Som + T[i] ;
printf(" La somme de T = %d " , Som) ;

// Maximum et minimum de T
Max = T[0] ; // initialisation du maximum
Min = T[0] ; // initialisation du minimum
for( i = 1 ; i < 10 ; i++ )
if( T[i] > Max )
Max = T[i] ;
else
if( T[i] < Min )
Min = T[i] ;
printf (" Le max de T = %d et min de T = %d " , Max , Min);
}
1 GM 2017/2018 9
Tableaux à deux dimensions
Introduction du concept :
Exemple : Écrire un programme C qui permet de lire les
moyennes des étudiants de l’IIT (10 classes dont chacune ne
dépasse pas 20 étudiants).
1ère Solution :
main( )
{
float 1GM[20] ;
float 2GM[20] ;

}
2ème Solution : Utilisation d’un tableau à deux dimension
⇒ Matrice sous forme de lignes et de colonnes
1 GM 2017/2018 10
Tableaux à deux dimensions
Déclaration :
Syntaxe :
Type Nom [Dim1] [Dim2] ;
Avec :
Type : Type des éléments du tableau
Nom : Nom du tableau
Dim1 : Nombre de lignes
Dim2 : Nombre de colonnes

0 1 2 3
Exemple :
0
float M [3] [4] ;
M 1
2

1 GM 2017/2018 11
Tableaux à deux dimensions
Accès aux éléments :
Syntaxe :
Nom [indice Ligne] [indice Colonne]
Exemples :
//Affecter 22 à l’élément de la ligne 2 et de la colonne 3
M [1] [2] = 22 ;

//Saisie de l’élément de la ligne 3 et de la colonne 1


scanf ( “ %f “ , &M[2][0] ) ;

//Affichage de l’élément de la ligne 3 et de la colonne 1


printf ( “ %f “ , M[2][0] ) ;

Représentation d’une matrice :


M[0] [0] M[0] [1] M[0] [2] M[0] [3]
M M[1] [0] M[1] [1] M[1] [2] M[1] [3]
M[2] [0] M[2] [1] M[2] [2] M[2] [3]
1 GM 2017/2018 12
Tableaux à deux dimensions

Exercice :

Écrire un programme C qui permet de :

Lire et d’afficher une Matrice M de 7 lignes et 5


colonnes.

Calculer la somme de des éléments de M.

Chercher le maximum et le minimum de M.

1 GM 2017/2018 13
Tableaux à deux dimensions
#include<stdio.h>
main( )
{
int M[7][5] ; // Déclaration d’un tableau d’entiers
// 7 lignes et 5 colonnes
int i , j , Som , Max , Min ;

// Saisie de la matrice M
for ( i = 0 ; i < 7 ; i++ )
for ( j = 0 ; j < 5 ; j++)
{
printf ("Donner un élément ");
scanf("%d", &M[i][j]);
}

1 GM 2017/2018 14
Tableaux à deux dimensions

// Affichage de la matrice M
for ( i = 0 ; i < 7 ; i++ )
for ( j = 0 ; j < 5 ; j++ )
printf(“%d“, M[i][j]);

// Somme de la matrice M
Som = 0;
for ( i = 0 ; i<7 ; i++)
for ( j = 0 ; j < 5 ; j++)
Som = Som + M[i] [j];
printf (“La somme de M = %d“, Som);

1 GM 2017/2018 15
Tableaux à deux dimensions

// Maximum et minimum de T
Max = M[0] [0] ; // initialisation du maximum
Min = M[0] [0] ; // initialisation du minimum

for ( i = 0 ; i < 7 ; i++)


for ( j = 0 ; j < 5 ; j++)
if ( M[i] [j] > Max )
Max = M[i] [j] ;
else
if( M[i] [j] < Min )
Min = M[i] [j] ;
printf( "Le max de M = %d et le min de M = %d“ , Max ,
Min);
}

1 GM 2017/2018 16
Tableaux à n dimensions
Déclaration :
Type Nom [Dim1] [Dim2] … [Dimn] ;

Accès aux éléments :


Nom [Ind1] [Ind2] … [Indn];

Manipulation des éléments (Lecture, Ecriture, Traitements) :


for( i = 0 ; i < dim1 ; i++)
for( j = 0 ; j < dim2 ; j++)

for( z = 0 ; z < dimn ; z++)
{

}
1 GM 2017/2018 17
Fin chapitre 5

1 GM 2017/2018 18