SlideShare a Scribd company logo
1 of 13
L.X.Định
GV: Lê Xuân Định
L.X.Định 2
 Lập trình Mệnh lệnh (Imperative Programming)
 Ngôn ngữ LT: Hợp ngữ, C đơn giản, …
 Đơn vị của chương trình là lệnh.
 Lập trình Thủ tục (Procedural Programming)
 Ngôn ngữ LT: C, Pascal, …
 Đơn vị của chương trình là thủ tục / hàm / ctrình con.
 Lập trình Hướng đối tượng (Object Oriented Programming)
 Ngôn ngữ LT: C++, Java, C#, …
 Đơn vị của chương trình là đối tượng / lớp.
 Và nhiều kiểu lập trình khác: LTr Khai báo, LTr Hàm, LTr Logic,
LTr Hướng sự kiện, LTr Hướng dịch vụ, v.v.
Các Kiểu Lập trình
(Programming Paradigms)
_____________________________
Chú ý: Cách phân chia ra thành các “kiểu lập trình” như thế này chỉ mang tính tương đối.
L.X.Định 3
 Chương trình là một danh sách các câu lệnh.
 Ví dụ: Chương trình “Vẽ hình vuông”
Lập trình Mệnh lệnh
drawRight(100);
drawDown(100);
drawLeft(100);
drawUp(100);
L.X.Định 4
 Chương trình là một danh sách các câu lệnh.
 Ví dụ 2: Chương trình “Vẽ hai hình vuông”
Lập trình Mệnh lệnh
movePen(0, 0);
drawRight(100);
drawDown(100);
drawLeft(100);
drawUp(100);
movePen(50, 50);
drawRight(60);
drawDown(60);
drawLeft(60);
drawUp(60);
Dài!
Lặp
code
L.X.Định 5
 Chương trình được chia ra thành nhiều chương
trình con (thủ tục, hàm).
 Mỗi chương trình con là một danh sách các câu lệnh.
 Chương trình con này có thể gọi ctrình con khác.
 Ví dụ: Chương trình “Vẽ ba hình vuông”
Lập trình Thủ tục
void main(){
vuong(100, 0, 0);
vuong(60, 50, 50);
vuong(50, 10, 40);
}
void vuong(int w,
int x, int y)
{ movePen(x, y);
drawRight(w);
drawDown(w);
drawLeft(w);
drawUp(w);
}
L.X.Định 6
 Chương trình được chia ra thành nhiều chương
trình con (thủ tục, hàm).
 Ví dụ 2: Chương trình “Vẽ robot (vuông & chữ nhật)”
Lập trình Thủ tục
void main(){
color(8, 80, 145);
vuong(20, -10,0);
vuong(10, -5,20);
chuNhat(40,50, -20,30);
chuNhat(10,60, -30,30);
chuNhat(10,60, 20,30);
chuNhat(10,60, -15,80);
chuNhat(10,60, 5,80);
}
void vuong(int w,
int x, int y)
{ movePen(x, y);
drawRight(w);
...
}
void chuNhat(
int w, int h,
int x, int y)
{ movePen(x, y);
drawRight(w);
drawDown(h);
...
}
4
4
4
4
4
4
4
4
L.X.Định 7
 Chương trình được chia ra thành nhiều chương
trình con (thủ tục, hàm).
 Ví dụ 3: Chương trình “Vẽ robot nhảy”
Lập trình Thủ tục
void robot(int w,
int r, int g, int b,
int x, int y){
color(r, g, b);
vuong(2*w, x-w, y);
vuong(w, x-w/2, y+2*w);
chuNhat(4*w,5*w, x-2*w, y+3*w);
chuNhat(w,6*w, x-3*w, y+3*w);
chuNhat(w,6*w, x+2*w, y+3*w);
chuNhat(w,6*w, x-3*w/2,y+8*w);
chuNhat(w,6*w, x+w/2,y+8*w);
}
void xoaRobot(int w,
int x, int y){
robot(w, 0,0,0, x,y);
}
void main()
{ for(int i=0;;i++)
{sleep(200);
xoaRobot(10, 0, 10*(i%2))
robot(10, 8,80,145,
0, 10*((i+1)%2) );
} }
4
4
4
4
4
4
4
4
L.X.Định 8
 Chương trình được chia ra thành nhiều chương
trình con (thủ tục, hàm).
 Ví dụ 3: Chương trình “Vẽ robot nhảy”
Lập trình Thủ tục
void robot(int w,
int r, int g, int b,
int x, int y){
color(r, g, b);
vuong(2*w, x-w, y);
vuong(w, x-w/2, y+2*w);
chuNhat(4*w,5*w, x-2*w, y+3*w);
chuNhat(w,6*w, x-3*w, y+3*w);
chuNhat(w,6*w, x+2*w, y+3*w);
chuNhat(w,6*w, x-3*w/2,y+8*w);
chuNhat(w,6*w, x+w/2,y+8*w);
}
void xoaRobot(int w,
int x, int y){
robot(w, 0,0,0, x,y);
}
void main()
{ for(int i=0;;i++)
{sleep(200);
xoaRobot(10, 0, 10*(i%2))
robot(10, 8,80,145,
0, 10*((i+1)%2) );
} }
Dài!
Dài!
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
L.X.Định 9
 Chương trình được chia ra thành nhiều chương
trình con cùng các cấu trúc dữ liệu (struct).
 Ví dụ: Chương trình “Vẽ robot nhảy”
Lập trình Thủ tục với Struct
void veRobot(Robot r){
color(r.r, r.g, r.b);
vuong(2*r.w, r.x-r.w, r.y);
...
}
struct Robot{ int w,
int r, int g, int b,
int x, int y };
4
4
4
4
4
4
4
4
void main()
{ Robot r={10, 8,80,145, 0,0};
for(int i=0;;i++)
{ sleep(200); xoaRobot(r);
doiRobot(r, 0, 10*(i%2));
veRobot(r);
} }
void doiRobot(Robot r,
int x, int y)
{ r.x = x; r.y = y; }
4
4
4
4
4
4
4
4
void xoaRobot(Robot r){
Robot rx = {r.w, 0,0,0, r.x, r.y};
veRobot(rx);
}
L.X.Định 10
 Chương trình được chia ra thành nhiều chương
trình con cùng các cấu trúc dữ liệu (struct).
 Ví dụ 2: Chương trình “Vẽ robot nhảy & robot chào”
Lập trình Thủ tục với Struct
void main()
{ Robot r={10, 255,0,0, 0,0};
RobotChao rc={10,0,0,255,
-70,0, ‘E’};
helloRobot(rc);
nhayRobot(rc, 9);
byeRobot(rc);
nhayRobot(r, 100);
}
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
...
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
Hello
Bye
Khác kiểu tham số
L.X.Định 11
 Chương trình được chia ra thành nhiều chương
trình con cùng các cấu trúc dữ liệu (struct).
 Ví dụ 2: Chương trình “Vẽ robot nhảy & robot chào”
Lập trình Thủ tục với Struct
struct RobotChao{ int w,
int r, int g, int b,
int x, int y, char nn };
struct Robot{ int w,
int r, int g, int b,
int x, int y };
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
void veRobot(RobotChao r){
color(r.r, r.g, r.b);
vuong(2*r.w, r.x-r.w, r.y);
...
}
void veRobot(Robot r){
color(r.r, r.g, r.b);
vuong(2*r.w, r.x-r.w, r.y);
...
}
void xoaRobot(Robot r){
Robot rx = {r.w, 0,0,0,
r.x, r.y};
veRobot(rx); }
void xoaRobot(RobotChao r){
Robot rx = {r.w, 0,0,0,
r.x, r.y};
veRobot(rx); }
L.X.Định 12
 Chương trình là cuộc hội thoại giữa các đối
tượng (đối tượng = struct + hàm).
 Ví dụ: Chương trình “Vẽ robot nhảy & robot chào”
Lập trình Hướng đối tượng
class RobotChao
:public Robot {
char nn;
public:
void hello();
void bye();
};
class Robot{ int w,
int r, int g, int b,
int x, int y;
public:
void ve();
void xoa();
void doi(int x, int y);
void nhay();
};
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
void main()
{ RobotChao rc;
rc.hello();
rc.nhay(100);
}
Hello
L.X.Định 13
 Qua mỗi bước phát triển, kiểu lập trình sau tích hợp
nhiều đơn vị của kiểu lập trình trước vào một đơn vị.
 Thủ thục là tập hợp các lệnh.
 Đối tượng là sự tích hợp của dữ liệu và thủ tục.
Thuận tiện cho việc phát triển ứng dụng lớn hơn!
 Nâng cao tính tái sử dụng (reusability).
 Nâng cao khả năng mở rộng (scalability).
Kết luận

More Related Content

What's hot

Bai19 chuong trinh con (thu tuc va ham) - tin 11
Bai19  chuong trinh con (thu tuc va ham) - tin 11Bai19  chuong trinh con (thu tuc va ham) - tin 11
Bai19 chuong trinh con (thu tuc va ham) - tin 11Bich Tuyen
 
Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...
Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...
Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...Thanh Giảng Lê
 
Pplthdt c01 phong_cachlaptrinh_v13.09a
Pplthdt c01 phong_cachlaptrinh_v13.09aPplthdt c01 phong_cachlaptrinh_v13.09a
Pplthdt c01 phong_cachlaptrinh_v13.09aPix Nhox
 
Pplthdt c03 kieu_dulieucoso_lopdungsan_v13.09a
Pplthdt c03 kieu_dulieucoso_lopdungsan_v13.09aPplthdt c03 kieu_dulieucoso_lopdungsan_v13.09a
Pplthdt c03 kieu_dulieucoso_lopdungsan_v13.09aPix Nhox
 
Phần 6: Hàm
Phần 6: HàmPhần 6: Hàm
Phần 6: HàmHuy Rùa
 
Bài 17 tin học 11
Bài 17 tin học 11Bài 17 tin học 11
Bài 17 tin học 11HaBaoChau
 
Pplthdt c02 lop_doi_tuong_v13.09a
Pplthdt c02 lop_doi_tuong_v13.09aPplthdt c02 lop_doi_tuong_v13.09a
Pplthdt c02 lop_doi_tuong_v13.09aPix Nhox
 
Bai tap thuc hanh nhap mon tin hoc
Bai tap thuc hanh nhap mon tin hocBai tap thuc hanh nhap mon tin hoc
Bai tap thuc hanh nhap mon tin hocHồ Lợi
 
Giáo trình c++ full tiếng việt
Giáo trình c++ full tiếng việtGiáo trình c++ full tiếng việt
Giáo trình c++ full tiếng việtMôi Trường Việt
 
Bai tap lap trinh c
Bai tap lap trinh  cBai tap lap trinh  c
Bai tap lap trinh ctiểu minh
 
Bài 17 Chương trình con và phân loại
Bài 17 Chương trình con và phân loạiBài 17 Chương trình con và phân loại
Bài 17 Chương trình con và phân loạiHòa Hoàng
 
Phần 1: Các khái niệm cơ bản về lập trình
Phần 1: Các khái niệm cơ bản về lập trìnhPhần 1: Các khái niệm cơ bản về lập trình
Phần 1: Các khái niệm cơ bản về lập trìnhHuy Rùa
 
3 Function
3 Function3 Function
3 FunctionCuong
 

What's hot (18)

Chuong 4
Chuong 4Chuong 4
Chuong 4
 
Tut6 solution
Tut6 solutionTut6 solution
Tut6 solution
 
Bai19 chuong trinh con (thu tuc va ham) - tin 11
Bai19  chuong trinh con (thu tuc va ham) - tin 11Bai19  chuong trinh con (thu tuc va ham) - tin 11
Bai19 chuong trinh con (thu tuc va ham) - tin 11
 
Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...
Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...
Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...
 
Pplthdt c01 phong_cachlaptrinh_v13.09a
Pplthdt c01 phong_cachlaptrinh_v13.09aPplthdt c01 phong_cachlaptrinh_v13.09a
Pplthdt c01 phong_cachlaptrinh_v13.09a
 
Pplthdt c03 kieu_dulieucoso_lopdungsan_v13.09a
Pplthdt c03 kieu_dulieucoso_lopdungsan_v13.09aPplthdt c03 kieu_dulieucoso_lopdungsan_v13.09a
Pplthdt c03 kieu_dulieucoso_lopdungsan_v13.09a
 
Chuong trinh con
Chuong trinh conChuong trinh con
Chuong trinh con
 
Phần 6: Hàm
Phần 6: HàmPhần 6: Hàm
Phần 6: Hàm
 
Bài 17 tin học 11
Bài 17 tin học 11Bài 17 tin học 11
Bài 17 tin học 11
 
Pplthdt c02 lop_doi_tuong_v13.09a
Pplthdt c02 lop_doi_tuong_v13.09aPplthdt c02 lop_doi_tuong_v13.09a
Pplthdt c02 lop_doi_tuong_v13.09a
 
Bai tap thuc hanh nhap mon tin hoc
Bai tap thuc hanh nhap mon tin hocBai tap thuc hanh nhap mon tin hoc
Bai tap thuc hanh nhap mon tin hoc
 
Giáo trình c++ full tiếng việt
Giáo trình c++ full tiếng việtGiáo trình c++ full tiếng việt
Giáo trình c++ full tiếng việt
 
Bai tap lap trinh c
Bai tap lap trinh  cBai tap lap trinh  c
Bai tap lap trinh c
 
Bài 17 Chương trình con và phân loại
Bài 17 Chương trình con và phân loạiBài 17 Chương trình con và phân loại
Bài 17 Chương trình con và phân loại
 
Tut5 solution
Tut5 solutionTut5 solution
Tut5 solution
 
Phần 1: Các khái niệm cơ bản về lập trình
Phần 1: Các khái niệm cơ bản về lập trìnhPhần 1: Các khái niệm cơ bản về lập trình
Phần 1: Các khái niệm cơ bản về lập trình
 
C9 templates
C9 templatesC9 templates
C9 templates
 
3 Function
3 Function3 Function
3 Function
 

Viewers also liked

UPrésentation1
UPrésentation1UPrésentation1
UPrésentation1cjulien75
 
Turning e prints into a service
Turning e prints into a serviceTurning e prints into a service
Turning e prints into a serviceLizHolliday1
 
Tian de katalóg 2012
Tian de katalóg 2012Tian de katalóg 2012
Tian de katalóg 2012Nina Holesova
 
Dielňa krásy tian de
Dielňa krásy tian deDielňa krásy tian de
Dielňa krásy tian deNina Holesova
 
III MINI CHALLENGER TENIS M1 MIGUEL. FOLLETO
III MINI CHALLENGER TENIS M1 MIGUEL. FOLLETOIII MINI CHALLENGER TENIS M1 MIGUEL. FOLLETO
III MINI CHALLENGER TENIS M1 MIGUEL. FOLLETOrincondemodesto
 
Các kiểu Lập trình
Các kiểu Lập trìnhCác kiểu Lập trình
Các kiểu Lập trìnhLê Định
 
Katalog zima 2012 2013
Katalog zima 2012 2013Katalog zima 2012 2013
Katalog zima 2012 2013Nina Holesova
 
A Dialog with WolframAlpha
A Dialog with WolframAlphaA Dialog with WolframAlpha
A Dialog with WolframAlphaLê Định
 

Viewers also liked (8)

UPrésentation1
UPrésentation1UPrésentation1
UPrésentation1
 
Turning e prints into a service
Turning e prints into a serviceTurning e prints into a service
Turning e prints into a service
 
Tian de katalóg 2012
Tian de katalóg 2012Tian de katalóg 2012
Tian de katalóg 2012
 
Dielňa krásy tian de
Dielňa krásy tian deDielňa krásy tian de
Dielňa krásy tian de
 
III MINI CHALLENGER TENIS M1 MIGUEL. FOLLETO
III MINI CHALLENGER TENIS M1 MIGUEL. FOLLETOIII MINI CHALLENGER TENIS M1 MIGUEL. FOLLETO
III MINI CHALLENGER TENIS M1 MIGUEL. FOLLETO
 
Các kiểu Lập trình
Các kiểu Lập trìnhCác kiểu Lập trình
Các kiểu Lập trình
 
Katalog zima 2012 2013
Katalog zima 2012 2013Katalog zima 2012 2013
Katalog zima 2012 2013
 
A Dialog with WolframAlpha
A Dialog with WolframAlphaA Dialog with WolframAlpha
A Dialog with WolframAlpha
 

Similar to Các kiểu Lập trình

Bai 17 chuong trinh con va phan loai
Bai 17 chuong trinh con va phan loaiBai 17 chuong trinh con va phan loai
Bai 17 chuong trinh con va phan loaiThaiPham97
 
Lap trinh huong_doi_tuong_cpp_dhct_lesson07
Lap trinh huong_doi_tuong_cpp_dhct_lesson07Lap trinh huong_doi_tuong_cpp_dhct_lesson07
Lap trinh huong_doi_tuong_cpp_dhct_lesson07xcode_esvn
 
1 Gioi Thieu Chung
1 Gioi Thieu Chung1 Gioi Thieu Chung
1 Gioi Thieu ChungCuong
 
Giáo trình vb.net
Giáo trình vb.netGiáo trình vb.net
Giáo trình vb.netHung Pham
 
C8 object-oriented thinking
C8 object-oriented thinkingC8 object-oriented thinking
C8 object-oriented thinkingHồ Lợi
 
LP_TRINH_HP_NG_MIPS_Mc_dich.pdf
LP_TRINH_HP_NG_MIPS_Mc_dich.pdfLP_TRINH_HP_NG_MIPS_Mc_dich.pdf
LP_TRINH_HP_NG_MIPS_Mc_dich.pdfChuong
 
OOP_02_Java can ban.pdf
OOP_02_Java can ban.pdfOOP_02_Java can ban.pdf
OOP_02_Java can ban.pdfssuserd01a5c
 
Bài tập mẫu C và C++ có giải
Bài tập mẫu C và C++ có giảiBài tập mẫu C và C++ có giải
Bài tập mẫu C và C++ có giảiTrung Thanh Nguyen
 
Session 4
Session 4Session 4
Session 4pnanhvn
 

Similar to Các kiểu Lập trình (20)

Bai 17 chuong trinh con va phan loai
Bai 17 chuong trinh con va phan loaiBai 17 chuong trinh con va phan loai
Bai 17 chuong trinh con va phan loai
 
Chuong1 c
Chuong1 c Chuong1 c
Chuong1 c
 
Lap trinh huong_doi_tuong_cpp_dhct_lesson07
Lap trinh huong_doi_tuong_cpp_dhct_lesson07Lap trinh huong_doi_tuong_cpp_dhct_lesson07
Lap trinh huong_doi_tuong_cpp_dhct_lesson07
 
LINQ
LINQLINQ
LINQ
 
1 Gioi Thieu Chung
1 Gioi Thieu Chung1 Gioi Thieu Chung
1 Gioi Thieu Chung
 
Lesson07
Lesson07Lesson07
Lesson07
 
Giáo trình vb.net
Giáo trình vb.netGiáo trình vb.net
Giáo trình vb.net
 
C8 object-oriented thinking
C8 object-oriented thinkingC8 object-oriented thinking
C8 object-oriented thinking
 
C8 object-oriented thinking
C8 object-oriented thinkingC8 object-oriented thinking
C8 object-oriented thinking
 
C++ can ban
C++ can banC++ can ban
C++ can ban
 
LP_TRINH_HP_NG_MIPS_Mc_dich.pdf
LP_TRINH_HP_NG_MIPS_Mc_dich.pdfLP_TRINH_HP_NG_MIPS_Mc_dich.pdf
LP_TRINH_HP_NG_MIPS_Mc_dich.pdf
 
Hop ngu mips
Hop ngu mipsHop ngu mips
Hop ngu mips
 
Lesson08
Lesson08Lesson08
Lesson08
 
344444
344444344444
344444
 
OOP_02_Java can ban.pdf
OOP_02_Java can ban.pdfOOP_02_Java can ban.pdf
OOP_02_Java can ban.pdf
 
Bài tập mẫu C và C++ có giải
Bài tập mẫu C và C++ có giảiBài tập mẫu C và C++ có giải
Bài tập mẫu C và C++ có giải
 
Bai 18
Bai 18Bai 18
Bai 18
 
Session 4
Session 4Session 4
Session 4
 
1. Java cơ bản.pdf
1. Java cơ bản.pdf1. Java cơ bản.pdf
1. Java cơ bản.pdf
 
C đến C++ phần 1
C đến C++ phần 1C đến C++ phần 1
C đến C++ phần 1
 

Các kiểu Lập trình

  • 2. L.X.Định 2  Lập trình Mệnh lệnh (Imperative Programming)  Ngôn ngữ LT: Hợp ngữ, C đơn giản, …  Đơn vị của chương trình là lệnh.  Lập trình Thủ tục (Procedural Programming)  Ngôn ngữ LT: C, Pascal, …  Đơn vị của chương trình là thủ tục / hàm / ctrình con.  Lập trình Hướng đối tượng (Object Oriented Programming)  Ngôn ngữ LT: C++, Java, C#, …  Đơn vị của chương trình là đối tượng / lớp.  Và nhiều kiểu lập trình khác: LTr Khai báo, LTr Hàm, LTr Logic, LTr Hướng sự kiện, LTr Hướng dịch vụ, v.v. Các Kiểu Lập trình (Programming Paradigms) _____________________________ Chú ý: Cách phân chia ra thành các “kiểu lập trình” như thế này chỉ mang tính tương đối.
  • 3. L.X.Định 3  Chương trình là một danh sách các câu lệnh.  Ví dụ: Chương trình “Vẽ hình vuông” Lập trình Mệnh lệnh drawRight(100); drawDown(100); drawLeft(100); drawUp(100);
  • 4. L.X.Định 4  Chương trình là một danh sách các câu lệnh.  Ví dụ 2: Chương trình “Vẽ hai hình vuông” Lập trình Mệnh lệnh movePen(0, 0); drawRight(100); drawDown(100); drawLeft(100); drawUp(100); movePen(50, 50); drawRight(60); drawDown(60); drawLeft(60); drawUp(60); Dài! Lặp code
  • 5. L.X.Định 5  Chương trình được chia ra thành nhiều chương trình con (thủ tục, hàm).  Mỗi chương trình con là một danh sách các câu lệnh.  Chương trình con này có thể gọi ctrình con khác.  Ví dụ: Chương trình “Vẽ ba hình vuông” Lập trình Thủ tục void main(){ vuong(100, 0, 0); vuong(60, 50, 50); vuong(50, 10, 40); } void vuong(int w, int x, int y) { movePen(x, y); drawRight(w); drawDown(w); drawLeft(w); drawUp(w); }
  • 6. L.X.Định 6  Chương trình được chia ra thành nhiều chương trình con (thủ tục, hàm).  Ví dụ 2: Chương trình “Vẽ robot (vuông & chữ nhật)” Lập trình Thủ tục void main(){ color(8, 80, 145); vuong(20, -10,0); vuong(10, -5,20); chuNhat(40,50, -20,30); chuNhat(10,60, -30,30); chuNhat(10,60, 20,30); chuNhat(10,60, -15,80); chuNhat(10,60, 5,80); } void vuong(int w, int x, int y) { movePen(x, y); drawRight(w); ... } void chuNhat( int w, int h, int x, int y) { movePen(x, y); drawRight(w); drawDown(h); ... } 4 4 4 4 4 4 4 4
  • 7. L.X.Định 7  Chương trình được chia ra thành nhiều chương trình con (thủ tục, hàm).  Ví dụ 3: Chương trình “Vẽ robot nhảy” Lập trình Thủ tục void robot(int w, int r, int g, int b, int x, int y){ color(r, g, b); vuong(2*w, x-w, y); vuong(w, x-w/2, y+2*w); chuNhat(4*w,5*w, x-2*w, y+3*w); chuNhat(w,6*w, x-3*w, y+3*w); chuNhat(w,6*w, x+2*w, y+3*w); chuNhat(w,6*w, x-3*w/2,y+8*w); chuNhat(w,6*w, x+w/2,y+8*w); } void xoaRobot(int w, int x, int y){ robot(w, 0,0,0, x,y); } void main() { for(int i=0;;i++) {sleep(200); xoaRobot(10, 0, 10*(i%2)) robot(10, 8,80,145, 0, 10*((i+1)%2) ); } } 4 4 4 4 4 4 4 4
  • 8. L.X.Định 8  Chương trình được chia ra thành nhiều chương trình con (thủ tục, hàm).  Ví dụ 3: Chương trình “Vẽ robot nhảy” Lập trình Thủ tục void robot(int w, int r, int g, int b, int x, int y){ color(r, g, b); vuong(2*w, x-w, y); vuong(w, x-w/2, y+2*w); chuNhat(4*w,5*w, x-2*w, y+3*w); chuNhat(w,6*w, x-3*w, y+3*w); chuNhat(w,6*w, x+2*w, y+3*w); chuNhat(w,6*w, x-3*w/2,y+8*w); chuNhat(w,6*w, x+w/2,y+8*w); } void xoaRobot(int w, int x, int y){ robot(w, 0,0,0, x,y); } void main() { for(int i=0;;i++) {sleep(200); xoaRobot(10, 0, 10*(i%2)) robot(10, 8,80,145, 0, 10*((i+1)%2) ); } } Dài! Dài! 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
  • 9. L.X.Định 9  Chương trình được chia ra thành nhiều chương trình con cùng các cấu trúc dữ liệu (struct).  Ví dụ: Chương trình “Vẽ robot nhảy” Lập trình Thủ tục với Struct void veRobot(Robot r){ color(r.r, r.g, r.b); vuong(2*r.w, r.x-r.w, r.y); ... } struct Robot{ int w, int r, int g, int b, int x, int y }; 4 4 4 4 4 4 4 4 void main() { Robot r={10, 8,80,145, 0,0}; for(int i=0;;i++) { sleep(200); xoaRobot(r); doiRobot(r, 0, 10*(i%2)); veRobot(r); } } void doiRobot(Robot r, int x, int y) { r.x = x; r.y = y; } 4 4 4 4 4 4 4 4 void xoaRobot(Robot r){ Robot rx = {r.w, 0,0,0, r.x, r.y}; veRobot(rx); }
  • 10. L.X.Định 10  Chương trình được chia ra thành nhiều chương trình con cùng các cấu trúc dữ liệu (struct).  Ví dụ 2: Chương trình “Vẽ robot nhảy & robot chào” Lập trình Thủ tục với Struct void main() { Robot r={10, 255,0,0, 0,0}; RobotChao rc={10,0,0,255, -70,0, ‘E’}; helloRobot(rc); nhayRobot(rc, 9); byeRobot(rc); nhayRobot(r, 100); } 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 ... 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Hello Bye Khác kiểu tham số
  • 11. L.X.Định 11  Chương trình được chia ra thành nhiều chương trình con cùng các cấu trúc dữ liệu (struct).  Ví dụ 2: Chương trình “Vẽ robot nhảy & robot chào” Lập trình Thủ tục với Struct struct RobotChao{ int w, int r, int g, int b, int x, int y, char nn }; struct Robot{ int w, int r, int g, int b, int x, int y }; 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 void veRobot(RobotChao r){ color(r.r, r.g, r.b); vuong(2*r.w, r.x-r.w, r.y); ... } void veRobot(Robot r){ color(r.r, r.g, r.b); vuong(2*r.w, r.x-r.w, r.y); ... } void xoaRobot(Robot r){ Robot rx = {r.w, 0,0,0, r.x, r.y}; veRobot(rx); } void xoaRobot(RobotChao r){ Robot rx = {r.w, 0,0,0, r.x, r.y}; veRobot(rx); }
  • 12. L.X.Định 12  Chương trình là cuộc hội thoại giữa các đối tượng (đối tượng = struct + hàm).  Ví dụ: Chương trình “Vẽ robot nhảy & robot chào” Lập trình Hướng đối tượng class RobotChao :public Robot { char nn; public: void hello(); void bye(); }; class Robot{ int w, int r, int g, int b, int x, int y; public: void ve(); void xoa(); void doi(int x, int y); void nhay(); }; 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 void main() { RobotChao rc; rc.hello(); rc.nhay(100); } Hello
  • 13. L.X.Định 13  Qua mỗi bước phát triển, kiểu lập trình sau tích hợp nhiều đơn vị của kiểu lập trình trước vào một đơn vị.  Thủ thục là tập hợp các lệnh.  Đối tượng là sự tích hợp của dữ liệu và thủ tục. Thuận tiện cho việc phát triển ứng dụng lớn hơn!  Nâng cao tính tái sử dụng (reusability).  Nâng cao khả năng mở rộng (scalability). Kết luận