Giải Tin Học 8 trang 91
Lời giải chi tiết SGK Lớp 8 · Môn Tin Há»c · Trang 91–92
Hai trang này nằm ở phần chuyển giao giữa Bài 15 (đang kết thúc) và Bài 16 (mở đầu). Mình sẽ tóm tắt lý thuyết và giải toàn bộ bài tập có trên trang nhé.
Phần lý thuyết cuối Bài 15: Sửa lỗi chương trình
Tóm tắt nhanh hai loại lỗi đã phát hiện trong trò chơi Đoán số:
- Lỗi thứ nhất nằm ở câu lệnh hiển thị: khi nối các chuỗi chữ phải dùng phép toán "kết hợp…" của Scratch, chứ không dùng dấu "+" (dấu "+" chỉ dùng để cộng số).
- Lỗi thứ hai nằm ở biểu thức điều kiện của vòng lặp. Vì mỗi người không đoán quá 7 lần nên vòng lặp phải kết thúc khi số lần đoán bằng 7.
Cách sửa được đề xuất:
- Điều kiện trong câu lệnh (6) đổi thành:
$$\text{trả lời} = \text{số bí mật} \ \text{hoặc} \ \text{số lần đoán} > 6$$
hoặc tương đương:
$$\text{trả lời} = \text{số bí mật} \ \text{hoặc} \ \text{số lần đoán} = 7$$
- Điều kiện rẽ nhánh ở lệnh (11) sửa thành:
$$\text{trả lời} = \text{số bí mật}$$
- Sửa biểu thức trong lệnh hiển thị (14) như Hình 15.5: nếu đoán đúng thì nói "HOAN HÔ" và thông báo số lần đoán, nếu không thì nói "Bạn đã thua".
Bài 1 (Luyện tập): Tìm cách sửa lỗi khác
Đề bài: Em hãy chọn một cách khác với cách đã nêu trong phần b) Sửa lỗi của mục 2 để sửa lỗi của chương trình được cho trong Hình 15.1.
Gợi ý lời giải:
Lỗi cốt lõi là vòng lặp phải dừng khi đoán đúng hoặc khi đã đoán đủ 7 lần. Sách dùng điều kiện ở lệnh (6). Một cách khác là dùng cấu trúc vòng lặp khác để diễn đạt cùng ý nghĩa:
- Cách 1 – Dùng vòng lặp "lặp lại 7 lần": Thay vì kiểm tra số lần đoán trong điều kiện, ta cho người chơi đoán đúng 7 lượt bằng khối "lặp lại 7 lần". Bên trong, nếu đoán đúng thì dừng vòng lặp bằng lệnh thoát.
- Cách 2 – Đổi dấu so sánh: Thay điều kiện $\text{số lần đoán} > 6$ bằng $\text{số lần đoán} \ge 7$. Hai biểu thức này tương đương vì số lần đoán là số nguyên.
- Cách 3 – Dùng biến cờ (flag): Tạo biến "đoán đúng" ban đầu bằng 0. Khi người chơi đoán trúng thì gán bằng 1. Điều kiện dừng vòng lặp là:
$$\text{đoán đúng} = 1 \ \text{hoặc} \ \text{số lần đoán} = 7$$
Vì sao chấp nhận được: cả ba cách đều bảo đảm vòng lặp kết thúc đúng lúc (khi đoán trúng hoặc hết 7 lượt), nên kết quả chương trình giống cách trong sách, chỉ khác về cách viết lệnh.
Bài 2 (Vận dụng): Đổi vai máy tính – người chơi
Đề bài: Đổi vai trò máy tính và người chơi trong trò chơi Đoán số. Em chọn một số nguyên trong khoảng từ 1 đến 120 và viết ra giấy. Máy tính sẽ hiển thị một số mà em phải trả lời bằng phím "d", "c" hoặc "t" tương ứng với máy tính đoán đúng, đoán cao hơn hay thấp hơn số em đã chọn. Hãy viết chương trình để sau ít bước nhất máy tính tìm ra số em chọn. Chạy thử, phát hiện và sửa lỗi.
Lời giải – thuật toán tìm kiếm nhị phân:
Để tìm ra số nhanh nhất, máy tính nên đoán theo kiểu chia đôi khoảng (tìm kiếm nhị phân). Mỗi lần đoán sẽ loại bỏ một nửa khả năng, nên với khoảng 1–120 chỉ cần tối đa 7 lần đoán ($2^7 = 128 > 120$).
Ý tưởng từng bước:
- Đặt cận dưới $thap = 1$, cận trên $cao = 120$.
- Lặp lại khi $thap \le cao$:
- Máy tính đoán số ở giữa: $\text{đoán} = \lfloor (thap + cao) / 2 \rfloor$.
- Hiển thị số đoán và chờ người chơi nhấn phím.
- Nếu nhấn "d" (đúng): thông báo đã tìm ra số, dừng lại.
- Nếu nhấn "c" (máy đoán cao hơn): số cần tìm nhỏ hơn, đặt $cao = \text{đoán} - 1$.
- Nếu nhấn "t" (máy đoán thấp hơn): số cần tìm lớn hơn, đặt $thap = \text{đoán} + 1$.
Mô tả lệnh kiểu Scratch:
khi nhấn lá cờ xanh
đặt [thap] = 1
đặt [cao] = 120
lặp lại cho đến khi cao>
đặt [đoán] = làm tròn xuống ((thap + cao) / 2)
hỏi [Tớ đoán số (đoán). Nhập d/c/t:] và đợi
nếu thì
nói [Tớ đoán đúng rồi!] trong 2 giây
dừng [kịch bản này]
nếu không thì
nếu thì
đặt [cao] = đoán - 1
nếu không thì
đặt [thap] = đoán + 1
Các lỗi thường gặp khi chạy thử và cách sửa:
- Cập nhật cận sai (ví dụ đặt $cao = \text{đoán}$ thay vì $\text{đoán} - 1$) sẽ làm chương trình lặp mãi không dừng. Sửa bằng cách trừ/cộng thêm 1.
- Quên dừng vòng lặp khi đoán đúng. Sửa bằng lệnh dừng kịch bản hoặc thoát vòng lặp.
- So sánh nhầm phím (phân biệt chữ hoa, chữ thường). Nên thống nhất dùng chữ thường.
Vì sao tối ưu: cách chia đôi luôn giảm một nửa số khả năng còn lại, nên đảm bảo "càng ít bước càng tốt" như yêu cầu đề bài.
Bài 16: Tin học với nghề nghiệp (mở đầu)
Trang này bắt đầu Chủ đề 6 – Hướng nghiệp với tin học. Phần này chủ yếu là giới thiệu, mục tiêu bài học và một hoạt động thảo luận, chưa có bài tập tính toán.
Mục tiêu bài học:
- Nêu được một số nghề nghiệp mà ứng dụng tin học làm tăng hiệu quả công việc.
- Nêu được tên một số nghề thuộc lĩnh vực tin học và một số nghề liên quan đến ứng dụng tin học.
- Nhận thức và trình bày được vấn đề bình đẳng giới trong việc sử dụng máy tính và ứng dụng tin học.
Hoạt động 1: Ứng dụng tin học trong nghề nghiệp
Đề bài: Em hãy cùng các bạn lựa chọn một vài nghề nghiệp mà em biết để thảo luận và chỉ ra những ví dụ tin học được ứng dụng trong các nghề đó.
Gợi ý trả lời (theo các nhân vật trong sách và mở rộng):
Nghề nghiệp Ví dụ ứng dụng tin học Kế toán Theo dõi giao dịch tài chính, lập báo cáo tổng hợp bằng bảng tính, phần mềm kế toán Giáo viên Soạn bài giảng điện tử, dạy học trực tuyến, dùng phần mềm trình chiếu, chấm điểm tự động Hoạ sĩ / Thiết kế Vẽ tranh, thiết kế đồ hoạa trên máy tính bằng phần mềm đồ hoạ Bác sĩ Quản lý hồ sơ bệnh án điện tử, đọc kết quả chẩn đoán hình ảnh Nông dân Theo dõi thời tiết, điều khiển hệ thống tưới tự động, quản lý mùa vụ Nhân viên bán hàng Quản lý kho, thanh toán điện tử, bán hàng trực tuyến
Vì sao chọn các ví dụ này: chúng cho thấy tin học giúp tăng năng suất, giảm sai sót và tạo ra sản phẩm mới ở hầu hết các ngành nghề, đúng như nhận định của các chuyên gia được nêu trong sách.
Tóm lại: trang 90 hoàn thiện kỹ năng phát hiện và sửa lỗi chương trình Scratch (với hai bài Luyện tập, Vận dụng), còn trang 91 mở đầu chủ đề hướng nghiệp, nhấn mạnh vai trò của tin học trong việc nâng cao hiệu quả công việc ở nhiều ngành nghề. Nếu em muốn mình giải kỹ hơn phần lập trình Scratch hay viết đầy đủ các khối lệnh cho Bài Vận dụng, cứ nói nhé.
Chế độ đọc sách → 