Académique Documents
Professionnel Documents
Culture Documents
On convient de représenter une image en noire et blanc à l’aide un arbre 1. Donner les déclarations des structures de données nécessaires à
m-aire de degré 4 comme suit : l’implémentation de ce modèle.
Une image toute noire est représentée par une feuille d’une valeur ‘N’ 2. Soit la procédure suivante :
Procedure Traiter (Racine : Pointeur(TNoeud)) ;
=> N Var P : Pointeur(TNoeud) ;
I : entier ;
Une image toute blanche est représentée par une feuille d’une valeur ‘B’ Debut
Si Racine Nil etValeur(Racine) = ’C’ alors
=> B P Fils1 ( Racine ) ;
Aff_Fils1 ( Racine , Fils3 ( Racine ) ) ;
Une image contenant les deux couleurs est représentée par un sous arbre dont Aff_Fils3 ( Racine , Fils4 (Racine ) ) ;
la racine est de valeur ‘C’ et chaque fils représente un quart de l’image. Aff_Fils4 ( Racine, Fils2 ( Racine ) ) ;
Aff_Fils2 (Racine,P) ;
1 2 => C
3 4 2 Pour I=1 à 4 faire
Traiter ( Filsi (Racine) ) ;
1 2 3 4
FPour ;
Exemple : FSi
Soit l’image suivante : Fin ;
Donner l’image correspondant à l’arbre précédent après l’appel
Traiter ( Image ) ;
3. Ecrire la procédure permettant de tourner verticalement une image
représentée par un arbre.
==>
L’arbre représentant cette image est le suivant :
Image
C
Bon courage
C C B C A.Djeffal
B N B N N N B B N B N B
FTQ ;
Corrigé type
Si P Nil alors Ecrire ( ‘Cette categorie existe déjà’ ) ;
Sinon
Exercice 1 Allouer ( Q ) ;
1. (1.5 pt) Aff_Val (Q, NCateg, 0, Nil) ;
Type TLivre = Structure Aff_Adr (Q,Nil) ;
Titre, Auteur : chaine ; Si PP = Nil alors Bibliotheque P
Suivant : Pointeur ( TLivre ) Sinon
Fin ; Aff_Adr (PP, Q) ;
FSi ;
Type TCategorie = Structure Fin;
NomCateg : chaine ;
NbLivre : entier ; 3. (2 pts)
TeteListeLivres : Pointeur ( TLivre ) Procedure AjouterLivre(NCateg, NTitre,NAuteur:chaine) ;
Suivant : Pointeur ( TCategorie ) ; Var
Fin ; P : Pointeur (TCategorie) ;
Var Q : Pointeur (TLivre) ;
Bibliotheque : Pointeur ( TCategorie ) ; Debut
P Bibliotheque ;
Procedure Initialisation ; TQ P Nil et NomCateg(P) NCateg Faire
Debut P Suivant ( P ) ;
Bibliotheque Nil ; FTQ ;
Fin ; Si P = Nil alors Ecrire( ‘Cette catégorie n’existe pas’)
Sinon
2. ( 1.5 pt) Allouer (Q) ;
Procedure AjouterCategorie ( NCateg : chaine) ; Aff_Adr(Q, TeteListeLivre(P)) ;
Var Aff _Val(Q, NTitre, NAuteur) ;
P, PP, Q : Pointeur (TCategorie) ; Aff_Val(P, NomCateg (P), NbLivre(P) + 1, Q) ;
Debut FSi
Fin ;
P Bibliotheque ;
PP Nil ;
TQ P Nil et NomCteg(P) NCateg Faire
PP P ;
P Suivant ( P ) ;
Fin ;