Changes between Version 4 and Version 5 of 2011CaoTme2


Ignore:
Timestamp:
Oct 9, 2012, 1:20:36 PM (12 years ago)
Author:
jpc
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • 2011CaoTme2

    v4 v5  
    1010
    1111Au cours de ce TME nous allons créer ce nouveau type (ou classe) que nous appellerons
    12 {{{BoolValue}}}.
     12{{{LogicValue}}}.
    1313
    1414
    15 == Spécification de {{{BoolValue}}} ==
     15== Spécification de {{{LogicValue}}} ==
    1616
    17 La classe {{{BoolValue}}} va contenir un seul attribut {{{_value}}} qui sera de type
     17La classe {{{LogicValue}}} va contenir un seul attribut {{{_value}}} qui sera de type
    1818entier et ne pourra prendre que trois valeurs: 0, 1 ou 2 ayant respectivement la
    1919signification {{{Zero}}}, {{{One}}} et {{{Undefined}}}.
     
    2323
    2424{{{
    25 class BoolValue {
     25class LogicValue {
    2626  public:
    2727    enum Value { Zero=0, One=1, Undefined=2 };
     
    3131}}}
    3232
    33 A l'extérieur de la classe on les référencera avec la syntaxe {{{BoolValue::Undefined}}}
     33A l'extérieur de la classe on les référencera avec la syntaxe {{{LogicValue::Undefined}}}
    3434et à l'intérieur, simplement comme {{{Undefined}}}.
    3535
    36 La classe {{{BoolValue}}} possèdera les fonctions membres suivantes:
     36La classe {{{LogicValue}}} possèdera les fonctions membres suivantes:
    3737
    3838Constructeurs: (''CTOR'')
    39 * {{{BoolValue()}}}, le constructeur par défaut, devra affecter la valeur {{{Zero}}}.
    40 * {{{BoolValue{{{int}}}, un contructeur à partir d'un entier ordinaire. Tout entier
     39* {{{LogicValue()}}}, le constructeur par défaut, devra affecter la valeur {{{Zero}}}.
     40* {{{LogicValue{{{int}}}, un contructeur à partir d'un entier ordinaire. Tout entier
    4141  de valeur supérieure ou égale à 2 sera considéré comme {{{Undefined}}}.
    42 * {{{BoolValue(const BoolValue&)}}}, un constructeur par copie.
     42* {{{LogicValue(const LogicValue&)}}}, un constructeur par copie.
    4343
    4444Destructeur: (''DTOR'')
    45 * {{{~BoolValue()}}}, le destructeur (unique).
     45* {{{~LogicValue()}}}, le destructeur (unique).
    4646
    4747Accesseurs: (''Accessors'')
     
    5454En plus des fonctions membres listées çi dessus, on ajoute les fonctions non-membres
    5555suivantes permettant de réaliser des opérations logiques:
    56 * {{{BoolValue non(const BoolValue&)}}}, négation logique.
    57 * {{{BoolValue ou (const BoolValue&, const BoolValue&)}}}, ''ou'' logique.
    58 * {{{BoolValue et (const BoolValue&, const BoolValue&)}}}, ''et'' logique.
     56* {{{LogicValue non(const LogicValue&)}}}, négation logique.
     57* {{{LogicValue ou (const LogicValue&, const LogicValue&)}}}, ''ou'' logique.
     58* {{{LogicValue et (const LogicValue&, const LogicValue&)}}}, ''et'' logique.
    5959
    6060La table de vérité des fonctions négation et ''OU'' vous est fournie çi-après.
     
    6565=== Question 1 ===
    6666
    67 Implanter la class {{{BoolValue}}} telle que décrite précédemment. Comme au TME1,
     67Implanter la class {{{LogicValue}}} telle que décrite précédemment. Comme au TME1,
    6868on tracera les appels aux constructeurs et destructeurs. Tester à l'aide du petit
    6969programme de test suivant:
     
    8888
    8989En vous basant sur l'opérateur qui a été présenté en cours, écrire l'opérateur d'écriture
    90 dans un flot pour l'objet {{{BoolValue}}}. Modifier le code des fonctions de vérification
     90dans un flot pour l'objet {{{LogicValue}}}. Modifier le code des fonctions de vérification
    9191en conséquence.
    9292
     
    102102Écrire les fonction (non-membre) ''{{{ou}}}'' et ''{{{et}}}'' sous forme d'opérateurs:
    103103{{{
    104 BoolValue operator or  ( const BoolValue&, const BoolValue& );
    105 BoolValue operator and ( const BoolValue&, const BoolValue& );
     104LogicValue operator or  ( const LogicValue&, const LogicValue& );
     105LogicValue operator and ( const LogicValue&, const LogicValue& );
    106106}}}
    107107Modifier le code de test.