/*----------------------------------------------------------*/ /* */ /* AUTHOR : Eric VIOLARD */ /* E-MAIL : violard@icps.u-strasbg.fr */ /* ORGANISM : Université Louis Pasteur (Strasbourg) */ /* CREATION : 23/11/02 */ /* */ /* ---------------------------------------------------------*/ #include #include /* pour utiliser la fonction printf */ #include /* pour utiliser la fonction sqrt */ /* --- Définition du type des nombres complexes --- */ /* munis des opérations : - partie réelle - partie imaginaire - construction d'un nombre complexe - addition - multiplication - module */ float partie_reelle(complexe z) /* partie réelle d'un nombre complexe */ { return z.reel; } float partie_imaginaire(complexe z) /* partie imaginaire d'un nombre complexe */ { return z.imag; } complexe cons_complexe(float reel, float imag) /* construction d'un nombre complexe à partir de sa partie réelle et sa partie imaginaire */ { complexe z; z.reel = reel; z.imag = imag; return z; } complexe somme_complexe(complexe z1, complexe z2) /* somme de 2 nombres complexes */ { return cons_complexe( partie_reelle(z1) + partie_reelle(z2), partie_imaginaire(z1) + partie_imaginaire(z2) ); } complexe produit_complexe(complexe z1, complexe z2) /* produit de 2 nombres complexes */ { return cons_complexe( partie_reelle(z1)*partie_reelle(z2) - partie_imaginaire(z1)*partie_imaginaire(z2), partie_imaginaire(z1)*partie_reelle(z2) + partie_reelle(z1)*partie_imaginaire(z2) ); } float module_complexe(complexe z) /* module d'un nombre complexe */ { return sqrt(partie_reelle(z)*partie_reelle(z) + partie_imaginaire(z)*partie_imaginaire(z)); } void ecriture_complexe(complexe z) /* affiche un nombre complexe */ { printf("%f+i*%f\n",partie_reelle(z),partie_imaginaire(z)); } /* --- */