Académique Documents
Professionnel Documents
Culture Documents
a. Le contenu du tableau
b. Le plus grand ainsi que le plus petit élément du tableau
c. Les indices des éléments du plus grand et plus petit élément du tableau
Procédure Nom_procedure ( n : entier par valeur, tableau Tab : réel par référence)
finProcédure
Procédure Tableau_Min_Max(N: entier par valeur, tableaux Tab: entier par référence)
Var i,Min,Max, Indice_min, Indice_max : entier
Pour i0 à N-1 faire
Ecrire ("Tab[",i, "] =", Tab[i])
FinPour
MinTab[0]
MaxTab[0]
Indice_min0
Indice_max0
Pour i1 à N-1 faire
si Tab[i]<Min
Min Tab[i]
Indice_mini
FinSi
si Tab[i]>Max alors
Max Tab[i]
Indice_maxi
FinSi
FinPour
Ecrire (" le nombre le plus grand est : " , Max, " son indice est :" , Indice_max)
Ecrire (" le nombre le plus petit est : " , Max, " son indice est :" , Indice_min)
FinProcédure
Pr. Er-rajy Latifa
Exercice 1 Solution :
Algorithme Tableau_Min_Max
Var N : entier
Tableau Tab[10] : entier
Début
N10
Pour i0 à N-1 faire
Ecrire(" Veuillez saisir l’élément ",i+1)
Lire(Tab[i])
FinPour
Tableau(N,Tab)
Fin
1. Ecrire une procédure qui permet la saisie d’un tableau LireTab et une procédure
AfficherTab qui permet d’afficher le contenu d’un tableau.
Procédure LireTab (n: entier par valeur, Tab: réel par référence)
Var i : entier
pour i 0 à n-1
Ecrire(« Veuillez saisir l’élément : », i)
lire(Tab[i])
FinPour
FinProcédure
Algorithme Tableaux
var p : entier
Tableau A[10] : réel
Début
p10
LireTab(p, A)
AffcheTab(p,A)
Fin
Il consiste en la recherche du plus grand élément du tableau qui va être placé à sa position
définitive c’est-à-dire en dernière position. L’algorithme continue en recherchant le plus
grand élément du tableau privé de son dernier élément, qui va être placé en avant dernière
position. Et ainsi de suite pour tous les éléments du tableau, qui sera finalement trié.
1- Trier le tableau suivant selon l’algorithme du tri par sélection en donnant toutes les
étapes intermédiaires réalisées.
143520 6 8 7
2- Ecrire l’algorithme qui réalise le tri par sélection
Les étapes: 1 4 3 5 2 0 6 8 7
Les étapes:
Étape 1) : Tout élément d'un tableau est déterminé par son indice.
a) Pour commencer : Prenons l'élément en dernière position T[8] comme le plus grand de
tous les autres d'indice. Gardons son indice dans une variable : indice_pge ← 8
0 1 2 3 4 5 6 7 i=8
Tab[i] 1 4 3 5 2 0 6 8 7
Tab[j] <-----Tab[j=0,1,2,3,4,5,6,7] --------> Tab[i]
b) Comparons ce T[i=8] avec les éléments restants du tableau ( T[j], j= 0,1,2, …, 7).
En comparant, on a le plus grand T[j] =8 pour j= 7. Gardons son indice , indice_pge ← 7
i 0 1 2 3 4 5 6 7 8
Tab[i] 1 4 3 5 2 0 6 7 8
Tab[j] <-----Tab[j=0,1,2,3,4,5,6,7] --------> ok
Les étapes:
i 0 1 2 3 4 5 6 7 8
Tab[i] 1 4 3 5 2 0 6 7 8
Tab[j] <-----Tab[j=0,1,2,3,4,5,6] --------> ok ok
Les étapes:
i 0 1 2 3 4 5 i=6 7 8
Tab[i] 1 4 3 5 2 0 6 7 8
Tab[j] <---Tab[j=0,1,2,3,4,5] --> Tab[i] ok ok
i 0 1 2 3 4 5 6 7 8
Tab[i] 1 4 3 5 2 0 6 7 8
Tab[j] <---Tab[j=0,1,2,3,4,5] --> ok ok ok
Les étapes:
i 0 1 2 3 4 5 6 7 8
Tab[i] 1 4 3 0 2 5 6 7 8
Tab[j] Tab[j=0,1,2,3,4,5] ok ok ok ok
Les étapes:
i 0 1 2 3 i=4 5 6 7 8
Tab[i] 1 4 3 0 2 5 6 7 8
Tab[j] Tab[j=0,1,2,3,4] Tab[i] ok ok ok ok
i 0 1 2 3 4 5 6 7 8
Tab[i] 1 2 3 0 4 5 6 7 8
Tab[j] Tab[j=0,1,2,3] ok ok ok ok ok
Les étapes:
i 0 1 2 i=3 4 5 6 7 8
Tab[i] 1 2 3 0 4 5 6 7 8
Tab[j] Tab[j=0,1,2] Tab[i] ok ok ok Ok ok
i 0 1 2 3 4 5 6 7 8
Tab[i] 1 2 0 3 4 5 6 7 8
Tab[j] Tab[j=0,1,2] ok ok ok ok ok ok
Les étapes:
i 0 1 i=2 3 4 5 6 7 8
Tab[i] 1 2 0 3 4 5 6 7 8
Tab[j] Tab[j=0,
1]
Tab[i] ok ok ok ok Ok ok
i 0 1 2 3 4 5 6 7 8
Tab[i] 1 0 2 3 4 5 6 7 8
Tab[j] Tab[j=0,
1]
ok ok ok ok ok Ok ok
Les étapes:
i 0 1 2 3 4 5 6 7 8
Tab[i] 0 1 2 3 4 5 6 7 8
Tab[j] Fin ok ok ok ok ok ok Ok ok
Algorithme Tri_Selection
Tableau T[10] : réel
Var N, j, indice_pgq, temp : entier
Début
N10
Pour i allant de N-1 à 1 pas -1
indice_pge ← i
Pour j allant de 0 à i-1
Si T[j] >T[indice_pge] alors
indice_pge ← j
Finsi
FinPour
Si indice_pge < i Alors
temp ←T[indice_pge]
T[indice_pge] ←T[i]
T[i] ←temp
FinSI
FinPour
Fin
Pr. Er-rajy Latifa
Exercice 4. (Tri rapide-Recherches)
1- Trier le tableau suivant selon l’algorithme du tri rapide en donnant toutes les
étapes intermédiaires réalisées.
3- Définir une fonction Recherche qui retourne un booléen pour indiquer si une
valeur x appartient à un tableau T de dimension N en utilisant les
recherches séquentielles et dichotomique.
1- Trier le tableau suivant selon l’algorithme du tri rapide en donnant toutes les
étapes intermédiaires réalisées.
p i j r
143520 6 8 7
pivot
Étape 2:
Échanger A( i ) et A( j ) pour maintenir A( i ) ≤ p et A ( j ) ≥ p : dans la premier
partition l’indice i avance en avant et il cherche un élément supérieur ou égale le
pivot. Dans la deuxième partition, j avance en arrière et il cherche un élément
inférieur ou égale au pivot
Étape 3:
On incrément i (i=2) jusqu’à ce que rencontre un élément plus grand que le pivot et
on décrémenter j jusqu’à ce que rencontré un élément plus petit que le pivot.
Jusqu’à ce que i et j se croisent. A ce moment il faut s’arrêter car si on contenir de
décrémenter i on va seulement trouver les éléments inférieurs au pivot.
0 1 2 3 4 5 6 7 8
0 1 4 3 5 2 6 8 7
Pr. Er-rajy Latifa
Exercice 4. (Tri rapide-Recherches) Solution :
Étape 4: On répété les mêmes étapes pour le tableau à gauche du pivot et le tableau
à droite de pivot.
q i j r
0 1 2 3 4 5 6 7 8
0 1 4 3 5 2 6 8 7
pivot
0 1 2 3 4 5 6 7 8
0 1 3 2 4 5 6 8 7
0 1 2 3 4 5 6 7 8
0 1 3 2 4 5 6 8 7
0 1 2 3 4 5 6 7 8
0 1 2 3 4 5 6 8 7
0 1 2 3 4 5 6 7 8
0 1 2 3 4 5 6 8 7
Algorithme TRiSari3
Tableau T[10] :réel
variables i, n , p, r: entier
DEBUT
n10
Pour i allant de 0 à n-1
Ecrire("Donner la ", i+1, "e valeur")
Lire(T[i])
FinPour
p ←0
r←n-1
TriRapide(T, p,r)
fin
3- Définir une fonction Recherche qui retourne un booléen pour indiquer si une
valeur x appartient à un tableau T de dimension N en utilisant les
recherches séquentielles et dichotomique.
• La recherche séquentielle consiste à prendre les éléments de la liste les uns après
les autres, jusqu'à avoir trouvé la cible : Vérifier si T[i]=x.
FinTantQue
Retourne(Trouvé)
FinFonction
Pr. Er-rajy Latifa
Exercice 5. (Retour aux Matrices)
ALGORITHME SOM2MATRICES
Tableau A[10][10], B[10][10], S[10][10]: réel // somme de A et B
variables i, j, n : entier Pour i allant de 0 à n-1
DEBUT Pour j allant de 0 à n-1
n10 S[i][j] ←A[i][j]+B[i][j]
Pour i allant de 0 à n-1 FinPour
Ecrire("Donner la ligne:",i+1, “ de A”) FinPour
Pour j allant de 0 à n-1 //affichage de la matrice S
Lire(A[i][j]) Pour i allant de 0 à n-1
FinPour Pour j allant de 0 à n-1
FinPour Ecrire(S[i][j]," ")
Pour i allant de 0 à n-1 FinPour
Ecrire("donner la ligne ",i+1"de B") FinPour
Pour j allant de 0 à n-1 FIN
Lire(B[i][j])
FinPour
FinPour
ALGORITHME Produit2MATRICES
Tableau A[10][10], B[10][10],P[10][10]: réel // Produit P = A*B tel que pij= somme des
VAR i, j, k, n, S : entier aik*bkj
DEBUT Pour i allant de 0 à n-1
n10 Pour j allant de 0 à n -1
Pour i allant de 0 à n-1 S ←0
Ecrire("Donner la ligne:",i+1, “ de A”) Pour k allant de 0 à n-1
Pour j allant de 0 à n-1 S ←S + A[i][k]*B[k][j]
Lire(A[i][j]) FinPour
FinPour P[i][j] ←S
FinPour FinPour
Pour i allant de 0 à n-1 FinPour
Ecrire("donner la ligne ",i+1"de B") //affichage de la matrice P
Pour j allant de 0 à n-1 Pour i allant de 0 à n-1
Lire(B[i][j]) Pour j allant de 0 à n-1
FinPour Ecrire(P[i][j]," ")
FinPour FinPour
FinPour
Fin
ALGORITHME TRANSPOSE
Tableau A[10][10], T[10][10]: réel //affichage de la matrice T
VAR i, j : entier Pour i allant de 0 à n-1
DEBUT Pour j allant de 0 à n-1
n10 Ecrire(T[i][j]," ")
Pour i allant de 0 à n-1 FinPour
Ecrire("Donner la ligne:",i+1, “ de A”) FinPour
Pour j allant de 0 à n-1 Fin
Lire(A[i][j])
FinPour
FinPour
Pour i allant de 0 à n-1
Pour j allant de 0 à n-1
T[i][j]A[j][i]
FinPour
FinPour