我有一个编写复数实现的任务: -
Complex c = new Complex(1.2,2.0)
将属性写为real和Imaginary以获取复数的实部和虚部。使用方式如下:
double x = c.Real;
编写一个方法来添加两个复数并返回它们的总和。实部是两个实部的和,虚部是两个虚部的总和。
Complex c = c1.Sum(c2);
编写一种方法来计算两个复数的乘积。如果一个号码包含x1
和y1
组件,而第二个号码包含组件x2
和y2
:
产品的真实部分= x1 *x2 - y1 *y2
;
虚部= x1 * y2 + x2 *y1
;
所以我知道并非常自信 - 手动复杂的数字,例如4 +5i
其中5i
是虚构的,
我的问题是,我不知道如何让应用程序知道哪一个是虚构的,除非我输入一个预定义的虚数。我做的那一分钟虽然“app”失去了它的价值因为那么它不是一个复杂的数字只是一些随机的calc应用程序。基本上我不知道如何继续..谢谢
答案 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;
}
}
其余的只是样板......