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;
}
/*
Bài tập (lthdt-sophuc2.cpp): Tính tổng hai số phức.
Yêu cầu:
1) Sử dụng toán tử cộng + để cộng 2 số phức.
2) Sử dụng toán tử nhập >> để nhập vào số phức.
3) Sử dụng toán tử xuất << để đưa số phức ra màn hình ở dạng a + jb.
*/
#include <iostream>
#include <stdio.h>
using namespace std;
//khai bao lop doi tuong so phuc
class SoPhuc
{
private:
float a, b;
public:
SoPhuc operator+(SoPhuc &sp2);
//ham ban
friend istream& operator>>(istream &cin, SoPhuc &sp);
friend ostream& operator<<(ostream &cout, SoPhuc &sp);
};
//===Chuong trinh chinh
int main ()
{
//tao doi tuong so phuc
SoPhuc sp1, sp2, tong;
cout<<"Chuong trinh tinh tong 2 so phuc.\n\n";
cout<<"Nhap vao so phuc thu nhat: ";
cin>>sp1;
cout<<"\nNhap vao so phuc thu hai: ";
cin>>sp2;
//tinh tong 2 so phuc
tong = sp1 + sp2;
//dua ra man hinh
cout<<"\nSo phuc thu nhat: "; cout<<sp1;
cout<<"\nSo phuc thu hai: "; cout<<sp2;
cout<<"\nTong 2 so phuc la: "; cout<<tong;
cout<<endl;
return 0;
}
//===Dinh nghia ham===
SoPhuc SoPhuc::operator+(SoPhuc &sp2)
{
SoPhuc tg;
tg.a = a + sp2.a;
tg.b = b + sp2.b;
return tg;
}
//ham ban
istream& operator>>(istream &cin, SoPhuc &sp)
{
cout<<"\nNhap vao phan thuc: ";
cin >>sp.a;
cout<<"Nhap vao phan ao: ";
cin >>sp.b;
return cin;
}
ostream& operator<<(ostream &cout, SoPhuc &sp)
{
if(sp.b >= 0) cout<<sp.a<<" + j"<<sp.b;
else cout<<sp.a<<" - j" << -sp.b;
return cout;
}
/*
Bài tập (lthdt-sophuc2.cpp): Viết chương trình nhập vào n số phức. Đưa các số phức đã nhập ra màn hình.
Yêu cầu trong chương trình phải tạo đối tượng động.
Yêu cầu:
1) Sử dụng toán tử cộng + để cộng n số phức.
2) Sử dụng toán tử nhập >> để nhập vào số phức.
3) Sử dụng toán tử xuất << để đưa số phức ra màn hình ở dạng a + jb.
*/
#include <iostream>
#include <stdio.h>
using namespace std;
//khai bao lop doi tuong so phuc
class SoPhuc
{
private:
float a, b;
public:
SoPhuc operator+(SoPhuc &sp2);
//ham ban
friend istream& operator>>(istream &cin, SoPhuc &sp);
friend ostream& operator<<(ostream &cout, SoPhuc &sp);
};
//===Chuong trinh chinh
int main ()
{
//khai bao bien
int n;
cout<<"Chuong trinh tinh tong n so phuc.\n\n";
cout<<"Nhap vao n so phuc: ";
cin>>n;
//tao doi tuong so phuc
SoPhuc *sp = new SoPhuc[n], tong;
for(int i=0 ; i<n ; i++)
{
cout<<"\nNhap vao so phuc thu " <<i+1;
cin >> sp[i];
}
//dua ra man hinh
for(int i=0; i<n ; i++)
{
printf("\nSo phuc thu %d : ",i+1);
cout<<sp[i];
//tinh tong n so phuc
tong = tong + sp[i];
}
printf("\nTong %d so phuc tren la: ", n);
cout<<tong;
cout<<endl;
return 0;
}
//===Dinh nghia ham===
SoPhuc SoPhuc::operator+(SoPhuc &sp2)
{
SoPhuc tg;
tg.a = a + sp2.a;
tg.b = b + sp2.b;
return tg;
}
//ham ban
istream& operator>>(istream &cin, SoPhuc &sp)
{
cout<<"\nNhap vao phan thuc: ";
cin >>sp.a;
cout<<"Nhap vao phan ao: ";
cin >>sp.b;
return cin;
}
ostream& operator<<(ostream &cout, SoPhuc &sp)
{
if(sp.b >= 0) cout<<sp.a<<" + j"<<sp.b;
else cout<<sp.a<<" - j" << -sp.b;
return cout;
}
Last updated