Vous êtes sur la page 1sur 9

TD N°2 - Algorithme

Université Abdelmalek Essaâdi


Ecole Nationale des Sciences Appliquées Tétouan
2AP-1 Année universitaire 2020-2021
Algorithmique Pr. EL Hajjamy Oussama

Exercice 1
Soit un vecteur T (tableau à une dimension) contenant N nombres entiers (N≤100). Ecrire
l’algorithme qui :
1. Détermine le minimum, le maximum et la moyenne des éléments d’un tableau T
2. Calcule le produit de tous les éléments de T ainsi que le nombre de valeurs strictement
positives.
3. Calcule la somme et le produit scalaire de deux vecteurs (T1 et T2).
4. Détermine les positions de l’apparition d’une valeur dans un vecteur T.
5. Inverse le contenu d’un vecteur T.
6. Supprime toutes les valeurs nulles d'un vecteur T.
7. Met les valeurs négatives au début et les valeurs positives à la fin en utilisant un seul
tableau
8. Tester si le tableau est trié
Question 1 :
Algorithme Min_Max_Moy
Variables tableau T[100] : entier
N, i, Max, Min, Som : entier
Moy : réel
Début
Ecrire("Donner la taille du tableau N≤100")
Répéter
Lire(N)
Jusqu’à (N>0 et N≤100)
Pour i allant de 1 à N Faire
Lire(T[i])
FinPour
Min ← T[1]
Max ← T[1]
Som←0
Pour i allant de 1 à N Faire
Si Max<T[i] Alors
Min ← T[i]
Sinon Si Min> T[i] Alors
Min ← T[i]
Finsi
Som ← Som + T[i]
FinPour
Moy ← Som/N
Ecrire("Le Maximum est ", Max, ", le Minimum est ", Min, " et la moyenne est ", Moy)
Fin
TD N°2 - Algorithme

Question 2 :
Algorithme Prod_NVpositives
Variables tableau T[100] : entier
N, i, P, NVp :entier
Début
Répéter
Ecrire("Donner la taille du tableau N≤100")
Lire(N)
Jusqu’à (N>0 et N≤100)
P←1
NVp ← 0
Pour i allant de 1 à N Faire
Lire(T[i])
P ← P* T[i]
Si T[I]>0 Alors
NVp ← Nbp+1
Finsi
FinPour
Ecrire("Le produit est ", P, " et le nombre de valeurs positives est ", NVp)
Fin
Question 3 :
Algorithme Prod_Scalaire
Variables tableau T1[100], T2[100], T3[100] : entier
N, i, PS : entier
Début
Répéter
Ecrire("Donner la taille du tableau N≤100")
Lire(N)
Jusqu’à (N>0 et N≤100)
Pour i allant de 1 à N Faire
Lire(T1[i])
FinPour
Pour i allant de 1 à N Faire
Lire(T2[i])
FinPour
PS←0
Pour i allant de 1 à N Faire
T3[i] ← T1[i] + T2[i]
PS ← PS + T1[i] * T2[i]
FinPour
Ecrire("Le produit scalaire est ", PS)
Ecrire("La somme des vecteurs est ")
Pour i allant de 1 à N Faire
Ecrire (T3[i])
FinPour
Fin
TD N°2 - Algorithme

Question 4 :
Algorithme Position
Variables tableau T[100], Pos[100] : entier
N, i, j, X : entier
Début
Répéter
Ecrire("Donner la taille du tableau N≤100")
Lire(N)
Jusqu’à (N>0 et N≤100)
Pour i allant de 1 à N Faire
Lire(T[i])
FinPour
Ecrire("Donner une valeur")
Lire(X)
j←0
Pour i allant de 1 à N Faire
Si T[i] = X Alors
J ← j+1
Pos[j] ← i
Finsi
FinPour
Si j = 0 Alors
Ecrire("Valeur introuvable")
Sinon
Ecrire("La valeur ", X, " se trouve dans les positions : ")
Pour i allant de 1 à j Faire
Ecrire (Pos[i])
FinPour
Finsi
Fin
Question 5 :
Algorithme Inverse
Variables tableau T[100], Pos[100] : entier
N, i, j, X : entier
Début
Répéter
Ecrire("Donner la taille du tableau N≤100")
Lire(N)
Jusqu’à (N>0 et N≤100)
Pour i allant de 1 à N Faire
Lire(T[i])
FinPour
i←1
j ←N
TantQue i<j Faire
X←T[i]
T[i]←T[j]
TD N°2 - Algorithme

T[j] ← X
i ← i+1
j ← j-1
FinTantQue
Pour i allant de 1 à N Faire
Ecrire(T[i])
FinPour
Fin
Question 6 :
Algorithme Supprime_Zero
Variables tableau T[100] : entier
N, i, j : entier
Début
Répéter
Ecrire("Donner la taille du tableau N≤100")
Lire(N)
Jusqu’à (N>0 et N≤100)
Pour i allant de 1 à N Faire
Lire(T[i])
FinPour
i←1
TantQue i ≤ N Faire
Si T[i] = 0 Alors
Pour j allant de i à N-1 Faire
T[j] ← T[j+1]
FinPour
N ← N-1
Finsi
i ← i+1
FinTantQue
Pour i allant de 1 à N Faire
Ecrire(T[i])
FinPour
Fin
Question 7 :
Algorithme Neg_Avant_Pos
Variables tableau T[100] : entier
N, i, j, X : entier
Début
Répéter
Ecrire("Donner la taille du tableau N≤100")
Lire(N)
Jusqu’à (N>0 et N≤100)
Pour i allant de 1 à N Faire
Lire(T[i])
FinPour
j←1
TD N°2 - Algorithme

TantQue j ≤ N et T[j] < 0 Faire


j ← j+1
FinTantQue
i←j
TantQue j ≤ N Faire
Si T[j] < 0 Alors
X ← T[i]
T[i] ← T[j]
T[j] ← X
i ← i+1
FinSi
j ← j+1
FinTantQue
Pour i allant de 1 à N Faire
Ecrire(T[i])
FinPour
Fin
Question 8 : (On va tester si le tableau est trié par ordre croissant)
Algorithme Tableau_trié
Variables tableau T[100] : entier
N, i : entier
Trie : booléen
Début
Répéter
Ecrire("Donner la taille du tableau N≤100")
Lire(N)
Jusqu’à (N>0 et N≤100)
Pour i allant de 1 à N Faire
Lire(T[i])
FinPour
trie ← Vrai
TantQue i < N et trie = Vrai Faire
Si T[i] > T[i+1] Alors
Trie ← Faux
FinSi
i ← i+1
FinTantQue
Si trie = Vrai Alors
Ecrire("Le tableau est trié par ordre croissant")
Sinon
Ecrire("Le tableau n’est pas trié par ordre croissant")
FinSi
Fin
TD N°2 - Algorithme

Exercice 2 :
Ecrire un algorithme qui permet :
1. D’éclater un vecteur T de N (N≤250) entiers supposés positifs en deux vecteurs T1 et T2
contenant respectivement les nombres pairs et impairs de T.
2. Déterminer le nombre de succession de deux valeurs (V1 et V2) particulières dans un
vecteur T de N entiers (N≤200).
Question 1 :
Algorithme Pairs_Impairs
Variables tableau T1[250], T2[250], T3[250] : entier
N, i, j, k : entier
Début
Répéter
Ecrire("Donner la taille du tableau N≤250")
Lire(N)
Jusqu’à (N>0 et N≤250)
Pour i allant de 1 à N Faire
Lire(T1[i])
FinPour
j←1
k←1
Pour i allant de 1 à N Faire
Si T1[i] % 2 = 0 Alors
T2[j] ← T1[i]
J ← j+1
Sinon
T3[k] ← T1[i]
k ← k+1
FinSi
FinPour
Ecrire("Vecteur pairs :")
Pour i allant de 1 à j - 1 Faire
Ecrire(T2[i])
FinPour
Ecrire("Vecteur impairs :")
Pour i allant de 1 à k - 1 Faire
Ecrire (T3[i])
FinPour
Fin
Question 2 :
Algorithme Succesion_2_Valeurs
Variables tableau T[200] : entier
N, i, V1, V2, Nbr : entier
Début
Répéter
Ecrire("Donner la taille du tableau N≤200")
TD N°2 - Algorithme

Lire(N)
Jusqu’à (N>0 et N≤200)
Pour i allant de 1 à N Faire
Lire(T1[i])
FinPour
Ecrire("Donner deux valeurs")
Lire(V1, V2)
i←1
Nbr ← 0
Tantque i<N Faire
Si T[i] = V1 et T[i+1] = V2 Alors
Nbr ← Nbr + 1
i←i+2
Sinon
i←i+2
FinSi
FinTantQue
Ecrire("Le nombre de succession des valeurs ", V1, " et ", V2, " est : ", Nbr)
Fin

Exercice 3 :
Soient deux vecteurs d’entiers triés V1 (N entiers, N≤100) et V2 (M entiers, M≤150). Ecrire
un algorithme qui fusionne ces deux vecteurs dans un autre vecteur V3 trié sans répétition
de valeurs identiques.
Algorithme Fusion
Variables tableau T1[100], T2[150], T3[250] : entier
N, M, i, j, k : entier
Début
Répéter
Ecrire("Donner la taille du tableau N≤100")
Lire(N)
Jusqu’à (N>0 et N≤100)
Pour i allant de 1 à N Faire
Lire(T1[i])
FinPour
Répéter
Ecrire("Donner la taille du tableau M≤150")
Lire(M)
Jusqu’à (M>0 et M≤150)
Pour i allant de 1 à M Faire
Lire(T2[i])
FinPour
Si T1[1] < T2[1] Alors
T3[1] ← T1[1]
i←2
TD N°2 - Algorithme

j←1
Sinon
T3[1] ← T2[1]
j←2
i←1
FinSi
k←2
Tantque i ≤ N et j ≤ M Faire
Si T1[i] < T2[j] Alors
Si T1[i] <> T3[k-1] Alors
T3[k] ← T1[i]
k ← k+1
FinSi
I ← i+1
Sinon
Si T2[j] <> T3[k-1] Alors
T3[k] ← T2[j]
k ← k+1
FinSi
j ← j+1
FinSi
FinTantQue
Si i > N Alors
Pour i allant de j à M Faire
Si T2[i] <> T3[K-1] Alors
T3[K] ← T2[i]
k ← k+1
FinSi
FinPour
FinSi
Si j > M Alors
Pour j allant de i à N Faire
Si T1[j] <> T3[K-1] Alors
T3[K] ← T1[j]
k ← k+1
FinSi
FinPour
FinSi
Ecrire("Le tableau résultant trié sans répétition :")
Pour i allant de 1 à k - 1 Faire
Ecrire (T3[i])
FinPour
Fin
TD N°2 - Algorithme

Exercice 4 :
Ecrire l’algorithme effectuant le décalage des éléments d’un tableau. Exemple :

Tableau initial :
D E C A L A G E

Tableau modifié (décalage à gauche) :


E C A L A G E D

Algorithme Décalage_A_Gauche
Variables tableau T[50] : Caractère
N, i : entier
C : caractère
Début
Répéter
Ecrire("Donner la taille du tableau N≤50")
Lire(N)
Jusqu’à (N>0 et N≤50)
Ecrire("Merci de saisir des caractères")
Pour i allant de 1 à N Faire
Lire(T1[i])
FinPour
C ← T[1]
Pour i allant de 1 à N - 1 Faire
T[i] ← T[i+1]
FinPour
T[N] ← C
Ecrire("le tableau décalé : ")
Pour i allant de 1 à N Faire
Ecrire (T[i])
FinPour
Fin

Vous aimerez peut-être aussi