Professional Documents
Culture Documents
a/ Đại số hệ
- Đại số hệ
DSH số nguyên =...
D= -...-1,0,1,2........
P= +,- ,x, :, >, <....
....
- Kiểu dữ liệu (type):
Type = <DSH>
VD: trong N2 LT C:
Int =...
D = -32768- +32767
...
- Đối tượng (object)
....
b/ Định nghĩa lớp
- Cách viết
class tên_lớp
{ [public/protected/private]:
// khai báo các thành phần dữ liệu (D)
[public/protected/private]:
// Khai báo các hàm và phương thức (P)
};
// Xây dựng các hàm và PT của lớp
Chú ý:
- khi xây dựng các thành phần P ngoài lớp thì phải thêm tên_lớp:: trước thành phần xây
dựng.
- Tp D thường KB kiểu truy xuất private, còn tp P dc khai báo public
...
- Các thuộc tính (public, private)
...
c/ Thực hành bài trong sách
d/ Thực hành bài riêng.
Bai 2.1: Xây dựng lớp phân số(phan_so) có các hàm & phương thức sau:
a/ phương thức nhập & hàm xuất phân số
b/Phương thức cộng để cộng hai phân số
c/ Phương thức nhân(*) hai phân số
d/ Phương thức rút gọn phân số
e/ Phương thức chuyển đổi phân số thành số thực.
f/ Phương thức hoán đổi giá trị của hai phân số
g/ Phương thức so sánh lớn hơn, cho giá trị 1 nếu phân số 1 lớn hơn phân số 2, ngược lại cho 0
Bài 2.2: Cho mảng k phân số (kiểu phân số bài 1.1) viết chương trình
a/ Tính tổng các phân số.
b/ Tính tích các phân sổ và in ra giá trị thực của tích.
c/ Tìm phân số nhỏ nhất và lớn nhất
d/ Sắp xếp và in ra các phân số theo trật tự giảm dần.
Lời giải
//bai 2.1 phan a, b, d
#include<iostream>
using namespace std;
// Khai báo cấu trúc phân số & các thao tác trên phân số
class phan_so
{ private:
int tu,mau;// Khai báo 2 thành phần của phân số (tủ số và mẫu số- TP D của lớp)
public: // Các thành phần P
void xuat_phan_so();// khai báo phương thức xuất một phân số
void nhap_phan_so();// Khai báo phương thức nhập một phân số
phan_so cong_phan_so(phan_so&);// Khai báo phương thức cộng hai phân số
phan_so rut_gon_phan_so();// Khai báo phương thức rut gọn phân số
};
// Khai báo xong thành phần D & P của lớp phân số
// Xây dựng các hàm+phương thức
void phan_so::xuat_phan_so()
{
cout<<tu<<"/"<<mau;
};
void phan_so::nhap_phan_so()
{
cout<<"\n Tu so: ";
cin>>tu;
cout<<" Mau so: ";
cin>>mau;
}
phan_so phan_so::cong_phan_so(phan_so& phan_so2)
{ phan_so phan_so_tam;
phan_so_tam.tu=tu*phan_so2.mau+phan_so2.tu*mau;
phan_so_tam.mau=mau*phan_so2.mau;
return phan_so_tam;
}
phan_so phan_so::rut_gon_phan_so()
{
int a,b;
a=abs(tu);b=abs(mau);
while(a!=b){
if(a>b)a=a-b;
else b=b-a;
};
tu=tu/a;
mau=mau/a;
return *this;
}
// Kết thúc xây dựng lớp phan_so
cout<<"\n\n\n";
system("pause");
return 0;
}