Phần 1: Câu hỏi Trắc nghiệm (Nhận biết & Thông hiểu)
Câu 1. Nội dung nào sau đây phản ánh đúng kiến thức cần ghi nhớ trong bài Bài 21: Các thuật toán sắp xếp đơn giản? A. Sắp xếp là việc sắp xếp lại các phần tử theo thứ tự tăng dần hoặc giảm dần. B. Bỏ qua các khái niệm cơ bản và chỉ học thuộc lòng kết quả cuối cùng mà không cần hiểu bản chất. C. Chỉ áp dụng kiến thức trong một trường hợp duy nhất, không cần kiểm tra điều kiện hay đơn vị. D. Các nội dung trong bài hoàn toàn độc lập và không có mối liên hệ nào với thực tiễn hay các bài học khác.
Câu 2. Khi học và vận dụng bài Bài 21: Các thuật toán sắp xếp đơn giản, khẳng định nào dưới đây là chính xác? A. Không cần đọc kĩ đề bài hay phân tích dữ kiện trước khi thực hiện các bước giải. B. Sắp xếp nổi bọt: so sánh từng cặp kề nhau và đổi chỗ nếu sai thứ tự. C. Mọi khái niệm trong bài đều có thể thay thế tùy ý cho nhau mà không làm thay đổi kết quả. D. Chỉ cần ghi đáp số ngắn gọn, bỏ qua toàn bộ bước lập luận, giải thích và kiểm tra lại.
Câu 3. Theo phần Kiến thức trọng tâm của bài Bài 21: Các thuật toán sắp xếp đơn giản, phát biểu nào sau đây là đúng? A. Kết luận ngay kết quả khi chưa đối chiếu với quy tắc hoặc định nghĩa trong bài học. B. Thay đổi toàn bộ quy tắc trọng tâm của bài học theo cảm tính cá nhân. C. Sắp xếp là việc sắp xếp lại các phần tử của dãy theo thứ tự tăng dần hoặc giảm dần. D. Bỏ qua việc rèn luyện qua ví dụ minh họa và bài tập thực hành của tiết học.
Câu 4. Để nắm vững và vận dụng tốt bài Bài 21: Các thuật toán sắp xếp đơn giản, học sinh cần lưu ý điều nào sau đây? A. Không cần ghi nhớ các lưu ý trọng tâm vì chúng không ảnh hưởng đến việc làm bài tập. B. Áp dụng ngược lại hoàn toàn so với quy tắc và hướng dẫn trong phần kiến thức trọng tâm. C. Chỉ cần đọc lướt tiêu đề bài học mà không cần nắm vững nội dung chi tiết từng mục. D. Trong thực tế, sắp xếp xuất hiện ở khắp nơi: xếp hạng học sinh theo điểm, sắp xếp hàng hóa theo giá, sắp xếp tên trong danh bạ.
Phần 2: Bài tập Tự luận & Thực hành theo tiết học
Bài 1 (Cơ bản — Hệ thống hóa kiến thức trọng tâm). Dựa vào phần Kiến thức trọng tâm của bài Bài 21: Các thuật toán sắp xếp đơn giản, em hãy trình bày các khái niệm, quy tắc hoặc nội dung cốt lõi của tiết học và nêu ý nghĩa của chúng.
Bài 2 (Thực hành — Phân tích & Giải mẫu theo ví dụ tiết học). Đọc kĩ tình huống/ví dụ trọng tâm của tiết học dưới đây, sau đó tự trình bày lại các bước thực hiện và nêu nhận xét rút ra:
Ví dụ: sắp xếp dãy
5, 2, 8, 1tăng dần bằng sắp xếp nổi bọt. Lượt 1: so sánh5và2, đổi chỗ được2, 5, 8, 1; so sánh5và8, giữ nguyên; so sánh8và1, đổi chỗ được2, 5, 1, 8;8đã về đúng vị trí cuối. Lượt 2: so sánh2và5, giữ nguyên; so sánh5và1, đổi chỗ được2, 1, 5, 8;5đã về đúng vị trí. Lượt 3: so sánh2và1, đổi chỗ được1, 2, 5, 8; dãy đã sắp xếp hoàn toàn.
Bài 3 (Vận dụng — Áp dụng quy tắc ghi nhớ vào bài tập). Vận dụng các điểm ghi nhớ trọng tâm của bài Bài 21: Các thuật toán sắp xếp đơn giản để giải thích hoặc thực hiện yêu cầu thực hành mở rộng sau:
Cả hai thuật toán đều dễ hiểu, dễ cài đặt nhưng chạy chậm khi dãy dài, nên chỉ phù hợp với dãy ít phần tử hoặc dùng để học tập.
Bài 4 (Luyện tập học kì — Mức độ Cơ bản).
Viết chương trình Python gồm hai hàm: nhap_mang() nhập mảng một chiều, tim_max(a) trả về giá trị lớn nhất; chương trình chính gọi hai hàm và in kết quả (minh họa thiết kế theo mô đun).
Bài 5 (Luyện tập học kì — Mức độ Thông hiểu).
Cho bảng Sach(MaSach, TenSach, MaTG) và TacGia(MaTG, TenTG). Viết câu lệnh SQL liệt kê tên sách và tên tác giả của các sách có tác giả tên "Nam".
Bài 6 (Luyện tập học kì — Mức độ Vận dụng & Nâng cao). Viết chương trình Python nhập mảng hai chiều, in ra tổng các phần tử ở cột đầu tiên và cột cuối cùng.
Phần 3: Đáp án & Hướng dẫn giải chi tiết
1. Đáp án phần Trắc nghiệm
- Bảng đáp án: 1-A, 2-B, 3-C, 4-D.
- Giải thích chi tiết:
- Câu 1 (A): Khẳng định đúng theo mục Ghi nhớ của bài: "Sắp xếp là việc sắp xếp lại các phần tử theo thứ tự tăng dần hoặc giảm dần."
- Câu 2 (B): Khẳng định đúng theo nội dung cốt lõi của tiết học: "Sắp xếp nổi bọt: so sánh từng cặp kề nhau và đổi chỗ nếu sai thứ tự."
- Câu 3 (C): Khẳng định chuẩn xác theo phần Kiến thức trọng tâm: "Sắp xếp là việc sắp xếp lại các phần tử của dãy theo thứ tự tăng dần hoặc giảm dần."
- Câu 4 (D): Khẳng định đúng theo hướng dẫn trọng tâm của bài: "Trong thực tế, sắp xếp xuất hiện ở khắp nơi: xếp hạng học sinh theo điểm, sắp xếp hàng hóa theo giá, sắp xếp tên trong danh bạ."
2. Hướng dẫn giải phần Tự luận & Thực hành
- Bài 1:
- Nội dung cốt lõi cần trình bày: Sắp xếp là việc sắp xếp lại các phần tử của dãy theo thứ tự tăng dần hoặc giảm dần. Sắp xếp quan trọng vì nhiều thuật toán khác, như tìm kiếm nhị phân, yêu cầu dữ liệu đã sắp xếp.
- Tổng kết ghi nhớ: Sắp xếp là việc sắp xếp lại các phần tử theo thứ tự tăng dần hoặc giảm dần.; Sắp xếp nổi bọt: so sánh từng cặp kề nhau và đổi chỗ nếu sai thứ tự.; Sắp xếp chọn: mỗi bước chọn phần tử nhỏ nhất trong phần chưa sắp xếp đưa lên đầu.
- Bài 2:
- Hướng dẫn phân tích & trình bày: Dựa trực tiếp vào dữ kiện trong ví dụ minh họa của tiết học: Ví dụ: sắp xếp dãy
5, 2, 8, 1tăng dần bằng sắp xếp nổi bọt. Lượt 1: so sánh5và2, đổi chỗ được2, 5, 8, 1; so sánh5và8, giữ nguyên; so sánh8và1, đổi chỗ được2, 5, 1, 8;8đã về đúng vị trí cuối. Lượt 2: so sánh2và5, giữ nguyên; so sánh5và1, đổi chỗ được2, 1, 5, 8;5đã về đúng vị trí. Lượt 3: so sánh2và1, đổi chỗ được1, 2, 5, 8; dãy đã sắp xếp hoàn toàn. - Lưu ý khi trình bày: Xác định rõ yêu cầu, áp dụng đúng quy tắc/khái niệm trong mục 1 và kiểm tra lại kết quả cuối cùng.
- Hướng dẫn phân tích & trình bày: Dựa trực tiếp vào dữ kiện trong ví dụ minh họa của tiết học: Ví dụ: sắp xếp dãy
- Bài 3:
- Phương pháp giải: Áp dụng các quy tắc ghi nhớ của bài Bài 21: Các thuật toán sắp xếp đơn giản (Sắp xếp là việc sắp xếp lại các phần tử theo thứ tự tăng dần hoặc giảm dần.; Sắp xếp nổi bọt: so sánh từng cặp kề nhau và đổi chỗ nếu sai thứ tự.; Sắp xếp chọn: mỗi bước chọn phần tử nhỏ nhất trong phần chưa sắp xếp đưa lên đầu.).
- Lời giải mẫu/Nhận xét: Cả hai thuật toán đều dễ hiểu, dễ cài đặt nhưng chạy chậm khi dãy dài, nên chỉ phù hợp với dãy ít phần tử hoặc dùng để học tập.
- Bài 4:
python def nhap_mang(): n = int(input("Nhập n: ")) return [int(input(f"Nhập phần tử {i + 1}: ")) for i in range(n)] def tim_max(a): return max(a) a = nhap_mang() print("Giá trị lớn nhất:", tim_max(a)) - Bài 5:
sql SELECT Sach.TenSach, TacGia.TenTG FROM Sach JOIN TacGia ON Sach.MaTG = TacGia.MaTG WHERE TacGia.TenTG = 'Nam'; - Bài 6:
python m = int(input("Nhập số hàng m: ")) n = int(input("Nhập số cột n: ")) a = [[int(input(f"Nhập a[{i}][{j}]: ")) for j in range(n)] for i in range(m)] print("Tổng cột đầu:", sum(a[i][0] for i in range(m))) print("Tổng cột cuối:", sum(a[i][n - 1] for i in range(m)))
