Giáo trình Lập trình hướng đối tượng - Chương 7: Toán tử số học
 Bài toán: Viết chương trình nhập
vào hai phân số. Tính tổng giữa
chúng và xuất kết quả băng
phương pháp lập trình hướng đối
tương.
 Chương trình
#include <stdio.h>
#include <conio.h>
class CPhanSo
{
private:
int tu;
int mau;
public:
void Nhap();
void Xuat();
CPhanSo Tong(CPhanSo);
};
LTHĐTKhoa CNTT
Chương 07 - 1
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
Chương 7
TOÁN TỬ SỐ HỌC
LTHĐTKhoa CNTT
Chương 07 - 2
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
0. MỤC TIÊU
 Hiểu được các toán tử số học là
gì?
 Hiểu được vai trò của toán tử số
học trong C++
Click to see Figure 1-2
LTHĐTKhoa CNTT
Chương 07 - 3
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
1. BÀI TOÁN DẪN NHẬP
 Bài toán: Viết chương trình nhập
vào hai phân số. Tính tổng giữa
chúng và xuất kết quả băng
phương pháp lập trình hướng đối
tương.
 Chương trình
#include 
#include 
class CPhanSo
{
private:
int tu;
int mau;
public:
void Nhap();
void Xuat();
CPhanSo Tong(CPhanSo);
};
LTHĐTKhoa CNTT
Chương 07 - 4
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
1. BÀI TOÁN DẪN NHẬP
void main()
{
CPhanSo a,b,kq;
a.Nhap();
b.Nhap();
kq = a.Tong(b);
printf(“Tong la:”);
kq.Xuat();
}
LTHĐTKhoa CNTT
Chương 07 - 5
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
1. BÀI TOÁN DẪN NHẬP
void CPhanSo::Nhap()
{
printf(“Nhap tu:”);
scanf(“%d”,&tu);
printf(“Nhap mau:”);
scanf(“%d”,&mau);
}
void CPhanSo::Xuat()
{
printf(“%d/%d”,tu,mau);
}
LTHĐTKhoa CNTT
Chương 07 - 6
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
1. BÀI TOÁN DẪN NHẬP
CPhanSo CPhanSo::Tong(CPhanSo x)
{
CPhanSo temp;
temp.tu= tu*x.mau + mau*x.tu;
temp.mau= mau*x.mau;
return temp;
}
a c ad bc
b d bd
 
x y temp
kq = a.Tong(b);
LTHĐTKhoa CNTT
Chương 07 - 7
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
2. KHÁI NIỆM
 Trong ngôn ngữ lập trình C có các
toán tử số học như sau:
 Toán tử cộng (operator +)
 Toán tử trừ (operator -)
 Toán tử nhân (operator *)
 Toán tử chia (operator /)
 Toán tử mod (operator %)
 Toán tử cộng bằng (operator +=) 
 Toán tử trừ bằng (operator -=)
 Toán tử nhân bằng (operator *=)
 Toán tử chia bằng (operator /=)
 Toán tử mod bằng (operator %=)
 Toán tử tăng một (operator ++)
 Toán tử giảm một (operator --)
LTHĐTKhoa CNTT
Chương 07 - 8
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
3. ĐẶT VẤN ĐỀ
 Hãy khai báo và định nghĩa các
phương thức và toán tử cần thiết để
các câu lệnh sau có thể thực hiện.
 Các câu lệnh
11.CPhanSo a,b,kq;
12.cin>>a>>b;
13.kq = a + b;
14.cout<<“Tong:”<<kq;
15.kq = a – b;
16.cout<<“Hieu:”<<kq;
17.kq = a * b;
18.cout<<“Tich:”<<kq;
19.kq = a / b;
20.cout<<“Thuong:”<<kq;
LTHĐTKhoa CNTT
Chương 07 - 9
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
4. GIẢI QUYẾT VẤN ĐỀ
 Để giải quyết vấn đề trên ta phải khai báo
và định nghĩa các toán tử số học cho lớp
đối tượng CPhanSo.
 Khai báo lớp
class CPhanSo
{
private:
int tu;
int mau;
public:
CPhanSo Tong(CPhanSo);
CPhanSo operator+(CPhanSo);
CPhanSo operator-(CPhanSo);
CPhanSo operator*(CPhanSo);
CPhanSo operator/(CPhanSo);
};
LTHĐTKhoa CNTT
Chương 07 - 10
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
4. GIẢI QUYẾT VẤN ĐỀ
CPhanSo CPhanSo::operator+
(CPhanSo x)
{
CPhanSo temp;
temp.tu = tu*x.mau+mau*x.tu;
temp.mau = mau*x.mau;
return temp;
}
CPhanSo CPhanSo::operator-
(CPhanSo x)
{
CPhanSo temp;
temp.tu = tu*x.mau-mau*x.tu;
temp.mau = mau*x.mau;
return temp;
}
LTHĐTKhoa CNTT
Chương 07 - 11
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
4. GIẢI QUYẾT VẤN ĐỀ
CPhanSo CPhanSo::operator*
(CPhanSo x)
{
CPhanSo temp;
temp.tu = tu*x.tu;
temp.mau = mau*x.mau;
return temp;
}
CPhanSo CPhanSo::operator/
(CPhanSo x)
{
CPhanSo temp;
temp.tu = tu*x.mau;
temp.mau = mau*x.tu;
return temp;
}
LTHĐTKhoa CNTT
Chương 07 - 12
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
5. BÀI TẬP VỀ NHÀ
 Bài 01: Hãy định nghĩa các toán 
tử +,-,*,/,+=,-=,*=,/=,++,-- cho lớp 
đối tượng CPhanSo
 Bài 02: Hãy định nghĩa các toán 
tử +,-,*,/,+=,-=,*=,/= cho lớp đối 
tượng CSoPhuc.
 Bài 03: Hãy định nghĩa các toán 
tử *,/,*=,/= cho lớp đối tượng 
CDonThuc.
 Bài 04: Hãy định nghĩa các toán 
tử +,-,*,/,+=,-=,*=,/= cho lớp đối 
tượng CDaThuc.
File đính kèm:
 Giáo trình Lập trình hướng đối tượng - Chương 7 Toán tử số học.pdf Giáo trình Lập trình hướng đối tượng - Chương 7 Toán tử số học.pdf






