YOMEDIA
NONE

Tin học 11 Kết nối tri thức Bài 20: Thực hành bài toán tìm kiếm


Thông qua nội dung Bài 20: Thực hành  bài toán tìm kiếm, các em sẽ nắm được các thao tác sao lưu và phục hồi dữ liệu. HOC247 hy vọng rằng các em sẽ thu thập được những kiến thức hữu ích và thú vị giúp các em nâng cao kiến thức về môn Tin học 11 qua các bài học của chương trình Khoa học máy tính, 

ADSENSE
YOMEDIA
 

Tóm tắt lý thuyết

1.1. Nhiệm vụ 1: Đọc và ghi tệp trong Python

Hướng dẫ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.

 

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) rất dễ dàng. Các tệp đều được mở để đọc và ghi dưới dạng văn bản. Đố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(, "r", encoding= "UTF-8")

Chú ý: Tham số "r" có thể bỏ qua. Tham số encoding dùng khi mở tệp văn bản có mã Unicode, ví dụ tiếng Việt. Nếu không có tham số encoding thì chỉ đọc được văn bản có mã ASCII.

- Lệnh mở tệp để ghi dữ liệu từ đầu:

f = open("w", encoding= "UTF-8")

Chú ý: Tham số "w" là bắt buộc.

- Lệnh mở tệp để ghi tiếp dữ liệu:

f = open( , "a", encoding= "UTF-8")

Chú ý: Tham số "a" là bắt buộc.

Sau khi mở tập thi có thể tiến hành đọc (hoặc ghi) dữ liệu. Sau khi thực hiện xong các thao tác đọc, ghi thì cần đó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ác lệnh đọc dữ liệu từ đối tượng f trong Python

 

Ví dụ 1. Với bộ dữ liệu trên, cần đọc và đưa vào hai list là TenHS và Diem HS. Chương trình sau đọc dữ liệu từ tệp Data.inp, đưa dữ liệu vào hai mảng trên và hiển thị kết quả ra màn hình.

 

 

c. Ghi dữ liệu ra tệp văn bản

Việc ghi 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(, , ... , file = <đối tượng file>)

Chú ý: Tham số file = <đối tượng file> là bắt buộc khi cần đưa dữ liệu ra tệp. Tất cả các tham số khác của lệnh print() vẫn có giá trị khi đưa dữ liệu ra tệp.

 

Ví dụ 2. Giả sử có hai mảng TenHS và DiemHS tương ứng với dữ liệu tên và điểm của các học sinh trong lớp. Chương trình sau ghi những thông tin này ra tệp Data out có định dạng tương tự như Data inp.

 

 

1.2. Nhiệm vụ 2: Viết chương trình tra cứu điểm thi

Yêu cầu: 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.

Nhập dữ liệu: Yêu cầu người dùng nhập dữ liệu điểm học sinh từ tập trên máy tính. Tệp bao gồm nhiều hàng, mỗi hàng gồm tên học sinh và điểm cách nhau bởi dấu cách. Ví dụ tệp có cấu trúc như Hình dưới.

 

 

Tra cứu dữ liệu: Cho phép người dùng nhập tên học sinh cần tra cứu, tim và in ra màn hình kết quả điểm thi của học sinh đó. Nếu không tìm thấy tên học sinh trong danh sách đã nhập, thông báo "không tìm thấy dữ liệu của học sinh".

Hướng dẫn:

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. Với dữ liệu đầu vào là tên của học sinh, chương trình cần sử dụng thuật toán tìm kiếm để kiểm tra xem tên của học sinh có tồn tại trong danh sách không. Nếu tồn tại thì học sinh cần tìm nằm ở vị trí nào trong danh sách. Do tên học sinh và điểm số được nhập vào danh sách theo cùng một thứ tự, từ vị trí tên học sinh trong danh sách tên, chúng ta có thể suy ra điểm số của học sinh đó trong danh sách điểm.

Chương trình có thể như sau:

 

1.3. Nhiệm vụ 3: Viết chương trình kiểm tra điểm thi

Yêu cầu: Viết chương trình kiểm tra điểm thi của các học sinh trong một lớp học. Điểm thi của học sinh được ghi trong tệp diemthi_sx.inp, trong đó mỗi điểm thi của các học sinh được viết trong một hàng và được sắp xếp theo thứ tự tăng dần. Chương trình đọc dữ liệu điểm thi từ tệp, sau đó cho phép người dùng nhập một điểm số cần kiểm tra. Nếu điểm số có tồn tại thì in ra vị trí mà điểm số đó xuất hiện trong tệp, nếu điểm số không tồn tại thì in ra thông báo điểm số không tồn tại. Ví dụ tập có cấu trúc như Hình dưới.

 

 

Hướng dẫn:

Phân tích bài toán: Tương tự như Nhiệm vụ 2, nhiệm vụ này vẫn được thực hiện bằng cách sử dụng thuật toán tìm kiếm. Trong nhiệm vụ này, dữ liệu điểm số đã được sắp xếp theo thứ tự tăng dần do đó chúng ta có thể áp dụng thuật toán tìm kiếm nhị phân đề gia tăng tốc độ tìm kiếm.

Chương trình có thể như sau:

2. Luyện tập Bài 20 SGK Tin học 11 Kết nối tri thức

Qua bài học này, các em sẽ:

- Biết được cách đọc dữ liệu từ tệp dữ liệu trong máy tính.

- Áp dụng được thuật toán tìm kiếm trong một vài bài toán cụ thể.

2.1. Trắc nghiệm Bài 20 SGK Tin học 11 Kết nối tri thức  

Như vậy là các em đã xem qua bài giảng Bài 20 Chủ đề 6 Tin học lớp 11 Kết nối tri thức. Để củng cố kiến thức bài học mời các em tham gia bài tập trắc nghiệm Trắc nghiệm Tin học 11 Kết nối tri thức Bài 20.

Câu 4-10: Mời các em đăng nhập xem tiếp nội dung và thi thử Online để củng cố kiến thức về bài học này nhé!

2.2. Bài tập Bài 20 SGK Tin học 11 Kết nối tri thức

Các em có thể xem thêm phần hướng dẫn Giải bài tập Tin học 11 Kết nối tri thức Bài 20 để giúp các em nắm vững bài học và các phương pháp giải bài tập.

Luyện tập trang 98 SGK Tin học 11 Kết nối tri thức - KNTT

Vận dụng trang 98 SGK Tin học 11 Kết nối tri thức - KNTT

3. Hỏi đáp Bài 20 SGK Tin học 11 Kết nối tri thức

Trong quá trình học tập nếu có thắc mắc hay cần trợ giúp gì thì các em hãy comment ở mục Hỏi đáp, Cộng đồng Tin học của HOC247 sẽ hỗ trợ cho các em một cách nhanh chóng!

Chúc các em học tập tốt và luôn đạt thành tích cao trong học tập!

 

-- Mod Tin Học 11 HỌC247

NONE
AANETWORK
 

 

YOMEDIA
AANETWORK
OFF