Перегрузить операции сложения, вычитания, деления и умножения комплексных чисел - C#

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток. Помогите разобраться с перегрузкой метода. Суть в том, что необходимо перегрузить операции сложения, вычитания, деления и умножения комплексных чисел. Как складывать,..., умножать комплексные числа знаю. Код для этого есть. (выложил только сложение)
Листинг программы
  1. a1 = Convert.ToDouble(textBox3.Text);
  2. b1 = Convert.ToDouble(textBox4.Text);
  3. a2 = Convert.ToDouble(textBox5.Text);
  4. b2 = Convert.ToDouble(textBox6.Text);
  5. a3 = a1 + a2;
  6. b3 = b1 + b2;
  7. // вывод результата
Порыл на эту тему в интернете и вот что у меня получилось:
Листинг программы
  1. public static complex_number operator +(complex_number w, complex_number e)
  2. {
  3. complex_number tlb = new complex_number();
  4. tlb.a3 = w.a1 + w.a2;
  5. tlb.b3 = e.b1 + e.b2;
  6. return tlb;
  7. }
Сомневаюсь что это верно. Как исправить? Глупый вопрос, наверно, но как мне потом это применить? Ранее с перегрузками не работал, так что сильно не ругайтесь, пожалуйста. Заранее спасибо.

Решение задачи: «Перегрузить операции сложения, вычитания, деления и умножения комплексных чисел»

textual
Листинг программы
  1.     class complex_number
  2.     {
  3.         double x, y;
  4.  
  5.         public double X { get { return x; } }
  6.         public double Y { get { return y; } }
  7.  
  8.         public complex_number(double x=0, double y=0)
  9.         {
  10.             this.x = x;
  11.             this.y = y;
  12.         }
  13.  
  14.         public string ArifToGrigAndPok()
  15.         {
  16.             double r, t, phi = 0;
  17.             string str = string.Empty;
  18.             r = Math.Sqrt(Math.Pow(x, 2) + Math.Pow(y, 2));
  19.             if (x > 0)
  20.             {
  21.                 t = y / x;
  22.                 phi = Math.Atan(y / x) * 180 / Math.PI;
  23.                 str = "arctg (" + t.ToString();
  24.             }
  25.             else
  26.                 if (x < 0 && y >= 0)
  27.                 {
  28.                     t = y / x;
  29.                     phi = Math.PI + Math.Atan(y / x) * 180 / Math.PI;
  30.                     str = "ПЂ + arctg (" + t.ToString();
  31.  
  32.                 }
  33.                 else
  34.                     if (x < 0 && y < 0)
  35.                     {
  36.                         t = y / x;
  37.                         phi = -Math.PI + Math.Atan(y / x) * 180 / Math.PI;
  38.                         str = "-ПЂ + arctg (" + t.ToString();
  39.                     }
  40.                     else
  41.                         if (x == 0 && y > 0)
  42.                         {
  43.                             t = y / x;
  44.                             phi = Math.PI / 2;
  45.                             str = "ПЂ/2";
  46.                         }
  47.                         else
  48.                             if (x == 0 && y < 0)
  49.                             {
  50.                                 t = y / x;
  51.                                 phi = -Math.PI / 2;
  52.                                 str = "-ПЂ/2";
  53.                             }
  54.             return "Геометрическая форма: \nz=" + Math.Round(r, 2).ToString() + "(cos(" + str + "))+i " + "sin(" + str + "))\n" +
  55.             "Тригонометрическая форма: \nz=e^(i " + str + "))";            
  56.         }
  57.  
  58.         public static complex_number operator +(complex_number n1, complex_number n2)
  59.         {          
  60.             return new complex_number(n1.X + n2.X, n1.Y+n2.Y);;
  61.         }
  62.     }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.333 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы