c#中的复数

时间:2016-09-26 21:34:45

标签: c#

我有一个编写复数实现的任务: -

Complex c = new Complex(1.2,2.0)

将属性写为real和Imaginary以获取复数的实部和虚部。使用方式如下:

double x = c.Real;

编写一个方法来添加两个复数并返回它们的总和。实部是两个实部的和,虚部是两个虚部的总和。

Complex c = c1.Sum(c2);

编写一种方法来计算两个复数的乘积。如果一个号码包含x1y1组件,而第二个号码包含组件x2y2

产品的真实部分= x1 *x2 - y1 *y2; 虚部= x1 * y2 + x2 *y1;

所以我知道并非常自信 - 手动复杂的数字,例如4 +5i其中5i是虚构的,

我的问题是,我不知道如何让应用程序知道哪一个是虚构的,除非我输入一个预定义的虚数。我做的那一分钟虽然“app”失去了它的价值因为那么它不是一个复杂的数字只是一些随机的calc应用程序。基本上我不知道如何继续..谢谢

3 个答案:

答案 0 :(得分:3)

从你的问题看,你对复数的构造感到困惑。这是一个让你入门的模板。

public class Complex
{
    public Complex(double real, double imaginary)
    {
    }
}

然后从

开始
 static void Main(string[] args)
 {
    Complex c1 = new Complex(1.2,2.0)

    Complex c2 = new Complex(1,3.0)

    Complex c3 = c1.Sum(c2);

    Console.WriteLine(c3.Real);
    Console.WriteLine(c3.Imaginary);

 }

并让它工作(把你喜欢的任何数字放入初学者)

答案 1 :(得分:1)

“我不知道如何让应用程序知道哪一个是想象的” - 这是一种方式:

        Console.WriteLine("Input the real part of the complex number:");
        var real = double.Parse(Console.ReadLine());
        Console.WriteLine("Input the imaginary part of the complex number:");
        var imaginary = double.Parse(Console.ReadLine());
        var complexNumber = new Complex(real, imaginary);

答案 2 :(得分:1)

什么是复数?好吧,它的数字有一个真正的部分,还有一个虚构的部分。虚部本身就是一个实数,乘以这个奇怪的虚数常数 i ,使得i * i = -1。没有更多的东西,所以以这种方式实施。为什么会让你的代码失去任何价值?

public struct Complex
{
    public static readonly ImaginaryOne = new Complex(0, 1);
    public doube Real { get; }
    public double Imaginary { get; }
    public Complex(double real, double imaginary)
    {
        Real = real;
        Imaginary = imaginary;
    }
}

其余的只是样板......