begin process at 2010 02 10 10:19:06
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Maths & Algorithmes

 > COMPLEXES

COMPLEXES


 Information sur la source

Note :
8 / 10 - par 2 personnes
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Maths & Algorithmes Source .NET ( DotNet ) Classé sous :complexe, maths, sebeuh, csharp, net Niveau :Débutant Date de création :09/06/2006 Vu / téléchargé :9 146 / 210

Auteur : seboss

Ecrire un message privé
Site perso
Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
C'est 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

Source

  • /*
  • Structure COMPLEXE
  • Gestion des nombres Complexes
  • Version 1.0 - Last Modif : 21/04/2006 15:52
  • Développé par SeBeuh < sebeuh [arobase] ajsinfo [point].net >
  • (c) 2006 - http://sebeuh.ajsinfo.net
  • */
  • using System;
  • using System.Collections.Generic;
  • using System.Text;
  • namespace Complexes
  • {
  • // Structure : Complexe
  • public struct Complexe
  • {
  • // Champs
  • private double _reel;
  • private double _imaginaire;
  • // Constructeur
  • public Complexe(double reel, double imaginaire)
  • {
  • this._reel = reel;
  • this._imaginaire = imaginaire;
  • }
  • // Surcharge de la methode ToString()
  • // renvoi du complexe sous la forme a+ib
  • public override string ToString()
  • {
  • string re = "", img = "";
  • if(this._reel != 0)
  • re = ((float)this._reel).ToString();
  • if (this._imaginaire > 0 && this._imaginaire != 1)
  • img = "+" + ((float)this._imaginaire).ToString() + "i";
  • else if (this._imaginaire == 1)
  • img = "+i";
  • else if (this._imaginaire < 0 && this._imaginaire != -1)
  • img = ((float)this._imaginaire).ToString() + "i";
  • else if (this._imaginaire == -1)
  • img = "-i";
  • return (re + img);
  • }
  • // Surcharge des operateurs
  • // Addition
  • public static Complexe operator +(Complexe c1, Complexe c2)
  • {
  • return (new Complexe((c1.Reel + c2.Reel), (c1.Imaginaire + c2.Imaginaire)));
  • }
  • // Soustraction
  • public static Complexe operator -(Complexe c1, Complexe c2)
  • {
  • return (new Complexe((c1.Reel - c2.Reel), (c1.Imaginaire - c2.Imaginaire)));
  • }
  • // Multiplication
  • public static Complexe operator *(Complexe c1, Complexe c2)
  • {
  • return (new Complexe(((c1.Reel * c2.Reel) - (c1.Imaginaire * c2.Imaginaire)), ((c1.Reel * c2.Imaginaire) + (c2.Reel * c1.Imaginaire))));
  • }
  • // Division
  • public static Complexe operator /(Complexe c1, Complexe c2)
  • {
  • return (new Complexe(((c1._reel * c2._reel - c1._imaginaire * (-c2._imaginaire)) / (Math.Pow(c2._reel, 2) + Math.Pow(c2._imaginaire, 2))), ( ((c1._reel * (-c2._imaginaire) + c2._reel * c1._imaginaire) / (Math.Pow(c2._reel, 2) + Math.Pow(c2._imaginaire, 2))))));
  • }
  • // Methodes
  • // Rotation
  • public Complexe Rotation(double angle, Complexe centre)
  • {
  • return (((this - centre) * (new Complexe(Math.Cos(angle), Math.Sin(angle)))) + centre);
  • }
  • // Accesseurs en Get (read only)
  • // Conjugué du complexe
  • public Complexe Conjugue
  • {
  • get { return new Complexe(this._reel, (0 - this._imaginaire)); }
  • }
  • // Module du complexe
  • public double Module
  • {
  • get { return Math.Sqrt((Math.Pow(this._reel, 2) + Math.Pow(this._imaginaire, 2))); }
  • }
  • // Argument du complexe
  • public double Argument
  • {
  • get { return (Math.Atan((this._imaginaire / this._reel))); }
  • }
  • // Carré du complexe
  • public Complexe Carre
  • {
  • get { return new Complexe((Math.Pow(this._reel,2)-Math.Pow(this._imaginaire,2)),(2*this._reel*this._imaginaire)); }
  • }
  • // Accesseurs en Get&Set
  • // Partie Reel
  • public double Reel
  • {
  • get { return this._reel; }
  • set { this._reel = value; }
  • }
  • // Partie Imaginaire
  • public double Imaginaire
  • {
  • get { return this._imaginaire; }
  • set { this._imaginaire = value; }
  • }
  • }
  • }
/*

	Structure COMPLEXE
	Gestion des nombres Complexes
	Version 1.0 - Last Modif : 21/04/2006 15:52
	Développé par SeBeuh < sebeuh [arobase] ajsinfo [point].net >
	(c) 2006 - http://sebeuh.ajsinfo.net

*/
using System;
using System.Collections.Generic;
using System.Text;

namespace Complexes
{
    // Structure : Complexe
    public struct Complexe
    {
        // Champs
        private double _reel;
        private double _imaginaire;

        // Constructeur
        public Complexe(double reel, double imaginaire)
        {
            this._reel = reel;
            this._imaginaire = imaginaire;
        }

        // Surcharge de la methode ToString()
        //  renvoi du complexe sous la forme a+ib
        public override string ToString()
        {
            string re = "", img = "";
            if(this._reel != 0)
                re = ((float)this._reel).ToString();
            if (this._imaginaire > 0 && this._imaginaire != 1)
                img = "+" + ((float)this._imaginaire).ToString() + "i";
            else if (this._imaginaire == 1)
                img = "+i";
            else if (this._imaginaire < 0 && this._imaginaire != -1)
                img = ((float)this._imaginaire).ToString() + "i";
            else if (this._imaginaire == -1)
                img = "-i";
            return (re + img);
        }

        // Surcharge des operateurs
        //  Addition
        public static Complexe operator +(Complexe c1, Complexe c2)
        {
            return (new Complexe((c1.Reel + c2.Reel), (c1.Imaginaire + c2.Imaginaire)));
        }
        //  Soustraction
        public static Complexe operator -(Complexe c1, Complexe c2)
        {
            return (new Complexe((c1.Reel - c2.Reel), (c1.Imaginaire - c2.Imaginaire)));
        }
        //  Multiplication
        public static Complexe operator *(Complexe c1, Complexe c2)
        {
            return (new Complexe(((c1.Reel * c2.Reel) - (c1.Imaginaire * c2.Imaginaire)), ((c1.Reel * c2.Imaginaire) + (c2.Reel * c1.Imaginaire))));
        }
        //  Division
        public static Complexe operator /(Complexe c1, Complexe c2)
        {
            return (new Complexe(((c1._reel * c2._reel - c1._imaginaire * (-c2._imaginaire)) / (Math.Pow(c2._reel, 2) + Math.Pow(c2._imaginaire, 2))), ( ((c1._reel * (-c2._imaginaire) + c2._reel * c1._imaginaire) / (Math.Pow(c2._reel, 2) + Math.Pow(c2._imaginaire, 2))))));
        }

        // Methodes
        //  Rotation
        public Complexe Rotation(double angle, Complexe centre)
        {
            return (((this - centre) * (new Complexe(Math.Cos(angle), Math.Sin(angle)))) + centre);
        }

        // Accesseurs en Get (read only)
        //  Conjugué du complexe
        public Complexe Conjugue
        {
            get { return new Complexe(this._reel, (0 - this._imaginaire)); }
        }
        //  Module du complexe
        public double Module
        {
            get { return Math.Sqrt((Math.Pow(this._reel, 2) + Math.Pow(this._imaginaire, 2))); }
        }
        //  Argument du complexe
        public double Argument
        {
            get { return (Math.Atan((this._imaginaire / this._reel))); }
        }
        //  Carré du complexe
        public Complexe Carre
        {
            get { return new Complexe((Math.Pow(this._reel,2)-Math.Pow(this._imaginaire,2)),(2*this._reel*this._imaginaire)); }
        }

        // Accesseurs en Get&Set
        //  Partie Reel
        public double Reel
        {
            get { return this._reel; }
            set { this._reel = value; }
        }
        //  Partie Imaginaire
        public double Imaginaire
        {
            get { return this._imaginaire; }
            set { this._imaginaire = value; }
        }
    }
}

 Conclusion

Bref il y a toutes les fonctions de bases sur les complexes pour pouvoir les utiliser très facilement dans vos développements :-)

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture Source .NET (Dotnet) SIMIMMUNO
Source avec Zip Source avec une capture Source .NET (Dotnet) MASTERMIND + IA (PROJET TPE 2005)

 Sources de la même categorie

RECHERCHE DE DEUX SOUS ENSEMBLE DONT LES SOMMES DES ÉLÈMENTS... par deadhand
Source avec Zip Source avec une capture Source .NET (Dotnet) METHODE GRAPHIQUE EN PROGRAMMATION LINÉAIRE par vindos
Source avec Zip Source avec une capture Source .NET (Dotnet) RECTANGLES par krissssss
Source avec Zip Source avec une capture SODOKU MUSING (PERMUTATION & SODOKU) par krissssss
Source avec Zip Source avec une capture Source .NET (Dotnet) ANALYSEUR LEXICAL ET SYNTAXIQUE DES FORMULES PROPOSITIONNELL... par boutemine

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Source .NET (Dotnet) CRÉATION D'UN ACTIVEX EN UTILSANT UN USERCONTROL DOTNET CSHA... par AVerhamme
Source avec Zip Source avec une capture Source .NET (Dotnet) QCM AVEC TIMER par zahenianis
Source avec Zip Source .NET (Dotnet) METTRE EN RELATION SPRING.NET ET NHIBERNATE par marik7335
Source avec Zip Source .NET (Dotnet) AUTOMATISATION DE L'EXECUTION DE MACROS SUR DOCUMENTS WORD. par sh4gm4
Source avec Zip Source avec une capture Source .NET (Dotnet) ANIMATED WALLPAPER par g_ramzi

Commentaires et avis

Commentaire de econs le 09/06/2006 11:39:27 administrateur CS

Les complexes sont un sujet inépuisable d'utilisation et de familiarisation avec la programmation objet. C'est proprement codé. Bien joué.

Commentaire de kamalz le 09/06/2006 15:20:25

Trés bon code, c'est trés utile pour les applications math..le code est lisible, court et parfait..

Commentaire de SharpMao le 12/06/2006 15:39:29

Classique, mais bien réalisé.

Suggestion : surcharger les opérateurs +=, -+, *=, /=, == et !=.

Commentaire de LocalStone le 15/06/2006 00:42:12

Autre suggestion : gère les exceptions (en fait, là, comme ça, j'en voie qu'une : la division par un complexe nul)
++ !

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

CSharp.Net [ par PPA34 ] Bonjour, je voudrais savoir s'il existe un moyen d'insérer un "clearscreen" dans un programme en mode console ?Si oui, dites-moi comment ...Merci apercu et impression cSharp .net [ par lolhangman ] Bonjour, voila je suis super debutant en .net et cSharp et j'ai besoin d'imprimer le contenue d'une page. En fait tous mes resultats sont stoqu&#233;s csharp et .NET (redimentionnement d'element) [ par Co2r ] HelloJ'ai un petit probleme en csharp sous windows.Enfaite j'ai une fenetre composé de trois elements deux listBox cote a cote un à droite un à gauche CSharp .NET ressources [ par Ombitious_Developper ] Salut Tous :Je suis débutant en C#, je souhaite avoir un bonne ressource (cours, eBook, réfèrence, ...) pour bien démarrer en C# et .NETJe compte sur Utilité du CSharp/.NET [ par niceboy ] Slt,Quasiment personne n'a le Framework SDK d'installé sur son ordinateur.Et s'il faut obligatoirement l'installer pour pouvoir lancer, utiliser les p vb.net est-il développé en csharp ?? [ par hadhber ] vb.net est-il développé en csharp ?? Thread avec passage de .Net 1.1 en .Net 2.0 [ par JuS ] Bonjour,Je migre actuellement une application C# du framework 1.1 au framework 2.0. J'ai des warnings concernant deux méthodes qui sont maintenant obs csharp sous 98 (question a la con) [ par Moomoon07 ] J'ai fais une petite application en csharp sur XP et j'aimerais savoir si c'est possible de la faire tourner sous 98, et si oui comment ? (Je sais c'e pb de compilation sous Visial studio 2003 [ par ObiWanKennedy ] Bonjour je cherche à apprendre à programmer en C# je débute, apparament j'ai besoin d'inserer using  System.Net ; using  System. Dates [ par eldim ] Bonjour,Etant développeur VB.NET j'essai le C# pour me faire une petite DLL. Problème : en VB.NET on a une fonction de formatage de date qui n'existe


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,295 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales