Danh mục

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    
Hoai.2512

Phí tải xuống: 19,000 VND Tải xuống file đầy đủ (21 trang) 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ữ ...

Tài liệu được xem nhiều: