Mô tả bài toán
Viết chương trình C nhập 2 số phức từ bàn phím và tính tổng của chúng. Số phức có dạng a + bi với a là phần thực, b là phần ảo.
Kiến thức cần biết
- Số phức: z = a + bi (i² = -1)
- Cộng 2 số phức: (a + bi) + (c + di) = (a+c) + (b+d)i
- Trong C: dùng
structđể gom phần thực và phần ảo
Chương trình C
#include <stdio.h>
// Định nghĩa cấu trúc số phức
struct SoPhuc {
int thuc; // Phần thực
int ao; // Phần ảo
};
int main() {
struct SoPhuc z1, z2, tong;
// Nhập số phức thứ 1
printf("Nhap so phuc thu 1 (phan thuc phan ao): ");
scanf("%d %d", &z1.thuc, &z1.ao);
// Nhập số phức thứ 2
printf("Nhap so phuc thu 2 (phan thuc phan ao): ");
scanf("%d %d", &z2.thuc, &z2.ao);
// Tính tổng: (a+c) + (b+d)i
tong.thuc = z1.thuc + z2.thuc;
tong.ao = z1.ao + z2.ao;
// In kết quả
printf("Tong 2 so phuc: (%d) + (%di)\n", tong.thuc, tong.ao);
return 0;
}
Kết quả chạy chương trình
Nhap so phuc thu 1 (phan thuc phan ao): 2 3
Nhap so phuc thu 2 (phan thuc phan ao): 4 5
Tong 2 so phuc: (6) + (8i)
Giải thích
Ví dụ: (2+3i) + (4+5i) = (2+4) + (3+5)i = 6 + 8i
Mở rộng: Sử dụng hàm riêng cho phép cộng
struct SoPhuc congSoPhuc(struct SoPhuc a, struct SoPhuc b) {
struct SoPhuc kq;
kq.thuc = a.thuc + b.thuc;
kq.ao = a.ao + b.ao;
return kq;
}
// Trong main:
tong = congSoPhuc(z1, z2);
Các phép toán khác với số phức
| Phép toán | Công thức |
|---|---|
| Trừ | (a+c) + (b-d)i |
| Nhân | (ac-bd) + (ad+bc)i |
| Chia | ((ac+bd)/(c²+d²)) + ((bc-ad)/(c²+d²))i |
Việc dùng struct giúp code tổ chức, dễ đọc và dễ mở rộng cho các phép toán phức tạp hơn.