Tin học 10 – Bài 19
Câu lệnh rẽ nhánh If

Mục tiêu bài học

  • Kiến thức:
    • Biết và trình bày được các phép toán với kiểu dữ liệu logic.
    • Trình bày và hiểu được cấu trúc rẽ nhánh và câu lệnh if.
  • Kĩ năng:
    • Sử dụng được lệnh rẽ nhánh if trong lập trình để giải quyết các bài toán đơn giản.
  • Phẩm chất:
    • Hình thành ý thức trách nhiệm, tính cẩn thận khi làm việc nhóm.
    • Rèn luyện phẩm chất làm việc chăm chỉ, chuyên cần để hoàn thành nhiệm vụ.

Hoạt động khởi động

Trong cuộc sống, chúng ta thường xuyên đứng trước những lựa chọn phụ thuộc vào một điều kiện nào đó. Ví dụ: “Nếu ngày mai trời không mưa thì em sẽ đi chơi, ngược lại thì em sẽ ở nhà làm bài tập”.

Tình huống này mô tả một cấu trúc “rẽ nhánh”. Trong lập trình, chúng ta sử dụng câu lệnh if để mô tả những cấu trúc như vậy.

Tin học 10 Bài 19 Câu lệnh điều kiện dạng đủ

Để sử dụng được lệnh if, trước hết chúng ta cần tìm hiểu về “điều kiện”, hay còn gọi là biểu thức logic.

1. Biểu thức logic

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

  • Ví dụ: a > 10, b < 3, s == "number"  

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ì <lệnh> 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.5 > 2 * 13.

Các biểu thức có thể đưa vào vị trí <điều kiện> là các biểu thức logic, tức là các biểu thức trả về giá trị Đúng (True) hoặc Sai (False). Do đó, các phương án phù hợp là B, C, và D.

Các phép so sánh: Python cung cấp các phép toán để so sánh các giá trị số và xâu kí tự, kết quả trả về là True hoặc False.

Phép toánÝ nghĩaVí dụ
(với a = 10, b = 3)
Kết quả
>Lớn hơna > 10False
<Nhỏ hơnb < 3False
>=Lớn hơn hoặc bằnga >= 10True
<=Nhỏ hơn hoặc bằngb <= 3True
==Bằng nhaua == 10True
!=Khác nhaub != 3False

Các phép toán logic: Dùng để kết hợp nhiều biểu thức logic.
and (và): Trả về True chỉ khi cả hai biểu thức đều True.
or (hoặc): Trả về True nếu ít nhất một trong hai biểu thức là True.
not (phủ định): Đảo ngược giá trị của biểu thức (True thành False và ngược lại).

Câu hỏi củng cố

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

a) True (100 chia hết cho 4).

b) True (Vì 111//5 = 22, khác 20 là đúng. Vế sau không cần xét vì phép toán là or).

2. Lệnh IF

Lệnh if được sử dụng để xử lý các tình huống rẽ nhánh trong chương trình.

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?

Sau <điều kiện> của lệnh if luôn có dấu hai chấm :. Các lệnh bên trong khối if (ví dụ lệnh print()) phải được viết lùi vào và thẳng hàng (mặc định là 1 tab hoặc 4 dấu cách).

Câu lệnh điều kiện dạng thiếu:

Chỉ thực hiện một khối lệnh nếu điều kiện đúng và bỏ qua nếu điều kiện sai.

Cú pháp:

if <điều kiện>:
    <khối lệnh>
câu lệnh rẽ nhánh if

Câu lệnh điều kiện dạng đủ:

Thực hiện <khối lệnh 1> nếu điều kiện đúng, ngược lại thì thực hiện <khối lệnh 2>.

Cú pháp:

if <điều kiện>:
    <khối lệnh 1>
else:
    <khối lệnh 2>
câu lệnh rẽ nhánh if

Lưu ý quan trọng:

  • Các từ khóa if và else phải được viết thẳng lề.
  • Sau <điều kiện> và else luôn có dấu hai chấm :.
  • Các khối lệnh bên trong if và else phải được viết lùi vào và thẳng hàng.

Câu hỏi củng cố

Đoạn chương trình sau thực hiện công việc gì?

k = int(input("Nhập một số nguyên dương: "))
if k <= 0:
    print("Bạn nhập sai rồi!")

Chương trình yêu cầu người dùng nhập một số nguyên dương và gán vào biến k. Sau đó, chương trình kiểm tra nếu giá trị của k nhỏ hơn hoặc bằng 0, thì sẽ thông báo "Bạn nhập sai rồi!". Đây là một cách để kiểm tra dữ liệu đầu vào có hợp lệ hay không.

Luyện tập

1. Viết biểu thức logic ứng với mỗi câu sau:
a) Số x nằm trong khoảng (0; 10).
b) Số y nằm ngoài đoạn [1; 2].
c) Số z nằm trong đoạn [0; 1] hoặc [5; 10].

a) x > 0 and x < 10
b) y < 1 or y > 2
c) (0 <= z <= 1) or (5 <= z <= 10)

2. Tìm một vài giá trị m, n thoả mãn các biểu thức sau:
a) 100%m == 0 and n%5 != 0
b) m%100 == 0 and m%400 != 0
c) n%3 == 0 or (n%3 != 0 and n%4 == 0)

a) m là ước của 100, n không chia hết cho 5. Ví dụ: m = 10, n = 9.
b) m chia hết cho 100 nhưng không chia hết cho 400. Ví dụ: m = 100, 200, 300, 500.
c) n chia hết cho 3, hoặc n không chia hết cho 3 nhưng chia hết cho 4. Ví dụ: n = 3, 4, 6, 8.

Vận dụng

1. Giá bán cam tại siêu thị tính như sau: nếu khối lượng cam mua dưới 5 kg thì giá bán là 12 000 đồng/kg, nếu khối lượng mua lớn hơn hoặc bằng 5 kg thì giá bán là 10 000 đồng/kg. Viết chương trình nhập số lượng mua (tính theo kg) sau đó tính số tiền phải trả.

# Nhập số lượng cam đã mua, có thể là số lẻ
c = float(input("Nhập số lượng cam đã mua (tính theo kg): "))

# Tính và in số tiền phải trả
if c < 5:
    so_tien = c * 12000
    print("Số tiền phải trả là:", so_tien, "đồng")
else:
    so_tien = c * 10000
    print("Số tiền phải trả là:", so_tien, "đồng")

2. Năm n là năm nhuận nếu giá trị n thoả mãn điều kiện: n chia hết cho 400 hoặc (n chia hết cho 4 đồng thời không chia hết cho 100). Viết chương trình nhập số năm n và cho biết năm n có phải là nhuận hay không.

# Nhập số năm từ người dùng
year = int(input("Nhập số năm: "))

# Kiểm tra điều kiện năm nhuận
if (year % 400 == 0) or (year % 4 == 0 and year % 100 != 0):
    print(year, "là năm nhuận")
else:
    print(year, "không là năm nhuận")

Câu hỏi trắc nghiệm tin học 10 bài 19 - Câu lệnh rẽ nhánh If

Thời gian làm bài: 30 phút
Đáp án hiển thị sau khi nộp bài
Câu hỏi sẽ được hiển thị ngẫu nhiên
Vui lòng nhập họ và tên để bắt đầu làm bài

NB

Trong Python, một biểu thức logic chỉ có thể nhận một trong hai giá trị nào sau đây?

NB

Để so sánh bằng hai giá trị trong Python, ta sử dụng phép toán nào?

TH

Cho biểu thức 15 > 2 * 7. Biểu thức này trả về giá trị gì?

TH

Cho s = "number". Biểu thức s == "Number" trả về giá trị gì?

NB

Phép toán logic and trả về giá trị True khi nào?

TH

Cho x = 10. Biểu thức x < 5 or x > 8 trả về giá trị gì?

TH

Cho b = True. Biểu thức not b trả về giá trị gì?

VD

Cho x = 12. Biểu thức (x % 3 == 0) and (x % 4 == 0) trả về giá trị gì?

NB

Ký tự nào bắt buộc phải có ở cuối dòng lệnh if <điều kiện> trong Python?

NB

Các câu lệnh nằm trong khối lệnh của if phải được viết như thế nào so với lề?

TH

Cho đoạn mã sau:
x = 5
if x < 10:
 x = x + 1
print(x)

Kết quả in ra màn hình là gì?

VD

Đâu là đoạn mã if được viết đúng cú pháp trong Python?

NB

Trong cấu trúc if-else, khối lệnh sau else sẽ được thực thi khi nào?

TH

Cho đoạn mã sau:
a = 10
b = 7
if a > b:
 print(a - b)
else:
 print(b - a)

Kết quả in ra màn hình là gì?

VD

Để kiểm tra một số tự nhiên n có phải là số chẵn hay không, biểu thức điều kiện nào sau đây là đúng nhất?

VD

Một công ty điện lực quy định giá bán điện sinh hoạt theo hình thức luỹ kế (bậc thang) như sau:
Bậc 1: 50 kWh đầu tiên có giá 1.678 đồng/kWh.
Bậc 2: Lượng điện từ kWh thứ 51 đến 100 có giá 1.734 đồng/kWh.
Bậc 3: Lượng điện từ kWh thứ 101 trở lên có giá 2.014 đồng/kWh.
Công thức nào dưới đây tính đúng tổng số tiền phải trả cho một hộ gia đình đã tiêu thụ 120 kWh điện trong tháng?

Xét đoạn chương trình Python sau dùng để kiểm tra một số có phải là số dương và chia hết cho 5 hay không:
n = 20
if n > 0 and n % 5 == 0:
    print("n là số dương và chia hết cho 5")

Dưới đây là các nhận xét về đoạn chương trình trên.

NB Biến n được gán giá trị khởi tạo là một số nguyên.

TH Biểu thức điều kiện n > 0 and n % 5 == 0 trả về giá trị True.

TH Nếu thay n = 12, chương trình sẽ không in ra thông báo nào cả.

VD Đoạn mã trên sẽ báo lỗi cú pháp vì có hai điều kiện trong cùng một câu lệnh if.

Một cửa hàng đưa ra chương trình khuyến mãi như sau: nếu tổng giá trị đơn hàng từ 500.000 đồng trở lên thì khách hàng sẽ được giảm giá 10%, ngược lại thì không được giảm. Xét đoạn chương trình sau:
don_hang = 600000
if don_hang >= 500000:
    thanh_toan = don_hang * 0.9
else:
    thanh_toan = don_hang
print(thanh_toan)

Dưới đây là các nhận xét về đoạn chương trình trên.

NB Biến don_hang lưu trữ giá trị đơn hàng trước khi giảm giá.

TH Chương trình sẽ thực thi khối lệnh sau if vì điều kiện don_hang >= 500000 là đúng.

VD Kết quả in ra màn hình của chương trình sẽ là 540000.0.

VD Nếu giá trị của don_hang là 490000, giá trị của biến thanh_toan sẽ là 441000.0.

Xét bài toán xác định năm nhuận với điều kiện: một năm n là năm nhuận nếu n chia hết cho 400, hoặc (n chia hết cho 4 và không chia hết cho 100). Biểu thức điều kiện trong Python là: (n % 400 == 0) or (n % 4 == 0 and n % 100 != 0).
Dưới đây là các nhận xét liên quan đến bài toán.

TH Năm 2000 là năm nhuận vì thỏa mãn điều kiện n % 400 == 0.

VD Năm 1900 không phải là năm nhuận.

TH Biểu thức điều kiện cho năm 2023 (n=2023) sẽ trả về giá trị True.

VD Để kiểm tra một năm có phải năm nhuận hay không, chỉ cần xét điều kiện n % 4 == 0 là đủ.

Bảng xếp hạng

Chưa có kết quả nào.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *