Académique Documents
Professionnel Documents
Culture Documents
1
chaînée.
1) Définir les types client, film et CD.
Type
client= enregistrement
CIN:entier
nom:chaine
fin enregistrement
film= enregistrement
Code_film:entier
titre:chaine
fin enregistrement
CD= enregistrement
code_cd:entier
code_film:entier
fin enregistrement
2) Définir le type emprunt où on trouve le CIN du client et la liste des CDs qu’il a
empruntée.
Type
LC_CD= enregistrement
val:CD
suiv:^LC_CD
fin enregistrement
emprunt= enregistrement
CIN:entier
list_CD:^LC_CD
suiv:^emprunt
fin enregistrement
2
3) Ecrire une procédure pour insérer en queue un CD emprunté par un client
existant et qui est identifié par un CIN.
A compléter
Procédure insert (emp:^emprunt, C: entier, v:CD)
Variables
LC,L :^LC_CD
e:^emprunt
Debut
e← emp
tant que(e <>nil) et (e^.CIN <>C) faire
e←e^.suiv
fin tant que
LC = e^.list_CD
si (LC<>nil) alors
tant que(LC^.suiv<>nil) faire
LC←LC^.suiv
fin tant que
L←nouveau(^LC_CD)
L^.val←v
L^.suiv←nil
LC^.suiv←L
sinon
L←nouveau(^LC_CD)
L^.val←v
L^.suiv←nil
LC←L
Fin si
Fin
3
4) Ecrire une procédure qui supprime un CD de la liste des CD empruntés par un
client en se basant sur son CIN () et le code du CD à supprimer.
Debut
e←emp
si (e<>nil)
fin si
fin
5) Ecrire une procédure qui permet d’afficher le CIN ainsi que tous les codes des CDs
empruntés.
Procédure affichage (e: ^emprunt)
Variables
L:^LC_CD
Debut
Tant que(e<>nil) faire
ecrire(e.CIN)
L←e^.list_CD
tant que(L<>nil) faire
ecrire(L^.CD.code_cd)
` L←L^.suiv
fin tant que
e←e^.suiv
Fin tant que
Fin
4
Dans cet exercice, vous pouvez exploiter les procédures et les fonctions définies dans l’exercice 1.
On suppose que la vidéothèque veut utiliser une autre version de l’application basée sur une
structure de données arbre binaire de recherche.
Type
CD= enregistrement
code_cd:entier
code_film:entier
fin enregistrement
LC_CD = enregistrement
val:CD
suiv:^LC_CD
fin enregistrement
ABR=Enregistrement
CIN_ABR: entier
list_cd:^LC_CD
fg:^ABR
fd:^ABR
fin enregistrement
fin
3) Ecrire une procédure qui cherche un client par son CIN dans l’arbre binaire de recherche.
Debut
5
si (r=nil) alors
re←nil
sinon
si (r.CIN_ABR=CIN) alors
re←r
sinon
si(r^.CIN_ABR>CIN) alors
re←recherche(r.^fg.CIN,re)
sinon
re←recherche (r.^fd.CIN,re)
fin si
fin si
fin si
Fin
4) Ecrire une procédure permettant de rajouter dans l’arbre binaire de recherche un CD. Le CD
est emprunté par un client et devra être stocké dans la liste chaînées du nœud du client
reconnu par son CIN.
Début
recherche_client(r,CIN,re)
si (re=nil) alors
ecrire (“client non stocké“)
sinon
ajout_CD (re,CIN,L)
A compléter (voir cours : insertqueue)
fin si
Fin
5) Ecrire une procédure qui permet d’afficher pour chaque client la liste des CDs qu’il a
empruntés et qui est stocké dans l’arbre binaire de recherche.
Procédure préfixe(r:^ABR)
Variable
6
L :LC_CD
Début
si (r<>nil) alors
écrire (r^.CIN_ABR)
L← r^. list_cd
tantque (L<>nil) faire
ecrire (L^.val.code_cd)
ecrire (L^.val.code_film)
L←L^.suiv
fin tantque
préfixe(r^.fg)
préfixe (r^.fd)
fin si
Fin
6) Ecrire une procédure permettant de supprimer un CD d’une liste de Cds d’un client donné.
debut
recherche_client(r,CIN,re)
si (re=nil)
ecrire (“client non stocké ‘’)
sinon
L←re^.list_cd
……………
fin si
fin
Bonne chance.