Vous êtes sur la page 1sur 10

Langage C

LES TABLEAUX :
Vecteur et Matrice
Par M. FALL BILAL

Juin 2022

ESIA SENEGAL M.B.FALL


1
Langage C

LES TABLEAUX
LES VECTEURS ET MATRICES
I. DEFINITION

A = 10 ici A ne contient que 10 on dit que A est une variable simple. Soit t un tableau contenant
5 éléments

8 6 1 9 7
Tous ces éléments sont de même type, on dit que t est une variable composée c’est-à-dire une
variable pouvant contenir plusieurs éléments de même type.

Un tableau est une variable pouvant contenir un nombre d’éléments tous de même type. Nous
distinguons : les tableaux à une dimension ou vecteur et les tableaux à deux dimensions ou
matrice.

II. TABLEAU A UNE DIMENSION OU VECTEUR

Un vecteur est un ensemble formé d’élément de même type mais constitué d’une ligne et de
plusieurs colonnes. Soit le tableau ci-dessous

T 8 6 1 9 7
T est le nom du tableau ; sa taille est 5 car il contient cinq éléments, soit i une variable de type
entier variant de 1 à 5, chaque élément du tableau est identifié par t[i].

t[1] = 8 t[2] = 6 t[3] = 1 t[4] = 9 t[5] = 7

1. Déclaration

Syntaxe

Type nomTableau[taille];

Exemple : déclaration d’un vecteur t contenant 10 éléments de type entier

int t[10] ,i ;

ou bien

#define n 10

int t[n],i ;

2. Parcours d’un vecteur

Pour parcourir un vecteur ou tout autre type de tableau, nous devons nous servir d’une
boucle : for, while

ESIA SENEGAL M.B.FALL


2
Langage C
a. Initialisation

for(indice = 1; indice <= taille ; indice++) {


nomTableau[indice] = 0;
}

Exemple

for(i = 1; i <= n ; i++) {


t[i] = 0;
}
b. Remplissage

for(indice = 1; indice <= taille ; indice++) {


printf(“saisir un element de rang :%d”,indice) ;
scanf(“format”,&nomtableau[indice]);
}

Exmple
for(i = 1; i <= n ; i++)
{
printf(“saisir un element de indice :%d \n”,i) ;
scanf(“%d ” ;&t[i]);
}
c. Affichage

for(indice = 1; indice <= taille ; indice++) {


printf(“format \t”,nomtableau[indice]);
}

Exemple

for(i = 1; i <= n ; i++) {


printf(“%d \t”,t[i]);
}

ESIA SENEGAL M.B.FALL


3
Langage C
3. Applications 1:

Exercice 1

Soit un vecteur V de 10 éléments de type entier. Ecrire un programme qui permet de remplir
ce vecteur et de l’afficher.

Exercice 2

Soit un vecteur de 5 éléments de type entier. Nous vous demandons de remplir ce vecteur et
de déterminer le maximum et le minimum.

Exercice 3

Soit un vecteur de 5 éléments de type entier. Nous vous demandons de remplir ce vecteur et
de le trier dans l’ordre croissant.

Exercice 4

Soit un vecteur de 5 éléments de type entier. Nous vous demandons de remplir ce vecteur et
d’inverser les éléments du vecteur.

Solutions des applications :

Exercice 1

#include<stdio.h>
#define n 5
int t[n],i;
main()
{
// Initialisation
for(i = 1; i <= n ; i++)
{
t[i] = 0;
}
// Remplissage
for(i = 1; i <= n ; i++)
{
printf("saisir un element de indice :%d \n",i) ;
scanf("%d",&t[i]);
}
// Affichage
system("cls");
for(i = 1; i <= n ; i++)
{
printf("%d\t",t[i]);
}

ESIA SENEGAL M.B.FALL


4
Langage C
Exercice 2

#include<stdio.h>
#define n 5
int t[n],i;
main()
{
// Initialisation
for(i = 1; i <= n ; i++)
{
t[i] = 0;
}
// Remplissage
for(i = 1; i <= n ; i++)
{
printf("saisir un element de indice :%d \n",i) ;
scanf("%d",&t[i]);
}
// Traitement
For(i=1;i<=n;i++){
If(i= =1){
Min=t[i];
Max=t[i];
}else{
If(t[i]<min){
Min= t[i];
}
If(max> t[i]){
Max= t[i];
}
}
}
// Affichage
system("cls");
for(i = 1; i <= n ; i++)
{
printf("%d\t",t[i]);
}

}
Exercice 3

#include<stdio.h>
#define n 5
int t[n],i,j,p;
main()
{
for(i=1;i<=n;i++)
{
t[i]=0;
}

for(i=1;i<=n;i++)
ESIA SENEGAL M.B.FALL
5
Langage C
{
printf("saisir un element de rang %d\n",i);
scanf("%d",&t[i]);
}

for(i=1;i<=n-1;i++)
{
for(j=i+1;j<=n;j++)
{
if(t[j]<t[i])
{
p=t[i];
t[i]=t[j];
t[j]=p;
}
}
}

system("cls");
for(i=1;i<=n;i++)
{
printf("%d\t",t[i]);
}

Exercice 4

#include<stdio.h>
#define n 5
int t[n],i,j,p;
main()
{
for(i=1;i<=n;i++)
{
t[i]=0;
}

for(i=1;i<=n;i++)
{
printf("saisir un element de rang %d\n",i);
scanf("%d",&t[i]);
}
system("cls");
printf("Avant inversion\n");
for(i=1;i<=n;i++)
{
printf("%d\t",t[i]);
}
printf("\n");
// Inversion
i=1;
ESIA SENEGAL M.B.FALL
6
Langage C
j=n;
while(i<j)
{
p=t[i];
t[i]=t[j];
t[j]=p;
i++ ;
j-- ;
}
printf("Avant inversion\n");
for(i=1;i<=n;i++)
{
printf("%d\t",t[i]);
}

}
III. TABLEAU A DEUX DIMENSIONS OU MATRICE

Une matrice est considéré comme un ensemble de plusieurs vecteurs c’est-à-dire plusieurs
ligne et plusieurs colonnes. Les éléments d’une matrice sont tous de même type. Soit une
matrice t de 3 lignes et 4 colonnes, i et j les indice respectifs de ligne et de colonne ; chaque
élément de la matrice est identifier par nomTableau[indiceLigne,indiceColonne] c’est-à-
dire t[i][j].

2 4 6 9 t[1][1] = 2, t[1][2] = 4 . . . t[1][4] = 9


3 7 8 12
t[2][3] = 8
1 5 4 7

1. Déclaration

Syntaxe :

type nomtableau[nombreligne][nombrecolonne]

Exemple : déclaration d’une matrice m de 3 lignes et 4 colonnes de type entier.

#define n 3
#define m 4
int t[n][m],i,j ;
2. Parcours: initialisation, remplissage et affichage

Le Parcours d’une matrice se fait par le biais d’une imbrication de boucle.

a. Initialisation

for(indice1 = 1; indice1 <= nombreLigne ; indice1++) {


for(indice2 = 1; indice2 <= nombreColonne ; indice2++)
{
nomTableau[indice1][indice2] = 0;
ESIA SENEGAL M.B.FALL
7
Langage C
}
}

Exemple:

for(i = 1; i <= n ; i++)


{
for(j = 1; i <= m ; j++)
{
t[i][j] = 0;
}
}

b. Remplissage

for(indice1 = 1; indice1 <= nombreLigne ; indice1++) {


for(indice2 = 1; indice2 <= nombreColonne ; indice2++) {
printf(“saisir un element de ligne :%d et de colonne:%d”,indice1 ;indice2) ;
scanf(“format”,&nomtableau[indice1][indice2]);
}
}
Exemple

for(i = 1; i <= n ; i++)


{
for(j = 1; i <= m ; j++)
{
Printf(“Saisir un element de ligne :%d et de colonne : %d”,I,j);
Scanf(“%d”,&t[i][j]);
}
}

c. Affichage

for(indice1 = 1; indice1 <= nombreLigne ; indice1++)


{
for(indice2 = 1; indice2 <= nombreColonne ; indice2++)
{
printf("format \t”,nomtableau[indice1][indice2]);
}
printf(“\n”) ;
}

Exemple

ESIA SENEGAL M.B.FALL


8
Langage C
for(i = 1; i <= n ; i++) {
for(j = 1; i <= m ; j++) {
Printf(“%d \t”,t[i][j]);
}
Printf(“ \n”);
}
3. Applications : Matrice carrée

Une matrice carrée est un tableau à deux dimensions dont le nombre de ligne est égal au
nombre de colonne.

nombreLigne = nombreColonne c’est-à-dire n = m

donc unitil de déclarer n et m en même temps, la déclaration de n ou suffira largement.

2 4 6
3 7 8
1 5 4

M [][] est une matrice de 3 lignes et 3 colonnes

a. Diagonale principale

2 4 6
3 7 8
1 5 4

• A tout élément de la diagonale principale ou diagonale descendance


indiceLigne=indiceColonne c’est-à-dire i = j.

M[1][1] = 2

M[2][2] = 7

M[3][3] = 4

• Parcours de la diagonale principale

for(indice1=1 ;indice <= nombreligne;indec1++){


indice2=indice1;
traitement;
}
Exemple : Copie des éléments de la diagonale principale dans un vecteur V

k=1; // initialisation du vecteur V en plaçant k sur le premier élément.


for(i=1 ;i<=n ;i++){
j=i ;
V[k]= M [i][j] ;
k+k+1 ;
ESIA SENEGAL M.B.FALL
9
Langage C
}

b. Diagonale secondaire
2 4 6
3 7 8
1 5 4
Pour cette diagonale indiceLigne commence à n et est décrémenté jusqu’à 1 tandis que
l’indiceColonne commence de 1 à n.
M[3][1] = 1

M[2][2] = 7

M[1][3] = 6

• Parcours de la diagonale secondaire

Indice1 = nombreLigne ;
for(indice2=1 ;indice2 <= nombreColonne;indice2 + +){
traitement;
indiceLigne - -;
}

4. Application : Exercice

Soit un matrice carré M d’ordre 3 d’éléments de type entier, remplir cette matrice et effectuer
les opérations suivantes :

• Copier les éléments de la diagonale descendante dans un vecteur nommé A


• Inverser les éléments de A.

ESIA SENEGAL M.B.FALL


10

Vous aimerez peut-être aussi