More Related Content
More from Ămîʼndǿ TrànCè (16)
correction
- 1. Solutionnaire Du Devoir De Synthèse N°1 (2010/2011)
Classes : 4 SI
Exercice 1 (4 pts)
a. Lire (F, C) : cette instruction est correcte. 0.5 pts
b. Ecrire (F2, ch) : cette instruction n’est pas correcte car ch est de type chaîne, F2 de
type FReel, les types ne sont pas compatibles. 0.75 pts = 0.25+0.5
c. Pointer (F1, 8) : cette instruction n’est pas correcte car la procédure Pointer permet
d’accéder à l’enregistrement n° 8 du fichier F1, or F1 est de type texte et l’accès à ce
fichier est séquentiel. 0.75 pts = 0.25+0.5
d. Ecrire (F, TC[j]) : cette instruction est correcte. 0.5 pts
e. Ecrire (F, C.Solde) : cette instruction n’est pas correcte car l’instruction Ecrire permet
d’écrire dans un fichier la totalité d’un enregistrement, or C.Solde est un champ
d’enregistrement. 0.75 pts = 0.25+0.5
f. Lire_nl (F2, j) : cette instruction n’est pas correcte car l’instruction Lire_nl permet de
lire le contenu d’une ligne d’un fichier texte or F2 est de type FReel et pointe la
prochaine ligne. 0.75 pts = 0.25+0.5
Exercice 2 (4 pts)
0.5 pts
a. La fonction Inconnue retourne un résultat booléen.
b. Voici la liste des appels récursifs :
· Inconnu (2, 7)
Inconnu (2, 7) vrai 1.25 pts = 1 + 0.25
2 > 7 div 2 = 3 Faux
7 mod 2 = 1 ≠ 0
Inconnu (3, 7) vrai
3 > 3 Faux
7 mod 3 = 1 ≠ 0
Inconnu (4, 7) vrai
4>3
Vrai
Inconnu (2, 7) = Vrai
· Inconnue (2, 25)
Inconnu (2, 25) Faux 1.75 pts = 1.5 + 0.25
2 > 25 div 2 = 12 Faux
25 mod 2 = 1 ≠ 0
Inconnu (3, 25) Faux
3 > 25 div 3 = 8 Faux
Classes : 4 SI
25 mod 3 = 1 ≠ 0
Inconnu (4, 25) Faux
4 > 25 div 4 = 6 Faux
25 mod 4 = 1 ≠ 0
Inconnu (5, 25) Faux
5 > 5 Faux
25 mod 5 = 0
Faux
© Correction réalisée par: B.BEYA Hassen Page 1 sur 6
- 2. Solutionnaire Du Devoir De Synthèse N°1 (2010/2011)
Classes : 4 SI
Inconnu (2, 25) = Faux
c. Le rôle de la fonction Inconnue permet de tester est-ce que le nombre n est premier
ou non. 0.5 pt
Problème (12 points)
Barème
ANALYSES
PP 1,5 pts = 0,5 cohérence + 0,5 modularité + 0.5 algorithme
Création 0 ,5 pt = 0.25 par fichier
Saisie 2, 5 pts =
· 0,25 pt = en tête + mode de passage des paramètres
· 0,25 pt = répéter et condition d’arrêt
· 1,75 pts = 0, 5 structure Avec + 0,25*5 lecture des
champs
· 0,25 pt = écriture dans le fichier
Transfert 1,25 pts =
· 0,25 pt = en tête + mode de passage des paramètres
· 0, 25 pt ouverture + taille de fichier
· 0,25 pt boucle pour
· 0,5 pt traitement
Tri 1,25 pts =
· 1.25 pts traitement
Remplir 2,75 pts =
· 0,25 pt = en tête + mode de passage des paramètres
· 0,25 pt écriture dans le fichier frecette
· 0,25 pt boucle pour
· 0,25 pt test + 0,25 pt écriture dans le fichier frecette
· 0,25 pt écriture dans le fichier frecette
· 0,25 pt boucle pour
· 0,25 pt test + 0,25 pt calcul du total
· 0,25 pt écriture dans le fichier frecette
· 0,25 pt date saisie
Affiche 1 pt =
· 0,25 pt = en tête + mode de passage des paramètres
· 0,25 ouverture+fermeture
· 0, 25 structure Tant que
· 0,25 lecture+affichage
Divers :
Classes : 4 SI
- T.D.N.T 0,75 pts
- T.D.O 0,5 pts
© Correction réalisée par: B.BEYA Hassen Page 2 sur 6
- 3. Solutionnaire Du Devoir De Synthèse N°1 (2010/2011)
Classes : 4 SI
Analyse du programme principal
Nom : Gestion_Article
Résultat = Proc Affiche (frecette)
(frecette) = Proc Remplir (frecette, Tart)
Tart = Proc Tri (Tart, n)
(n, Tart) = Proc Transfert (fart, Tart, n)
fart = Proc Saisie (fart)
(fart, frecette) = Proc Creation(fart, frecette)
Fin Gestion_Article
Tableau.de déclaration des nouveaux types
Type
Date = Enregistrement
j : 1..31
m : 1..12
a : entier
Fin Date
Article = Enregistrement
Num : entier
des : chaîne [20]
mat : chaîne
dv : Date
qv : Entier
pu : Réel
Fin Article
Farticle = Fichier de Article
Tab = Tableau de 100 Article
Tableau de déclaration des objets globaux
Objet Type/Nature Rôle
frecette Texte Fichier texte
fart Farticle Fichier d’articles
Tart Tab Tableau d’enregistrement article
n entier Nombre d’articles
Creation Procédure Création de deux fichiers
Saisie Procédure Remplissage du fichier fart
Tri Procédure Trier le tableau Tart
Transfert Procédure Transférer les données de fart vers Tart
Remplir Procédure Remplir le fichier frecette à partir de Tart
Affiche Procédure Afficher les éléments du fichier frecette
Algorithme du programme principal
Classes : 4 SI
0) Début Gestion_Article
1) Proc Creation(fart, frecette)
2) Proc Saisie (fart)
3) Proc Transfert (fart, Tart, n)
4) Proc Tri (Tart, n)
5) Proc Remplir (frecette, Tart)
© Correction réalisée par: B.BEYA Hassen Page 3 sur 6
- 4. Solutionnaire Du Devoir De Synthèse N°1 (2010/2011)
Classes : 4 SI
6) Proc Affiche (frecette)
7) Fin Gestion_Article
Analyse de la procédure Creation
⓪DEF PROC Création (Var fart : Farticle ; Var frecette : texte)
Résultat = fart, frecette
fart = ②Recréer (fart)
fart = ①Assigner (fart, ‘’C:BAC2011ARTICLES.DAT’’)
frecette = ④Recréer (frecette)
frecette = ③Assigner (frecette, ‘’C:BAC2011RECETTES.TXT)
⑤Fin Creation
Analyse de la procédure Saisie
⓪DEF PROC Saisie (var far : Farticle)
Résultat =
[ ] ①Répéter
Numero = donnée
Si numero > 0 Alors
Avec a Faire
Num ← numero
Des = donnée
Ch1 ← sous-chaîne (des, 1, 2)
Convch( Num, chnum)
Mat ← concat(ch1, chnum)
Avec dv Faire
j = donnée
m = donnée
a = donnée
Fin Avec
qv =donnée
pv =donnée
Fin Avec
Ecrire (fart, a)
Fin Si
Jusqu’à (numero ≤ 0)
fart = ②Fermer (fart)
③Fin Saisie
Tableau de déclaration des objets locaux
Objets Type /Nature
a Article
numero entier
Classes : 4 SI
Ch1, chnum chaîne
© Correction réalisée par: B.BEYA Hassen Page 4 sur 6
- 5. Solutionnaire Du Devoir De Synthèse N°1 (2010/2011)
Classes : 4 SI
Analyse de la procédure Transfert
⓪DEF PROC Transfert (var fart: farticle; var Tart: Tab; var n : entier)
Résultat =
[fart = ①Ouvrir (fart), ②n←Taille_Fichier(fart) ] ③Pour i de 1 à n faire
Lire (fart, V)
Tart[i] ← V
Fin Pour
fart = ④Fermer (fart)
⑤Fin Transfert
Tableau de déclaration des objets locaux
Objets Type /Nature
v Article
i entier
Analyse de la procédure Tri
⓪DEF PROC Tri (var Tart : Tab ; N : entier)
Résultat =
③Tant que (p ≠ 0) faire
p ← (p div 3)
Pour i de p à N Faire
k ← Tart[i] (* Valeur à insérer *)
(* Recherche de la position d'insertion *)
j← i
Tant que (j>p-1) et (Tart[j-p].qv * Tart[j-p].pu > k) faire
Tart[j] ← Tart[j-p]
j ←j-p
Fin Tant que
(* Insertion de la valeur à son emplacement *)
Tart[j] ← k
Fin Pour
Fin Tant que
P= [①p ←0] ②Tant que (p < N) faire
p ← (3*p+1)
Fin Tant que
④Fin Tri
Tableau de déclaration des objets locaux
Objets Type /Nature
k Article
i,j,p entier
Classes : 4 SI
© Correction réalisée par: B.BEYA Hassen Page 5 sur 6
- 6. Solutionnaire Du Devoir De Synthèse N°1 (2010/2011)
Classes : 4 SI
Analyse de la procédure Remplir
⓪DEF PROC Remplir (var frecette : Texte ; Tart : Tab)
Résultat =
[①recréer (frecette), ⑦Ecrire_nl(frecette, ‘’Matricule des articles vendus’’, ‘’ ‘’, ‘’Recette’’)]
⑧Pour j de 1 à n faire
Si (Tart[j].dv.j = ds.j) et (Tart[j].dv.m = ds.m) et (Tart[j].dv.a = ds.a) Alors
Ecrire_nl (frecette, Tart[j].Mat, ‘’ ‘’, pu * qv)
Fin Si
Fin Pour
⑥Ecrire_nl (frecette, ‘’Recette total du jour’’, ‘’ ‘’, total)
Total = [④ total ← 0 ]
⑤Pour j de 1 à n faire
Si (Tart[j].dv.j = ds.j) et (Tart[j].dv.m = ds.m) et (Tart[j].dv.a = ds.a) Alors
total ← total + ( Tart[j].qv * Tart[j].pu)
Fin Si
Fin Pour
③Ecrire_nl (frecette, ‘’Articles vendus le :’’, ds.j, ‘’/‘’, ds.m, ‘’/‘’, ds.a)
Ds = [ ] ②Avec ds Faire
j = donnée
m = donnée
a = donnée
Fin Avec
frecette = ⑨Fermer (frecette)
⑩Fin Remplir
Tableau de déclaration des objets locaux
Objets Type /Nature
j entier
ds Date
total Réel
Analyse de la procédure Affiche
⓪DEF PROC Affiche (Var frecette : texte)
Résultat =
[frecette = ①Ouvrir (frecette) ] ②Tant que Non (fin_fichier(frecette)) Faire
Lire_nl (frecette, ligne)
Ecrire_nl(ligne)
Fin tant que
frecette = ③Fermer (frecette)
④Fin Affiche
Tableau de déclaration des objets locaux
Classes : 4 SI
Objets Type /Nature
ligne chaîne
© Correction réalisée par: B.BEYA Hassen Page 6 sur 6