Changes between Version 1 and Version 2 of 2010CaoTme3


Ignore:
Timestamp:
Mar 19, 2010, 6:57:41 PM (15 years ago)
Author:
jpc
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • 2010CaoTme3

    v1 v2  
    22
    33
    4 = Représentation d'une Structure Booléenne Multi-niveaux (EBM) ==
     4= Représentation d'une Structure Booléenne Multi-niveaux (EBM) =
    55
    66Les fichiers nécessaires à la réalisation de ce TME sont disponibles
     
    3838__Principales méthodes de la classe {{{Ebm}}}:__
    3939 * {{{litterals()}}} : retourne le nombre de littéraux de l'{{{EBM}}}. C'est à dire le nombre
    40                        de fois que des variables apparaissent dans l'expression.
    41  * {{{support()}}}   : retourne le support de l'{{{EBM}}} sous forme d'ensemble ({{{set<>}}})
    42                        Le support est l'ensemble des variables nécessaire pour calculer la
    43                        valeur de l'expression.
     40   de fois que des variables apparaissent dans l'expression.
     41 * {{{support()}}} : retourne le support de l'{{{EBM}}} sous forme d'ensemble ({{{set<>}}})
     42   Le support est l'ensemble des variables nécessaire pour calculer la
     43   valeur de l'expression.
    4444 * {{{support(std::ostream&)}}} : Affiche le support dans un flux, voir l'exemple d'éxécution
    45                        du programme de test fourni plus bas.
     45   du programme de test fourni plus bas.
    4646 * {{{display(std::ostream&)}}} : Affiche l'{{{EBM}}} sous sa forme humainement lisible, en
    47                        notation ''préfixée''.
    48  * {{{eval()}}      : Calcule la valeur de l'expression booléenne. Le type de retour est un
    49                        {{{ValueType}}}, c'est à dire une variable pouvant prendre trois valeurs:
    50                        {{{Low}}}, {{{High}}} et {{{Unknown}}} (cf. {{{CaoTypes.h}}}.
    51  * {{{parse()}}}     : Une fonction statique transformant une chaîne de caractères en une
    52                        {{{EBM}}}.
     47   notation ''préfixée''.
     48 * {{{eval()}}} : Calcule la valeur de l'expression booléenne. Le type de retour est un
     49   {{{ValueType}}}, c'est à dire une variable pouvant prendre trois valeurs:
     50   {{{Low}}}, {{{High}}} et {{{Unknown}}} (cf. {{{CaoTypes.h}}}).
     51 * {{{parse()}}} : Une fonction statique transformant une chaîne de caractères en une
     52   {{{EBM}}}.
    5353
    5454
     
    8383 * {{{_name}}}  : Le nom de la variable (par ex. {{{"a"}}})
    8484 * {{{_value}}} : La valeur actuellement affectée à la variable
    85                   ({{{Low}}}, {{{High}}} ou {{{Unknown}}}).
     85   ({{{Low}}}, {{{High}}} ou {{{Unknown}}}).
    8686 * {{{_index}}} : Un index permettant d'identifier de façon unique la
    87                   variable. Cet index trouvera sont utilité dans le
    88                   TME suivant, présentant les {{{ROBDD}}}.
     87   variable. Cet index trouvera sont utilité dans le TME suivant, présentant les {{{ROBDD}}}.
    8988
    9089
    9190__Attributs ''statiques'' de la classe {{{EbmVar}}}:__
    9291 * {{{_maxIndex}}} : Le compteur utilisé pour générer des index uniques
    93                      (mécanisme identique à celui utilisé pour les vecteurs
    94                       lors du TME1).
    95  * {{{_byName}}}   : Une table associative permettant de retrouver ''n'importe
    96                      quelle'' variable sachant son nom.
    97  * {{{_byIndex}}   : Une table associative permettant de retrouver ''n'importe
    98                      quelle'' variable sachant son index.
     92   (mécanisme identique à celui utilisé pour les vecteurs lors du TME1).
     93 * {{{_byName}}} : Une table associative permettant de retrouver ''n'importe
     94   quelle'' variable sachant son nom.
     95 * {{{_byIndex}}} : Une table associative permettant de retrouver ''n'importe
     96   quelle'' variable sachant son index.
    9997
    10098__Principales méthodes de la classe {{{EbmVar}}}:__
     
    103101 * {{{getValue()}}} : accesseur retournant la valeur.
    104102 * {{{setValue()}}} : modificateur de la valeur.
    105  * {{{get()}}}      : deux surcharge différentes pour retrouver une variable
    106                       par son nom ou par son index.
     103 * {{{get()}}} : deux surcharge différentes pour retrouver une variable
     104   par son nom ou par son index.
    107105
    108106
     
    136134__Attributs de la classe {{{EbmExpr}}}:__
    137135 * {{{_operator}}} : le type de l'opérateur (dans {{{CaoTypes.h}}}, parmis
    138                      {{{Not}}}, {{{And}}}, {{{Or}}} ou {{{Xor}}}).
     136   {{{Not}}}, {{{And}}}, {{{Or}}} ou {{{Xor}}}).
    139137 * {{{_operands}}} : une liste de pointeurs vers les opérandes.
    140138
     
    143141 * {{{getOperator()}}} : accesseur, retourne le type de l'opérateur.
    144142 * {{{getOperands()}}} : accesseur, retourne une référence sur la liste
    145                          des opérandes (pour éviter une copie inutile de
    146                          la liste).
    147  * {{{Or()}}}          : trois surcharges construisant une expression
    148                          {{{Or}}} entre ses {{{N}}} opérandes. Le but de ces
    149                          différentes fonctions est de cacher la construction
    150                          de la liste des opérandes et l'allocation de
    151                          l'{{{EbmExpr}}} résultante. Noter que cela implique
    152                          une construction ''bottom-up'' de l'{{{EBM}}} complète.
    153                          Voir l'exemple fourni.
     143   des opérandes (pour éviter une copie inutile de la liste).
     144 * {{{Or()}}} : trois surcharges construisant une expression {{{Or}}} entre ses
     145   {{{N}}} opérandes. Le but de ces différentes fonctions est de cacher la construction
     146   de la liste des opérandes et l'allocation de l'{{{EbmExpr}}} résultante.
     147   Noter que cela implique une construction ''bottom-up'' de l'{{{EBM}}} complète.
     148   Voir l'exemple fourni.
    154149 * {{{And()}}} et {{{Xor()}}} : idem.
    155150
     
    158153
    159154
     155[[Image(Ebm-1.png)]]
     156[[Image(Ebm-2.png)]]
     157[[Image(Ebm-3.png)]]
     158[[Image(Ebm-4.png)]]
     159[[Image(Ebm-5.png)]]
     160
     161
    160162== Fonctionnement de la fonction {{{getType()}}} ==
    161163