Vous êtes sur la page 1sur 83

République Algérienne Démocratique et Populaire

Ministère de l’Enseignement Supérieur et de la Recherche Scientifique


Université Mouloud Mammeri de Tizi-Ouzou
Faculté de Génie Electrique et d’Informatique
Département d’Informatique

UMMTO

Algorithmique et structures de données


(Algorithmic and Data Structures)

Présenté par: Dr. AIT ISSAD Hassina


E-mail : hassina.aitissad@ummto.dz

Public Cible: Première Année Ingénieur en Informatique Promotion 2023-2024


Objectifs/Objectives

1. Comprendre la notion des vecteurs et des • Understand the concept of vectors and
matrices matrices
2. Savoir comment déclarer et accéder aux • Know how to declare and access
éléments d'un vecteur ou d'une matrice elements of a vector or matrix
3. Apprendre à manipuler des vecteurs et • Learn how to manipulate vectors and
des matrices matrices.
Chapitre 5 : Types structurés (vecteurs + matrices)

I. Définition
II. Les tableaux à une dimension (Vecteurs)
1. Définition
2. Déclaration
3. Accès aux éléments d’un vecteur
4. Manipulation des vecteurs

III. Les tableaux à deux dimensions (Matrices):


1. Définition
2. Déclaration
3. Accès aux éléments d’une matrice
4. Manipulation des Matrices
Chapitre 5 : Types structurés

I. Définition Données

Données élémentaires (entiers,


Données structurées
caractères, réels…etc,)

Semestre 1 Semestre 2

Structures statiques Structures dynamiques

Structures Structures Structures Structures non


Homogènes Hétérogènes linéaires linéaires
Chapitre 5 : Types structurés

I. Définition

Un type structuré statique se compose d’un nombre fixe de données


élémentaires qui sont reliées entre elles d’une certaine façon.

• Si tous les éléments de la structure sont du même type, on l'appelle


une structure homogène (tableaux et ensembles). Cependant, si les
éléments sont de types différents, on parle alors d'une structure
hétérogène (enregistrements).
Chapitre 5 : Types structurés
II. Les tableaux à une dimension (Vecteurs):
1. Définition:
 On appelle un tableau à une dimension ou un vecteur V d’ordre n, un
ensemble de n éléments du même type (simple).
 Un vecteur est une structure de données permettant de ranger un
nombre fini d’éléments de même type.

Un vecteur est caractérisé par :

 Son nom
 Sa dimension (longueur de V)
 Son type.
Chapitre 5 : Types structurés
II. Les tableaux à une dimension (Vecteurs):
1. Définition:
Exemple 01

un vecteur V de 6 éléments peut être représenté comme suit:

N=6 : taille
1 2 3 4 5 6

V 12 14,5 15,75 20 06 10

Nom du tableau Elément n°2 Valeur

Type du tableau: Réel


* Ce vecteur est constitué de 6 éléments
Chapitre 5 : Types structurés
II. Les tableaux à une dimension (Vecteurs):
1. Définition:

❑ Chaque élément est repéré dans le tableau par son indice, un


nombre entier compris entre 1et n .
indice
N=6 : taille
1 2 3 4 5 6

V 12 14,5 15,75 20 06 10

Elément n°2 Valeur


Nom du tableau

L'accès à un élément du tableau s'effectue en précisant le nom


du tableau suivi de la valeur de l'indice entre crochets
Chapitre 5 : Types structurés
II. Les tableaux à une dimension (Vecteurs):
1. Définition:

V[1] représente le contenu du 1er élément de V


V[2] représente le contenu du 2ème élément de V
V[4] représente le contenu du 4ème élément de V

V[n] représente le contenu du nième élément de V

V[i] représente le contenu du ième élément de V


Chapitre 5 : Types structurés
II. Les tableaux à une dimension (Vecteurs):
2. Déclaration:

La déclaration d'un tableau se fait comme suit:

01 Syntaxe:
Var nomTableau : Tableau[indiceMminimal .. indiceMaximal] de Type;

Exemple :

Var Notes : Tableau[1 .. 10] de Réel;

• Dans cet exemple, on a déclaré un tableau appelé Notes d’indice minimal 1


et d’indice maximal 10 qui contient donc 10 cases de nombres réels
Chapitre 5 : Types structurés
II. Les tableaux à une dimension (Vecteurs):
2. Déclaration:

La déclaration d'un tableau peut se faire aussi comme suit:

02 Syntaxe:
Type TypeTableau = Tableau[indiceMminimal .. indiceMaximal] de
Type;
Var nomTableau : TypeTableau;

Exemple : Type TypeNotes : Tableau[1 .. 10] de Réel;


Var Notes : TypeNotes;
Nous avons définit un type vecteur qu'on a appelé TypeNotes, puis on a
déclaré Notes de type TypeNotes
Chapitre 5 : Types structurés
II. Les tableaux à une dimension (Vecteurs):
2. Déclaration:

Remarque
• Un vecteur doit avoir une taille fixe connue à la compilation.

• Cette taille peut être une valeur littérale ou une constante mais pas
une variable.
Chapitre 5 : Types structurés
II. Les tableaux à une dimension (Vecteurs):
3. Accès aux éléments d’un vecteur

Les éléments d'un vecteur V sont des variables indicées qui s'utilisent
exactement comme n'importe quelles autres variables classiques.

une variable indicée s’écrit:

V[ Indice ] OU bien V[ Expression ]

Expression: est une expression de type entier qui détermine l’indice


(le rang, la position) de l’élément sélectionné dans le tableau.
Chapitre 5 : Types structurés
II. Les tableaux à une dimension (Vecteurs):
3. Accès aux éléments d’un vecteur

Exemple :

• V[1] représente le contenu du 1er élément de V. Il désigne l’élément de


rang 1 dans le tableau V (=12).

• V[1+5] représente le contenu du 6ième élément de V. Il désigne l’élément


de rang 6 dans le tableau V (=10).
Chapitre 5 : Types structurés
II. Les tableaux à une dimension (Vecteurs):
4. Manipulation des Vecteurs

Nous pouvons effectuer sur les variables de type vecteur certaines


opérations comme :
1- l’affectation,
2- la comparaison de deux tableaux,
3- la lecture et l’écriture,
4- la recherche séquentielle d’information dans un vecteur , la recherche
par dichotomie,..etc
Chapitre 5 : Types structurés
II. Les tableaux à une dimension (Vecteurs):
4. Manipulation des Vecteurs
4.1 Affectation
• Les éléments d’un vecteur V1 peuvent être manipulés comme toutes autres
types de variables comme suit :

V1[ 1 ] x ; // x est une variable avec une valeur définie

V1[ 2 ]  2;

V1[ 3 ] V1[1] + V1[2];

V1[ i ]  V1[i + 1] + 2; // la variable i prend des valeurs dans l’intervalle de 1 à 5


Chapitre 5 : Types structurés
II. Les tableaux à une dimension (Vecteurs):
4. Manipulation des Vecteurs
4.1 Affectation
⚫ La seule opération globale que nous pouvons effectuer sur deux
tableaux de même type, est l’affectation
⚫Var T : Tableau[1 .. 4] de Réel
Exemple : ⚫Var V : Tableau[1 .. 4] de Réel
V
20 5 4 12

T
TV;
T 20 5 4 12
Chapitre 5 : Types structurés
II. Les tableaux à une dimension (Vecteurs):
4. Manipulation des Vecteurs
4.2 Lecture (ou Remplissage) et Ecriture (ou Affichage) d’un vecteur
• On ne peut pas lire ou écrire un vecteur globalement

Lire(V) ; Ecrire(V) ;

On peut remplir/ afficher un Vecteur V de n éléments par une suite d’instructions


de lecture/ d’ecriture comme suit :
Remarque:
Lire(V[1]) ; Ecrire(V[1]) ;
Lire(V[2]) ; Ecrire(V[2]) ; • L’instruction Lire/Ecrire est répétée n fois
: • Afin d’éviter cette répétition, Une boucle “Pour”
:
Lire(V[n]) ; Ecrire(V[n]) ; est généralement utilisée.
Chapitre 5 : Types structurés
II. Les tableaux à une dimension (Vecteurs):
4. Manipulation des Vecteurs
4.2 Lecture (ou Remplissage) et Ecriture (ou Affichage) d’un vecteur

Lecture Ecriture

Pour i 1 à taille_tableau faire Pour i 1 à taille_tableau faire


Lire(V[i]); Ecrire(V[i]);
FinPour FinPour
Chapitre 5 : Types structurés
II. Les tableaux à une dimension (Vecteurs):
4. Manipulation des Vecteurs

Exemples d'application

011- Ecrire l’algorithme qui permet de remplir un vecteur d’entiers de


taille 7 puis l’afficher.

022- Ecrire l’algorithme qui permet de remplir un vecteur de 7 réels


correspondant aux températures journalières d'une semaine donnée
puis l’afficher.

033- Calculer le nombre de températures supérieures à leur moyenne.


Chapitre 5 : Types structurés
II. Les tableaux à une dimension (Vecteurs):
4. Manipulation des Vecteurs

Algorithme lec_ecr_vect; Exemple 01


Type
Vect=tableau[1..7] de entier;
Var V: Vect;
i: entier;
Remplissage
Début
Pour i1 à 7 faire
Lire(V[i]);
FinPour Affichage
Pour i 1 à 7 faire
Ecrire(V[i]);
FinPour
Fin
Chapitre 5 : Types structurés
II. Les tableaux à une dimension (Vecteurs):

Algorithme Moyenne_temp; Exemple 02


Type
Vect=tableau[1..7] de réel;
Var V: Vect;
i: entier;
Début Remplissage
Pour i1 à 7 faire
Ecrire ("Donner la température du jour N° ", i );
Lire(V[i]);
FinPour Affichage
Pour i 1 à 7 faire
Ecrire(V[i]);
FinPour
Fin
Chapitre 5 : Types structurés
II. Les tableaux à une dimension (Vecteurs):
4. Manipulation des Vecteurs

Attention !
• Le nom d’un tableau n’est jamais utilisé seul.

• Dans toutes les instructions (saisie, affichage, calcul, test, …), il est
toujours suivi d’un indice entre crochets.
Chapitre 5 : Types structurés
II. Les tableaux à une dimension (Vecteurs):
4. Manipulation des Vecteurs
4.3 Comparaison de deux vecteurs

 Lorsque deux vecteurs sont de même type, nous pouvons


les comparer .
 La comparaison se fait élément par élément .

Exercice
Ecrire l'algorithme qui permet de saisir deux tableaux à une
dimension et comparer si ils sont égaux.
Chapitre 5 : Types structurés
II. Les tableaux à une dimension (Vecteurs):
4. Manipulation des Vecteurs
4.4 Méthodes de recherche d’un élément dans un tableau

Deux algorithmes mis en œuvre pour la recherche


d’éléments dans un tableau :

A) La recherche linéaire
B) La recherche dichotomique
II. Les tableaux à une dimension (Vecteurs):
4. Manipulation des Vecteurs
4.4 Méthodes de recherche d’un élément dans un tableau
A) La recherche linéaire (ou séquentielle : Cas où le tableau n’est
pas trié)
❑ Etant donné V un tableau à n éléments non triés et une valeur K du même
type que les éléments du tableau V, la recherche séquentielle ( linéaire)
consiste à vérifier si l’élément K apparait dans le tableau V. Pour cela, nous
examinons les éléments de V , un par un, en avançant dans le tableau
jusqu’à ce que nous rencontrions K ou jusqu'à la fin du vecteur .

❑ Dans ce type de recherche, chaque valeur du tableau V est visitée une par
une de manière ordonnée tout en vérifiant si la valeur souhaitée existe.
II. Les tableaux à une dimension (Vecteurs):
4. Manipulation des Vecteurs
4.4 Méthodes de recherche d’un élément dans un tableau
A) La recherche linéaire (ou séquentielle : Cas où le tableau n’est
pas trié)

 On peut dire que l’élément cherché (K) existe si on rencontre un


élément du tableau égal à K, dans ce cas on n’est pas obligé de
terminer tous les autres éléments restants.

 On peut dire que K n’existe pas si on parcourt tous les éléments et on


ne trouve aucun élément du tableau égal à K.

 Si le vecteur contient plusieurs fois K, on retourne l’indice du premier.


II. Les tableaux à une dimension (Vecteurs):
4. Manipulation des Vecteurs
4.4 Méthodes de recherche d’un élément dans un tableau
A) La recherche linéaire (ou séquentielle : Cas où le tableau n’est
pas trié)
Remarque
 Dans le meilleur des cas, l'élément recherché se trouve au tout début
du vecteur, ce qui permet de le trouver facilement de manière
séquentielle.
 En revanche, le pire cas serait que l'élément se trouve à la toute fin du
vecteur, car il faudrait plus de temps pour rechercher tous les éléments de
manière séquentielle avant de finalement le trouver.
4.4 Méthodes de recherche d’un élément dans un tableau
A) La recherche linéaire (ou séquentielle : Cas où le tableau n’est
pas trié)

Algorithme
Algorithme reche_sequentielle ;
Const N=10
Var V: Tableau[1 .. N] de entier;
K, i: entier ;
Début
Ecrire ( " Remplissage de V ");
Pour i 1 à N faire
Lire( V[i] ) ;
FinPour
Ecrire (" saisir la valeur de K ");
Lire (K);
4.4 Méthodes de recherche d’un élément dans un tableau
A) La recherche linéaire (ou séquentielle : Cas où le tableau n’est
pas trié)
Suite
// Recherche séquentielle
i  1;
TantQue (i <= N) ET (V[i]<>K) faire
ii+1;
Fin TanQue
Si ( i>N) alors
Ecrire (" l’’element " ,K, "n’existe pas dans V " );
Sinon
Ecrire (" l’’element ", K , " est à la position ",i);
finSi
Fin
II. Les tableaux à une dimension (Vecteurs):
4. Manipulation des Vecteurs
4.4 Méthodes de recherche d’un élément dans un tableau
A) La recherche linéaire (ou séquentielle : Cas où le tableau est
trié)

⚫Lorsque le tableau V est ordonné par ordre croissant par exemple,


(c’est-à-dire V[1]≤ V[2] ≤ V[3] ≤ …. ≤ V[n]) alors , nous recherchons
l’élément K en avançant dans le vecteur V jusqu’à ce que nous
rencontrions un élément supérieur ou égal à K.
4.4 Méthodes de recherche d’un élément dans un tableau
A) La recherche linéaire (ou séquentielle : Cas où le tableau est
trié)
Suite
// Recherche séquentielle
i  1;
TantQue (i < N) ET (V[i]<K) faire
ii+1;
Fin TanQue
Si (V[i]<>K) alors
Ecrire (" l’’element " ,K, "n’existe pas dans V " );
Sinon
Ecrire (" l’’element ", K , " est à la position ",i);
finSi
Fin
4.4 Méthodes de recherche d’un élément dans un tableau
A) La recherche linéaire (ou séquentielle : Cas où le tableau est
trié)
Exemple :

21 33 34 36 40 52 55 58
1 2 3 4 5 6 7 8

 Recherche de la valeur 34 : Arrêt du parcours à la rencontre du composant


34.

 Recherche de la valeur 37 : Arrêt du parcours à la rencontre du composant


40 (première valeur supérieure à 37).
4.4 Méthodes de recherche d’un élément dans un tableau
B) La recherche dichotomique

⚫L’inconvénient de la recherche linéaire est que nous risquons de parcourir


un tableau avec un nombre très important d’éléments, sans trouver la valeur
cherchée, pour y remédier, il existe une méthode plus efficace :

Recherche dichotomique

• On suppose ici que l’on dispose d’un tableau trié par ordre croissant et
qu’on souhaite savoir si un élément fixé K figure ou non dans la liste.
4.4 Méthodes de recherche d’un élément dans un tableau
B) La recherche dichotomique
Principe
La recherche dichotomique consiste à comparer l’élément, ou un des deux
éléments, qui se trouve au centre de la liste avec l’élément recherché ;

 Si cet élément central est égal à l’élément recherché, c’est terminé ;


 S’il est supérieur à l’élément recherché, on abandonne la moitié droite de
la liste (correspondant aux éléments plus grands que l’élément central) et
on recommence avec la liste formée par la moitié gauche (correspondant
aux éléments plus petits que l’élément central) de la liste initiale ;
4.4 Méthodes de recherche d’un élément dans un tableau
B) La recherche dichotomique
Principe

 s’il est inférieur à l’élément recherché, on abandonne la moitié gauche de la


liste et on recommence avec la liste formée par la moitié droite . Et ainsi de
suite jusqu’à ce que la liste restante soit vide ou bien avoir trouvé l’élément
cherché.

 Les données sont rangées dans un tableau T entre les indices 1 et n.


 On utilise trois variables entières notées gauche (g), droite(d) et milieu(m).
 On utilise aussi une variable booléenne notée trouve.
 L’élément recherché s’appelle K.
4.4 Méthodes de recherche d’un élément dans un tableau
B) La recherche dichotomique
Algorithme
Algorithme rech_dichotomique ;
Var T : tableau [1..100]de entier ;
G,D,m,K,n : entier ;
Trouve : booleen ;

Début
//le tableau est supposé déjà rempli et trié

Ecrire (‘ donner l’élément que vous voulez chercher ‘) ;


Lire(K) ;
g←1;
d←n;
trouve ← faux ;
4.4 Méthodes de recherche d’un élément dans un tableau
B) La recherche dichotomique

tant que ((trouve = faux) et (g <= d)) Faire


Algorithme
m ← (g + d)div 2 ;
Si K < T[m] alors
dm–1;
sinon
Si (K > T[m]) alors
g←m+1;
sinon
trouve ← vrai ; //car K = T [m]
Finsi
Finsi
fintantque;
Si trouve alors
Ecrire (K ,‘ trouvé à la position‘, m) ;
Sinon
Ecrire (K , ‘ n’existe pas dans le tableau’) ;
Finsi
FIN.
4. Manipulation des Vecteurs
4.5 Les algorithmes de tri
⚫ Un algorithme de tri est un algorithme qui permet d'organiser une
collection d'objets selon une relation d’ordre déterminée ( croissant ou
décroissant ).

⚫ Un tableau V est dit trié S’il est ordonné par ordre croissant ou
décroissant:

1. V[1]≤ V[2] ≤ V[3] ≤ …. ≤ V[n] // ordonnépar ordre croissant


2. V[1]≥V[2] ≥ V[3] ≥ …. ≥ V[n] // ordonné par ordre décroissant
4. Manipulation des Vecteurs
4.5 Les algorithmes de tri
Comment vérifier si V est trié?
Algorithme
01/02
Algorithme Vect_Trie ;
Const N=10
Var V: Tableau[1 .. N] de entier;
i: entier ;
Début
Ecrire ( " Remplissage de V ");
Pour i 1 à N faire
Lire( V[i] ) ;
FinPour
4. Manipulation des Vecteurs
4.5 Les algorithmes de tri
Comment vérifier si V est trié?
Suite
Algorithme 01
i 1;
tantQue(i < N) ET (V[i] <= V[i+1])) faire
ii+1;
FinTantQue
Si i= N alors
Ecrire("le tableau est trié");
Sinon
Ecrire("le tableau n’’est pas trié");
Finsi
Fin
4. Manipulation des Vecteurs
4.5 Les algorithmes de tri

Comment vérifier si V est trié?


i1; Trievrai; Suite
TantQue(i < N) ET (Trie) faire Algorithme 02
Si (V[i]<=V[i+1]) alors
ii+1;
Sinon
Trie=faux;
FinSi
FinTantQue
Si Trie= vrai alors
Ecrire("le tableau est trié");
Sinon
Ecrire("le tableau n’’est pas trié");
Finsi
4. Manipulation des Vecteurs
4.5 Les algorithmes de tri

Il existe plusieurs algorithmes de tri:

i. Tri par sélection


ii. Tri par insertion
iii. Tri à bulle
4. Manipulation des Vecteurs
4.5 Les algorithmes de tri
3.5.1 Tri par sélection Principe : Tri croissant

1. Rechercher le plus petit élément du vecteur et l’échanger avec


l’élément d’indice 1.
2. Rechercher le second plus petit élément du vecteur et l’échanger avec
l’élément d’indice 2,
3. Continuer de cette façon jusqu’à ce que le vecteur soit entièrement trié.

Considérons un vecteur V de 5 éléments (indices de 1 à 5).


Après le tri
Objectif
5 3 2 1 4 1 2 3 4 5
4. Manipulation des Vecteurs
4.5 Les algorithmes de tri
4.5.1 Tri par sélection

Algorithme
Algorithme tri_par_selection;
Const n=5;
Var V: tableau [1..n] de entier;
Vinter, i,j: entier;

Début
Pour i←1 à n faire
écrire ("Donner l''élément du tableau" , i);
Lire (V[i]);
FinPour
4. Manipulation des Vecteurs
4.5 Les algorithmes de tri
4.5.1 Tri par sélection
Pour i ← 1 à n-1 faire Suite
indmin ← i; // indmin : indice minimum
Pour j ← i +1 à n faire
Si V[j] < V[indmin] alors
indmin ← j;
FinSi
FinPour
Si indmin <> i alors
Vinter ← V[i]; // Vinter: variable intermédiaire
V[i] ← V[indmin];
V[indmin] ← Vinter;
FinSi
FinPour
4. Manipulation des Vecteurs
4.5 Les algorithmes de tri
4.5.2Tri par insertion
Principe de tri par insertion

Le principe peut être décrit plus en détail en suivant ces étapes :

1. Tout d'abord, on considère la première valeur de la liste comme une liste


triée de un élément.
2. Ensuite, on parcourt les éléments restants de la liste et pour chaque
élément, on le compare avec les éléments déjà triés jusqu'à trouver sa
position appropriée.
3. On déplace alors les éléments pour faire de la place pour l'élément à insérer.
4. On répète ce processus jusqu'à ce que tous les éléments soient dans
l'ordre souhaité.
4. Manipulation des Vecteurs
4.5 Les algorithmes de tri
4.5.2Tri par insertion
Code

Pour i ← 2 à n faire
Vint ← V[i] ; // mémoriser V[i] dans Vint
j ← i -1;
tant que (j >=1 et V[j] > Vint) faire // décaler les éléments
V[j+1] ← V[j ];
j ← j – 1;
Fintantque
V[j+1] ← Vint; // placer Vint dans le "trou" laissé par le décalage
Finpour
4. Manipulation des Vecteurs
4.5 Les algorithmes de tri
4.5.2Tri par insertion

Exemple :

Trier le vecteur suivant en utilisant le tri par insertion.

42 20 17 13 28 14 23 15
4.5.2Tri par insertion
Exemple

42 20 17 13 28 14 23 15

i=2 20 42 17 13 28 14 23 15

i=3 17 20 42 13 28 14 23 15

i=4 13 17 20 42 28 14 23 15

i=5 13 17 20 28 42 14 23 15

i=6 13 14 17 20 28 42 23 15
i=7 13 14 17 20 23 28 42 15
i=8 13 14 15 17 20 23 28 42
4. Manipulation des Vecteurs
4.5 Les algorithmes de tri
4.5.3Tri à bulles Principe

Son principe est de


1. Comparer les éléments adjacents (02 éléments consécutifs) du vecteur,
2. Echanger ces deux éléments consécutifs si il ne sont pas dans l'ordre,
3. Continuer ce processus jusqu'à ce qu'il n'y ait plus d’échange (1-2) (cad le
vecteur est trié)
4. Manipulation des Vecteurs
4.5 Les algorithmes de tri
4.5.3Tri à bulles
Algorithme
Algorithme tri_a_bulles;
Const n=5;
Var V: tableau [1..n] de entier;
x, i: entier;
permut: booleen;
Début
Pour i←1 à n faire
écrire (' Donner l''élément du tableau ', i);
Lire (V[i]);
FinPour;
4. Manipulation des Vecteurs
4.5 Les algorithmes de tri
4.5.3Tri à bulles
Algorithme
Répéter
permut ←faux;
Pour i←1 à n-1 faire
Si (V[i+1]<V[i]) alors
x← V[i];
V[i]←V[i+1];
V[i+1]←x;
permut←vrai;
finsi;
FinPour;

jusqu'à (permut=faux);
Fin
4.5.3Tri à bulles
Exemple

Itération 1 42 20 17 13 28 14 23 15
20 42 17 13 28 14 23 15
20 17 42 13 28 14 23 15
20 17 13 42 28 14 23 15

20 17 13 28 42 14 23 15
20 17 13 28 14 42 23 15
20 17 13 28 14 23 42 15

20 17 13 28 14 23 15 42
4.5.3Tri à bulles
Exemple

Itération 2 20 17 13 28 14 23 15 42

17 20 13 28 14 23 15 42
17 13 20 28 14 23 15 42
17 13 20 28 14 23 15 42
17 13 20 14 28 23 15 42
17 13 20 14 23 28 15 42
17 13 20 14 23 15 28 42

17 13 20 14 23 15 28 42
4.5.3Tri à bulles
Exemple

Itération 3
17 13 20 14 23 15 28 42

13 17 20 14 23 15 28 42
13 17 20 14 23 15 28 42
13 17 14 20 23 15 28 42
13 17 14 20 23 15 28 42
13 17 14 20 15 23 28 42

13 17 14 20 15 23 28 42

13 17 14 20 15 23 28 42
4.5.3Tri à bulles
Exemple

Itération 4 13 17 14 20 15 23 28 42
13 17 14 20 15 23 28 42

13 14 17 20 15 23 28 42
13 14 17 20 15 23 28 42
13 14 17 15 20 23 28 42
13 14 17 15 20 23 28 42

13 14 17 15 20 23 28 42
4.5.3Tri à bulles
Exemple

Itération 5
13 14 17 15 20 23 28 42

13 14 17 15 20 23 28 42

13 14 17 15 20 23 28 42
13 14 15 17 20 23 28 42
13 14 15 17 20 23 28 42
13 14 15 17 20 23 28 42

13 14 15 17 20 23 28 42
4.5.3Tri à bulles
Exemple

Itération 6
13 14 15 17 20 23 28 42

13 14 15 17 20 23 28 42
13 14 15 17 20 23 28 42

13 14 15 17 20 23 28 42
13 14 15 17 20 23 28 42

13 14 15 17 20 23 28 42

13 14 15 17 20 23 28 42

permut=faux donc je sors de la boucle Répéter


II. Les tableaux à une dimension (Vecteurs):
4. Manipulation des Vecteurs
4.6 Fusionner deux tableaux
Ecrire un algorithme qui permet de fusionner deux tableaux dans un
troisième.

T 12 5 9 8 20 5
Exemple: V 15 19 0 96 86 29 8 12 8

Fusionner
T et V

F 12 5 9 8 20 15 19 0 96 86 29 8 12
13
II. Les tableaux à une dimension (Vecteurs):
4. Manipulation des Vecteurs
4.6 Fusionner deux tableaux

❑ Déclarer les 3 tableaux:


T N éléments

V M éléments

F N+M éléments

❑ Remplir les deux tableaux T et V


❑ Fusionner les deux tableaux T et V ( remplir le tableau F)
II. Les tableaux à une dimension (Vecteurs):
4. Manipulation des Vecteurs
4.6 Fusionner deux tableaux

Algorithme
Algorithme fusion; 01
Const N=10;
M=20;
Var T:tableau [1..N] de entier ;
V:tableau [1..M] de entier ;
F:tablau [1..N+M] de entier ;
i,j :entier ;
Début
//remplir les deux tableaux
II. Les tableaux à une dimension (Vecteurs):
4. Manipulation des Vecteurs
4.6 Fusionner deux tableaux

Suite
// Remplir le tableau T
Pour i  1 à N faire
Lire (T[i]);
FinPour
//Remplir le tableau V
Pour j  1 à M faire
Lire (V[j]);
FinPour
II. Les tableaux à une dimension (Vecteurs):
4. Manipulation des Vecteurs
4.6 Fusionner deux tableaux

//Remplir le tableau F
Pour i 1 à N faire Suite
F[i]T[i];
FinPour
i1;
JN+1;
Tantque (j<=N+M ET i<=M) Faire
F[j]V[i];
ii+1;
jj+1;
FinTantQue
Chapitre 5 : Types structurés
III. Les tableaux à deux dimensions (Matrices):
1. Définition
 Un tableau à deux dimensions est une matrice, composée de lignes et
de colonnes.

 Une matrice est notée M(n,m) est caractérisée par:


Un nom M.
Nombre de lignes n.
Nombre de colonnes m

 Les éléments d’une matrice sont arrangés dans des cases référencées
par deux indices (indice de ligne et indice de colonne).
Chapitre 5 : Types structurés
III. Les tableaux à deux dimensions (Matrices):
1. Définition
 Une matrice M(3,4) est représentée comme suit:
Nombre de lignes 3
Nombre de colonnes 4

M[2,4]

Nombre d'éléments =3*4


Chapitre 5 : Types structurés
III. Les tableaux à deux dimensions (Matrices):
1. Définition
Remarques :
• Tous les éléments de la matrice doivent être de même type.

• Si le nombre de lignes est égal au nombre de colonne (égal à N), on dit que
la matrice est carrée de taille (ou d'ordre) N.

• Chaque élément de la matrice est repéré par le nom de la matrice et les


numéros des indices de lignes et de colonnes, on le note M[i, j].

• Lorsque la matrice est carrée et si i=j, alors l’élément se trouve sur la


diagonale principale de la matrice.
Chapitre 5 : Types structurés
III. Les tableaux à deux dimensions (Matrices):
2. Déclaration

Syntaxe:
Var nomMatrice : Tableau[ indiceLigneMminimal .. indiceLigneMaximal,
indiceColonneMminimal .. indiceColonneMaximal ] deTypeDeDonnées;

Exemple:

Var Notes : Tableau[ 1 .. 100, 1..10 ] de Réel.


Dans cet exemple, on a déclaré un tableau appelé Notes de 100 lignes et
de 10 colonnes. Contenant des valeurs réelles.
Chapitre 5 : Types structurés
III. Les tableaux à deux dimensions (Matrices):
3. Accès aux éléments d’une matrice

 On accède à chaque élément d’une matrice par deux indices, un indice pour
préciser le numéro de ligne et le second pour préciser le numéro de colonne.
Syntaxe:
nomMatrice[ indligne, indcolonne ];

Exemple :

Notes[ 3, 2 ] : désigne l’élément qui se trouve à la 3ième ligne et la 2ième


colonne dans la matrice Notes
Chapitre 5 : Types structurés
III. Les tableaux à deux dimensions (Matrices):
4. Manipulation des éléments d’une matrice

A/ L’affectation

AM[2,3];

B/ La Modification dans la matrice

M[1,1] M[1,1]+2; // M[1,1] 8

Lire( M[ 1, 1 ] ); M
C/ La consultation dans la matrice

Ecrire( M[ 1, 1 ] );
Chapitre 5 : Types structurés
III. Les tableaux à deux dimensions (Matrices):
4. Manipulation des éléments d’une matrice

D/ Remplissage et Affichage d’une matrice

• Pour lire une matrice, il faut parcourir tous ses éléments


afin de donner à chaque élément une valeur.

• Pour afficher une matrice, il faut parcourir tous ses


éléments et écrire chaque élément.

• Pour cela l’utilisation de deux (2) boucles imbriquées parait


indispensable pour parcourir la matrice.
Chapitre 5 : Types structurés
III. Les tableaux à deux dimensions (Matrices):
4. Manipulation des éléments d’une matrice

D/ Remplissage et Affichage d’une matrice

Exemple

Lire et Ecrire une matrice M


de 3 x 4 entiers
III. Les tableaux à deux dimensions (Matrices):
4. Manipulation des éléments d’une matrice

D/ Remplissage et Affichage d’une matrice Exemple

Algorithme LectureAffichageMatrice; Algorithme


Const N = 3 ,M = 4 ;
Var M : Tableau[ 1 .. N, 1 .. M ] de entier;
i, j : Entier ;
Début
// Saisie de la matrice
Pour i 1 à N Faire
// Répéter pour chaque ligne
Pour j1 à M Faire
/ / Répéter pour chaque colonne
Ecrire ("M[", i, ", ", j , "] = ") ;
Lire( M[ i, j ] );
FinPour
FinPour
III. Les tableaux à deux dimensions (Matrices):
4. Manipulation des éléments d’une matrice

D/ Remplissage et Affichage d’une matrice Exemple

Suite
// Affichage des valeurs saisies
Pour i 1 à N Faire
// Répéter pour chaque ligne
Pour j1 à M Faire
/ / Répéter pour chaque colonne
Ecrire ("M[", i, ", ", j , "] = ") ;
Ecrire( M[ i, j ] );
FinPour
FinPour
Fin
Chapitre 5 : Types structurés

Exercice

1- lire puis afficher une matrice 4 x 7 de réels;


2- afficher la température moyenne de chaque semaine;
3- nombre de températures strictement supérieures à t lue;
4- recherche du maximum.
• Vectors are structured types used to store a sequence of elements that can
be accessed using indexes.
• With vectors, we can perform various manipulations such as reading and
writing values, comparing two vectors and implementing search algorithms.
• When it comes to sorting elements, we can apply sorting algorithms to vectors
using appropriate techniques, such as bubble sort, insertion sort, selection sort
and more. These algorithms help us to reorganize the elements of the vector
into a specific order.
• Matrices are also structured types, consisting of items arranged in rows and
columns. In this structured type, we can perform basic operations, such as
addition, subtraction, and multiplication.
Chapitre 5 : Types structurés
Ecrire un algorithme qui permet de Calculer la
somme des éléments (entiers) de la colonne C=2 de
la matrice M (3,5).

Ecrire un algorithme qui permet de Permuter 02


colonnes de la matrice M (3,5). Par exemple c=2 et
c=5

Ecrire un algorithme qui permet de calculer le


produit de deux matrices A et B: C = A * B. Par
exemple A(2,3) et B(3,2)
Soit une matrice carrée d’entiers M (n,n) (prendre n = 4).
Ecrire un algorithme qui permet de :

• Compter et afficher le nombre d’éléments de chaque Colonne


dont la valeur est strictement supérieure à celle de la
diagonale principale ;
• Chercher et afficher le nombre maximal trouvé ;
• Calculer et afficher la moyenne des valeurs paires strictement
positives stockées dans la matrice M.
Exemple
Colonne n° 1 : Nombre = 2
1 2 5 3
Colonne n° 2 : Nombre = 0
0 18 12 21 Colonne n° 3 : Nombre = 3
9 15 3 12 Colonne n° 4 : Nombre = 1
10 8 11 18 Nombre maximal = 3
Moyenne valeurs paires = (2+18+12+12+10+8+18)/7
M
Soit une matrice carrée d’entiers M (n,n) (prendre n = 4).
Ecrire un algorithme qui permet de

• Chercher un élément X dans cette matrice.


• Demander à l'utilisateur s'il souhaite chercher un autre
élément.
• Répéter jusqu'à ce qu'il décide d'arrêter.

Ecrire un algorithme qui permet de saisir les valeurs de deux


vecteurs X (taille 3) et Y (taille 3) de réels, puis d’afficher la valeur
du produit scalaire de ces vecteurs.
Exemple
Ecrire un algorithme qui permet de :
1. Saisir un vecteur de 10 entiers strictement positifs (l'utilisateur doit
ressaisir les valeurs si nécessaire).

2. Demander à l'utilisateur de choisir une opération à effectuer parmi les


options suivantes :
******************************************************************************
Option 1 : Trier le tableau.
Option 2 : Additionner les éléments du tableau.
Option 3 : Multiplier les éléments du tableau.
Option 4 : Calculer la factorielle de chaque élément du tableau.
*****************************************************************************
3. Afficher le résultat attendu en fonction du choix de l'utilisateur.

Vous aimerez peut-être aussi