Rõ nét về file powerpoint trình chiếu. => Xem thêm
Ngày soạn: .../.../...
Ngày dạy: .../.../...
BÀI 22: THỰC HÀNH BÀI TOÁN SẮP XẾP
Học xong bài này, HS đạt các yêu cầu sau:
Năng lực chung:
Năng lực riêng:
III. TIẾN TRÌNH DẠY HỌC
Bước 1: GV chuyển giao nhiệm vụ:
- GV dẫn dắt, đặt vấn đề cho HS: Trong bài 21, em đã được học cách triển khai thuật toán sắp xếp để sắp xếp các phần tử trong danh sách theo thứ tự tăng dần.
- GV đặt câu hỏi yêu cầu HS trả lời: Nếu cần sắp xếp theo thứ tự ngược lại thì câu lệnh so sánh tương ứng trong vòng lặp sẽ cần thay đổi như thế nào?
Bước 2: HS thực hiện nhiệm vụ học tập: HS lắng nghe, suy nghĩ câu trả lời.
Bước 3: Báo cáo kết quả hoạt động, thảo luận:
- GV gọi đại diện một số HS trả lời.
- HS khác nhận xét, bổ sung.
Bước 4: Đánh giá kết quả thực hiện:
- GV nhận xét câu trả lời của HS. Trên cơ sở đó, GV dẫn dắt HS vào bài học mới: Bài 22: Thực hành bài toán sắp xếp.
Hoạt động 1: Thực hiện nhiệm vụ 1
HOẠT ĐỘNG CỦA GV VÀ HS | SẢN PHẨM DỰ KIẾN |
Bước 1: GV chuyển giao nhiệm vụ: - GV chia lớp thành các nhóm từ 2 – 4 HS. - GV chiếu nhiệm vụ học tập: Cho danh sách số lượng mỗi mặt hàng trong kho của một cửa hàng. Người quản lí kho cần xem các mặt hàng theo thứ tự số lượng tăng dần. Em hãy viết chương trình sắp xếp các mặt hàng trong kho theo thứ tự số lượng tăng dần, sử dụng thuật toán sắp xếp chèn, sau đó in ra màn hình dãy số vừa sắp xếp. Danh sách số lượng các mặt hàng được đọc từ tệp văn bản kho.inp, mỗi dòng bao gồm số lượng một mặt hàng. - GV yêu cầu các nhóm thực hiện thuật toán sắp xếp chèn để sắp xếp số lượng các mặt hàng có trong kho theo thứ tự tăng dần. - Sau khi HS hoàn thành chương trình, GV nhận xét và tổng kết nội dung nhiệm vụ 1. Bước 2: HS thực hiện nhiệm vụ học tập: - HS lắng nghe GV hướng dẫn, thực hiện nhiệm vụ. - GV quan sát và trợ giúp HS. Bước 3: Báo cáo kết quả hoạt động, thảo luận: - HS so sánh và sửa lại chương trình.. - HS khác nhận xét, bổ sung cho bạn. Bước 4: Đánh giá kết quả thực hiện: - GV nhận xét, chuyển sang hoạt động tiếp theo. | Nhiệm vụ 1 - Phân tích: Chúng ta có thể sử dụng thuật toán sắp xếp chèn đã học ở bài trước để sắp xếp các phần tử trong danh sách số lượng mặt hàng theo thứ tự tăng dần. - Đoạn chương trình thực hiện trực tiếp phương pháp sắp xếp chèn được mô tả như sau (Đính kèm phía dưới). |
1 input_file = open("kho.inp", encoding="UTF-8") 2 soluong_ds = [] 3 for line in input_file.readlines(): 4 soluong_ds.append(int(line)) 5 n = len(soluong_ds) 6 for i in range(1,n): 7 value = soluong_ds [i] 8 j = i – 1 9 while j >= 0 and so luong_ds[j] > value: 10 soluong_ds[j+1] = soluong_ds[j] > value: 11 j = j – 1 12 soluong_ds [j+1] = value 13 print('Số lượng các mặt hàng trong kho theo thứ tự tăng dần là:') 14 for i in range(0,len(soluong_ds)): 15 print(soluong_ds[i]) |
Hoạt động 2: Thực hiện nhiệm vụ 2
HOẠT ĐỘNG CỦA GV VÀ HS | SẢN PHẨM DỰ KIẾN |
Bước 1: GV chuyển giao nhiệm vụ: - GV chiếu nhiệm vụ học tập: Cho danh sách điểm trung bình môn Tin học của các học sinh. Em hãy sử dụng thuật toán sắp xếp chọn để sắp xếp danh sách này theo thứ tự điểm trung bình giảm dần, sau đó in danh sách đã sắp xếp ra màn hình. Danh sách điểm trung bình được đọc ra từ tệp văn bản diem.inp, mỗi dòng bao gồm điểm trung bình của một học sinh. - GV yêu cầu các nhóm thực hiện thuật toán sắp xếp chọn để sắp xếp điểm thi theo thứ tự giảm dần. - Sau khi HS hoàn thành chương trình, GV nhận xét và tổng kết nội dung nhiệm vụ 2. Bước 2: HS thực hiện nhiệm vụ học tập: - HS lắng nghe GV hướng dẫn, thực hiện nhiệm vụ. - GV quan sát và trợ giúp HS. Bước 3: Báo cáo kết quả hoạt động, thảo luận: - HS so sánh và sửa lại chương trình.. - HS khác nhận xét, bổ sung cho bạn. Bước 4: Đánh giá kết quả thực hiện: - GV nhận xét, chuyển sang nội dung luyện tập. | Nhiệm vụ 2 - Phân tích: Chúng ta có thể sử dụng thuật toán sắp xếp chọn đã học ở bài trước để sắp xếp danh sách điểm số. - Đoạn chương trình thực hiện trực tiếp phương pháp sắp xếp chọn được mô tả như sau (Đính kèm phía dưới).
|
1 input_file = open("diem.inp", encoding="UTF-8") 2 diem_ds = [] 3 for line in input_file.readlines(): 4 diem_ds.append(float(line)) 5 n = len(diem_ds) 6 for i in range(n-1): 7 iMax = i 8 for j in range(i+1,n): 9 if diem_ds[j] > diem_ds[iMax]: 10 iMax = j 11 diem_ds[i], diem_ds[iMax] = diem_ds[iMax], diem_ds[i] 12 print('Danh sách điểm theo thứ tự giảm dần là:') 13 for i in range(0,len(diem_ds)): 14 print(diem_ds[i]) |
Nâng cấp lên tài khoản VIP để tải tài liệu và dùng thêm được nhiều tiện ích khác