Реализация действий над комплексными числами - 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;
}
}