Bài giảng Lập trình hướng đối tượng - Chương 7: Toán tử số học - Nguyễn Sơn Hoàng Quốc

Khoa CNTT  
LTHĐT  
Chương 7  
TOÁN TỬ SỐ HỌC  
GV. Nguyễn Sơn Hoàng Quốc  
ThS. Nguyễn Tấn Trần Minh Khang  
Chương 07 - 1  
Khoa CNTT  
LTHĐT  
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++  
GV. Nguyễn Sơn Hoàng Quốc  
Chương 07 - 2  
ThS. Nguyễn Tấn Trần Minh Khang  
Click to see Figure 1-2  
Khoa CNTT  
LTHĐT  
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 <stdio.h>  
#include <conio.h>  
class CPhanSo  
{
private:  
int tu;  
int mau;  
public:  
void Nhap();  
void Xuat();  
CPhanSo Tong(CPhanSo);  
};  
GV. Nguyễn Sơn Hoàng Quốc  
Chương 07 - 3  
ThS. Nguyễn Tấn Trần Minh Khang  
Khoa CNTT  
LTHĐT  
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();  
}
GV. Nguyễn Sơn Hoàng Quốc  
Chương 07 - 4  
ThS. Nguyễn Tấn Trần Minh Khang  
Khoa CNTT  
LTHĐT  
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);  
}
GV. Nguyễn Sơn Hoàng Quốc  
Chương 07 - 5  
ThS. Nguyễn Tấn Trần Minh Khang  
Khoa CNTT  
LTHĐT  
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;  
}
kq = a.Tong(b);  
x
y
temp  
a c  
ad bc  
b d  
bd  
GV. Nguyễn Sơn Hoàng Quốc  
ThS. Nguyễn Tấn Trần Minh Khang  
Chương 07 - 6  
Khoa CNTT  
LTHĐT  
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 --)  
GV. Nguyễn Sơn Hoàng Quốc  
Chương 07 - 7  
ThS. Nguyễn Tấn Trần Minh Khang  
Khoa CNTT  
LTHĐT  
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;  
GV. Nguyễn Sơn Hoàng Quốc  
Chương 07 - 8  
ThS. Nguyễn Tấn Trần Minh Khang  
Khoa CNTT  
LTHĐT  
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);  
};  
GV. Nguyễn Sơn Hoàng Quốc  
Chương 07 - 9  
ThS. Nguyễn Tấn Trần Minh Khang  
Khoa CNTT  
LTHĐT  
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;  
}
GV. Nguyễn Sơn Hoàng Quốc  
ThS. Nguyễn Tấn Trần Minh Khang  
Chương 07 - 10  
Khoa CNTT  
LTHĐT  
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;  
}
GV. Nguyễn Sơn Hoàng Quốc  
ThS. Nguyễn Tấn Trần Minh Khang  
Chương 07 - 11  
Khoa CNTT  
LTHĐT  
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.  
GV. Nguyễn Sơn Hoàng Quốc  
Chương 07 - 12  
ThS. Nguyễn Tấn Trần Minh Khang  
pdf 12 trang myanh 21000 Free
Bạn đang xem tài liệu "Bài giảng Lập trình hướng đối tượng - Chương 7: Toán tử số học - Nguyễn Sơn Hoàng Quốc", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_lap_trinh_huong_doi_tuong_chuong_7_toan_tu_so_hoc.pdf