Написать консольную программу, реализующую арифметику комплексных чисел - C#
Формулировка задачи:
Написать консольную программу на C#, реализующую арифметику комплексных чисел. Должны быть как минимум определены операторы +, +=, -, -=, *, *=, /, /=, =, допускающие построение арифметических выражений в том виде, в каком они справедливы для double, а также позволяющие в одном выражении смешивать комплексные и вещественные числа.
Определите функции arg, mod, Re, Im
Предусмотреть печать комплексных чисел любым удобным способом
Текстовым представлением комплексного числа считать строки вида a+-bi, где а и b - представление чисел типа double.
Решение задачи: «Написать консольную программу, реализующую арифметику комплексных чисел»
textual
Листинг программы
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ComplexNumber_Project { class Complex { //Автосвойства(с private сеттерами) public double Real { get; private set; } public double Image { get; private set; } //Конструктор public Complex(double r, double im) { Real = r; Image = im; } //Переопределение метода ToString(); public override string ToString() { return string.Format("{0} {1}i", Real, Image); } //Перегрузка оператора + для двух комплексных чисел public static Complex operator +(Complex c1, Complex c2) { return new Complex(c1.Real + c2.Real, c1.Image + c2.Image); } //Перегрузка оператора + для комплексного числа и числа типа int public static Complex operator +(Complex c, int n) { return new Complex(c.Real + n, c.Image); } //Перегрузка оператора - для двух комплексных чисел public static Complex operator -(Complex c1, Complex c2) { return new Complex(c1.Real - c2.Real, c1.Image - c2.Image); } //Перегрузка оператора - для комплексного числа и числа типа int public static Complex operator -(Complex c, int n) { return new Complex(c.Real - n, c.Image); } //Перегрузка оператора * для двух комплексных чисел public static Complex operator *(Complex c1, Complex c2) { return new Complex(c1.Real * c2.Real, c1.Image * c2.Image); } //Перегрузка оператора * для комплексного числа и числа типа int public static Complex operator *(Complex c, int n) { return new Complex(c.Real * n, c.Image); } //Перегрузка оператора / для двух комплексных чисел public static Complex operator /(Complex c1, Complex c2) { return new Complex(c1.Real / c2.Real, c1.Image / c2.Image); } //Перегрузка оператора / для комплексного числа и числа типа int public static Complex operator /(Complex c, int n) { return new Complex(c.Real / n, c.Image); } //Перегрузка оператора == для двух комплексных чисел public static bool operator==(Complex c1, Complex c2){ return c1.Equals(c2); } //Перегрузка оператора != для двух комплексных чисел public static bool operator !=(Complex c1, Complex c2) { return !c1.Equals(c2); } //Переопределение Equals() public override bool Equals(object obj) { if (!(obj is Complex)) return false; return (((this.Real.CompareTo(((Complex)obj).Real))==0) && ((this.Image.CompareTo(((Complex)obj).Image)))==0); } //Переопределение GetHashCode() public override int GetHashCode() { return this.ToString().GetHashCode(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д