Перегрузить операции сложения, вычитания, деления и умножения комплексных чисел - C#
Формулировка задачи:
Доброго времени суток.
Помогите разобраться с перегрузкой метода. Суть в том, что необходимо перегрузить операции сложения, вычитания, деления и умножения комплексных чисел. Как складывать,..., умножать комплексные числа знаю. Код для этого есть.
(выложил только сложение)
Порыл на эту тему в интернете и вот что у меня получилось:
Сомневаюсь что это верно. Как исправить?
Глупый вопрос, наверно, но как мне потом это применить?
Ранее с перегрузками не работал, так что сильно не ругайтесь, пожалуйста.
Заранее спасибо.
a1 = Convert.ToDouble(textBox3.Text); b1 = Convert.ToDouble(textBox4.Text); a2 = Convert.ToDouble(textBox5.Text); b2 = Convert.ToDouble(textBox6.Text); a3 = a1 + a2; b3 = b1 + b2; // вывод результата
public static complex_number operator +(complex_number w, complex_number e)
{
complex_number tlb = new complex_number();
tlb.a3 = w.a1 + w.a2;
tlb.b3 = e.b1 + e.b2;
return tlb;
}Решение задачи: «Перегрузить операции сложения, вычитания, деления и умножения комплексных чисел»
textual
Листинг программы
class complex_number
{
double x, y;
public double X { get { return x; } }
public double Y { get { return y; } }
public complex_number(double x=0, double y=0)
{
this.x = x;
this.y = y;
}
public string ArifToGrigAndPok()
{
double r, t, phi = 0;
string str = string.Empty;
r = Math.Sqrt(Math.Pow(x, 2) + Math.Pow(y, 2));
if (x > 0)
{
t = y / x;
phi = Math.Atan(y / x) * 180 / Math.PI;
str = "arctg (" + t.ToString();
}
else
if (x < 0 && y >= 0)
{
t = y / x;
phi = Math.PI + Math.Atan(y / x) * 180 / Math.PI;
str = "ПЂ + arctg (" + t.ToString();
}
else
if (x < 0 && y < 0)
{
t = y / x;
phi = -Math.PI + Math.Atan(y / x) * 180 / Math.PI;
str = "-ПЂ + arctg (" + t.ToString();
}
else
if (x == 0 && y > 0)
{
t = y / x;
phi = Math.PI / 2;
str = "ПЂ/2";
}
else
if (x == 0 && y < 0)
{
t = y / x;
phi = -Math.PI / 2;
str = "-ПЂ/2";
}
return "Геометрическая форма: \nz=" + Math.Round(r, 2).ToString() + "(cos(" + str + "))+i " + "sin(" + str + "))\n" +
"Тригонометрическая форма: \nz=e^(i " + str + "))";
}
public static complex_number operator +(complex_number n1, complex_number n2)
{
return new complex_number(n1.X + n2.X, n1.Y+n2.Y);;
}
}