ได้รับจำนวนเชิงซ้อนสองจำนวนในรูป a1 + ib1 และ a2 + ib2 งานคือบวกจำนวนเชิงซ้อนทั้งสองนี้
จำนวนเชิงซ้อนคือจำนวนที่สามารถแสดงในรูป "a+ib" โดยที่ "a" และ "b" เป็นจำนวนจริง และ i เป็นจำนวนจินตนาการซึ่งเป็นคำตอบของสมการ x2 = -1 เนื่องจากไม่มีจำนวนจริงใดที่ทำให้สมการนี้เป็นจริง จึงเรียกว่าจำนวนจินตนาการ
ตัวอย่าง
อินพุต
a1 = 3, b1 = 8 a2 = 5, b2 = 2
เอาต์พุต
จำนวนเชิงซ้อน 1: 3 + i8 จำนวนเชิงซ้อน 2: 5 + i2 ผลรวมของจำนวนเชิงซ้อน: 8 + i10
คำอธิบาย
(3+i8) + (5+i2) = (3+5) + i(8+2) = 8 + i10
อินพุต
a1 = 5, b1 = 3 a2 = 2, b2 = 2
เอาต์พุต
จำนวนเชิงซ้อน 1: 5 + i3 จำนวนเชิงซ้อน 2: 2 + i2 ผลรวมของจำนวนเชิงซ้อน: 7 + i5
วิธีการแก้ปัญหา
- ประกาศ struct สำหรับเก็บส่วนจริงและส่วนจินตนาการ
- รับอินพุตและบวกส่วนจริงและส่วนจินตนาการของจำนวนเชิงซ้อนทั้งหมด
อัลกอริทึม
Start
ประกาศ struct complexnum มีสมาชิก
1. real
2. img
In function complexnum sumcomplex(complexnum a, complexnum b)
Step 1: ประกาศ struct complexnum c
Step 2: กำหนด c.real = a.real + b.real
Step 3: กำหนด c.img = a.img + b.img
Step 4: Return c
In function int main()
Step 1: ประกาศและกำหนด complexnum a = {1, 2} และ b = {4, 5}
Step 2: ประกาศและกำหนด complexnum c = sumcomplex(a, b)
Step 3: พิมพ์จำนวนเชิงซ้อนตัวแรก
Step 4: พิมพ์จำนวนเชิงซ้อนตัวที่สอง
Step 5: พิมพ์ผลรวมทั้งสองใน c.real, c.img
Stop
ตัวอย่างโค้ด
#include <stdio.h>
// โครงสร้างเก็บค่าจริงและจินตนาการของจำนวนเชิงซ้อน
struct complexnum {
int real, img;
};
complexnum sumcomplex(complexnum a, complexnum b) {
struct complexnum c;
// บวกจำนวนเชิงซ้อนสองจำนวน
c.real = a.real + b.real;
c.img = a.img + b.img;
return c;
}
int main() {
struct complexnum a = {1, 2};
struct complexnum b = {4, 5};
struct complexnum c = sumcomplex(a, b);
printf("จำนวนเชิงซ้อน 1: %d + i%d\n", a.real, a.img);
printf("จำนวนเชิงซ้อน 2: %d + i%d\n", b.real, b.img);
printf("ผลรวมของจำนวนเชิงซ้อน: %d + i%d\n", c.real, c.img);
return 0;
}
ผลลัพธ์
หากรันโค้ดข้างต้นจะได้ผลลัพธ์ดังนี้ —
จำนวนเชิงซ้อน 1: 1 + i2 จำนวนเชิงซ้อน 2: 4 + i5 ผลรวมของจำนวนเชิงซ้อน: 5 + i7