Kỹ thuật lập trìnhChương 8: Tiến tới tư duy lập trình hướng ₫ối
Số trang: 21
Loại file: pdf
Dung lượng: 170.38 KB
Lượt xem: 9
Lượt tải: 0
Xem trước 3 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Kỹ thuật lập trìnhChương 8: Tiến tới tư duy lập trình hướng ₫ối tượng0101010101010101100001 0101010101010101100001 StateController 0101010100101010100101 0101010100101010100101 1010011000110010010010 1010011000110010010010 start() 1100101100100010000010 1100101100100010000010 stop() 0101010101010101100001 0101010101010101100001 0101010100101010100101 0101010100101010100101 1010011000110010010010+ B*u; 1010011000110010010010 y = A*x 1100101100100010000010+ d*u; 1100101100100010000010 x = C*x LQGController 0101010101010101100001 0101010101010101100001 0101010100101010100101 0101010100101010100101 start() 1010011000110010010010 stop() 1010011000110010010010 1100101100100010000010 11001011001000100000108/13/2007Nội dung chương 88.1 8.2 8.3 8.4 8.5 8.6 Đặt vấn ₫ề Giới thiệu ví dụ chương trình mô phỏng Tư duy "rất" cổ ₫iển Tư duy hướng hàm Tư duy dựa trên ₫ối tượng (object-based) Tư duy thực sự...
Nội dung trích xuất từ tài liệu:
Kỹ thuật lập trìnhChương 8: Tiến tới tư duy lập trình hướng ₫ốiKỹ thuật lập trìnhChương 8: Tiến tới tư duy lập trìnhhướng ₫ối tượng 0101010101010101100001 0101010101010101100001 StateController 0101010100101010100101 0101010100101010100101 1010011000110010010010 1010011000110010010010 start() 1100101100100010000010 1100101100100010000010 stop() 0101010101010101100001 0101010101010101100001 0101010100101010100101 0101010100101010100101 1010011000110010010010+ B*u; y = A*x 1010011000110010010010 1100101100100010000010+ d*u; 1100101100100010000010 x = C*x LQGController 0101010101010101100001 0101010101010101100001 0101010100101010100101 0101010100101010100101 start() 1010011000110010010010 1010011000110010010010 stop() 1100101100100010000010 1100101100100010000010 8/13/2007Nội dung chương 8 8.1 Đặt vấn ₫ề 8.2 Giới thiệu ví dụ chương trình mô phỏng 8.3 Tư duy rất cổ ₫iển 8.4 Tư duy hướng hàm 8.5 Tư duy dựa trên ₫ối tượng (object-based) 8.6 Tư duy thực sự hướng ₫ối tượng 2Chương 8: Tiến tới tư duy hướng đối tượng8.1 Đặt vấn ₫ề„Designing object-oriented software is hard, and designing reusableobject-oriented software is even harder...It takes a long time fornovices to learn what object-oriented design is all about. Exprienceddesigners evidently know something inexperienced ones dont...One thing expert designers know not to do is solve every problem fromfirst principles. Rather, they reuse solutions that have worked forthem in the past. When they find a good solution, they use it againand again. Such experience is part of what makes them experts.Consequently, youll find recurring patterns of classes andcommunicating objects in many object-oriented systems. Thesepatterns solve specific design problems and make object-orienteddesign more flexible, elegant, and ultimately reusable...“ Erich Gamma et. al.: Design Patterns: Elements of Reusable Object- Oriented Software, Addison-Wesley, 1995. 3Chương 8: Tiến tới tư duy hướng đối tượng 8.2 Phần mềm mô phỏng kiểu FBD1(t) Sum StaticGain Limiter Integrator Scope Nhiệm vụ: Xây dựng phần mềm ₫ể hỗ trợ mô phỏng thời gian thực một cách linh hoạt, mềm dẻo, ₫áp ứng ₫ược các yêu cầu của từng bài toán cụ thể Trước mắt chưa cần hỗ trợ tạo ứng dụng kiểu kéo thả bằng công cụ ₫ồ họa 4 Chương 8: Tiến tới tư duy hướng đối tượng8.3 Tư duy rất cổ ₫iển // SimProg1.cpp #include #include #include void main() { double K =1,I=0, Ti = 5; double Hi = 10, Lo = -10; double Ts = 0.5; double r =1, y=0, e, u, ub; cout Vấn ₫ề? Phần mềm dưới dạng chương trình, không có giá trị sử dụng lại Rất khó thay ₫ổi hoặc mở rộng theo yêu cầu cụ thể của từng bài toán Toàn bộ thuật toán ₫ược gói trong một chương trình => khó theo dõi, dễ gây lỗi, không bảo vệ ₫ược chất xám 6Chương 8: Tiến tới tư duy hướng đối tượng8.4 Tư duy hướng hàm// SimProg2.cpp#include #include #include #include SimFun.hvoid main() { double K = 5.0, double Ti = 5.0; double Hi = 10, Lo = -10; double Ts = 0.5; double r =1, y=0, e, u, ub; cout // SimFun.hinline double sum(double x1, double x2) { return x1 + x2; }inline double gain(double K, double x) { return K * x; }double limit(double Hi, double Lo, double x);double integrate(double Ti, double Ts, double x);// SimFun.cppdouble limit(double Hi, double Lo, double x) { if (x > Hi) x = Hi; if (x < Lo) x = Lo; return x;}double integrate(double Ti, double Ts, double x) { static double I = 0; I += x*Ts/Ti; return I;} 8Chương 8: Tiến tới tư duy hướng đối tượngVấn ₫ề? Vẫn chưa ₫ủ tính linh hoạt, mềm dẻo cần thiết Thay ₫ổi, mở rộng chương trình mô phỏng rất khó khăn Các khâu có trạng thái như khâu tích phân, khâu trễ khó thực hiện một cách sạch sẽ (trạng thái lưu trữ ...
Nội dung trích xuất từ tài liệu:
Kỹ thuật lập trìnhChương 8: Tiến tới tư duy lập trình hướng ₫ốiKỹ thuật lập trìnhChương 8: Tiến tới tư duy lập trìnhhướng ₫ối tượng 0101010101010101100001 0101010101010101100001 StateController 0101010100101010100101 0101010100101010100101 1010011000110010010010 1010011000110010010010 start() 1100101100100010000010 1100101100100010000010 stop() 0101010101010101100001 0101010101010101100001 0101010100101010100101 0101010100101010100101 1010011000110010010010+ B*u; y = A*x 1010011000110010010010 1100101100100010000010+ d*u; 1100101100100010000010 x = C*x LQGController 0101010101010101100001 0101010101010101100001 0101010100101010100101 0101010100101010100101 start() 1010011000110010010010 1010011000110010010010 stop() 1100101100100010000010 1100101100100010000010 8/13/2007Nội dung chương 8 8.1 Đặt vấn ₫ề 8.2 Giới thiệu ví dụ chương trình mô phỏng 8.3 Tư duy rất cổ ₫iển 8.4 Tư duy hướng hàm 8.5 Tư duy dựa trên ₫ối tượng (object-based) 8.6 Tư duy thực sự hướng ₫ối tượng 2Chương 8: Tiến tới tư duy hướng đối tượng8.1 Đặt vấn ₫ề„Designing object-oriented software is hard, and designing reusableobject-oriented software is even harder...It takes a long time fornovices to learn what object-oriented design is all about. Exprienceddesigners evidently know something inexperienced ones dont...One thing expert designers know not to do is solve every problem fromfirst principles. Rather, they reuse solutions that have worked forthem in the past. When they find a good solution, they use it againand again. Such experience is part of what makes them experts.Consequently, youll find recurring patterns of classes andcommunicating objects in many object-oriented systems. Thesepatterns solve specific design problems and make object-orienteddesign more flexible, elegant, and ultimately reusable...“ Erich Gamma et. al.: Design Patterns: Elements of Reusable Object- Oriented Software, Addison-Wesley, 1995. 3Chương 8: Tiến tới tư duy hướng đối tượng 8.2 Phần mềm mô phỏng kiểu FBD1(t) Sum StaticGain Limiter Integrator Scope Nhiệm vụ: Xây dựng phần mềm ₫ể hỗ trợ mô phỏng thời gian thực một cách linh hoạt, mềm dẻo, ₫áp ứng ₫ược các yêu cầu của từng bài toán cụ thể Trước mắt chưa cần hỗ trợ tạo ứng dụng kiểu kéo thả bằng công cụ ₫ồ họa 4 Chương 8: Tiến tới tư duy hướng đối tượng8.3 Tư duy rất cổ ₫iển // SimProg1.cpp #include #include #include void main() { double K =1,I=0, Ti = 5; double Hi = 10, Lo = -10; double Ts = 0.5; double r =1, y=0, e, u, ub; cout Vấn ₫ề? Phần mềm dưới dạng chương trình, không có giá trị sử dụng lại Rất khó thay ₫ổi hoặc mở rộng theo yêu cầu cụ thể của từng bài toán Toàn bộ thuật toán ₫ược gói trong một chương trình => khó theo dõi, dễ gây lỗi, không bảo vệ ₫ược chất xám 6Chương 8: Tiến tới tư duy hướng đối tượng8.4 Tư duy hướng hàm// SimProg2.cpp#include #include #include #include SimFun.hvoid main() { double K = 5.0, double Ti = 5.0; double Hi = 10, Lo = -10; double Ts = 0.5; double r =1, y=0, e, u, ub; cout // SimFun.hinline double sum(double x1, double x2) { return x1 + x2; }inline double gain(double K, double x) { return K * x; }double limit(double Hi, double Lo, double x);double integrate(double Ti, double Ts, double x);// SimFun.cppdouble limit(double Hi, double Lo, double x) { if (x > Hi) x = Hi; if (x < Lo) x = Lo; return x;}double integrate(double Ti, double Ts, double x) { static double I = 0; I += x*Ts/Ti; return I;} 8Chương 8: Tiến tới tư duy hướng đối tượngVấn ₫ề? Vẫn chưa ₫ủ tính linh hoạt, mềm dẻo cần thiết Thay ₫ổi, mở rộng chương trình mô phỏng rất khó khăn Các khâu có trạng thái như khâu tích phân, khâu trễ khó thực hiện một cách sạch sẽ (trạng thái lưu trữ ...
Tìm kiếm theo từ khóa liên quan:
tài liệu công nghệ thông tin thủ thuật máy tính kinh nghiệm máy tính hướng dẫn học công nghệ thông tin mẹo công nghệ thông tinGợi ý tài liệu liên quan:
-
Top 10 mẹo 'đơn giản nhưng hữu ích' trong nhiếp ảnh
11 trang 317 0 0 -
Làm việc với Read Only Domain Controllers
20 trang 305 0 0 -
Sửa lỗi các chức năng quan trọng của Win với ReEnable 2.0 Portable Edition
5 trang 214 0 0 -
Giáo trình Bảo trì hệ thống và cài đặt phần mềm
68 trang 208 0 0 -
Tổng hợp 30 lỗi thương gặp cho những bạn mới sử dụng máy tính
9 trang 205 0 0 -
Phần III: Xử lý sự cố Màn hình xanh
3 trang 204 0 0 -
UltraISO chương trình ghi đĩa, tạo ổ đĩa ảo nhỏ gọn
10 trang 204 0 0 -
Hướng dẫn cách khắc phục lỗi màn hình xanh trong windows
7 trang 202 0 0 -
Sao lưu dữ liệu Gmail sử dụng chế độ Offline
8 trang 201 0 0 -
Giáo Trình tin học căn bản - ĐH Marketing
166 trang 198 0 0