28 Jan2016
La classe Complexe
Objectif:
- Définir les propriétés et méthodes d’une classe
- Définir des constructeurs
- Créer une instance de classe
- Accéder par les accesseurs aux propriétés en lecture et écriture d’un objet
- Appliquer des méthodes
Travail à faire:
- Écrire une classe Complexes permettant de représenter des nombres complexes. Un nombre complexe Z comporte une partie réelle et une partie imaginaire : Z = PartieRéelle + PartieImaginaire * i
- Définir à l’aide des propriétés les méthodes d’accès aux attributs de la classe.
- Définir un constructeur par défaut permettant d’initialiser les deux parties du nombre à 0.
- Définir un constructeur d’initialisation pour la classe.
- Ajouter les méthodes suivantes :
- Plus(Complexe) : Elle permet de retourner le nombre complexe obtenu en ajoutant au nombre en cours un nombre complexe passé en argument.
- Moins(Complexe) : Elle permet de retourner le nombre complexe obtenu en soustrayant au nombre en cours un nombre complexe passé en argument.
- Afficher ( ) : Elle donne une représentation d'un nombre complexe comme suit : a+b*i.
- Écrire un programme permettant de tester la classe Complexe.
Exemple d’exécution :
Nombre Complexe 1:
Donner la partie réelle: 2
Donner la partie imaginaire: 4
Nombre Complexe 1: 2+4i
Nombre Complexe 2:
Donner la partie réelle: 3
Donner la partie imaginaire: -2
Nombre Complexe 2: 3-2i
La somme:
5+2i
La Différence:
-1+6i
La classe Complexe:
//Auteur: CHAOULID //Copyright : Exelib.net class Complexe { private double pr; //partie réelle private double pi; //partie imaginaire public double Pr { get { return pr; } set { pr = value; } } public double Pi { get { return pi; } set { pi = value; } } public Complexe() { } public Complexe(double pr, double pi) { this.pr = pr; this.pi = pi; } public Complexe Plus(Complexe c) //La méthode retourne un objet (référence) { double r, i; r = this.pr + c.pr; i = this.pi + c.pi; Complexe rs = new Complexe(r, i); return rs; //ou retrun new Complexe(this.pr + c.pr, this.pi + c.pi) } public Complexe Moins(Complexe c) //La méthode retourne un objet (référence) { double r, i; r = this.pr - c.pr; i = this.pi - c.pi; Complexe rs = new Complexe(r, i); return rs; //ou retrun new Complexe(this.pr - c.pr, this.pi - c.pi) } public void Afficher() { if (pi == 0) Console.Out.WriteLine(pr); else if (pi > 0) { if (pi == 1) Console.Out.WriteLine(pr + "+i"); else Console.Out.WriteLine(pr + "+" + pi + "i"); } else { if(pi==-1) Console.Out.WriteLine(pr + "-i"); else Console.Out.WriteLine(pr + "" + pi + "i"); } } }
Le programme de test:
class Program { static void Main(string[] args) { double re, im; Console.Out.WriteLine("Nombre Complexe 1:\n"); Console.Out.Write("Donner la partie réelle: "); re = double.Parse(Console.In.ReadLine()); Console.Out.Write("Donner la partie imaginaire: "); im = double.Parse(Console.In.ReadLine()); Complexe C1 = new Complexe(re, im); Console.Out.Write("Nombre Complexe 1: "); C1.Afficher(); Console.Out.WriteLine("\n\n\nNombre Complexe 2:\n"); Console.Out.Write("Donner la partie réelle: "); re = double.Parse(Console.In.ReadLine()); Console.Out.Write("Donner la partie imaginaire: "); im = double.Parse(Console.In.ReadLine()); Complexe C2 = new Complexe(); C2.Pr = re; C2.Pi = im; Console.Out.Write("Nombre Complexe 2: "); C2.Afficher(); Console.Out.WriteLine("\nLa somme: "); Complexe C3 = C1.Plus(C2); //L'objet C3 est construit et sa référence est retournée par la méthode Plus C3.Afficher(); Console.Out.WriteLine("\n\nLa Différence: "); Complexe C4 = C1.Moins(C2); C4.Afficher(); Console.ReadKey(); } }