Très souvent en Informatique, on a besoin des maths. Les Complexes en font partie, on les utilisent beaucoup quand on travaille sur des applications graphique 2d/3d ! Personnellement, je les utilisent nottament dans mon simulateur d’immunologie (SimImmuno). Malheuresement, ma plateforme adorée .NET ne comporte pas de classe lié a l’utilisation des Complexes d’où mon idée de faire une structure pouvant manipuler les bases des complexes (operations de base, module, argument, etc..) pour pouvoir jouer avec les complexes dans n’importe quelle application !
La structure que j’ai ecrite nommé Complexe comporte :
- 1 constructeur pour créer de nouveau complexe :
| // Création du complexe 3-i5 Complexe monComplexe = new Complexe(3,-5); |
- 2 accesseurs en get/set pour pouvoir recuperer ou modifier les parties Reelles et Imaginaires du complexe
| // Recuperation de la partie Reele dans a : double a = monComplexe.Reel; // Modification de la partie Imaginaire à -8 : monComplexe.Imaginaire = -8; |
- 4 accesseurs en lecture seule (get seulement) pour récupérer le Conjugué, le module, l’argument et le carré d’un complexe :
| // Conjugué (retourne un nouveau Complexe) : Complexe le_conjugue = monComplexe.Conjugue; // Module (retourne un double) : double module = monComplexe.Module; // Argument (retourne un double) : double argument = monComplexe.Argument; // Carré du complexe (retourne un nouveau Complexe) : Complexe au_carre = monComplexe.Carre; |
- 1 méthode : Rotation qui retourne un nouveau complexe de la rotation du complexe par un angle (en double) et d’un centre (Complexe)
| // Rotation de monComplexe d'angle 3.0 par le centre 2+i4 Complexe nouveau_point = monComplexe.Rotation(3.0,new Complexe(2,4)); |
- 4 surcharges d’operateurs pour les operations +, -, *, / respectivement addition, soustration, multiplication, division :
| Complexe cmp1, cmp2, resultat; cmp1 = new Complexe(3,-6); cmp2 = new Complexe(6,7); // Addition de cmp1 par cmp2 resultat = cmp1 + cmp2; // Soustraction de cmp1 par cmp2 resultat = cmp1 - cmp2; // Multiplication de cmp1 par cmp2 resultat = cmp1 * cmp2; // Division de cmp1 pr cmp2 resultat = cmp1 + cmp2; |
- Et pour finir 1 surcharge de la methode ToString() afin de pouvoir recuperer le complexe en string sous la forme a+ib :
| Complexe monComplexe = new Complexe(4,-5); Console.WriteLine(monComplexe); // Affiche a l'ecran : 4-5i |
Bref il y a toutes les fonctions de bases sur les complexes pour pouvoir les utiliser très facilement dans vos développements 🙂
Screenshot du programme de Demo en mode Console :
Code source du programme console de Demo
Code source de ma structure complexe (v1.0)
UPDATE :
Code source de ma classe complexe (v1.1 du 22/02/07)
Pas si complexe les complexes maintenant 😀