1. DEVOIR DE SYNTHESE N°01
LYCEE ELIMTIEZ TOZEUR Matière : Algorithmique & Programmation Théorique
********
2010/2011 Durée : 2h Classe : 4ème SI
******** Date : 06/12/2010 Coefficient : 3
Sujet proposé par : Mr B BEYA Hassen
Attention:
ü Le sujet comporte trois pages.
ü Chaque partie sera faite sur des feuilles indépendantes.
ü Rendez une copie propre.
PARTIE I
Exercice 1 (4 pts)
Soient les déclarations suivantes :
Type
Client = Enregistrement
Nom : Chaîne [30]
Rib : Entier long
Solde : Réel
Fin Client
FClient = Fichier de Client
TClient = Tableau de 100 Client
FReel = Fichier de réel
Objet Type/Nature Rôle
C Client Enregistrement pour un Client
F FClient Fichier de Client
F1 Texte Fichier texte
F2 FReel Fichier de réels
TC TClient Tableau d’enregistrement Client
Ch Chaîne Chaîne de caractère
j Entier Compteur
En se basant sur les déclarations précédentes, dire pour chacune des instructions suivantes si elle est
correcte ou non. Dans le cas où elle ne l’est pas, justifier votre réponse.
a. Lire(F, C)
b. Ecrire(F2, ch)
c. Pointer(F1, 8)
d. Ecrire(F, TC[j])
e. Ecrire(F, C.Solde)
f. Lire_nl(F2, j)
Voir suite au verso F
Page 1 sur 3
2. Exercice 2 (4 pts)
Soit l’algorithme de la fonction Inconnu suivante :
0) DEF FN Inconnu (d, n:Entier): ………………………
1) Si (d> (n div 2)) Alors
Inconnu ← vrai
Sinon Si (n mod d ≠ 0) Alors
Inconnu ← FN Inconnu (d+1, n)
Sinon
Inconnu ← faux
Fin Si
2) Fin Inconnu
Questions
1. Quel type la fonction Inconnu pourra-t-elle avoir ?
2. Tourner à la main cette fonction avec les appels suivants en donnant la trace d’exécution de
chaque appel :
· Inconnu (2, 7)
· Inconnu (2, 25)
3. En déduire le rôle de cette fonction.
PARTIE II
Problème (12 pts)
Une société de produits laitier décide d’automatiser la gestion de ses produits. On détient pour chaque
article les informations suivantes :
Ø Numéro (Num) : entier désigne le numéro unique de l’article.
Ø Désignation (Des) : désigne le nom de l’article qui est une chaîne de 20 caractères au maximum.
Ø Une matricule (Mat) : remplie automatiquement par une chaine représentée par les deux
premiers caractères de la désignation et le numéro de l’article.
Exemple :
Pour l’article dont le numéro est 10, la désignation est ‘‘ YAOURT ’’ à la matricule sera « YA10 ».
Ø Une date de vente (DV) formée de trois champs :
o Jour (j) : (1 à 31)
o Mois (m) : (1 à 12)
o Année (a) : entier
Ø Quantité vendue (qv) : entier
Ø Prix unitaire (pu) : réel
Le programme doit réaliser les traitements suivants :
o Saisir et enregistrer les articles dans un fichier de données nommé « articles.dat », l’ajout
d’articles s’arrête lors de la saisie d’un numéro (Num) ≤ 0, qui ne sera pas retenu dans le fichier.
o Copier les articles saisis du fichier « articles.dat » vers un tableau « Tart ».
o Trier le tableau « Tart » par ordre décroissant des recettes :
Sachant que recettes = (qv*pu).
Page 2 sur 3
3. o A partir du tableau « Tart » et pour une date donnée valide saisie par l’utilisateur, créer un
fichier texte intitulé «Recettes.txt » contenant les informations des articles tel que :
- La 1ère ligne comporte le message « Articles vendus le : » suivie par la date saisie par
l’utilisateur.
- La 2ème ligne comporte la recette totale du jour (qv*pu) de tous les articles pour la date
donnée précédée par le message « Recette total du jour : ».
- La 3ème ligne comporte « Matricule des articles vendus » suivie d’un espace suivi de
« recette ».
- La suite du fichier comportera, pour chaque article vendue, la matricule suivie d’un espace
suivi de la recette de vente (qv*pu).
o Afficher le contenu du fichier « Recettes.txt ».
N.B : Tous les fichiers seront sauvegardés dans le dossier C:BAC2011.
Exemple :
Contenu du tableau « Tart » (pour 3 articles) après le tri
1 2 3
9 10 4
LAIT YAOURT FROMAGE
LA9 YA10 FR4
06 06 27
Tart 12 12 10
2010 2010 2010
200 300 1000
1,00 0,250 0,150
Contenu du fichier « Recettes.txt » si la date saisie est le « 06/12/2010 »
Articles vendus le : 06/12/2010
Recette total du jour : 275
Matricule des articles vendus Recette
LA9 200
YA10 75
Questions
1) Proposer la/les structure(s) de donnée(s) adéquate(s) à utiliser pour la résolution de ce
problème.
2) Analyser ce problème en le décomposant en modules et en déduire l'algorithme du programme
principal.
3) Analyser chacun des modules envisagés précédemment.
BON TRAVAIL
Page 3 sur 3