Q4: Par de simples opérations mathématiques sur des entiers
non signés (unsigned int), vous allez définir les outils nécessaires pour lever les exception: overflow et underflow.
Ces exceptions vont agir sur les 3 fonctions mathématiques suivantes:
- add: additionne deux entiers non signés passés en argument (i.e. a+b), et retourne le résultat de
l'opération. Cette fonction peut lever que l'exception du type overflow si le résultat de l'opération
d'addition est inférieur au premier argument (i.e. a) ou bien au second argument (i.e. b).
- sous: soustrait deux entiers non signés passés en argument (i.e. a-b), et retourne le résultat de
l'opération. Cette fonction peut lever que l'exception du type underflow si le résultat de l'opération
d'addition est supérieur au premier argument (i.e. a).
- calc: calcul une simple opération mathématique (i.e. a+(b-c)) en utilisant 3 entiers non signés
passés en argument, et retourne le résultat. Cette opération mathématique est calculée en utilisant
pour cela les fonctions préalablement citées (add et sous). Cette fonction lèvera les deux types
d'exception précédemment définies: overflow et underflow.
Chaque exception sera représentée par une structure, ayant les deux membres suivants:
fonctmath: nom de la fonction mathématique qui a levé l'exception (ex. add, sous, ou calc).
msgexp: message signalant que l'exception (son nom) a été levée par la fonction mathématique (son
nom), ex.: "overflow dans add", "underflow dans sous".
Vote tache consiste à définir l'ensemble des fonctions et des structures précédemment décrites et complétez
la fonction main suivante:
(1169demo04exo4.cpp).
|
[top]
|