Đề bài: Xây dựng lớp phân số với hai thuộc tính riêng xác định tử số và mẫu số của phân số và xây dựng các phương thức:
- Các hàm khởi tạo [constructor] trong trường hợp không có tham số và trường hợp có 2 tham số tử số và mẫu số
- Các hàm thực hiện phép toán cộng, trừ, nhân, chia các phân số
- Hàm thực hiện kiểm tra một phân số có phải tối giản hay không
- Hàm tìm tìm dạng tối giản của phân số
- Hàm tìm ước số chung lớn nhất của 2 số nguyên.
Viết chương trình ứng dụng, trong đó khai báo 3 đối số phân số là sp1, sp2 và spTong để tương tác với các hàm có trong lớp phân số trên.
Note: Source code mình đã đính kèm ở mục Documents, xem tại đây
Thiết kế lớp PhanSo [ Phân số ] gồm:
Các thuộc tính : tử số và mẫu số kiểu int.
Các hàm xây dựng gồm :
+ Hàm xây dựng mặc nhiên : PhanSo[];
+ Hàm xây dựng gồm nhiều đối số : PhanSo[int tu , int mau];
Các hàm thành viên gồm :
+ Hàm nhập giá trị cho 1 phân số. Nếu phân số vừa nhập có mẫu số = 0 thì yêu cầu nhập lại.
+ Hàm hiển thị phân số theo dạng tu / mau hoặc -tu/mau.
Yêu cầu: nếu tử số =0 thì chỉ in ra số 0, nếu mẫu số =1 thì chỉ in ra tử số.
+ Hàm nghịch đảo bản thân phân số void NghichDao[];
+ Hàm tìm ra phân số nghịch đảo của 1 phân số PhanSo GiaTriNghichDao[];
+ Hàm tính giá trị thực của phân số. Chẳng hạn phân số 1/2 có giá trị là 0.5
+ Hàm so sánh giá trị phân số với phân số a . int SoSanh[PhanSo a];
Kết quả = 0: nếu 2 phân số bằng nhau,
\> 0: nếu phân số đang xét lớn hơn a.
< 0: nếu phân số đang xét nhỏ hơn a.
+ Hàm cộng, trừ, nhân, chia phân số với 1 phân số a. Kết quả của hàm là 1 phân số.
Chẳng hạn: PhanSo Cong[PhanSo a]; …
Viết hàm main[] sử dụng lớp PhanSo :
+ Tạo phân số a = 3/7 , b = 4/9 . In giá trị chúng ra màn hình.
+ Tạo 2 phân số x và y . Nhập giá trị cho x và y từ bàn phím.
+ In giá trị nghịch đảo của phân số x ra màn hình [không làm thay đổi giá trị của x].
+ Tính tổng của x + y và in kết quả ra màn hình.
+ Nhập vào 1 danh sách gồm n phân số [ n : nhập từ bàn phím ].
+ Tính tổng n phân số đó.
+ Tìm phân số lớn nhất trong danh sách phân số trên.
+ Sắp xếp danh sách phân số theo thứ tự tăng dần.
include
include
class PhanSo{
int tu, mau;
int UCLN[int, int];
void RutGon[];
public:
PhanSo[]{ //Ham xay dung mac nhien
tu=0;
mau=1;
}
PhanSo[int t, int m]{ //Ham xay dung nhieu tham so
tu=t;
mau=m;
}
PhanSo[const PhanSo & ps]{ //Ham xay dung sao chep
tu=ps.tu;
mau=ps.mau;
}
void Nhap[];
void In[];
void NghichDao[];
PhanSo GTND[];
float GTthuc[];
PhanSo Cong[PhanSo];
PhanSo Tru[PhanSo];
PhanSo Nhan[PhanSo];
PhanSo Chia[PhanSo];
int SoSanh[PhanSo];
};
int PhanSo::UCLN[int a, int b]{
int uc;
if [a tu;
cout > mau;
if [mau!=0] break;
cout