BÀI 19: CÂU LỆNH RẼ NHÁNH IF

Bài 19: Câu lệnh rẽ nhánh if
Slide 1/9
🔀🤔💡

BÀI 19: CÂU LỆNH RẼ NHÁNH IF

"Điều khiển luồng chương trình với câu lệnh if"

Tin học 10 | Lập trình cơ bản
Slide 2/9

🎯 A. YÊU CẦU CẦN ĐẠT

  • Hiểu phép toán logic

    Hiểu và trình bày được các phép toán với kiểu dữ liệu logic trong Python.

  • Sử dụng câu lệnh if

    Biết cách sử dụng lệnh rẽ nhánh if để kiểm soát luồng điều khiển trong chương trình.

  • Ứng dụng câu lệnh if

    Ứng dụng câu lệnh if để viết các chương trình đơn giản xử lý điều kiện.

  • Xây dựng chương trình có điều kiện

    Thực hiện được các chương trình có sử dụng cấu trúc rẽ nhánh if-else.

Slide 3/9

🔍 1. BIỂU THỨC LOGIC TRONG PYTHON

Định nghĩa:
Biểu thức logic là những biểu thức có thể nhận một trong hai giá trị: True (đúng) hoặc False (sai).

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

Phép toán Ý nghĩa Ví dụ
< Nhỏ hơn 5 < 10 → True
> Lớn hơn 8 > 3 → True
== Bằng nhau 7 == 7 → True
<= Nhỏ hơn hoặc bằng 4 <= 4 → True
>= Lớn hơn hoặc bằng 6 >= 5 → True
!= Khác nhau 9 != 2 → True

🔗 Các phép toán logic:

🤝
and (và)
Trả về True khi cả hai điều kiện đều đúng.
True and True → True
🔄
or (hoặc)
Trả về True khi ít nhất một điều kiện đúng.
True or False → True
🚫
not (phủ định)
Đảo ngược giá trị logic.
not True → False

📊 Bảng chân trị các phép toán logic:

🤝 Phép AND

A B A and B
True True True
True False False
False True False
False False False
Quy tắc: Chỉ True khi cả hai đều True

🔄 Phép OR

A B A or B
True True True
True False True
False True True
False False False
Quy tắc: True khi ít nhất một True

🚫 Phép NOT

A not A
True False
False True
Quy tắc: Đảo ngược giá trị

🎯 Thứ tự ưu tiên các phép toán:

1️⃣
Phép so sánh
<, >, ==, !=, <=, >=
2️⃣
not
Phủ định
3️⃣
and
Phép và
4️⃣
or
Phép hoặc

📝 Ví dụ thực tế với thứ tự ưu tiên:

# Ví dụ 1: Thứ tự ưu tiên
x, y, z = 10, 5, 9
kq1 = x > y and z < 15 or x == 5
# Thực hiện: (10 > 5) and (9 < 15) or (10 == 5)
# = True and True or False = True or False = True
# Ví dụ 2: Sử dụng dấu ngoặc
kq2 = x > y and (z < 15 or x == 5)
# Thực hiện: (10 > 5) and ((9 < 15) or (10 == 5))
# = True and (True or False) = True and True = True
# Ví dụ 3: Phép not
kq3 = not x > y and z < 15
# Thực hiện: not (10 > 5) and (9 < 15)
# = not True and True = False and True = False

🔍 Ví dụ ứng dụng thực tế:

🎓 Kiểm tra điều kiện học bổng

diem_tb = 8.5
diem_rl = 85
co_hoc_bong = diem_tb >= 8.0 and diem_rl >= 80
# Kết quả: True

🚗 Kiểm tra điều kiện lái xe

tuoi = 20
co_bang_lai = True
co_the_lai = tuoi >= 18 and co_bang_lai
# Kết quả: True
Lưu ý quan trọng:
• Sử dụng dấu ngoặc () để làm rõ thứ tự thực hiện
• Phép so sánh được thực hiện trước phép logic
not có độ ưu tiên cao hơn andor
and có độ ưu tiên cao hơn or
• Khi không chắc chắn, hãy sử dụng dấu ngoặc để tránh nhầm lẫn
Slide 4/9

💪 BÀI TẬP CỦNG CỐ: BIỂU THỨC LOGIC

🎯 Hãy dự đoán kết quả của các biểu thức logic sau:

📝 Bài 1: Các phép so sánh cơ bản

5 > 3
Kết quả = ?
10 == 10
Kết quả = ?
7 != 8
Kết quả = ?
✅ Đáp án:
5 > 3True (5 lớn hơn 3)
10 == 10True (10 bằng 10)
7 != 8True (7 khác 8)

🧠 Bài 2: Các phép toán logic

True and False
Kết quả = ?
True or False
Kết quả = ?
not True
Kết quả = ?
✅ Đáp án:
True and FalseFalse (cần cả hai đều True)
True or FalseTrue (chỉ cần một trong hai True)
not TrueFalse (đảo ngược True)

💡 Giải thích:
and: Chỉ True khi cả hai đều True
or: True khi ít nhất một trong hai True
not: Đảo ngược giá trị logic

🔥 Bài 3: Biểu thức phức tạp

x = 8
y = 5
kq = (x > y) and (x % 2 == 0)
Giá trị của biến kq là gì?
🔍 Phân tích từng bước:
x = 8, y = 5
x > y8 > 5True
x % 2 == 08 % 2 == 00 == 0True
(x > y) and (x % 2 == 0)True and TrueTrue

✅ Kết quả: kq = True
🎯 Thứ tự ưu tiên các phép toán:
1. Phép so sánh: <, >, ==, !=, <=, >=
2. not (phủ định)
3. and (và)
4. or (hoặc)
"Biểu thức logic - Nền tảng của câu lệnh if!" 🔍
Slide 5/9

🔀 2. CÂU LỆNH IF DẠNG THIẾU

🎯 MÔ HÌNH MÔ PHỎNG SƠ ĐỒ KHỐI

🚀 BẮT ĐẦU
🤔 ĐIỀU KIỆN
n > 0
✅ TRUE
📝 THỰC THI
print("Số dương")
❌ FALSE
⏭️ BỎ QUA
Không làm gì
🏁 KẾT THÚC

🎮 Thử nghiệm với các giá trị khác nhau:

Công dụng:
Câu lệnh if dạng thiếu chỉ thực thi khối lệnh khi điều kiện đúng (True). Nếu điều kiện sai (False), chương trình bỏ qua khối lệnh.

📝 Cú pháp:

if <điều kiện>:
<khối lệnh>

📝 Ví dụ thực tế:

n = int(input("Nhập một số: "))
if n > 0:
print("Số bạn nhập là số dương")
Lưu ý về thụt lề:
• Python sử dụng thụt lề (thường là 4 dấu cách) để xác định khối lệnh
• Tất cả các lệnh trong khối if phải có cùng mức thụt lề
• Thiếu thụt lề sẽ gây lỗi cú pháp
Slide 6/9

🔄 3. CÂU LỆNH IF DẠNG ĐỦ (IF-ELSE)

🎯 MÔ HÌNH MÔ PHỎNG IF-ELSE

🚀 BẮT ĐẦU
🤔 ĐIỀU KIỆN
n % 2 == 0
✅ TRUE
📝 THỰC THI IF
print("Số chẵn")
❌ FALSE
📝 THỰC THI ELSE
print("Số lẻ")
🏁 KẾT THÚC

🎮 Thử nghiệm với các giá trị khác nhau:

Công dụng:
Câu lệnh if-else cho phép thực thi một trong hai khối lệnh: khối lệnh 1 khi điều kiện đúng, khối lệnh 2 khi điều kiện sai.

📝 Cú pháp:

if <điều kiện>:
<khối lệnh 1>
else:
<khối lệnh 2>
Điều kiện đúng
Khi điều kiện trả về True, thực thi khối lệnh 1 (sau if).
Điều kiện sai
Khi điều kiện trả về False, thực thi khối lệnh 2 (sau else).
🎯
Luôn có kết quả
Với if-else, chương trình luôn thực thi một trong hai khối lệnh.

📝 Ví dụ thực tế:

n = int(input("Nhập một số: "))
if n % 2 == 0:
print("Số đã nhập là số chẵn.")
else:
print("Số đã nhập là số lẻ.")

🎯 Minh họa luồng thực thi:

Trường hợp 1:
Nhập: 8
Điều kiện: 8 % 2 == 0True
Kết quả: "Số đã nhập là số chẵn."
Trường hợp 2:
Nhập: 7
Điều kiện: 7 % 2 == 0False
Kết quả: "Số đã nhập là số lẻ."

🔍 Ví dụ khác - Kiểm tra tuổi:

tuoi = int(input("Nhập tuổi của bạn: "))
if tuoi >= 18:
print("Bạn đã đủ tuổi trưởng thành")
else:
print("Bạn chưa đủ tuổi trưởng thành")
💡 So sánh if dạng thiếu và if-else:
If dạng thiếu: Có thể không thực thi lệnh nào
If-else: Luôn thực thi một trong hai khối lệnh
Khi nào dùng if-else: Khi cần xử lý cả hai trường hợp đúng/sai
Slide 7/9

🔀 4. CÂU LỆNH IF NHIỀU NHÁNH (IF-ELIF-ELSE)

🎯 MÔ HÌNH MÔ PHỎNG IF-ELIF-ELSE

🚀 BẮT ĐẦU
🤔 ĐIỀU KIỆN 1
diem >= 9.0
✅ TRUE
📝 "Xuất sắc"
❌ FALSE - Tiếp tục
🤔 ĐIỀU KIỆN 2
diem >= 8.0
✅ TRUE
📝 "Giỏi"
❌ FALSE
📝 ELSE
"Khác"
🏁 KẾT THÚC

🎮 Thử nghiệm với các điểm số khác nhau:

Công dụng:
Câu lệnh if-elif-else cho phép kiểm tra nhiều điều kiện khác nhau và thực thi khối lệnh tương ứng.

📝 Cú pháp:

if <điều kiện 1>:
<khối lệnh 1>
elif <điều kiện 2>:
<khối lệnh 2>
else:
<khối lệnh 3>

📝 Ví dụ thực tế - Tính tiền điện:

k = float(input("Nhập số kWh tiêu thụ điện: "))
if k <= 50:
t = k * 1.678
elif k <= 100:
t = 50 * 1.678 + (k - 50) * 1.734
else:
t = 50 * 1.678 + 50 * 1.734 + (k - 100) * 2.014
print("Số tiền điện phải trả là:", round(t), "nghìn đồng")

🎯 Minh họa bảng giá điện:

Mức tiêu thụ (kWh) Giá (nghìn đồng/kWh) Điều kiện
0 - 50 1.678 k <= 50
51 - 100 1.734 k <= 100
Trên 100 2.014 k > 100

🔍 Ví dụ khác - Xếp loại học lực:

diem = float(input("Nhập điểm trung bình: "))
if diem >= 9.0:
print("Học lực: Xuất sắc")
elif diem >= 8.0:
print("Học lực: Giỏi")
elif diem >= 6.5:
print("Học lực: Khá")
elif diem >= 5.0:
print("Học lực: Trung bình")
else:
print("Học lực: Yếu")
💡 Lưu ý về if-elif-else:
• Chỉ thực thi một khối lệnh duy nhất
• Kiểm tra điều kiện từ trên xuống dưới
• Khi gặp điều kiện đúng đầu tiên, bỏ qua các điều kiện còn lại
else là tùy chọn, xử lý trường hợp không thỏa mãn điều kiện nào
Slide 8/9

💻 5. BÀI TẬP THỰC HÀNH

🎯 Thực hành viết chương trình với câu lệnh if:

🔸 Bài 1: Kiểm Tra Số Chẵn, Lẻ

✅ Yêu cầu: Viết chương trình nhập một số nguyên từ bàn phím và kiểm tra xem số đó là chẵn hay lẻ.
📌 Hướng dẫn:
• Sử dụng input() để nhập số
• Chuyển đổi sang kiểu int
• Sử dụng phép chia lấy dư % để kiểm tra
• Dùng câu lệnh if-else để phân loại
📌 Code mẫu:
# Nhập số tự nhiên từ người dùng
n = int(input("Nhập số tự nhiên n: "))
# Kiểm tra số chẵn hay lẻ
if n % 2 == 0:
print("Số đã nhập là số chẵn.")
else:
print("Số đã nhập là số lẻ.")
🎯 Ví dụ chạy chương trình:
Trường hợp 1:
Nhập số tự nhiên n: 8
Số đã nhập là số chẵn.

Trường hợp 2:
Nhập số tự nhiên n: 7
Số đã nhập là số lẻ.

🔸 Bài 2: Tính Tiền Điện

✅ Yêu cầu: Viết chương trình nhập số kWh điện tiêu thụ và tính số tiền điện phải trả theo bảng giá lũy kế.
📌 Bảng giá:
• 0-50 kWh: 1.678 nghìn đồng/kWh
• 51-100 kWh: 1.734 nghìn đồng/kWh
• Trên 100 kWh: 2.014 nghìn đồng/kWh
📌 Hướng dẫn: Sử dụng if-elif-else
📌 Code mẫu:
# Nhập số kWh tiêu thụ điện
k = float(input("Nhập số kWh tiêu thụ điện: "))
# Tính tiền điện theo bảng giá lũy kế
if k <= 50:
t = k * 1.678
elif k <= 100:
t = 50 * 1.678 + (k - 50) * 1.734
else:
t = 50 * 1.678 + 50 * 1.734 + (k - 100) * 2.014
# Hiển thị kết quả
print("Số tiền điện phải trả là:", round(t), "nghìn đồng")
🎯 Ví dụ chạy chương trình:
Nhập số kWh tiêu thụ điện: 120
Số tiền điện phải trả là: 211 nghìn đồng

Giải thích:
• 50 kWh đầu: 50 × 1.678 = 83.9
• 50 kWh tiếp: 50 × 1.734 = 86.7
• 20 kWh cuối: 20 × 2.014 = 40.28
• Tổng: 83.9 + 86.7 + 40.28 = 210.88 ≈ 211
🎯 Quy trình giải bài tập với câu lệnh if:
Bước 1: Phân tích bài toán, xác định điều kiện
Bước 2: Nhập dữ liệu cần thiết
Bước 3: Viết biểu thức logic kiểm tra điều kiện
Bước 4: Sử dụng if/if-else/if-elif-else phù hợp
Bước 5: Kiểm tra và hiển thị kết quả
"Câu lệnh if - Trái tim của lập trình!" 🔀💡
Slide 9/9
🔀🤔💡

THÀNH THẠO CÂU LỆNH RẼ NHÁNH IF

"Câu lệnh if giúp chương trình có thể đưa ra quyết định thông minh."

🔀🧠

"Với câu lệnh if, chương trình trở nên linh hoạt và thông minh hơn!"

🚀✨

🎯 Những gì đã học hôm nay:

🔍
Biểu thức logic
True/False, and/or/not
🔀
Câu lệnh if
Rẽ nhánh điều kiện
🔄
If-else
Xử lý hai trường hợp
🌟
If-elif-else
Nhiều điều kiện

💡 Ứng dụng thực tế:

🔢
Kiểm tra số chẵn/lẻ
Phân loại dữ liệu
💰
Tính tiền điện
Bảng giá lũy kế
🎓
Xếp loại học lực
Phân hạng theo điểm
Hãy thực hành viết chương trình có điều kiện! 🎓✨
Lên đầu trang