Notions abordées : arbres binaires, spécification algébriques, arbres quadratiques.
arbre_binaire.Vide() et Enrac(ag,r,ad).arbre_gauche(a), arbre_droit(a),
racine(a).vide(a).hauteur(a) qui retourne la hauteur
d'un arbre.taille(a) qui retourne le nombre de
nœuds internes.nb_feuilles(a) qui retourne le
nombre de feuilles.parcours_prefixe(a)
qui affiche les éléments dans l'ordre du parcours en profondeur d'abord
préfixe.arbre_quad.Feuille(f)
et Enrac(so,no,ne,se)
(so=sud ouest, no=nord ouest, ne=nord est, se=sud est).arbre_so(a), arbre_no(a),
arbre_ne(a), arbre_se(a), etiquette(a).feuille(a) qui teste si un arbre
quadratique est une feuille.On représente les images carrées en noir et blanc par un arbre quadratique dont les éléments sont des booléens (blanc = vrai, noir = faux).
image_egal(i1,i2)
qui teste si deux images sont identiques.union(i1,i2)
et intersection(i1,i2) qui retournent l'image obtenue en
superposant deux images et en mettant du noir respectivement là où il y
a du noir dans l'un des deux images et là où il y a du noir dans les
deux images.est_noir(i,x,y)
qui teste si dans l'image i, le pixel de coordonnées (x,y)
est noir. (Le pixel au coin au sud-ouest a pour coordonnées (0,0) et le
pixel au coin au nord-est a pour coordonnées (n-1,n-1) où n x n est la
taille de l'image en pixels). (On suppose que l'image est telle que le
plus petit carré monochrome qui la compose est de taille supérieure ou
égale à 1 pixel).noircir(i,x,y)
qui modifie une image en noircissant le pixel de coordonnées (x,y).