Bài 1 Tìm kiếm tuần tự 2 Câu hỏi và bài tập Câu F1 trang 35 SBT Tin học 7 Hãy cho biết mỗi khẳng định sau đây là đúng hay sai và giải thích lí do Nếu trong dãy có nhiều số bằng x thì thuật toán tìm ki[.]
Trang 1Bài 1: Tìm kiếm tuần tự
2 Câu hỏi và bài tập
Câu F1 trang 35 SBT Tin học 7: Hãy cho biết mỗi khẳng định sau đây là đúng hay
sai và giải thích lí do:
Nếu trong dãy có nhiều số bằng x thì thuật toán tìm kiếm tuần tự:
1) Tìm thấy tất cả các số đó
2) Tìm thấy số đầu tiên trong dãy bằng x
3) Tìm thấy số cuối cùng trong dãy bằng x
Trả lời:
1) Sai Vì thuật toán dừng ngay khi tìm thấy một số bằng x mà không tiếp tục kiểm tra thêm
2) Đúng Thuật toán dừng ngay khi tìm thấy một số bằng x nên đó là số đầu tiên trong dãy bằng x
3) Sai Vì 2) và 3) không thể cùng đúng nếu như có nhiều hơn một số trong dãy bằng
x
Câu F2 trang 35 SBT Tin học 7: Theo em, việc gán Kết quả = Chưa tìm thấy trước
khi lặp và sửa lại thành Kết quả = Tìm thấy khi phát hiện có số trong dãy bằng x có
tác dụng gì? Tại sao cần làm thế?
Trả lời:
Trước khi lặp đánh dấu Kết quả = Chưa tìm thấy thì điều kiện dừng vòng lặp chưa thỏa mãn Khi phát hiện có số trong dãy bằng x sửa lại thành Kết quả = Tìm thấy thì
điều kiện dừng vòng lặp thỏa mãn Thuật toán kết thúc
Nếu không làm thế thì thuật toán vẫn tiếp tục lặp, kiểm tra đến hết dãy, dù đã tìm thấy số bằng x Đó là việc làm vô ích
Câu F3 trang 35 SBT Tin học 7: Bài toán yêu cầu tìm kiếm số cuối cùng trong dãy
bằng x Em hãy nêu ý tưởng sửa thuật toán trong bài học để giải bài toán này
Trả lời:
Trang 2Bắt đầu từ cuối dãy và kiểm tra lùi dần về đầu dãy Chỉ cần sửa ở hai chỗ:
1) Bước 1 Số đang xét là ở cuối dãy
2) Nếu số đang xét # x: Chuyển sang xét số đứng trước trong dãy
Câu F4 trang 35 SBT Tin học 7: Dựa theo bảng mô phỏng các bước tìm kiếm tuần
tự trong sách giáo khoa, hãy mô phỏng ý tưởng của em vừa đề xuất áp dụng cho bài toán tìm số cuối cùng trong dãy 44 với dãy đầu vào là {18, 94, 42, 44, 06, 44, 55, 67}
Trả lời:
Các bước có thể như sau:
Câu F5* trang 35 SBT Tin học 7: Em hãy nêu ý tưởng sửa đổi thuật toán tìm kiếm
tuần tự cho bài toán yêu cầu đếm ở trong dãy có bao nhiêu số bằng x
Trả lời:
Cần sửa thuật toán để:
1) Không dừng ngay khi tìm thấy số đầu tiên bằng x mà vẫn tiếp tục kiểm tra đến cuối dãy
Không cần có biến Kết quả để đánh dấu đã Tìm thấy hay Chưa tìm thấy Tất cả các thao tác kiểm tra Kết quả đều xóa bỏ Không còn bước 3
Trang 32) Thêm biến đếm, bắt đầu với đếm =0, mỗi khi thấy số đang xét = x thì tăng đếm lên 1 đơn vị
Bước Thực hiện
1 đếm = 0, Số đang xét là số ở đầu dãy
2 Lặp khi (chưa xét hết dãy số)
Nếu Số đang xét = x: tăng đếm lên 1 đơn vị
Hết nhánh
Lấy Số đang xét là số tiếp theo trong dãy
Hết lặp
3 Thông báo tìm thấy trong dãy số có đếm số x
Câu F6 trang 35 SBT Tin học 7: Thực hiện các yêu cầu sau:
1) Nêu một bài toán thực tế dẫn đến bài toán tìm kiếm
2) Nêu một bài toán thực tế dẫn đến bài toán tìm kiếm trong dãy đã sắp thứ tự
Trả lời:
1) Nhân viên lễ tân khách sạn tìm một chìa khóa phòng của một phòng trong khách sạn để đưa cho khách
2) Trong bảng kết quả một cuộc thi, tìm họ tên và kết quả thi của một thí sinh khi biết số báo danh của thí sinh đó