Bài giảng Lập trình hướng đối tượng - Chương 1: Lớp vs Đối tượng - Hồ Tuấn Thanh

Lớp vs Đối tượng  
Lập trình hướng đối tượng  
Hồ Tuấn Thanh – [email protected]  
9/4/18  
1
Sự tiến hóa trong lập trình  
4/9/18  
2
1. Một hàm main duy nhất  
#include <iostream>  
using namespace std;  
int main()  
{
int tu1, mau1;  
int tu2, mau2;  
int tu3, mau3;  
4/9/18  
3
1. Một hàm main duy nhất  
cout << "Nhap phan so 1" << endl;  
cout << "Nhap tu: ";  
cin >> tu1;  
do  
{
cout << "Nhap mau: ";  
cin >> mau1;  
}while(mau1 == 0);  
if(mau1 < 0)  
{
tu1 = -tu1;  
mau1 = -mau1;  
}
4/9/18  
4
1. Một hàm main duy nhất  
cout << "Nhap phan so 2" << endl;  
cout << "Nhap tu: ";  
cin >> tu2;  
do  
{
cout << "Nhap mau: ";  
cin >> mau2;  
}while(mau2 == 0);  
if(mau2 < 0)  
{
tu2 = -tu2;  
mau2 = -mau2;  
}
4/9/18  
5
1. Một hàm main duy nhất  
tu3 = tu1 * mau2 + tu2 * mau1;  
mau3 = mau1 * mau2;  
4/9/18  
6
1. Một hàm main duy nhất  
cout << tu1 << "/" << mau1;  
cout << " + ";  
cout << tu2 << "/" << mau2;  
cout << " = ";  
cout << tu3 << "/" << mau3;  
cout << endl;  
return 0;  
}
4/9/18  
7
Vấn đề  
• Code quá dài, khó đọc  
• Quá nhiều đoạn code giống nhau  
• Nhập ps1 vs nhập ps2  
• In ps1 vs in ps2 vs in ps3  
• Copy – paste – EDIT  
• Modify 1 chỗ è update những chỗ còn lại  
4/9/18  
8
Ví dụ  
cout << "Nhap phan so 2" << endl;  
cout << "Nhap tu: ";  
cin >> tu2;  
do  
{
cout << "Nhap mau: ";  
cin >> mau1;  
}while(mau2 == 0);  
if(mau2 < 0)  
{
tu2 = - tu2;  
mau2 = -mau2;  
}
4/9/18  
9
2. Viết và sử dụng hàm  
#include <iostream>  
using namespace std;  
void nhap(int &tu, int &mau);  
void cong(int tu1, int mau1, int tu2, int mau2, int &tu3, int &mau3);  
void xuat(int tu, int mau);  
4/9/18  
10  
2. Viết và sử dụng hàm  
int main()  
{
int tu1, mau1;  
int tu2, mau2;  
int tu3, mau3;  
cout << "Nhap phan so 1" << endl;  
nhap(tu1, mau1);  
cout << "Nhap phan so 2" << endl;  
nhap(tu2, mau2);  
cong(tu1, mau1, tu2, mau2, tu3, mau3);  
xuat(tu1, mau1);  
cout << " + ";  
xuat(tu2, mau2);  
cout << " = ";  
xuat(tu3, mau3);  
cout << endl;  
return 0;  
}
2. Viết và sử dụng hàm  
void nhap(int &tu, int &mau)  
{
cout << "Nhap tu: ";  
cin >> tu;  
do  
{
cout << "Nhap mau: ";  
cin >> mau;  
}while(mau == 0);  
if(mau < 0)  
{
tu = -tu;  
mau = -mau;  
}
}
4/9/18  
12  
2. Viết và sử dụng hàm  
void cong(int tu1, int mau1, int tu2, int mau2, int &tu3, int &mau3)  
{
tu3 = tu1 * mau2 + tu2 * mau1;  
mau3 = mau1 * mau2;  
}
4/9/18  
13  
2. Viết và sử dụng hàm  
void xuat(int tu, int mau)  
{
cout << tu << "/" << mau;  
}
4/9/18  
14  
Vẫn còn vấn đề…  
• Sử dụng nhiều biến quá  
• Râu ông nọ, cắm càm bà kia  
4/9/18  
15  
Ví dụ  
int main()  
{
int tu1, mau1;  
int tu2, mau2;  
int tu3, mau3;  
cout << "Nhap phan so 1" << endl;  
nhap(tu1, mau1);  
cout << "Nhap phan so 2" << endl;  
nhap(tu2, mau1);  
cong(tu1, mau1, tu1, mau2, tu3, mau3);  
xuat(tu1, mau1);  
cout << " + ";  
xuat(tu2, mau2);  
cout << " = ";  
xuat(tu3, mau1);  
cout << endl;  
return 0;  
}
3. Sử dụng struct  
#include <iostream>  
using namespace std;  
struct PhanSo  
{
int tu;  
int mau;  
};  
void nhap(PhanSo &p);  
PhanSo cong(PhanSo p1, PhanSo p2);  
void xuat(PhanSo p);  
4/9/18  
17  
3. Sử dụng struct  
int main()  
{
PhanSo p1, p2, p3;  
cout << "Nhap phan so 1" << endl;  
nhap(p1);  
cout << "Nhap phan so 2" << endl;  
nhap(p2);  
p3 = cong(p1, p2);  
xuat(p1);  
cout << " + ";  
xuat(p2);  
cout << " = ";  
xuat(p3);  
cout << endl;  
return 0;  
}
3. Sử dụng struct  
void nhap(PhanSo &p)  
{
cout << "Nhap tu: ";  
cin >> p.tu;  
do  
{
cout << "Nhap mau: ";  
cin >> p.mau;  
}while(p.mau == 0);  
if(p.mau < 0)  
{
p.tu = -p.tu;  
p.mau = -p.mau;  
}
}
4/9/18  
19  
3. Sử dụng struct  
PhanSo cong(PhanSo p1, PhanSo p2)  
{
PhanSo p3;  
p3.tu = p1.tu * p2.mau + p2.tu * p1.mau;  
p3.mau = p1.mau * p2.mau;  
return p3;  
}
4/9/18  
20  
Tải về để xem bản đầy đủ
pdf 45 trang myanh 22320 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Lập trình hướng đối tượng - Chương 1: Lớp vs Đối tượng - Hồ Tuấn Thanh", để 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_1_lop_vs_doi_tuon.pdf