Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 124 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
124
Dung lượng
14,57 MB
Nội dung
CHUN ĐỀ LẬP TRÌNH TIÊN TiẾN Chương Cơng nghệ lập trình cấu trúc 2.1 Cấu trúc lệnh 2.2 Cấu trúc liệu 2.3 Cấu trúc chương trình 2.4 Phương pháp Top-Down 2.5 Phương pháp Botton-Up 2.6 CASE STUDY • Thiết kế chương trình theo phương pháp Top-Down • Cài đặt chương trình theo phương pháp Botton-Up • Phân tích hạn chế phương pháp trừu tượng theo chức 2.1 Cấu trúc lệnh Tuần tự: dãy thị 1, 2, , N thực statement 1; statement 2; ; statement N; Tuyển chọn: hai khả không if (biểu thức ) ; else ; Tuyển chọn: nhiều khả năng: switch (Biểu thức ) { case H1: ; break; case H1: ; break; ; case Hn: ; break; default: ; break; } Cấu trúc lệnh lặp: Lặp biết trước điều kiện đầu: for (biểu thức 1; biểu thức 2; biểu thức 3) { ; } Lặp trước điều kiện đầu: biểu thức thực câu lệnh while (biểu thức ) { ; } Lặp trước điều kiện đầu: thực câu lệnh biểu thức { ; } while (biểu thức); R Prim (1958) Mọi tốn có thuật tốn giải biểu diễn cấu trúc lệnh tuần tự, tuyển chọn, lặp Dijkstra (1959) Mọi tốn có thuật tốn giải biểu diễn tối thiểu cấu trúc lệnh lặp while số biến phụ 2.2 Cấu trúc liệu Cấu trúc liệu user-define (Abtract data type): • Mảng (Array) • Chuỗi ký tự (string) • Con trỏ (pointer) • File, Cấu trúc (structure) • Ngăn xếp (stack) • Hàng đợi (Queue) • Danh sách liên kết đơn (single linked list) • Danh sách liên kết đơn (double linked list) • Cây ( Binary Tree, Binary Search Tree, AVL Tree, Multi-Tree, B-Tree…) • Đồ thị (Graph): Directed Graph, Undirected Graph) Một số điểm cần ý: • Định nghĩa: xác định đối tượng liệu cần xây dựng • Biểu diễn: xác định đối tượng liệu tồn máy tính • Thao tác: ta thực đối tượng liệu • Ứng dụng: đối tượng liệu tạo ứng dụng vào đâu 2.3 Cấu trúc chương trình Một chương trình (ứng dụng) lập trình cấu trúc chia thành phần: Khai báo việc sử dụng thư viện (Header Files), Mô tả hàm sử dụng chương trình (Functions) Chương trình Phần Khai báo việc sử dụng thư viện Thực thị #include Phần Mô tả hàm sử dụng chương trình Hàm (Function, Procedure, Method, Proccess, Subroutine): Một đoạn chương trình xây dựng lần, sử dụng nhiều lần lúc, nơi, thời điểm phục vụ mục tiêu chủ quan người lập trình Khai báo hàm: Tên Hàm ( đối hàm ) { ; return (giá trị); } Ví dụ Tìm ước số chung lớn hai số a b int USCLN ( int a, int b ) { while (b!=0 ) { int r = a % b; a = b; b = r; } return (a); } Phần Chương trình chính: xác định điểm bắt đầu kết thúc thực chương trình int main ( void ) { ; ; ………………; ; return (0); } Ví dụ Hãy liệt kê tất số tự nhiên K thỏa mãn đồng thời điều kiện đây: a) b) c) d) e) K số có chữ số; K số nguyên tố; Đảo ngược chữ số K số nguyên tố; Tổng chữ số K số nguyên tố; Mỗi chữ số K số nguyên tố Thuật giải Lời giải tốn thực thơng qua thuật tốn vét cạn mô tả sau: Vời số tự nhiên k [10000 99999], giả sử ta xây dựng được: 1 Test Ngto(k ) 0 Nếu k nguyên tố 1 Test Dao(k ) 0 Nếu số đảo ngược chữ số k nguyên tố 1 Test Tong (k ) 0 1 Test Chuso(k ) 0 Nếu k không nguyên tố Trong trường hợp khác Nếu tổng các chữ số k nguyên tố Trong trường hợp khác Nếu chữ số k nguyên tố Trong trường hợp khác Số k thỏa mãn bốn hàm nghiệm toán Thuật toán PRIM tìm khung nhỏ nhất: Kiểm nghiệm thuật tốn PRIM: Giả sử ta cần xây dựng khung nhỏ đồ thị biểu diễn dạng ma trận trọng số đây: Thuật tốn Dijkstra tìm đường ngắn Kiểm nghiệm thuật toán Dijkstra: Giả sử ta cần đường ngắn từ đỉnh q đến tất đỉnh lại đồ thị biểu diễn dạng ma trận trọng số đây: Kết bước thực thuật toán: Thuật toán Bellman-Ford : Kiểm nghiệm thuật toán Bellman-Ford: Kiểm nghiệm thuật toán Bellman-Ford: Kiểm nghiệm thuật toán Bellman-Ford: Kiểm nghiệm thuật toán Bellman-Ford: Thuật toán Floyed: TÀI LIỆU THAM KHẢO: [1] N Knuth, “The Art of Programming”, McGraw Hill Company, 2006, Vol 1, 2, 3, 4, [2] Tim Love,” Advanced Programming with C++”, Cambridge University, February 12, 2011 [3] Ulla Kirch-Prinz, Peter Prinz “A Complete Guide to Programming in C++” JONES AND BARTLETT PUBLISHERS, 2005 [4] IBM Corp, “Standard C++ Library Reference”, 2005