در این قسمت تیم کدگیت را با آموزش ضرب اعداد مختلط در سی شارپ همراهی کنید. طبق روال گذشته ابتدا اعداد مختلط را تعریف و روش ضرب این اعداد را بررسی کرده و سپس به پیاده سازی ضرب اعداد مختلط میپردازیم. پیشنهاد میکنیم قبل از بررسی این جلسه، آموزشهای زیر را مطالعه کنید:
اعداد مختلط
اعداد مختلط دسته ویژهای از اعداد هستند که از ترکیب یک عدد حقیقی و یک عدد موهومی به دست میآیند. فرم نوشتار این اعداد به صورت a+ib است. a را قسمت حقیقی و b را قسمت موهومی میگویند. مانند اعداد حقیقی اعداد مختلط نیز اعمالی نظیر جمع، ضرب و تفریق و … برای آنها تعریف شده است.
ضرب اعداد مختلط
برای اینکه دو عدد مختلط را با هم ضرب کرده مانند ضرب دو چند جملهای در سی شارپ عمل میکنیم. ضرب دو جملهای در دو جملهای به صورت زیر میباشد:
(a+b)* (c+d) = ac + ad + bc+bd
به همین ترتیب برای ضرب اعداد مختلط نیز فرمول زیر را داریم:

پس برای محاسبه ضرب دو عدد مختلط فرمول بالا را باید پیادهسازی کرد.
ضرب اعداد مختلط در سی شارپ
همانطور که گفته شد برای ضرب اعداد مختلط فرمول قسمت قبل را باید پیاده سازی کرد. ما یک کلاس به نام Complex میسازیم. این کلاس دو متغیر به نام imaginary (موهومی) و real (حقیقی) دارد که در Constructor آنها را مقدار دهی میکنیم. یک متد به نام Multiplication می نویسیم که دو عدد مختلط را به عنوان ورودی می گیرد و در خروجی حاصلضرب آنها را به ما میدهد. کد توضیحات فوق به صورت زیر میباشد:
public class Complex {
int real, imaginary;
public Complex() {
}
public Complex(int real, int imaginary) {
this.real = real;
this.imaginary = imaginary;
}
public Complex Multiplication(Complex C1, Complex C2) {
Complex temp = new Complex();
temp.real = C1.real * C2.real - C1.imaginary * C2.imaginary;
temp.imaginary = C1.real * C2.imaginary + C1.imaginary * C2.real;
return temp;
}
public void printComplexNumber() {
Console.WriteLine("Complex number: " + real + " + " + imaginary + "i");
}
}
در کد فوق یک متد به نام printComplexNumber آورده شده که برای چاپ اعداد مختلط به کار میرود.
تست ضرب اعداد مختلط در سی شارپ
کد تست ضرب اعداد مختلط به صورت زیر میباشد:
public static void Main (string[] args)
{
Complex C1 = new Complex(3, 2);
C1.printComplexNumber();
Complex C2 = new Complex(9, 5);
C2.printComplexNumber();
Complex C3 = new Complex();
C3 = C3.Multiplication(C1, C2);
Console.WriteLine("Multiplication of ");
C3.printComplexNumber();
Console.WriteLine ("Press any key to finish Program...");
Console.ReadKey ();
}
تصویر زیر خروجی کد فوق میباشد:
Complex number: 3 + 2i
Complex number: 9 + 5i
Multiplication of Complex number: 17 + 33i