Académique Documents
Professionnel Documents
Culture Documents
PARACETAMOL
Exemple : 5 boîtes
117.00 DA
Stock
ASPIRINE
…
PARACETAMOL ACTIFED
15 boîtes 44 boîtes DOLIPRANE UPSA
5 boîtes
117.00 DA 125.25 DA 78.25 DA 10 boîtes 44 boîtes
200.48 DA 78.25
On vous demande de :
ACTIFED MENTHOL RUMAFED VICK
1. Donner les structures de données nécessaires à la représentation 15 boîtes 2 boîtes 7 boîtes 40 boîtes
de ce stock. 125.25 DA 171.66 163.56 49.67
1
On vous demande de : 2. Donner cette structure après l’ajout de 40 puis 22.
1. Donner les structures de données nécessaires à la représentation 3. Donner cette structure après la suppression de 19 puis 28.
de ce stock.
2. Réécrire la procédure Vendre décrite dans l’exercice précédent sur
la nouvelle structure.
NB : On donne la procédure Nettoyer (Stock) permettant de FFF Bonne chance FFF
supprimer du stock tous les médicaments ayant une quantité nulle. A.Djeffal
3. Réécrire la procédure Acheter décrite dans l’exercice précédent
sur la nouvelle structure.
4. Réécrire la fonction PrixStock décrite dans l’exercice précédent
sur la nouvelle structure.
Exercice 3 (3 pts : 1 + 1 + 1)
28
17 24
14 16 19 21
2
Corrigé type
Procédure Vendre( Med : chaine, NbBoites : entier);
Var P,PP : Pointeur(TMaillon) ;
Début
P ← Stock ;
PP ← Nil ;
Tant que ((P 6= Nil et Libellé(P) 6= Med) faire
PP ← P ;
P ← Suivant(P) ;
Exercice 1 : Listes linéaires chainées Fin TQ;
Si (P 6= Nil) Alors
Si (Quantité(P)< NbBoites) Alors
Ecrire(’Quantité insuffisantes’)
Sinon
1. Structures de données (1 pt) Aff Quantité(P,Quantité(P)-NbBoites) ;
Si (Quantité(P) = 0) Alors
Si (PP=Nil) Alors
Stock ← Suivant(Stock)
Sinon
Aff Adr(PP,Suivant(P))
Fin Si;
Type TMaillon = Structure
Libérer(P) ;
Libellé : chaine ; Fin Si;
Quantité : entier ;
PrixUnit : réel ; Fin Si;
Suivant : Pointeur(TMaillon) ; Sinon
Fin ; Ecrire(’Ce médicament n’existe pas’) ;
Var Stock : Pointeur(TMaillon) ; Fin Si;
Fin;
3
3. Procédure Acheter(Med, NbBoites, PrixUnit) (2.5 pts)
Fonction PrixStock() : réel;
Var P : Pointeur(TMaillon) ;
S : réel
Début
P ← Stock ;
S ← 0;
Procédure Acheter( Med : chaine, NbBoites : entier, PrixU- Tant que ((P 6= Nil) faire
nit : réel); S ← S + Quantité(P) × PrixUnit(P) ;
Var P : Pointeur(TMaillon) ; P ← Suivant(P) ;
Début Fin TQ;
P ← Stock ; PrixStock ← S ;
Tant que ((P 6= Nil et Libellé(P) 6= Med) faire Fin;
P ← Suivant(P) ;
Fin TQ;
Si (P 6= Nil) Alors
Aff Quantité(P,Quantité(P)+NbBoites) ; Exercice 2 : Arbres de recherche binaires
Aff PrixUnit(P,PrixUnit) ;
Sinon
Allouer(P) ; 1. Structures de données (1 pt)
Aff Libellé(P,Med) ;
Aff Quantité(P,NbBoites) ;
Aff PrixUnit(P,PrixUnit) ; Type TNoeud = Structure
Aff Adr(P,Stock) ; Libellé : chaine ;
Stock ← P ; Quantité : entier ;
Fin Si; PrixUnit : réel ;
FG,FD : Pointeur(TNoeud) ;
Fin;
Fin ;
Var Stock : Pointeur(TNoeud) ;
4
2. Procédure Vendre(Med, NbBoı̂tes) (3 pts)
Procédure Acheter( Med : chaine, NbBoites : entier, PrixU-
nit : réel);
Var P,PP : Pointeur(TNoeud) ;
Procédure Vendre( Med : chaine, NbBoites : entier); Début
Var P,PP : Pointeur(TNoeud) ; P ← Stock ; PP ← Nil ;
Début Tant que ((P 6= Nil et Libellé(P) 6= Med) faire
P ← Stock ; PP ← P ;
PP ← Nil ; Si (Libellé(P)> Med) Alors
Tant que ((P 6= Nil et Libellé(P) 6= Med) faire P ← FG(P)
PP ← P ; Sinon
Si (Libellé(P)> Med) Alors P ← FD(P)
P ← FG(P) Fin Si;
Sinon
P ← FD(P) Fin TQ;
Fin Si; Si (P 6= Nil) Alors
Aff Quantité(P,Quantité(P)+NbBoites) ;
Fin TQ; Aff PrixUnit(P,PrixUnit) ;
Si (P 6= Nil) Alors Sinon
Si (Quantité(P)< NbBoites) Alors Allouer(P) ;
Ecrire(’Quantité insuffisante’) Aff Libellé(P,Med) ;
Sinon Aff Quantité(P,NbBoites) ;
Aff Quantité(P,Quantité(P)-NbBoites) ; Aff PrixUnit(P,PrixUnit) ;
Si (Quantité(P) = 0) Alors Aff FG(P,Nil) ; Aff FD(P,Nil) ;
Nettoyer(P) Si (PP=Nil) Alors
Fin Si; Stock ← P
Fin Si; Sinon
Si (Libellé(P)>Med) Alors
Sinon Aff FG(PP,P)
Ecrire(’Ce médicament n’existe pas’) ; Sinon
Fin Si; Aff FD(PP,P)
Fin; Fin Si;
Fin Si;
Fin Si;
Fin;
3. Procédure Acheter(Med, NbBoites, PrixUnit) (3 pts)
5
4. La fonction PrixStock (2 pt) 3. Impossible de supprimer 19 du tas (0.5 pt). Après le retrait de 28,
le tas devient (0.5 pt) :
14 16 19
Exercice 3
40
28 24
22 16 19 21
14 17