Giải Tin Học 10 trang 102

Lời giải chi tiết SGK Lớp 10 · Môn Tin Học · Trang 102–103

Nguon: Tin Hoc 10 - Ket Noi Tri Thuc Voi Cuoc Song (trang 102 – 103)

⚠️ Lưu ý: Nội dung hình ảnh tương ứng với trang 101 – 102 của sách. Phần dưới đây giải đầy đủ tất cả các câu hỏi, hoạt động xuất hiện trong hai trang này.

🔍 Kiến thức cần nhớ

1. Biểu thức lôgic

  • Biểu thức lôgic là biểu thức chỉ nhận một trong hai giá trị: True (đúng) hoặc False (sai). Giá trị này thuộc kiểu dữ liệu bool.
  • Biểu thức lôgic đơn giản nhất là các biểu thức so sánh số hoặc xâu kí tự.

Các phép so sánh trong Python:

Kí hiệuÝ nghĩaKí hiệuÝ nghĩa
<nhỏ hơn>lớn hơn
<=nhỏ hơn hoặc bằng>=lớn hơn hoặc bằng
==bằng nhau!=khác nhau

Các phép toán lôgic: and (và), or (hoặc), not (phủ định).

💡 Mẹo nhớ: - and: chỉ True khi cả hai đều True (như "và" – cần đủ cả hai). - or: chỉ False khi cả hai đều False (như "hoặc" – chỉ cần một). - not: đảo ngược giá trị (True thành False và ngược lại).

2. Lệnh if (câu lệnh điều kiện dạng thiếu)

if <điều kiện>:
    
  • Sau <điều kiện> bắt buộc có dấu hai chấm ":".
  • Khối lệnh bên trong phải viết lùi vào (thụt lề) và thẳng hàng, mặc định là 1 tab hoặc 4 dấu cách.
  • Ý nghĩa: nếu điều kiện đúng (True) thì thực hiện khối lệnh; nếu sai (False) thì bỏ qua.

⚙️ Bài tập

Câu 1 — Hoạt động 1 (Khái niệm biểu thức lôgic)

Đề bài: Biểu thức nào sau đây có thể đưa vào vị trí <điều kiện> trong lệnh: Nếu <điều kiện> thì của các ngôn ngữ lập trình bậc cao?

  • A. m, n = 1, 2
  • B. a + b > 1
  • C. a * b < a + b
  • D. 12 + 15 > 2 * 13
Cách 1 — Phân tích từng phương án

Vị trí <điều kiện> phải là một biểu thức lôgic, tức là biểu thức cho kết quả True hoặc False.

  • A. m, n = 1, 2 → Đây là lệnh gán giá trị cho hai biến, không phải biểu thức so sánh nên không cho kết quả True/False. ❌
  • B. a + b > 1 → Biểu thức so sánh, cho kết quả True/False. ✔️
  • *C. a b < a + b** → Biểu thức so sánh, cho kết quả True/False. ✔️
  • *D. 12 + 15 > 2 13** → Biểu thức so sánh (27 > 26 → True). ✔️

Kết luận: Các phương án B, C, D là biểu thức lôgic nên có thể đưa vào vị trí <điều kiện>. Phương án A không hợp lệ.

⚠️ Lưu ý thi: Dễ nhầm dấu "=" (phép gán) với dấu "==" (phép so sánh bằng). Chỉ dấu so sánh mới tạo ra biểu thức lôgic.

Câu 2 — Câu hỏi củng cố (trang 102)

Đề bài: Mỗi biểu thức sau có giá trị True hay False?

  • a) 100 % 4 == 0
  • b) 111 // 5 != 20 or 20 % 3 != 0
Cách 1 — Tính tuần tự theo thứ tự ưu tiên phép toán

Ý a) 100 % 4 == 0

Phép % (lấy phần dư) được tính trước phép so sánh ==.

  • 100 % 4 = 0 (vì 100 chia hết cho 4).
  • Khi đó: 0 == 0 → True.

Kết quả: True

Ý b) 111 // 5 != 20 or 20 % 3 != 0

Tính các phép số học trước, rồi đến phép so sánh, cuối cùng là phép or.

  • 111 // 5 = 22 (phép chia lấy phần nguyên: 111 ÷ 5 = 22 dư 1).
  • Vế trái: 22 != 20 → True (vì 22 khác 20).
  • 20 % 3 = 2 (vì 20 = 3 × 6 + 2).
  • Vế phải: 2 != 0 → True (vì 2 khác 0).
  • Cuối cùng: True or True → True.

Kết quả: True

Cách 2 — Mẹo nhanh với phép or

Với phép or, chỉ cần một vế đúng là toàn bộ biểu thức đúng. Ở ý b), chỉ cần kiểm tra vế trái:

  • 111 // 5 = 22, mà 22 ≠ 20 → vế trái đã True.

Vậy không cần tính vế phải, kết quả ngay là True. Cách này giúp tiết kiệm thời gian khi làm bài.

💡 Mẹo nhớ thứ tự ưu tiên: Phép số học (+ - * / // % ) → phép so sánh (< > == !=) → phép lôgic (notandor). Tính từ trong ra ngoài, từ trái sang phải.
⚠️ Lưu ý thi: Phân biệt rõ // (chia lấy nguyên) và % (chia lấy dư). Đây là hai phép rất hay bị nhầm khi tính nhẩm.

Câu 3 — Hoạt động 2 (Cấu trúc lệnh if trong Python)

Đề bài: Cho đoạn chương trình:

if n > 0:
    print("n là số lớn hơn 0")

Em có nhận xét gì về cấu trúc lệnh if? Sau <điều kiện> lệnh if có kí tự gì? Lệnh print() được viết như thế nào?

Cách 1 — Quan sát và nhận xét cấu trúc

Nhận xét về cấu trúc lệnh if:

  1. Cấu trúc tổng quát: Lệnh if gồm từ khóa if, theo sau là điều kiện n > 0, kết thúc bằng dấu hai chấm, rồi đến khối lệnh ở dòng tiếp theo.
  1. Sau <điều kiện> có kí tự gì? → Sau điều kiện bắt buộc phải có dấu hai chấm ":". Đây là dấu hiệu báo bắt đầu khối lệnh sẽ được thực hiện khi điều kiện đúng.
  1. Lệnh print() được viết như thế nào? → Lệnh print() được viết lùi vào (thụt lề) so với lệnh if, mặc định là 1 tab hoặc 4 dấu cách. Việc thụt lề cho biết print() thuộc khối lệnh bên trong if.

Ý nghĩa hoạt động: Khi n > 0 đúng (True), chương trình in ra dòng chữ "n là số lớn hơn 0". Khi n > 0 sai (False), chương trình bỏ qua lệnh print().

⚠️ Lưu ý thi: Hai lỗi sai thường gặp nhất khi viết lệnh if trong Python: - Quên dấu hai chấm ":" sau điều kiện → báo lỗi cú pháp (SyntaxError). - Thụt lề sai hoặc không thụt lề khối lệnh → báo lỗi IndentationError.

🎯 Ghi nhớ: - Biểu thức lôgic chỉ nhận giá trị True hoặc False, thuộc kiểu bool. - Ba phép toán lôgic: and (và), or (hoặc), not (phủ định). - Lệnh if dạng thiếu: if <điều kiện>: rồi xuống dòng, thụt lề khối lệnh. Đừng quên dấu hai chấmthụt lề đúng.
Chế độ đọc sách →