Rõ nét về file powerpoint trình chiếu. => Xem thêm
Ngày soạn: .../.../...
Ngày dạy: .../.../...
BÀI 20: THỰC HÀNH BÀI TOÁN TÌM KIẾM
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 và đặt câu hỏi: Trong bài học trước, các em đã được học cách triển khai thuật toán tìm kiếm tuần tự và tìm kiếm nhị phân; vậy chúng ta có thể áp dụng các thuật toán tìm kiếm đã học vào thực tế như thế nào? Trong các bài toán thực tế, các dữ liệu thường không được viết trực tiếp vào chương trình mà thường được lưu trong các tệp chứa dữ liệu. Ở bài học này chúng ta sẽ được học cách đọc dữ liệu từ tệp chứa dữ liệu trong máy tính.
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 20: Thực hành bài toán tìm kiếm
Hoạt động 1: Đọc và ghi tệp trong Python
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 đặt vấn đề: Để thực hiện được các bài tập thực hành trong sách, em cần biết một số lệnh và thao tác đọc, ghi dữ liệu từ tệp văn bản. - GV yêu cầu HS đọc nội dung mục a, tìm hiểu về lệnh mở tệp để đọc, để ghi dữ liệu từ đầu, ghi tiếp dữ liệu và lệnh đóng đối tượng. - GV chiếu các lệnh đọc dữ liệu từ đối tượng f trong Python (bảng 20.1) cho HS quan sát và đọc thêm mục b, để tìm hiểu về các lệnh đọc dữ liệu từ tệp văn bản. - GV yêu cầu HS tìm hiểu nội dung Ví dụ 1 trang 95 SGK. - GV yêu cầu HS đọc mục c, và tìm hiểu về ghi dữ liệu ra tệp văn bản. - GV yêu cầu HS tìm hiểu nội dung Ví dụ 2 trang 96 SGK. - GV giải thích thêm ý nghĩa của các tham số trong lệnh đọc/ghi tệp dữ liệu. Ví dụ: + 'r' là viết tắt của read + 'w' là viết tắt của write + 'a' là viết tắt của append. - GV giải thích thêm về đường dẫn tương đối và đường dẫn tuyệt đối. - GV yêu cầu HS làm việc theo nhóm đôi, thực hiện đọc và ghi dữ liệu từ tệp trên máy tính. GV giao nhiệm vụ cho các nhóm: + Thực hiện ghi dữ liệu vào tệp trên máy tính. + Thực hiện ghi tiếp dữ liệu vào tệp trên máy tính. + Thực hiện đọc dữ liệu từ tệp trên máy tính theo các cách khác nhau: đọc toàn bộ các dòng, đọc lần lượt từng dòng. - GV tổng kết về 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. Đọc và ghi tệp trong Python a) Đối tượng tệp - Python cho phép đọc, ghi dữ liệu với tệp văn bản (text file). - Đối tượng tệp được tạo ra bằng lệnh open() với các cách như sau: + Lệnh mở tệp để đọc: f=open(<file name>,"r",encoding= "UTF -8") + Lệnh mở tệp để ghi dữ liệu từ đầu: f=open(<file name>,"w",encoding= "UTF=8") + Lệnh mở tệp để ghi tiếp dữ liệu: f=open(<file name>,"a",encoding = "UTF-8") + Đóng đối tượng tệp bằng lệnh sau: f.close()
b) Các lệnh đọc dữ liệu từ tệp văn bản - Dữ liệu trong các tệp văn bản được lưu dưới dạng các dòng, mỗi dòng là một xâu kí tự. Sau khi mở tệp bằng lệnh open(), con trỏ đọc mặc định ở đầu của tệp sẵn sàng chờ lệnh đọc.
c) Ghi dữ liệu ra tệp văn bản - Việc ghi tệp dữ liệu ra tệp văn bản đơn giản nhất là sử dụng lệnh print(). Cú pháp lệnh print() như sau: print(<v1>, <v2>, file = <đối tượng file>) |
Hoạt động 2: Viết chương trình tra cứu điểm thi
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 giới thiệu qua về tệp dữ liệu có sử dụng trong bài, yêu cầu HS thảo luận theo nhóm đôi và viết mã nguồn rồi chạy và kiểm thử chương trình. Viết chương trình tra cứu điểm thi theo tên các học sinh trong lớp. Chương trình cho phép người dùng nhập tên của học sinh cần tra cứu, sau đó kiểm tra và thông báo điểm số của học sinh cần tìm. - GV lưu ý: + Mỗi dòng trong tệp dữ liệu bao gồm tên và điểm số, cần sử dụng lệnh split() để tách hai trường dữ liệu này. + Dữ liệu điểm số được đọc dưới dạng 'string', nếu muốn sử dụng như kiểu dữ liệu dạng số, cần sử dụng hàm (float) để chuyển đổi kiểu dữ liệu. - GV tổng kết về 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 hoạt động tiếp theo. | Nhiệm vụ 2. Viết chương trình tra cứu điểm thi - Phân tích bài toán: Nhiệm vụ này có thể được thực hiện thông qua thuật toán tìm kiếm. - Chương trình tra cứu điểm thi (Đính kèm phía dưới).
|
1 input_file = open("diem.inp", encoding="UTF-8") #encoding = utf8 để đọc được tiếng Việt 2 ten_list = [] 3 diem_list = [] 4 for line in input_file.readlines():#đọc lần lượt từng dòng trong tệp 5 ten,diem =line.split() #tách tên và điểm ở từng dòng 6 ten_list.append(ten) 7 diem_list.append(float(diem)) 8 ten=' ' 9 while(ten!='end'): 10 ten = input('Nhập tên học sinh cần tra cứu, nhập từ khóa end để kết thúc:') 11 if (ten!='end'): 12 vitri=-1 13 for i in range(0,len(ten_list)): 14 if ten==ten_list[i]: #kiểm tra xem tên có tồn tạo ở vị trí i 15 vitri=i 16 if vitri==-1: 17 print('Không tìm thấy học sinh trong danh sách') 18 else: 19 print('Điểm số của học sinh là:',diem_list[vitri]) |
Hoạt động 3: Viết chương trình kiểm tra điểm thi
c) Sản phẩm: HS thực hành viết chương trình kiểm tra điểm thi.
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