Changes between Version 2 and Version 3 of CaoCourseTme5
- Timestamp:
- Mar 7, 2007, 4:10:19 PM (18 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
CaoCourseTme5
v2 v3 3 3 <h1>TME 5 : Représentation des expressions Boolèennes : ABL</h1> 4 4 }}} 5 [[PageOutline]] 5 6 7 = Objectif = 6 8 7 Les ABL (Abres Binaires Lisp-Like) sont utilisés pour représenter des expressions Booléennes multi-niveaux (c’est à dire des expressions Booléennes préfixées pouvant comporter plusieurs niveaux d’imbrication de parenthèsage). 8 Avec cette technique, une expression Booléenne est représentée comme une liste chaînée de bipointeurs. Le premier élément de la liste définit l’opérateur (les 4 opérateurs utilisés sont NOT, OR, AND et XOR). Les éléments suivants de la liste chaînée représentent les opérandes. Chaque opérande peut être : 9 L'objectif principal de ce TME est de vous familiariser avec la représentation des expressions Booléennes sous forme 10 d'arbres ABL (Abres Binaires Lisp-Like), et à rafraîchir vos connaissances dans le domaine de la programmation 11 des fonctions récursives. 12 Les expressions Booléennes multi-niveaux sont des expressions Booléennes préfixées pouvant comporter 13 plusieurs niveaux d’imbrication de parenthèses. On représente une expression Booléenne comme une liste chaînée de bipointeurs. 14 Le premier élément de la liste définit l’opérateur (les 4 opérateurs utilisés sont NOT, OR, AND et XOR). Les éléments suivants de la liste chaînée représentent les opérandes. Chaque opérande peut être : 9 15 * soit une variable Booléenne, définie par son nom. 10 16 * soit une autre expression Booléenne. … … 55 61 Cette fonction prend en entrée une chaîne de caractères décrivant une expression Booléenne préfixée possédant un nombre quelconque de niveaux de parenthèsage. Elle construit en mémoire l’arbre ABL représentant cette expression Booléenne et renvoie un pointeur sur le bipointeur correspondant à la racine. 56 62 Attention: Cette fonction n’accepte que les expressions Booléennes préfixées. Les seuls opérateurs acceptés sont NOT, OR, AND et XOR. Elle affiche un message d’erreur en cas d’erreur de syntaxe, ou si elle rencontre un nom de variable non déclarée préalablement. 57 58 63 59 64 = A. Représentation Graphique = … … 124 129 * '''E.2''': Ecrire en langage C la fonction récursive eval_abl(), et valider cette fonction en l’intégrant dans le programme main(). 125 130 131 = Compte-rendu = 132 133 Aucun compte-rendu ne vous sera demandé pour ce TME, mais vous devrez présenter une démonstration 134 de votre code au début du prochain TME.