SlideShare a Scribd company logo
Kỹ thuật lập trình II Programming Methodology II Bùi Việt Hà 0904454818 [email_address]
IIT201-1 [email_address]
Giới thiệu môn học Giới thiệu các phương pháp và kỹ thuật lập trình chính như Searching, Sorting trên các cấu trúc dữ liệu tổng quát như Link List, Tree và Graph. Bước đầu phân tích thuật toán.  Cấu trúc dữ liệu sẽ lấy mô hình ADT tổng quát làm nền tảng. Ngôn ngữ lập trình C++, môi trường lập trình DevC++.
Yêu cầu của môn học SV cần nắm được các kiến thức chính của các môn học sau: Tin học đại cương Lập trình cơ bản C++ Toán rời rạc
Tài liệu tham khảo Data Abstraction & Problem Solving with C++. Frank. M. Carrano. Addison Wesley. 5th Edition. Introduction to Algorithms. Thomas H. Cormen and other. The MIT Press. 3rd Edition. Data Structure and Program Design in C++. Robert L. Kruse, A.J. Ryba. Prentice Hall.  Data Strcture and Algorithms in C++. Adam Drozdek. Brooks/Cole. 2d Edition.
Phương pháp học Bài giảng trên lớp Thực hành, làm bài tập trong giờ thực hành Thảo luận nhóm, làm bài tập và đồ án ở nhà Tự học, tự nghiên cứu là chính
Tổng quan chương trình 1. Basic of OO programming. 2. ADT 3. Linked List 4. Recursion 5. Stacks 6. Queues 7. Algorithm Analysis. Searching Algorithm. 8. Sorting Algorithm. 9. Binary Tree. 10. Table & Hashing 11. Graph. Search on graph. 12. Minimum Spanning Tree. 13. Shortest Path on graph. 14. Other Problems on Graph 15. Final Examination
I. Cơ sở lập trình hướng đối tượng Abstract data type and Class Encapsulation  Inheritance Polymorphism Virtual Method and Late Biding Friend Functions Class Template
Abstract data type and Class Data --> Structure --> ADT --> Class Data Structure Member Function CLASS
Encapsulation, Inheritance, Polymorphism Encapsulation: đóng gói Inheritance: kế thừa Polymorphism: đa nghĩa
Virtual Method and Late Biding Virtual Method (hàm ảo): Khái niệm hàm số được khai báo sau khi có lời gọi hàm thực sự.
Friend Functions Friend Function là các hàm có thể truy cập vào các biến Private của Class
Class Template Khái niêm Mẫu (Template) Mẫu hàm số Mẫu Class
Bài tập Xây dựng chương trình nhập 1 dãy số từ bàn phím, sắp xếp lại theo thứ tự tăng dần và in kết quả ra màn hình. Xây dựng chương trình nhập một DS học sinh từ bàn phím (bao gồm Họ + đệm + tên) sau đó sắp xếp lại danh sách học sinh này theo thứ tự từ điển theo tên + họ + đệm. Làm 2 bài tập trên, dữ liệu được nhập từ 1 file text. Dòng đầu tiên ghi số lượng dãy số / số lượng HS.
II. ADT Data Abstraction: the Walls / Dữ liệu tổng quát Specifying ADT List / Danh sách Implementating ADT List  / áp dụng cụ thể
Data Abstraction: the Walls Data  Structure add remove find display The Walls: bức tường Program
Specifying ADT List (danh sách) List (Danh sách) là một những cấu trúc dữ liệu hay gặp nhất trên thực tế.
Các ví dụ List Dãy số (mảng số) DS học sinh, sinh viên DS cán bộ trong bảng lương cơ quan DS các tài khoản của ngân hàng DS khách hàng DS sản phẩm trong kho DS sách trong thư viện
Specifying ADT List (danh sách) Các công việc với Danh sách (List): Tạo ra một DS rỗng. Xóa DS. Xác định DS là rỗng hay không. Xác định độ dài của DS. Chèn thêm 1 phần tử vào DS. Xóa 1 phần tử từ DS. Lấy ra (tìm) 1 phần tử xác định từ DS.
Specifying ADT List (danh sách) ADT List Operation: createList() destroyList() isEmpty():boolean getLength():integer insert(index,newItem) remove(index) retrieve(index,dataItem)
ADT sorted List Là DS mà các phần tử đã được sắp xếp thứ tự sẵn.
Implementating ADT List Chúng ta sẽ xây dựng một List (DS) bằng C++ class.  Ví dụ về cấu trúc lõi của List: const int MAX_LIST = 100; typedef int ListItemType; ListItemType items[MAX_LIST]; int size;
Implementating ADT List Chúng ta sẽ xây dựng một List (DS) bằng C++ class.  Thiết lập 2 tệp sau: ListA.h ListA.cpp
Bài tập Thiết lập một DS các số tự nhiên bằng phương pháp ADT. Viết các hàm số thực hiện các công việc sau: - Tính tổng của các số này - Thay đổi vị trí các phần tử i và j của DS - Tính giá trị phần tử Min và Max của DS trên. Thiết lập một DS học sinh trong lớp học bao gồm họ tên, năm sinh và nam/nữ. Viết hàm số đếm số học sinh là nữ trong DS trên.
III. Linked List - Pointer and Array - Dynamic Allocation of Arrays - Pointer-Based Linked List - Single Linked List - Double Linked List - Linked List Implementation of ADT List - C++ Standard Template Library
IV. Recursion - Recursive Definitions - Function Calls and Recursion Implementation - Principle of Recursion - Bactracking - The Relationship between the Recursion and Math Induction
V. Stacks - The ADT Stacks - An Array-Based Implementation of the ADT Stacks - A Pointer-Based Implementation of the ADT Stacks - ADT List Stacks - Application of Stacks
VI. Queues - The ADT Queue - An Array-Based Implementation of the ADT Queue - A Pointer-Based Implementation of the ADT Queue - ADT List Queue - Application of Queue
VII. Phân tích thuật toán - Measure the Efficency of Algorithms - The Execuation Time of Algorithms - Big-O-Notation - The Best, Average, and Worst Cases - Searching Algorithms - The Efficency of Searching Algorithm
VIII. Sorting Algorithm - Elementary Sorting Algorithm + Insertion Sort + Selection Sort + Bubble Sort - Decision Tree - Efficency Sorting Algorithms + Shell sort + Heap Sort + Quick Sort + Merge Sort + Radix Sort - A Comparison of Sorting Algorithms
IX. Binary Tree - Tree, Binary Tree, Binary Search Trees - The ADT Binary Tree - Searching in Binary Trees - Tree Traversal - The ADT Binary Search Tree Operation: Insertion, Deletion. - Balance a Tree
X. Table & Hashing - The ADT table: Selection and Implementation - A Sorted Array-Based Implementation of the ADT table - A Binary Search Tree Implementation of the ADT table. - Heaps - HeapSort - Hashing Functions. - Resolving Collision.
XI. Graph. Introduction - Graph Definition - Graph Representation + The Set Representation + Adjacency Lists - Graph as ADTs - Graph Traversal + Methods + Depth-First Search + Breath-First Search
XII. Minimum Spanning Tree - Spanning Tree - Minimum Spanning Tree + Boruka Algorithm + Kruskal Algorithm + Prim Algorithm + Dijkstra Algorithm
XIII. Shortest Path Problems - A Greedy Algorithm: Shortest Path - All-to- All Shortest Path problem - Topological Sorting + Depth-First Algorithm + Breath-First Algorithm
XIV. Other problem on graph Cycle Detection Problem Matching Problem Eulerian and Hamiltonian Graphs Netwwork Maximal Flow Problem
XV. Final Examination Prepare to Final Examination Projects and Home Problem Solution
 

More Related Content

PPT
Con tro va mang doi tuong
PPT
Chapter 6
PDF
Cấu trúc dữ liệu cơ bản 1
PPTX
Thuật Toán BEA (Bond Energy Algorithm)
PPTX
Tìm đường trên di động (PhoneGap)
PPTX
Zxing
PPT
What’s the Power behind 2D Barcodes? Are they the Foundation of the Revival ...
PPTX
Cooperative Learning
Con tro va mang doi tuong
Chapter 6
Cấu trúc dữ liệu cơ bản 1
Thuật Toán BEA (Bond Energy Algorithm)
Tìm đường trên di động (PhoneGap)
Zxing
What’s the Power behind 2D Barcodes? Are they the Foundation of the Revival ...
Cooperative Learning

Viewers also liked (10)

PPT
Barcode - 2014
PPT
Barcode latest technology1
PDF
Cross-Platform Barcode Scanning with ZXing, Jonathan Dick
PDF
Gene Presentation For Android
DOCX
Documentation on barcode technology
PPTX
Bar code technology
PPTX
Barcode In Retail Presentation
PPT
Barcode presentation 2013
PPTX
Barcode technology
PPTX
Barcode
Barcode - 2014
Barcode latest technology1
Cross-Platform Barcode Scanning with ZXing, Jonathan Dick
Gene Presentation For Android
Documentation on barcode technology
Bar code technology
Barcode In Retail Presentation
Barcode presentation 2013
Barcode technology
Barcode
Ad

Similar to Programming Methodology Ii (20)

PDF
Bài tập CTDL và GT 1
PDF
Cơ sở dữ liệu và giải thuật Vũ Song Tùng
DOC
Bài tập CTDL và GT 12
PDF
Ctdl c2
PPT
7 stl c++
PPT
Gioi Thieu
DOC
Cau trucdulieu
PDF
Dhhh ctdlgt bai giang cau truc du lieu
PDF
Cấu truc-dữ-liệu-va-thuật-giải-1
PDF
Cau truc dl_va_giai_thuat_bai1[1] - copy
PPT
Chuong 2 Tim Kiem N Sap Xep
PPT
Chuong 2 Tim Kiem N Sap Xep
DOCX
Luận Văn Đề Cương Dùng Cho Ngành Công Nghệ Thông Tin Cấu Trúc Dữ Liệu Và Giả...
PDF
PPTX
C2 mot-so-cau-truc-du-lieu-co-ban
PPT
Ctdl C07
DOCX
Chuong 4 tin 11
PDF
CacCauTrucDuLieuCoBan Mon cấu trúc dữ liệu và giải thuật
PPT
Chapter 3
PPTX
SLIDE CAU TRUC DL_GT.pptx
Bài tập CTDL và GT 1
Cơ sở dữ liệu và giải thuật Vũ Song Tùng
Bài tập CTDL và GT 12
Ctdl c2
7 stl c++
Gioi Thieu
Cau trucdulieu
Dhhh ctdlgt bai giang cau truc du lieu
Cấu truc-dữ-liệu-va-thuật-giải-1
Cau truc dl_va_giai_thuat_bai1[1] - copy
Chuong 2 Tim Kiem N Sap Xep
Chuong 2 Tim Kiem N Sap Xep
Luận Văn Đề Cương Dùng Cho Ngành Công Nghệ Thông Tin Cấu Trúc Dữ Liệu Và Giả...
C2 mot-so-cau-truc-du-lieu-co-ban
Ctdl C07
Chuong 4 tin 11
CacCauTrucDuLieuCoBan Mon cấu trúc dữ liệu và giải thuật
Chapter 3
SLIDE CAU TRUC DL_GT.pptx
Ad

Programming Methodology Ii

  • 1. Kỹ thuật lập trình II Programming Methodology II Bùi Việt Hà 0904454818 [email_address]
  • 3. Giới thiệu môn học Giới thiệu các phương pháp và kỹ thuật lập trình chính như Searching, Sorting trên các cấu trúc dữ liệu tổng quát như Link List, Tree và Graph. Bước đầu phân tích thuật toán. Cấu trúc dữ liệu sẽ lấy mô hình ADT tổng quát làm nền tảng. Ngôn ngữ lập trình C++, môi trường lập trình DevC++.
  • 4. Yêu cầu của môn học SV cần nắm được các kiến thức chính của các môn học sau: Tin học đại cương Lập trình cơ bản C++ Toán rời rạc
  • 5. Tài liệu tham khảo Data Abstraction & Problem Solving with C++. Frank. M. Carrano. Addison Wesley. 5th Edition. Introduction to Algorithms. Thomas H. Cormen and other. The MIT Press. 3rd Edition. Data Structure and Program Design in C++. Robert L. Kruse, A.J. Ryba. Prentice Hall. Data Strcture and Algorithms in C++. Adam Drozdek. Brooks/Cole. 2d Edition.
  • 6. Phương pháp học Bài giảng trên lớp Thực hành, làm bài tập trong giờ thực hành Thảo luận nhóm, làm bài tập và đồ án ở nhà Tự học, tự nghiên cứu là chính
  • 7. Tổng quan chương trình 1. Basic of OO programming. 2. ADT 3. Linked List 4. Recursion 5. Stacks 6. Queues 7. Algorithm Analysis. Searching Algorithm. 8. Sorting Algorithm. 9. Binary Tree. 10. Table & Hashing 11. Graph. Search on graph. 12. Minimum Spanning Tree. 13. Shortest Path on graph. 14. Other Problems on Graph 15. Final Examination
  • 8. I. Cơ sở lập trình hướng đối tượng Abstract data type and Class Encapsulation Inheritance Polymorphism Virtual Method and Late Biding Friend Functions Class Template
  • 9. Abstract data type and Class Data --> Structure --> ADT --> Class Data Structure Member Function CLASS
  • 10. Encapsulation, Inheritance, Polymorphism Encapsulation: đóng gói Inheritance: kế thừa Polymorphism: đa nghĩa
  • 11. Virtual Method and Late Biding Virtual Method (hàm ảo): Khái niệm hàm số được khai báo sau khi có lời gọi hàm thực sự.
  • 12. Friend Functions Friend Function là các hàm có thể truy cập vào các biến Private của Class
  • 13. Class Template Khái niêm Mẫu (Template) Mẫu hàm số Mẫu Class
  • 14. Bài tập Xây dựng chương trình nhập 1 dãy số từ bàn phím, sắp xếp lại theo thứ tự tăng dần và in kết quả ra màn hình. Xây dựng chương trình nhập một DS học sinh từ bàn phím (bao gồm Họ + đệm + tên) sau đó sắp xếp lại danh sách học sinh này theo thứ tự từ điển theo tên + họ + đệm. Làm 2 bài tập trên, dữ liệu được nhập từ 1 file text. Dòng đầu tiên ghi số lượng dãy số / số lượng HS.
  • 15. II. ADT Data Abstraction: the Walls / Dữ liệu tổng quát Specifying ADT List / Danh sách Implementating ADT List / áp dụng cụ thể
  • 16. Data Abstraction: the Walls Data Structure add remove find display The Walls: bức tường Program
  • 17. Specifying ADT List (danh sách) List (Danh sách) là một những cấu trúc dữ liệu hay gặp nhất trên thực tế.
  • 18. Các ví dụ List Dãy số (mảng số) DS học sinh, sinh viên DS cán bộ trong bảng lương cơ quan DS các tài khoản của ngân hàng DS khách hàng DS sản phẩm trong kho DS sách trong thư viện
  • 19. Specifying ADT List (danh sách) Các công việc với Danh sách (List): Tạo ra một DS rỗng. Xóa DS. Xác định DS là rỗng hay không. Xác định độ dài của DS. Chèn thêm 1 phần tử vào DS. Xóa 1 phần tử từ DS. Lấy ra (tìm) 1 phần tử xác định từ DS.
  • 20. Specifying ADT List (danh sách) ADT List Operation: createList() destroyList() isEmpty():boolean getLength():integer insert(index,newItem) remove(index) retrieve(index,dataItem)
  • 21. ADT sorted List Là DS mà các phần tử đã được sắp xếp thứ tự sẵn.
  • 22. Implementating ADT List Chúng ta sẽ xây dựng một List (DS) bằng C++ class. Ví dụ về cấu trúc lõi của List: const int MAX_LIST = 100; typedef int ListItemType; ListItemType items[MAX_LIST]; int size;
  • 23. Implementating ADT List Chúng ta sẽ xây dựng một List (DS) bằng C++ class. Thiết lập 2 tệp sau: ListA.h ListA.cpp
  • 24. Bài tập Thiết lập một DS các số tự nhiên bằng phương pháp ADT. Viết các hàm số thực hiện các công việc sau: - Tính tổng của các số này - Thay đổi vị trí các phần tử i và j của DS - Tính giá trị phần tử Min và Max của DS trên. Thiết lập một DS học sinh trong lớp học bao gồm họ tên, năm sinh và nam/nữ. Viết hàm số đếm số học sinh là nữ trong DS trên.
  • 25. III. Linked List - Pointer and Array - Dynamic Allocation of Arrays - Pointer-Based Linked List - Single Linked List - Double Linked List - Linked List Implementation of ADT List - C++ Standard Template Library
  • 26. IV. Recursion - Recursive Definitions - Function Calls and Recursion Implementation - Principle of Recursion - Bactracking - The Relationship between the Recursion and Math Induction
  • 27. V. Stacks - The ADT Stacks - An Array-Based Implementation of the ADT Stacks - A Pointer-Based Implementation of the ADT Stacks - ADT List Stacks - Application of Stacks
  • 28. VI. Queues - The ADT Queue - An Array-Based Implementation of the ADT Queue - A Pointer-Based Implementation of the ADT Queue - ADT List Queue - Application of Queue
  • 29. VII. Phân tích thuật toán - Measure the Efficency of Algorithms - The Execuation Time of Algorithms - Big-O-Notation - The Best, Average, and Worst Cases - Searching Algorithms - The Efficency of Searching Algorithm
  • 30. VIII. Sorting Algorithm - Elementary Sorting Algorithm + Insertion Sort + Selection Sort + Bubble Sort - Decision Tree - Efficency Sorting Algorithms + Shell sort + Heap Sort + Quick Sort + Merge Sort + Radix Sort - A Comparison of Sorting Algorithms
  • 31. IX. Binary Tree - Tree, Binary Tree, Binary Search Trees - The ADT Binary Tree - Searching in Binary Trees - Tree Traversal - The ADT Binary Search Tree Operation: Insertion, Deletion. - Balance a Tree
  • 32. X. Table & Hashing - The ADT table: Selection and Implementation - A Sorted Array-Based Implementation of the ADT table - A Binary Search Tree Implementation of the ADT table. - Heaps - HeapSort - Hashing Functions. - Resolving Collision.
  • 33. XI. Graph. Introduction - Graph Definition - Graph Representation + The Set Representation + Adjacency Lists - Graph as ADTs - Graph Traversal + Methods + Depth-First Search + Breath-First Search
  • 34. XII. Minimum Spanning Tree - Spanning Tree - Minimum Spanning Tree + Boruka Algorithm + Kruskal Algorithm + Prim Algorithm + Dijkstra Algorithm
  • 35. XIII. Shortest Path Problems - A Greedy Algorithm: Shortest Path - All-to- All Shortest Path problem - Topological Sorting + Depth-First Algorithm + Breath-First Algorithm
  • 36. XIV. Other problem on graph Cycle Detection Problem Matching Problem Eulerian and Hamiltonian Graphs Netwwork Maximal Flow Problem
  • 37. XV. Final Examination Prepare to Final Examination Projects and Home Problem Solution
  • 38.