Corrigé C21. Enoncé
Exercice 1 : Interclassement de deux vecteurs
ALGORITHME Interclasser
VAR
K, J1, J2, N1, N2 : ENTIER
V1 : TABLEAU[1..N1] DE ENTIER
V2 : TABLEAU[1..N2] DE ENTIER
V3 : TABLEAU[1..N1+N2] DE ENTIER
DEBUT
LIRE(N1, N2)
K := 0
J1, J2 := 1
TANTQUE J1 <= N1 ET J2 <= N2 :
K := K + 1
SI V1(J1) < V2(J2) :
V3(K) := V1(J1)
J1 := J1 + 1
SINON
V3(K) := V2(J2)
J2 := J2 + 1
FSI
FINTANTQUE
TANTQUE J1 <= N1 :
K := K + 1
V3(K) := V1(J1)
J1 := J1 + 1
FINTANTQUE
TANTQUE J2 <= N2 :
K := K + 1
V3(K) := V2(J2)
J2 := J2 + 1
FINTANTQUE
FIN
Exercice 2 : Permutation de 2 sous vecteurs
L'algorithme qui suit permute les sous vecteurs T(1..P) et T(P+1..N) pour P compris entre
1 et N
ALGORITHME Permuter
VAR
P, N, I, J, N : ENTIER
T : TABLEAU[1..N] DE ENTIER
C : ENTIER
DEBUT
LIRE(P)
SI P > N DIV 2 :
POUR J := P + 1, N
C := T(N)
POUR I=N-1, 1, -1
T(I+1) := T(I)
FINPOUR
T(1) := C
FINPOUR
SINON
POUR J := 1, P
C := T(1)
POUR I= 1, N-1
T(I) := T(I+1)
FINPOUR
T(N) := C
FINPOUR
FSI
FIN
Exercice 3: Insertion par fonction
Recherche/insertion d'un élément
ALGORITHME Inserer
VAR
I, M, L, K, Donnee : ENTIER
Trouv : BOOLEEN
DEBUT
LIRE(K)
N := 0
POUR L = 1, K
LIRE(Donnee)
I := H(Donnée)
Trouv, Vide := FAUX
TANTQUE NON Trouv ET
NON Vide :
SI Occ(I) :
SI Val(I) = E
Trouv := VRAI
SINON
I := I+1;SI I>M : I := I-M FSI
FSI
SINON
Vide := VRAI
FSI
FINTANTQUE
SI NON Trouv :
SI N = M-1 :
" Débordement "
SINON
N := N + 1
Aff-Val(I, E)
Aff-Occ(I, Vrai)
FSI
SINON
" Donnée existe "
FSI
FINPOUR
FIN