Đề cương bài giảng môn Kỹ thuật lập trình được biên soạn với mục tiêu cung cấp cho người học sơ lược về nội dung kiến thức trong học phần; các kỹ thuật lập trình và một số kiểu dữ liệu cơ bản. Mời các bạn cùng tham khảo!
BỘ MƠN DUYỆT Chủ nhiệm Bộ mơn Ngơ Thành Long ĐỀ CƯƠNG CHI TIẾT BÀI GIẢNG (Dùng cho 60 tiết giảng) Học phần: Kỹ thuật lập trình Nhóm mơn học: sở Bộ môn: Các hệ thống thông tin Khoa: Cơng nghệ thơng tin Thơng tin nhóm mơn học TT Họ tên giáo viên Tống Minh Đức Ngơ Thành Long Học hàm GVC GVC Thay mặt nhóm môn học Tống Minh Đức Học vị TS TS Địa điểm làm việc: Văn phịng Bộ mơn Hệ thống thơng tin, S1915 Điện thoại, email: 069515333 Bài giảng: Giới thiệu chung kỹ thuật lập trình kiểu liệu Tiết thứ: 1-4 Tuần thứ: Mục đích, yêu cầu: Mục đích: - Giới thiệu sơ lược nội dung kiến thức học phần - Giới thiệu kỹ thuật lập trình số kiểu liệu Yêu cầu: - Sinh viên đọc trước lý thuyết - Chuẩn bị phần mềm lập trình, cài đặt phần mềm lập trình máy tính - Sinh viên làm số tập khai báo liệu cho toán cụ thể, hiểu điểm ý sử dụng biến - Hình thức tổ chức dạy học: Lý thuyết (2T); tập (1T), thảo luận (1T) - Thời gian: tiết - Địa điểm: Giảng đường - Nội dung chính: I.Giới thiệu kỹ thuật lập trình Lập trình cấu trúc - Một số nguyên lý lập trình cấu trúc: - Cấu trúc lệnh: cấu trúc tuần tự, cấu trúc rẽ nhánh, cấu trúc lặp - Lệnh có cấu trúc: lệnh cho phép chứa cấu trúc điều khiển - Cấu trúc liệu: Các cấu trúc liệu phân thành loại, cấu trúc liệu có kiểu cấu trúc liệu người dùng định nghĩa hay gọi kiểu liệu có cấu trúc - Nguyên lý địa phương: + Các biến địa phương hàm, thủ tục, chu trình cho dù có trùng tên với biến tồn cục xử lý biến hàm thủ tục khơng làm thay đổi giá trị biến toàn cục + Tên biến đầu vào khai báo hàm thủ tục biến hình thức + Các biến hình thức biến địa phương + Các biến khai báo bên hàm, thủ tục biến địa phương + Khi phải sử dụng biến phụ nên dùng biến địa phương, hạn chế tối đa việc sử dụng biến toàn cục để tránh xảy hiệu ứng phụ Ví dụ: Hoán đổi hai giá trị hai biến - Nguyên lý quán: + Thao tác phải phù hợp với liệu, cần sớm phát mâu thuẫn cấu trúc liệu thao tác để khắc phục kịp thời Ví dụ: Thao tác phép tốn biến phụ thuộc vào kiểu biến, nhiều thao tác với biến có nhiều lỗi nhập nhằng - Nguyên lý an toàn: + Lỗi nặng nằm mức cao (mứ ý đồ thiết kế) mức thấp thủ tục phải chịu tải lớn + Mọi lỗi chương trình cần phải phát sớm Các loại lỗi thường gặp: + Lỗi thông báo error + Lỗi cảnh báo warning + Lỗi xảy trình liên kết - Phương pháp top-down + Q trình phân tích tốn thực từ xuống Từ vấn đề chung đến vấn đề cụ thể Từ mức trừu tượng mang tính chất tổng quan tới mức đơn giản đơn vị chương trình Ví dụ: việc phân rã toán với mức từ cao xuống thấp - Phương pháp bottom-up + Khi phân tích tốn từ riêng tới chung, từ đối tượng thành phần mức cao tới đối tượng thành phần mức thấp, từ mức đơn vị chương trình tới mức tổng thể, từ đơn vị biết lắp đặt thành đơn vị Ví dụ: Cần xây dựng hàm trước, sau hàm lớn hơn, … xây dựng chương trình Lập trình hướng đối tượng Lập trình hướng đối tượng (object-oriented programming-OOP), kĩ thuật lập trình hỗ trợ công nghệ đối tượng OOP xem giúp tăng suất, đơn giản hóa độ phức tạp bảo trì mở rộng phần mềm cách cho phép lập trình viên tập trung vào đối tượng phần mềm bậc cao Chương trình hướng đối tượng chương trình phân cấp thành nhiều mơ đun (module), mà mơ đun đóng vai lớp vỏ che đại diện cho kiểu liệu Đối tượng (object): Các liệu thị kết hợp vào đơn vị đầy đủ tạo nên đối tượng Đơn vị tương đương với chương trình đối tượng chia thành hai phận chính: phần phương thức (method) phần thuộc tính (attribute) Trong thực tế, phương thức đối tượng hàm thuộc tính biến, tham số hay nội đối tượng (hay nói cách khác tập hợp liệu nội tạo thành thuộc tính đối tượng) Các phương thức phương tiện để sử dụng đối tượng thuộc tính mơ tả đối tượng có tính chất Các phương thức thuộc tính thường gắn chặt với thực tế đặc tính sử dụng đối tượng Các đối tượng thường trừu tượng hóa qua việc định nghĩa lớp (class) Tập hợp giá trị có thuộc tính tạo nên trạng thái đối tượng Lập trình hướng kiện Kĩ thuật lập trình dựa kiện diễn thao tác với hệ thống Mỗi kiện phân tích, lập trình tương ứng Khó cho việc mở rộng, kế thừa hệ thống Ví dụ: số ngơn ngữ lập trình hướng kiện II Các kiểu liệu Kiểu liệu nguyên Kiểu liệu thực Con trỏ a Con trỏ địa b Các phép toán trỏ Xâu ký tự a Khai báo b Một số hàm làm việc với xâu ký tự Kiểu cấu trúc a Khái niệm b Cách khai báo, truy cập Bài tập: - Một số toán liên quan tới sử dụng biến số nguyên, số thực, biến chuỗi, cấu trúc, mảng - Một số toán liên quan tới tràn biến Thảo luận: - Cách dùng biến ngơn ngữ lập trình, phụ thuộc vào kích thước cấu trúc liệu - Một số trường hợp tràn biến cách xác định - Yêu cầu SV chuẩn bị: - Đọc chương 1, 2, TL1, TL3 Bài giảng: Cấu trúc điều khiển Tuần thứ: Tiết thứ: 5-8 Mục đích, yêu cầu: Mục đích: - Nhắc lại cấu trúc rẽ nhánh, cấu trúc lặp lập trình Yêu cầu: - Sinh viên đọc trước lý thuyết cấu trúc lệnh rẽ nhánh, lặp - Sinh viên sử dụng thành thạo cấu trúc lập trình giải tốn, biết khắc phục lỗi thường hay gặp lập trình - Hình thức tổ chức dạy học: Lý thuyết (2T); tập (1T), thảo luận (1T) - Thời gian: tiết - Địa điểm: Giảng đường - Nội dung chính: 1.Cấu trúc rẽ nhánh Cấu trúc rẽ nhánh if Lệnh if cho phép chương trình lựa chọn chạy theo hai nhánh tuỳ thuộc vào giá trị sai biểu thức điều kiện Nó có hai cách viết sau: Dạng Dạng if (biểu thức) khối lệnh (1); if (biểu thức) khối lệnh (1); else khối lệnh (2); Dạng 1: Máy xác định giá trị biểu thức Nếu biểu thức (biểu thức có giá trị khác 0) máy thực khối lệnh sau thực lệnh tiếp sau lệnh if chương trình Nếu biểu thức sai (biểu thức có giá trị 0) máy bỏ qua khối lệnh mà thực lệnh tiếp sau lệnh if chương trình Dạng 2: Máy xác định giá trị biểu thức Nếu biểu thức (biểu thức có giá trị khác 0) máy thực khối lệnh sau thực lệnh tiếp sau khối lệnh chương trình Nếu biểu thức sai (biểu thức có giá trị 0) máy bỏ qua khối lệnh mà thực khối lệnh sau thực tiếp lệnh tiếp sau khối lệnh chương trình Ví dụ: Viết chương trình nhập vào hai số a b, tìm max hai số in kết lên hình Sự lồng lệnh if Trong ngôn ngữ C, cho phép sử dụng lệnh if lồng có nghĩa khối lệnh (1) (2) chứa lệnh if - else khác Trong trường hợp này, không sử dụng dấu mở, đóng ngoặc cho khối bị nhầm lẫn if-else Chú ý máy ghép lệnh else với lệnh if khơng có else gần Với trường hợp có nhiều định dùng if else Khi muốn thực n định ta sử dụng cấu trúc sau: if (biểu thức 1) khối lệnh 1; else if (biểu thức 2) khối lệnh 2; else if (biểu thức n-1) khối lệnh n-1; else khối lệnh n; Ví dụ: Chương trình giải phương trình bậc hai 6.2 Lệnh nhảy không điều kiện – goto Trong ngôn ngữ C, hỗ trợ lệnh nhảy không điều kiên Để sử dụng lệnh này, cần khai báo nhãn sử dụng lệnh goto Nhãn có dạng tên biến có dấu : đứng phía sau Nhãn gán cho câu lệnh chương trình Ví dụ: ts: s=s+1; ts nhãn câu lệnh gán s=s++ Tốn tử goto có dạng: goto nhãn; Khi gặp tốn tử máy nhảy tới câu lệnh có nhãn viết sau từ khoá goto Chú ý: Câu lệnh goto nhãn phải nằm hàm, có nghĩa lệnh goto cho phép nhảy từ vị trí đến vị trí khác thân hàm khơng thể dùng để nhảy từ hàm sang hàm khác Không cho phép dùng lệnh goto để nhảy từ vào khối lệnh Tuy nhiên việc nhảy từ khối lệnh hoàn tồn hợp lệ Ví dụ sai lệnh goto goto n1; { n1: printf("\n Gia tri cua N la: "); } Sai nhãn khai báo sau sử dụng { n1: printf("\n Gia tri cua N la: "); } goto n1; Sai nhảy vào khối có trước b.Cấu trúc rẽ nhánh switch Để rẽ nhiều nhánh, sử dụng cấu trúc switch Cấu trúc vào giá trị biểu thức nguyên để chọn nhiều nhánh Cú pháp: switch (biểu thức nguyên ) { case n1: khối lệnh break; case n2: khối lệnh case nk: khối lệnh k [ default: khối lệnh k+1] } 2.Cấu trúc lặp a Cấu trúc lặp for: - Cú pháp - Sơ đồ khối cấu trúc - Cách thức hoạt động - Ví dụ áp dụng -Câu lệnh break, continue b.Cấu trúc lặp while: - Cú pháp - Sơ đồ khối cấu trúc - Cách thức hoạt động - Ví dụ áp dụng -Cấu trúc lặp while: - Cú pháp - Sơ đồ khối cấu trúc - Cách thức hoạt động - So sánh while với while - Ví dụ áp dụng Bài tập: In kí tự từ A - Z In bảng mã ACII In mã ký tự nhập từ bàn phím Nhập n, in n số fibonaxi Nhập số n, in số nguyên tố n Viết chương trình nhập dãy số nguyên dương từ bàn phím, nhập số âm kết thúc nhập, tìm giá trị lớn số phần tử lớn Thảo luận: - Một số vấn đề ý sử dụng cấu trúc, vịng lặp vơ hạn - u cầu SV chuẩn bị: - Đọc chương 3, TL1, TL3 Bài giảng: Mảng trỏ Tuần thứ: Tiết thứ: 9-12 Mục đích, yêu cầu: Mục đích: - Giới thiệu cấu trúc mảng Yêu cầu: - Sinh viên biết vận dụng cấu trúc mảng trỏ, kết hợp với cấu trúc lệnh lập trình để giải toán cụ thể - Nắm số lỗi cách khắc phục khai báo sử dụng mảng, trỏ - Hình thức tổ chức dạy học: Lý thuyết (2T); tập (1T), thảo luận (1T) - Thời gian: tiết - Địa điểm: Giảng đường - Nội dung chính: I Mảng 1.Mảng chiều a Khái niệm mảng chiều Nếu xét góc độ toán học, mảng chiều giống vector Mỗi phần tử mảng chiều có giá trị mảng khác b Khai báo mảng chiều - Khai báo mảng với số phần tử xác định (khai báo tường minh) Cú pháp: - Khai báo mảng với số phần tử không xác định (khai báo không tường minh) Cú pháp: - Vừa khai báo vừa gán giá trị Cú pháp: []= {Các giá trị cách dấu phẩy} - Khai báo mảng tham số hình thức hàm, trường hợp ta không cần định số phần tử mảng c Truy xuất phần tử Mỗi phần tử mảng truy xuất thông qua Tên biến mảng theo sau số nằm cặp dấu ngoặc vuông [ ] Chẳng hạn a[0] phần tử mảng a khai báo Chỉ số phần tử mảng biểu thức mà giá trị kiểu số nguyên d Một số toán mảng chiều - Ví dụ 1: Nhập mảng có n phần tử kiểu nguyên, in phần tử mảng - Ví dụ 2: Nhập mảng có n phần tử kiểu nguyên, tính in mảng tổng - Ví dụ 3: Viết chương trình đổi số hệ thập phân sang hệ nhị phân Mảng nhiều chiều a Khái niệm mảng nhiều chiều Mảng nhiều chiều mảng có từ chiều trở lên Người ta thường sử dụng mảng nhiều chiều để lưu ma trận, tọa độ chiều, chiều… b Khai báo mảng chiều Khai báo mảng chiều tường minh Cú pháp: Khai báo mảng chiều không tường minh Để khai báo mảng chiều không tường minh, ta phải số phần tử chiều thứ hai (chiều cuối cùng) Cú pháp: Cách khai báo áp dụng trường hợp vừa khai báo, vừa gán trị hay đặt mảng chiều tham số hình thức hàm c Truy xuất phần tử Ta truy xuất phần tử mảng hai chiều cách viết tên mảng theo sau hai số đặt hai cặp dấu ngoặc vuông Chẳng hạn ta viết m[2][3] Với cách truy xuất theo cách này, Tên mảng[Chỉ số 1][Chỉ số 2] coi biến có kiểu khai báo biến mảng d Một số toán mảng chiều - Ví dụ 1: Nhập mảng có n dòng, m cột phần tử kiểu nguyên, in phần tử mảng hình - Ví dụ 2: Nhập mảng A,B có n, m cột phần tử kiểu nguyên, tính in mảng C=A+B - Ví dụ 3: Nhập vector có n phần tử kiểu ngun, kiểm tra vector có vng góc với hay khơng II Con trỏ I GIỚI THIỆU KIỂU DỮ LIỆU CON TRỎ Một số hạn chế gặp phải sử dụng biến tĩnh: - Cấp phát nhớ dư, gây lãng phí ô nhớ Đối với nói chung, nhị phân nói riêng, liệu lấy phụ thuộc vào cách duyệt Thơng thường, có cách duyệt sau: Duyệt tiền thứ tự (PreOrder): NLR Duyệt hậu thứ tự (PostOrder): LRN Duyệt trung thứ tự (InOrder): LNR Duyệt theo chiều rộng (LevelOrder) Duyệt tiền thứ tự (Preorder): NLR Thăm node xét trước node Thăm bên trái Thăm bên phải void NLR(Tree root) { if (root != NULL) { xử lý root; NLR (root->left); NLR (root->right); } } Thứ tự duyệt: A B D E H I C F G Duyệt trung thứ tự (Inorder): LNR Thăm bên trái node xét trước Thăm node xét Thăm bên phải node xét void LNR(Tree root) { if (root != NULL) { LNR(root->left); xử lý root; LNR(root->right); } } Thứ tự duyệt: D B H E I A F C G Duyệt hậu thứ tự (Postorder): LRN Thăm bên trái node xét trước Thăm bên phải node xét trước Thăm node xét void LRN(Tree root) { if (root != NULL) { LRN (root->left); LRN (root->right); xử lý root; } } Thứ tự duyệt: D H I E B F G C A Phương pháp gọi Level-Order Traversal Thăm node mức thấp mức cao Tại mức, thăm từ trái trước, sau thăm phải Sử dụng queue hỗ trợ trình duyệt Thứ tự duyệt: A B C D G H I E F Bài tập: - Bài tập chương 13, tài liệu Thảo luận: Áp dụng biểu diễn biểu thức tốn học, tính giá trị biểu thức - u cầu SV chuẩn bị: - Đọc chương 13 TL2; TL5 Bài giảng: Cây nhị phân tìm kiếm Tuần thứ: 13 Tiết thứ: 49-52 Mục đích, yêu cầu: Mục đích: - Giới thiệu nhị phân tìm kiếm thao tác Yêu cầu: - Sinh viên sử dụng thành thạo thao tác với nhị phân tìm kiếm - Hình thức tổ chức dạy học: Lý thuyết (2T); tập (1T), thảo luận (1T) - Thời gian: tiết - Địa điểm: Giảng đường - Nội dung chính: Khái niệm Cây nhị phân tìm kiếm rỗng mà node có chứa khóa Các khóa node bên trái nhỏ khóa root, khóa node bên phải lớn khóa root Cây bên trái phải nhị phân tìm kiếm Việc quản lý nhị phân thông qua node root Một số tính chất NPTK: Cây nhị phân tìm kiếm tập nhị phân, nên có cách duyệt LNR, LRN, NLR Với nhị phân tìm kiếm, duyệt theo kiểu inorder ta dãy theo chiều tăng dần Cây nhị phân tìm kiếm cấu trúc tìm kiếm hiệu Việc tìm kiếm nhị phân tìm kiếm nhanh tìm kiếm Tuy nhiên, việc biểu diễn dạng mảng gây khó khăn cho việc thêm, bớt Với việc biểu diễn dạng liên kết, ta có độ phức tạp việc tìm kiếm O( logn) Các thao tác nhị phân tìm kiếm Cấu trúc nhị phân tìm kiếm: template struct tbnode { TreeEntry data; struct tbnode *lchild, *rchild; }; Một số thao tác nhị phân tìm kiếm: Khởi tạo NPTK TBInsert: Thêm node vào NPTK TBCount: đếm số node NPTK TBRInorder: duyệt dạng inorder TBRPostorder: duyệt dạng postorder TBRPreorder: duyệt dạng preorder TBLevelorder: duyệt dạng levelorder TBDelete: xóa node NPTK TBGetptr: định vị node node cha Khởi tạo NPTK: TBTree::TBTree() { root=NULL; } Thêm node vào NPTK: Nếu rỗng, cấp phát ô nhớ cho trỏ root Nếu không rỗng: Sử dụng trỏ temp temp1 để xác định vị trí cần thêm (con trỏ temp1 trỏ vào NULL, trỏ temp trỏ vào node cha node mới) Tùy thuộc vào giá trị thêm vào cấp phát ô nhớ cho temp->left hay temp->right Xóa node NPTK: Xóa node khơng có Xóa node có Xóa node có Bài tập: - Bài tập chương 13, tài liệu Thảo luận: Áp dụng nhị phân tìm kiếm giải số tốn Tính độ phức tạp thuật tốn - u cầu SV chuẩn bị: Đọc chương 13 TL2; TL5 Bài giảng: Hàm băm Tiết thứ: 53-56 Tuần thứ: 14 Mục đích, yêu cầu: Mục đích: - Giới thiệu hàm băm Yêu cầu: - Sinh viên biết cách sử dụng hàm băm vào giải số tốn - Hình thức tổ chức dạy học: Lý thuyết (2T); tập (1T), thảo luận (1T) - Thời gian: tiết - Địa điểm: Giảng đường - Nội dung chính: Bài tốn Giả sử cần lưu trữ số ghi thực thao tác: Thêm: thêm ghi Xóa: xóa ghi Tìm kiếm: tìm kiếm ghi Hãy đưa cách tổ chức để thực hiệu công việc Sử dụng mảng không xếp Thêm: thêm vào cuối mảng->O(1) Xóa: nhiều thời gian tìm vị trí cần xóa dồn mảng->O(n) Tìm kiếm: tìm kiếm tuần tự->O(n) Sử dụng mảng xếp Thêm: phải tìm vị trí thêm vào->O(n) Xóa: nhiều thời gian tìm vị trí cần xóa dồn mảng->O(n) Tìm kiếm: tìm kiếm nhị phân->O(log(n)) Sử dụng mảng xếp Thêm: thêm vào vị trí nhanh->O(1) Xóa: nhanh tổ chức nút, chậm tìm kiếm nút cần khóa->O(n) Tìm kiếm: tìm kiếm tuần tự->O(n) Giả sử cần lưu trữ 1000 ghi sinh viên tìm kiếm chúng theo ID ID Họ tên Điểm 0012345 Nguyễn Văn A 10 0033333 Nguyễn Văn B 0056789 Nguyễn Văn C … … … 9801010 Nguyễn Thị A 9802020 Nguyễn Thị B … … … 9903030 Trần Văn A 9908080 Trần Văn B 10 Dùng mảng lớn để lưu trữ (index 9999999) Chỉ số mảng với số id sinh viên, i.e ví dụ sinh viên với studid 0012345 lưu trữ A[12345] Tên Điểm … … … 12345 Nguyễn Văn A 10 … … … 33333 Nguyễn Văn B … … … 56789 Nguyễn Văn C … … … 9801010 Nguyễn Thị A … … … 9802020 Nguyễn Thị B … … … 9999999 … … Một số nhận xét: Đánh giá thao tác Thêm: nhanh O(1) Xóa: nhanh O(1) Tìm kiếm: nhanh O(1) Nhưng tốn nhớ->không hiệu Hàm băm Giả sử có hàm băm lý tưởng Nó ánh xạ khóa (ID) 1000 ghi vào giá trị nguyên 999, hai khóa khác cho hai số nguyên khác • Để lưu trữ ghi, tính Hash(ID) cho ghi lưu trữ vị trí Hash(ID) mảng • Để tìm kiếm sinh viên, cần truy cập đến vị trí Hash(target ID) … … … … … Trần Văn B 10 … … … 67 Nguyễn Văn B … … … 134 Nguyễn Văn A 10 … … … 764 Nguyễn Văn C … … … 999 … … Với hàm băm lý tưởng Thêm: O(1) Xóa: O(1) Tìm kiếm: O(1) Nói chung khó thiết kế hàm băm lý tưởng Khái niệm: Hàm băm giải thuật nhằm sinh giá trị băm tương ứng với khối liệu Giá trị băm đóng vai gần khóa để phân biệt khối liệu Hàm băm thường dùng bảng băm nhằm giảm chi phí tính tốn tìm khối liệu tập hợp Yêu cầu hàm băm: Tính tốn nhanh Các khóa phân bố bảng Ít xảy đụng độ Xử lý loại khóa có kiểu khác Một số lĩnh vực sử dụng hàm băm: Mật mã học Bảng băm Phát sửa lỗi liệu Nhận dạng âm Các dạng hàm băm Hàm cắt bỏ: a Cho khóa số nguyên, bỏ bớt phần khóa b Ví dụ: khóa số nguyên có chữ số x=842615 Ta quy ước bỏ bớt chẳng hạn chữ số hàng lẻ (1,3,5…), số lại 821 Vậy H(x) = H(842615) = 821 c Nhận xét: Hàm cắt bỏ thỏa mãn tính chất thứ hàm băm tính chất thứ hai khó thực (khó có phân bố đều) Hàm phần dư: a Khóa có giá trị nguyên bảng băm B có m phần tử, ta lấy phần dư phép chia x/m làm giá trị hàm băm Để đảm bảo tính chất thứ hai hàm băm nên chọn m số nguyên tố b Nhận xét: Các cách lấy phần dư cho khả tránh tượng xung đột tốt Hàm gấp: a Cho khóa số nguyên, chia số nguyên thành số đoạn tùy chọn, sau kết hợp phần lại theo quy ước b Ví dụ: Số hàng lẻ: 465 số hàng chẵn: 821, H(x)=465+821=1286 c Nhận xét: Tính chất thứ hàm băm thỏa mãn Do chữ số khóa có sử dụng, nên tính chất thứ hai thỏa mãn tốt với trường hợp dùng hàm băm cắt bỏ Khắc phục đụng độ • Trong hầu hết trường hợp không tránh xung đột, xử lý hai khóa khác lại ánh xạ đến địa chỉ? Phương pháp dị tuyến tính: ý tưởng dị tìm vị trí trống chèn phần tử bị đụng độ vào Khi mảng đầy resize lại mảng Phương pháp dây chuyền: Thay cố gắng tìm danh sách vị trí cịn trống kế tiếp, phương pháp dây chuyền liên kết danh sách có khóa khác có giá trị hàm băm thành danh sách Phương pháp dị tuyến tính: Insert: 89, 18, 49, 58, to table size=10, hash function is: %tablesize Phương pháp dây chuyền: Một số ví dụ sử dụng hàm băm Xây dựng từ điển sử dụng hàm băm Bài tập: - Bài tập chương 15, tài liệu Thảo luận: Xây dựng từ điển sử dụng hàm băm - Yêu cầu SV chuẩn bị: - Đọc chương 15 TL2; TL5 Bài giảng: Kiểm tra đánh giá máy Tuần thứ: 15 Tiết thứ: 57-60 Mục đích, yêu cầu: Mục đích: - Kiểm tra đánh giá phân loại sinh viên hình thức lập trình giải tốn máy u cầu: - Sinh viên bốc thăm đề, lập trình giả tốn máy tính - Hình thức tổ chức dạy học: Thực hành máy tính - Thời gian: tiết - Địa điểm: Phịng máy tính - Nội dung chính: Sử dụng máy tính giải tốn cụ thể u cầu: - Nhận đề từ giáo viên/ sử dụng account cấp để lấy đề - Input: Dữ liệu vào từ fife - Output: liệu xuất file Sử dụng kiến thức thuật toán cấu trúc liệu học để giải toán - Yêu cầu SV chuẩn bị: - Xem lại kiến thức thuật toán - Các kiến thức cấu trúc liệu - Vào liệu từ file ... tượng Lập trình hướng kiện Kĩ thuật lập trình dựa kiện diễn thao tác với hệ thống Mỗi kiện phân tích, lập trình tương ứng Khó cho việc mở rộng, kế thừa hệ thống Ví dụ: số ngơn ngữ lập trình hướng... đơn vị chương trình tới mức tổng thể, từ đơn vị biết lắp đặt thành đơn vị Ví dụ: Cần xây dựng hàm trước, sau hàm lớn hơn, … xây dựng chương trình 2 Lập trình hướng đối tượng Lập trình hướng đối... Đọc chương 3, TL1, TL3 Bài giảng: Hàm Tuần thứ: Tiết thứ: 13-16 Mục đích, yêu cầu: Mục đích: - Giới thiệu sử dụng Hàm lập trình Yêu cầu: - Sinh viên biết sử dụng hàm lập trình để giải tốn - Biết