SoPhuc
/*Cho tệp văn bản 'sophuc.txt' chứa phần thực và phần ảo của n số phức. Tính tổng của n số phức.
Đưa các số phức ra màn hình ở dạng a + jb. Yêu cầu sử dụng toán tử xuất << để đưa số phức ra màn hình;
sử dụng toán tử + để cộng hai số phức; số phức được tự động khởi tạo phần thực và phần ảo bằng 0;
sử dụng mảng động để chứa n số phức*/
#include <iostream>
#include <stdio.h>
#include <fstream>
using namespace std;
//khai bao lop doi tuong so phuc
class SoPhuc
{
private:
float a, b;
public:
SoPhuc();
void thietLapAB(float a, float b);
SoPhuc operator+(SoPhuc &sp);
//ham ban
friend ostream& operator<<(ostream &cout, SoPhuc &p);
};
//===chuong trinh chinh
int main ()
{
//khai bao bien;
int n;
float a, b;
//tao doi tuong doc tep
ifstream fin("sophuc.txt");
//dem so luong so phuc
fin>>n;
//tao doi tuong so phuc;
SoPhuc *sp = new SoPhuc[n];
SoPhuc tong;
for(int i=0 ; i<n ; i++)
{
fin >> a >> b;
sp[i].thietLapAB(a,b);
// //tinh tong n so phuc
tong = tong + sp[i];
}
cout<<"Chuong trinh tinh tong n so phuc tu tep.\n\n";
//dua ra man hinh
for(int i=0 ; i<n ; i++)
{
printf("\nSo phuc thu %d la: ", i+1); cout<<sp[i];
}
printf("\nTong %d so phuc tren la: ", n); cout<<tong;
return 0;
}
//===dinh nghia ham===
SoPhuc::SoPhuc():a(0), b(0)
{
}
void SoPhuc::thietLapAB(float a, float b)
{
this->a = a;
this->b = b;
}
SoPhuc SoPhuc::operator+(SoPhuc &sp)
{
SoPhuc tg;
tg.a = a + sp.a;
tg.b = b + sp.b;
return tg;
}
//ham ban
ostream& operator<<(ostream &cout, SoPhuc &p)
{
if(p.b>=0) cout<<p.a<<" + j"<< p.b;
else cout<<p.a<<" - j"<< -p.b;
return cout;
}
Last updated