Vous êtes sur la page 1sur 4

Lyce El Krib Anne scolaire : 2008 / 2009

Devoir de contrle
Professeur : Mohamed TRABELSI Dure : 1h Thorique
N 3
Matire : Informatique Classe : 3me SI

Nom & prnom :...........................................................................

20
nonc : Algorithme de Tri
On dsir crer un programme intitul tri_vecteur qui permet de trier un tableau T de n entiers
distincts (5 n 20) dans lordre dcroissant selon le principe suivant :
Pour chaque lment de T :
Dterminer le nombre dlments qui lui sont suprieur.
Placer cet lment dans un tableau R la case d'indice nombre dlment plus grand + 1.
Exemple :

T 6 2 0 5 12 25
1 2 3 4 5 6
Deux valeurs sont suprieures au premier lment de T. Cet lment sera donc plac la
position 3 du tableau R.

R 6
1 2 3 4 5 6
Le rsultat affich est R qui sera un tableau tri dans lordre dcroissant.

1. Analyse principale T.A.F


Rsultat : Affichage 1. Faire les dclarations ncessaires. (4 pts)
Traitement : 2. Faire lanalyse et lalgorithme des sous
Pour i de 1 n faire programmes suivants :
Ecrire (R[i])
Saisie ( ) (3 pts)
Fin pour
Tri (T, R, n) Remplir ( ) (4 pts)

Remplir (T, n) Tri ( ) (9 pts)

Saisie (n) Remarque :


Dautres sous programmes pourraient
Algorithme
tre envisags en cas de besoin.
0) Dbut tri_vecteur
1) Saisie (n)
2) Remplir (T, n)
3) Tri (T, R, n)
4) Pour i de 1 n faire
Ecrire (R[i])
Fin pour
5) Fin tri_vecteur

1/1 27/1/09
Lyce El Krib Correction Anne scolaire : 2008 / 2009

Professeur : Mohamed TRABELSI Devoir de contrle Dure : 1h Thorique

Matire : Informatique N 3 Classe : 3me SI

T.D.O Globaux

Type Objet Type Rle


T Tab
Tab = tableau de 20 entiers R Tab
n octet
i octet compteur
2. Analyse de la procdure Saisie
Procdure saisie (var n : octet)
Rsultat : n
Traitement :
Rpter
n = donne (" Donner n entre 5 et 20 : ")
Jusqu' n dans [5..20]
Algorithme
0) Procdure saisie (var n : octet)
1) Rpter
crire (" Donner n entre 5 et 20 : "), Lire (n)
Jusqu' n dans [5..20]
2) Fin
3. Analyse de la procdure Remplir
Procdure remplir (var T : Tab ; n : octet)
Rsultat : T
Traitement :
Pour i de 1 n faire
T[i] = donne (" Donner la case ", i, " : ")
Fin Pour
Algorithme
0) Procdure remplir (var T : Tab ; n : octet)
1) Pour i de 1 n faire
Ecrire (" Donner la case ", i, " : "), Lire (T[i])
Fin Pour
2) Fin
T.D.O Locaux
Objet Type Rle
i Octet compteur

Correction 1/3 27/1/09


4. Analyse de la procdure Tri
Procdure tri (T : Tab ; var R : Tab ; n : octet)
Rsultat : R
Traitement :
Pour i de 1 n faire
X nbr_grand (T, n, i) + 1
R[x] T[i]
Fin pour
Algorithme
0) Procdure tri (T : Tab ; var R : Tab ; n : octet)
1) Pour i de 1 n faire
X nbr_grand (T, n, i) + 1
R[x] T[i]
Fin pour
2) Fin
T.D.O Locaux
Objet Type Rle
i Octet compteur
x Octet Position dinsertion dans R

5. Analyse de la fonction nbr_grand


Fonction nbr_grand (T : Tab ; n : octet ; i : octet) : octet
Rsultat : nbr_grand
Traitement :
nbr_grand cpt
cpt 0
Pour j de 1 n faire
Si (j i) et T[j]>T[i] Alors cpt cpt + 1
Fin si
Fin pour

Correction 2/3 27/1/09


Algorithme
0) Fonction nbr_grand (T : Tab ; n : octet ; i : octet) : octet
1) cpt 0
Pour j de 1 n faire
Si (j i) et T[j]>T[i] Alors cpt cpt + 1
Fin si
Fin pour
2) nbr_grand cpt
3) Fin
T.D.O Locaux
Objet Type Rle
j Octet compteur
cpt Octet Nombre dlments plus grands que T [i]

Correction 3/3 27/1/09