Cours:TdComplexe

De troyesGEII
Aller à : navigation, rechercher

Travail sur les complexes en C++

On cherche à écrire un programme permettant le calcul arithmétique de base sur les nombres complexes

Or, on ne peut stocker un complexe dans une variable car il n’existe pas en langage C de type complexe. En définissant une structure représentant les complexes, on peut alors créer un "nouveau" type de variable pour y stocker des complexes.

Utilisons, par exemple, la représentation cartésienne d’un complexe: partie réelle et partie imaginaire. Le code suivant décrit la structure complexe et déclare trois variables: z1, z2, et r.

struct Complexe {
    double pr;
    double pi;
};


int main()
{
  struct Complexe z1, z2, r;
  return 0;
}

Cette structure est donc constituée de deux champs: le champs pr (resp. pi), de type double et qui peut contenir la partie réelle (resp. partie imaginaire) d’un nombre complexe.

L’utilisation de cette structure est simple: si l’on veut stocker 3+4i dans z1, il suffit d’écrire:

...
z1.pr=3;
z1.pi=4;
...

On peut bien évidemment faire un calcul en utilisant les champs de la structure :

...
// ex d'une rotation de ???
z2.pr=-z1.pi;
z2.pi=z1.pr;
...


Exercice

Ecrire le gestionnaire de menu permettant d’afficher et de gérer l’écran suivant:

       A R I T H M E T I Q U E  C O M P L E X E
       -------------------------------------------
   1 ... Entrée du 1er nb complexe    2 ... Entrée du 2ième nb complexe
   A ... Affichage du résultat        + ... Somme
   - ... Soustraction                 * ... Multiplication
   C ... Carré                        U ... Cube

Ce gestionnaire de menu aiguillera le traitement suivant le choix désiré de la façon représentée sur le tableau suivant.

  Choix   Fonction appelée  Rôle
 ------- ------------------ ----------------------------------
    1        entree1()      entre un complexe dans z1
    2        entree2()      entre un complexe dans z2
    A       affichage()     affiche r
    +         somme()       calcule z1+z2, range dans r
    -          diff()       calcule z1-z2, range dans r
    *          mult()       calcule z1*z2, range dans r
    C         carre()       calcule z1*z1, range dans r
    U          cube()       calcule z1 au cube, range dans r

On notera que pour simplifier, on déclarera z1, z2, et r en variables globales ( cad connues par toutes les fonctions). Ecrire les différentes fonctions référencées dans le tableau ci-dessus.