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ĩa | Kí 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 (not→and→or). 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:
- Cấu trúc tổng quát: Lệnh if gồm từ khóa
if, theo sau là điều kiệnn > 0, kết thúc bằng dấu hai chấm, rồi đến khối lệnh ở dòng tiếp theo.
- 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.
- Lệnh
print()được viết như thế nào? → Lệnhprint()đượ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ếtprint()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ấm và thụt lề đúng.