Giáo trình môn Cơ Sở Lập Trình ngành Công Nghệ Thông TinGiáo trình môn Cơ Sở Lập Trình ngành Công Nghệ Thông TinGiáo trình thực hành Lập trình nâng caoGiáo trình thực hành Lập trình nâng caoGiáo trình thực hành Lập trình nâng cao
TRƯỜNG ĐẠI HỌC CỬU LONG KHOA CÔNG NGHỆ THÔNG TIN GIÁO TRÌNH THỰC HÀNH LẬP TRÌNH NÂNG CAO TÁC GIẢ Ths Đào Anh Pha Ks Đào Thị Kiều Diễm Ks Cao Thị Trúc Linh LƯU HÀNH NỘI BỘ VĨNH LONG – 2010 LỜI MỞ ĐẦU Giáo trình thực hành viết theo giáo trình Lập trình nâng cao nhằm mục đích làm tài liệu cho sinh viên năm thứ thực hành môn học Nội dung giáo trình gồm chương thể kỹ thuật lập trình thường gặp sinh viên Chương Kỹ thuật lập trình đệ quy Chương Sắp xếp Chương Đại số ma trận Chương Một số thuật giải đồ thị Chương thể số kỹ thuật lập trình làm tảng cho chương sau Đối với đệ quy phi tuyến chủ yếu ta sử dụng kỹ thuật tìm kiếm theo chiều sâu Kỹ thuật áp dụng chương để tìm đường đồ thị Tuy nhiên, ta chưa trình kỹ thuật duyệt theo chiều sâu cách khử đệ quy Kỹ thuật trình giáo trình Lý thuyết đồ thị thuật giải Chương thể số thuật toán xếp nhằm giúp sinh viên so sánh đánh giá thuật toán xếp tốt Chương thể phương pháp giải hệ phương trình tuyến tính phương pháp phân rã ma trận thuật toán Crout Chương thể số thuật giải tìm đường đồ thị áp dụng kỹ thuật đánh dấu đỉnh, đánh dấu cạnh kỹ thuật tham ăn Vì thời gian phân bố giảng dạy theo chương trình khung nội dung mơn học nên giáo trình khơng tránh khỏi khiếm khuyết Rất mong nhận góp ý tất bạn quan tâm đến giáo trình Ngày 24 tháng 04 năm 2010 Tác giả MỤC LỤC CHƯƠNG KỸ THUẬT LẬP TRÌNH ĐỆ QUY Bài tập Bài tập Bài tập Bài tập Bài tập Bài tập Bài tập Bài tập Bài tập Bài tập Bài tập Bài tập Bài tập Bài tập Bài tập Bài tập Bài tập Bài tập Bài tập Bài 20 Tìm phần tử Fibonacci thứ n Tính X lũy thừa n Thuật tốn Euclide tìm ước chung lớn Tìm ước chung lớn n số nguyên Tính n giai thừa Chia lấy phần dư Tổ hợp chập k n phần tử Tính tổng n phần tử danh sách Đệ quy hỗ tương 10 Tích n phần tử danh sách 11 Đếm số lần xuất phần tử x danh sách 12 Tìm kiếm nhị phân 13 Tìm phần tử lớn danh sách 14 Tháp Hà Nội 15 Liệt kê tất dãy nhị phân độ dài k 16 Chỉnh hợp không lặp chập k n phần tử 17 Hoán vị mảng số nguyên có n phần tử 18 Đặt n quân hậu bàn cờ vua 19 Mã tuần CHƯƠNG SẮP XẾP Bài Bài Bài Bài Bài Bài tập tập tập tập tập tập tập tập tập tập tập tập tập 26 29 32 34 36 40 42 Nhập xuất ma trận Một số phép toán ma trận Hệ phương trình tuyến tính dạng tam giác Hệ phương trình tuyến tính dạng tam giác Thuật toán phân rã ma trận A = LU Giải hệ phương trình tuyến tính dựa vào phân rã LU Định thức ma trận CHƯƠNG MỘT SỐ THUẬT GIẢI TRÊN ĐỒ THỊ Bài Bài Bài Bài Bài Bài Bài Bài tập tập tập tập tập tập tập tập 2 5 10 11 12 13 14 16 18 20 22 25 26 Thuật toán Bubble Sort Thuật toán Selection Sort Thuật toán Insertion Sort Thuật toán Quick Sort Thuật toán Heap Sort Thuật toán Merge Sort CHƯƠNG ĐẠI SỐ MA TRẬN Bài Bài Bài Bài Bài Bài Bài Xét tính liên thơng đồ thị Đếm số thành phần liên thơng Tìm đường từ hai đỉnh Đường Hamilton Đường Euler Thuật tốn Dijkstra tìm đường ngắn Thuật tốn Prim tìm bao trùm tối tiểu Thuật tốn Kruskal tìm bao trùm tối tiểu TÀI LIỆU THAM KHẢO 42 43 45 47 50 52 55 57 57 59 62 64 67 69 71 73 76 Trang CHƯƠNG KỸ THUẬT LẬP TRÌNH ĐỆ QUY Bài tập Tìm phần tử Fibonacci thứ n Viết chương trình tìm phần tử Fibonacci thứ n định nghĩa đệ quy sau: ,n n 1 F ( n) F n 1 F n , n Cài đặt: #include #include /*Ham tra ve so nguyen tinh gia tri Fibonacci thu n*/ int F(int n) { if(n==0 || n==1) return 1; else return F(n-1) + F(n-2); } /*Chuong trinh chinh*/ void main() { clrscr(); int n; coutn; cout