1. Ministère d’éducation
Lycée Zaouiet Megaiez
Professeure: Mme Ben Nasr Sameh
Date: 03-12-2013 / A.S : 2013-2014
Matière : Algorithmique et programmation
Coefficient : 3
/
Durée : 2H
Niveau
4SI
Nom :…………………………..………….Prénom : ………………………………..N° :…..
Exercice 1 (4 points) :
Soient les déclarations Pascal suivantes :
Type
Jour= (Lundi, Mardi, Mercredi, Jeudi, Vendredi, Samedi, Dimanche) ;
Date= Record
jj :Jour ;
mm :1..12 ;
aa :Word ;
end ;
Personne= Record
CIN : Longint ;
Nom:String[20];
Date_nais:Date;
End;
Fpersonnes= File of Personne ;
Note
20
Var
P1, P2: personne;
F : Fpersonnes ;
D : Date ;
Travail demandé :
Compléter le tableau ci-dessous en mettant une croix (X) dans la colonne valide ou invalide pour chaque
instruction. Justifier votre réponse pour les instructions invalides.
Instruction
Valide
Invalide
Justification si invalide
P1>P2
………………………………………………………….
P1.Date_nais.jj :=Pred(Mardi) ;
………………………………………………………….
Readln(D.jj) ;
………………………………………………………….
Read(F,P2) ;
………………………………………………………….
P1 :=P2 ;
………………………………………………………….
Writeln(F, P1) ;
………………………………………………………….
D.jj :=’Dimanche’ ;
………………………………………………………….
Pointer (F, P1) ;
………………………………………………………….
1/4
2. Exercice 2 (6 points) :
Soit l’algorithme de la fonction Inconnue suivant :
0) Def fn Inconnue (N :………………) :………………….
1) S 0
Tant que (N≠0) faire
SS+2*N-1
NN-1
Fin Tant que
2) Inconnue S
3) Fin Inconnue
Travail de mandé :
1- Compléter l’entête de la fonction.
2- Cocher la bonne réponse : Cette fonction est
récursive
-
itérative
Justifier votre réponse : …………....………………………………………………………………………
……………………………………………….…………………………………………………………………
3- Exécuter la fonction Inconnue pour chaque valeur de N.
N
Résultat de la fonction
0
……………………………………
4
……………………………………
9
……………………………………
4- Déduire le rôle de cette fonction
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
5- Ecrire l’algorithme d’une solution récursive pour la fonction Inconnue.
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
2/4
3. Problème : (10 pts)
On se propose d’écrire un programme qui permet de :
-
Remplir un tableau T par N lettres majuscules avec N compris entre 5 et 100.
-
Trier en ordre croissant les éléments de T en utilisant la méthode de tri comptage (Tri casier).
Principe
1- Remplir un tableau TC par les nombres d’occurrence de chaque élément dans T.
TC est un tableau de 26 entiers dont les indices sont les lettres majuscules.
2- Reconstruire T en tenant compte du nombre d’occurrence de chaque élément du tableau T dans TC.
Exemple : N=8
T=
TC =
1
3
0
2
D
0
A
0
A B C D E F
0
B
1
D
B
0
0
Z
0
0
B
0
0
0
0
G H I
J
K L M N O P
0
H
0
0
Q R S
0
0
0
0
0
0
1
T U V W X Y Z
A existe une fois dans T donc elle sera mis dans une case.
B existe 3 fois dans T donc elle sera mis dans trois cases,
C n’existe pas dans T donc elle ne sera pas mis, etc.
Après Tri T sera :
A
B
B
B
D
D
-
Saisir un entier K tel que K compris entre 1 et N.
-
Z
Afficher le tableau T trié.
-
H
Déterminer et afficher le Kième plus petit élément de T s’il existe.
Exemple :
Si K=3, Le programme affiche : Le 3ième plus petit élément est D.
Si K=6, Le programme affiche : Pas de 6ième plus petit élément.
Travail demandé :
1- Analyser le problème en le décomposant en modules.
2- Analyser chaque module envisagé.
…...…………………………………………………………………………………………………………………
…...…………………………………………………………………………………………………………………
…...…………………………………………………………………………………………………………………
…...…………………………………………………………………………………………………………………
…...…………………………………………………………………………………………………………………
…...…………………………………………………………………………………………………………………
…...…………………………………………………………………………………………………………………
…...…………………………………………………………………………………………………………………
…...…………………………………………………………………………………………………………………
…...…………………………………………………………………………………………………………………
3/4