Реализация действий над комплексными числами - C#
Формулировка задачи:
не выходит реализовать операции действий над числами
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ComplexNumbers { class Program { static void Main() { Complex a = new Complex(2, 3); Complex b = new Complex(4, 5); Console.WriteLine(a.re.ToString() + " " + a.im.ToString()); Console.Read(); // your code goes here } } public class Complex { public float re; public float im; public Complex(float r, float m) { re = r; im = m; } public Complex() //конструктор без параметров { re = im = 0; } /* public static Complex& operator - (Complex C2); public static Complex& operator *(Complex C2); //объявляем в классе public static Complex& operator /(Complex C2); */ /*virtual void Show() //метод для отображения переменной на экране { if (im > 0) System.Console.WriteLine("(%.2f%.2f\n)", re, im); else System.Console.WriteLine("(%.2f%.2f\n)", re, im); } */ public static Complex operator + (Complex C2) //а здесь в классе Complex -оператор { Complex C; C.re = re + C2.re; C.im = im + C2.im; return C; } public static Complex operator - (Complex C2) { return new Complex(re - C2.re, im - C2.im); } public static Complex operator * (Complex C2) // Complex:: означает,что оператор относиться к классу {Complex C; C.Re=(Re*C2.Re-Im*C2.Im); C.Im=(C2.Re*Im+Re*C2.Im); return C; } public static Complex operator / (Complex C2) { Complex C; C.Re=(Re*C2.Re+Im*C2.Im)/(C2.Re*C2.Re+C2.Im*C2.Im); C.Im=(C2.Re*Im-C2.Im*Re)/(C2.Re*C2.Re+C2.Im*C2.Im); return C; } }
Решение задачи: «Реализация действий над комплексными числами»
textual
Листинг программы
static void Main(string[] args) { Complex a = new Complex(2, 3); Complex b = new Complex(4, 5); Complex c = a - b; Console.WriteLine(c.re.ToString() + " " + c.im.ToString()); } public class Complex { public float re; public float im; public Complex(float r, float m) { re = r; im = m; } public Complex() //конструктор без параметров { re = im = 0; } //public static Complex& operator - (Complex C2); //public static Complex& operator *(Complex C2); //объявляем в классе //public static Complex& operator /(Complex C2); //virtual void Show() //метод для отображения переменной на экране //{ //if (im > 0) //System.Console.WriteLine("(%.2f%.2f\n)", re, im); //else System.Console.WriteLine("(%.2f%.2f\n)", re, im); //} public static Complex operator +(Complex C1, Complex C2) //а здесь в классе Complex -оператор { return new Complex(C1.re + C2.re, C1.im + C2.im); } public static Complex operator -(Complex C1, Complex C2) { return new Complex(C1.re - C2.re, C1.im - C2.im); } public static Complex operator *(Complex C1, Complex C2) // Complex:: означает,что оператор относиться к классу { Complex C = new Complex(); C.re = (C1.re * C2.re - C1.im * C2.im); C.im = (C2.re * C1.im + C1.re * C2.im); return C; } public static Complex operator /(Complex C1, Complex C2) { Complex C = new Complex(); C.re = (C1.re * C2.re + C1.im * C2.im) / (C2.re * C2.re + C2.im * C2.im); C.im = (C2.re * C1.im - C2.im * C1.re) / (C2.re * C2.re + C2.im * C2.im); return C; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д