Fraction de nombres complexes
Classe Complexe
Écrire une classe Complexe
, possédant :
- Deux membres de type
double
:- Partie réelle,
- Partie imaginaire;
- Un ou plusieurs constructeurs;
- Une méthode
affiche
pour les tests; - Des méthodes d’accès : partie réelle, partie imaginaire, module, argument;
- Des méthodes de modification :
set_real_imag(double, double)
etset_mod_arg(double, double)
; - Une méthode retournant le conjugué.
Écrire ensuite les fonctions d’addition, soustraction, multiplication, et division, suivant ce prototype :
Complexe operation(const Complexe& z1, const Complexe& z2);
Évolution de la classe Complexe
Faire évoluer la classe Complexe
, sans changer son interface publique, en y
ajoutant deux membres de données :
- Module,
- Argument.
Ainsi, les méthodes d’accès au module et à l’argument seront plus rapide, puisqu’il leur suffira de lire la valeur stockée, et non plus de recalculer à la volée.
S’assurer que les constructeurs et toutes les méthodes de modification préservent la synchronisation entre les quatre valeurs stockées.
Classe Fraction
Sur le même modèle, écrire une classe Fraction
, possédant :
- Deux membres entiers :
- Numérateur,
- Dénominateur;
- Un ou plusieurs constructeurs;
- Une méthode
affiche
pour les tests (qui affiche la fraction sous la forme Numérateur/Dénominateur e.g. 4/3); - Des méthodes d’accès;
- Une méthode de modification;
- Une méthode retournant la fraction inverse (dénominateur / numérateur);
- Une méthode
reduire
: qui réduit la fraction i.e. 28/6 devient 14/3; approx
: qui retourne la valeur approchée de la fraction par undouble
.