Program exerice2; Type vecteur = array [1..10] Of integer; Var V : vecteur; n, i : integer; Procedure remplirVecteur (Var V : vecteur; taille : integer); Var i : integer; Begin For i:=1 To taille Do Begin writeln ('Donnez la valeur ', i , ' du tableau '); readln(V[i]); End; writeln ('Merci le tableu est bien rempli'); End; Function compterOccurence (V: vecteur; taille: integer; valeur : integer) : integer; Var i, occurence : integer ; Begin occurence := 0; i := 1; While (i<= taille) Do Begin If (V[i] = valeur) Then occurence := occurence +1; i := i + 1; End; compterOccurence := occurence; End; Procedure remplacerOccurence (Var V: vecteur; taille: integer); Var i,j : integer; Begin For i:= 1 To taille Do Begin If (compterOccurence(V, taille, V[i]) > 1) And (V[i]<>0) Then Begin For j:=i+1 To taille Do Begin If (V[j] = V[i]) Then V[j] := 0; End; End ; End; End; Procedure deplacerZeros( Var V : vecteur; taille : integer); Var T : vecteur; i,j : integer; Begin For i:=1 To taille Do T[i] := 0; i := 1; j := 1; While (i<= taille) Do Begin If (V[i] <> 0) Then Begin T[j] := V[i]; j := j +1; End; i := i + 1; End; V := T; End; Procedure trierDecroissant (Var V : vecteur ; taille : integer) ; Var M, i, j : integer ; Begin For i :=1 To taille-1 Do Begin For j := i+1 To taille Do Begin If (V[i] < V[j]) Then Begin M :=V[i]; V[i] := V[j]; V[j] := M; End; End; End; End ; Begin n := 10; remplirVecteur (V, n); remplacerOccurence (V, n); deplacerZeros(V, n); trierDecroissant (V, n); i := 1 ; While (V[i] <> 0) Do Begin writeln (V[i]) ; i := i +1; End; Writeln ('Fin'); End.