Giải sách bài tập Tin học lớp 10 Bài 19: Câu lệnh rẽ nhánh If
Câu 19.1 trang 40 SBT Tin học 10: Em hãy viết biểu thức lôgic trong Python tương ứng với mỗi câu sau:
a) Số x nhỏ hơn 50.
b) Số x nằm trong khoảng (50; 100].
c) SỐ x nằm trong đoạn [0; 50] hoặc lớn hơn 100.
Trả lời:
a) x < 50
b) (x > 50) and (x <= 100)
c) ((x >= 0) and (x <= 50)) or (x > 100)
Câu 19.2 trang 40 SBT Tin học 10: Em hãy tìm một vài giá trị m, n thoả mãn các biểu thức sau:
a) 50%m == 0 and n%4 != 0
b) m%100 == 0 and m%400 != 0
c) n%5 == 0 or (n%5 != 0 and n%3 == 0)
Trả lời:
a) m là ước số của 50 và n không chia hết cho 4.
Vậy có thể chọn, ví dụ m = 5, 10, 25, .. ; n = 3, 6, 7, 9, …
b) m chia hết cho 100 nhưng không chia hết cho 400. Vậy có thể chọn, ví dụ m = 200, 300, 500, …
c) n chia hết cho 5 hoặc n không chia hết cho 5 nhưng phải chia hết cho 3. Vậy có thể chọn, ví dụ n = 5, 6, 9, 10, 12, …
Câu 19.3 trang 40 SBT Tin học 10: Em hãy viết biểu thức điều kiện tương ứng với các phát biểu sau:
a) m chia hết cho 100 nhưng không chia hết cho 400.
b) x có giá trị không thuộc đoạn [0; 2].
c) x có giá trị thuộc khoảng (2; 4) hoặc thuộc khoảng (5; 6).
Trả lời:
a) (m%100==0) and (m%400!=0)
b) not(x >= 0 and x <= 2) hoặc (x < 0) or (x > 2)
c) (x > 2 and x < 4) or (x > 5 and x < 6)
Câu 19.4 trang 40 SBT Tin học 10: Em hãy xác định giá trị của các biến a, b, c sau khi thực hiện các câu lệnh sau:
a, b, c = 1, 2, 3
a = (a < b) and (b < c)
b = (b < c) or (c%b==0)
c = c%2 != 0
Trả lời:
a = True (Vì 1 < 2 và 1 < 3)
b = True (Vì 2 < 3)
c = True (Vì 3 không chia hết cho 2)
Câu 19.5 trang 40 SBT Tin học 10: Em hãy viết câu lệnh điều kiện để in ra các thông báo tương ứng tuỳ theo giá trị của số nguyên n là số chẵn hay số lẻ.
Trả lời:
Chương trình có thể viết như sau:
if n%2 == 0 :
print(“Số chẵn”)
else:
print(“Số lẻ”)
Câu 19.6 trang 40 SBT Tin học 10: Cho m là một năm dương lịch. Biết rằng, nếu m chia hết cho 400 hoặc m chia hết cho 4 nhưng không chia hết cho 100 thì năm đó là năm nhuận. Viết câu lênh điều kiện để in ra thông báo tương ứng.
Trả lời:
Chương trình có thể viết như sau:
if (m%400==0) or ((m%4==0) and (m%100 !=0)):
print(“Năm”, m, “là năm nhuận”)
else:
print(“Năm”, m, “không phải là năm nhuận”)
Câu 19.7 trang 40 SBT Tin học 10: Chỉ số BMI (Body Mass Index) được tính dựa trên tỉ lệ giữa cân nặng (tính bằng kg) và chiều cao (tính bằng mét) bình phương, nói lên tình trạng cân nặng hiện tại của người trưởng thành (lớn hơn 18 tuổi). Chỉ số BMI càng cao thì lượng mỡ trong cơ thể càng nhiều, dẫn tới nhiều nguy cơ phát sinh các vấn đề sức khoẻ không tốt. Ví dụ, các bệnh thường gặp ở người cân nặng quá khổ là béo phì, huyết áp cao, bệnh tim mạch, tiểu đường, … Ngược lại, nếu chỉ số BMI thấp, người bệnh cũng có nguy cơ gặp phải các vấn đề thiếu máu, miễn dịch kém hay loãng xương. Với người trưởng thành gốc châu Á, giá trị BMI tiêu chuẩn được xác định như sau:
Em hãy viết chương trình tính chỉ số BMI của một người và đưa ra thông báo tương ứng.
Trả lời:
Chương trình có thể viết như sau:
#Tính chỉ số BMI
can_nang = float(input(“Cân nặng của bạn là: “))
chieu_cao = float(input(“Chiều cao của bạn là: “))
BMI = can_nang/( chieu_cao* chieu_cao)
if BMI < 18.5 :
print(“Bạn có vẻ gầy còm? BMI =”, BMI, “Chịu khó ăn nhiều thêm nhé! 🙂 “)
if (BMI >=18.5) and (BMI < 23) :
print(“Bạn có dáng chuẩn đấy! BMI =”, BMI, “Tiếp tục phát huy nhé! 🙂 “)
if BMI >=23 :
print(“Bạn thừa cân rồi! BMI =”, BMI, “Phải chịu khó tập thể thao và ăn nhiều hoa quả! 🙂 “)
Câu 19.8 trang 41 SBT Tin học 10: Để khuyến khích tiêu thụ cam, một chủ vườn đã đưa ra chính sách khuyến mại sau: Nếu số cam mua lớn hơn 10 kg thì đơn giá mua phần lớn hơn đó chỉ bằng 90% đơn giá cho 10 kg cam đầu tiên. Em hãy viết chương trình tính số tiền mua cam phải trả với đơn giá và số cam mua được nhập từ bàn phím.
Trả lời:
Chương trình có thể viết như sau:
don gia = float(input(“Giá 1 kg cam là: “))
so_luong_mua = float(input(“Số cam bạn mua: “))
if so_luong_mua <= 10:
thanh_tien=so_luong_mua*don gia
else:
thanh_tien = 10* don_gia + (so_luong_mua – 10)*don_gia*0.9
print(“Số tiền phải trả là: “, thanh_tien)
Câu 19.9 trang 41 SBT Tin học 10: Em hãy viết chương trình nhập ba số thực dương a, b, c, kiểm tra xem ba số đó có thể là độ dài các cạnh của một tam giác hay không, nếu có thì tính chu vi, diện tích của tam giác đó.
Trả lời:
Ba số a, b, c là các cạnh của tam giác nếu cả ba bất đẳng thức sau đều thoả mãn:
a + b – c > 0; b + c – a > 0; c + a – b > 0
Để tính diện tích tam giác cần sử dụng công thức Heron (xem Câu 18.11).
Chương trình có thể viết như sau:
#Kiểm tra 3 số a, b, c có phải các cạnh một tam giác, tính chu vi, diện tích tam giác đó
a = float(input(“Nhập số a: “))
b = float(input(“Nhập số b: “))
c = float(input(“Nhập số c: “))
if (a + b – c > 0) and (b + c – a > 0) and (c + a – b > 0):
p = (a + b + c)/2
S_tamgiac = (p* (p – a)*(p – b)*(p – c))**0.5
print(“Chu vi tam giác = “, p*2).
print(“Diện tích tam giác = “, S_tamgiac)
else:
print(“Ba số đã cho không phải là độ dài các cạnh của một tam giác”)
Câu 19.10 trang 41 SBT Tin học 10: Em hãy viết chương trình giải phương trình bậc nhất dạng tổng quát ax + b = c, các hệ số a, b, c là các số thực được nhập vào từ bàn phím.
Trả lời:
Thuật toán giải phương trình bậc nhất dạng tổng quát có thể nêu ngắn gọn như sau:
Nếu a khác 0, thì phương trình luôn có nghiệm duy nhất x = (c – b)/a.
Nếu a = 0 và c − b = 0 thì phương trình có vô số nghiệm (x có thể nhận giá trị tuỳ ý).
Nếu a = 0 và c − b khác 0 thì phương trình vô nghiệm.
Chương trình có thể viết như sau:
#Giải phương trình bậc nhất dạng tổng quát 1
a = float(input(“Nhập số a: “))
b = float(input(“Nhập số b: “))
c = float(input(“Nhập số c: “))
if a != 0:
print(“Phương trình có nghiệm duy nhất x = “, (c – b)/a)
if a==0 and c – b == 0:
print(“Phương trình có vô số nghiệm (x có thể là một số bất kì)!”)
if a==0 and c – b != 0:
print(“Phương trình đã cho vô nghiệm! “)
Lưu ý: Cũng có thể dùng các câu lệnh if lồng nhau như sau:
#Giải phương trình bậc nhất dạng tổng quát 2
a = float(input(“Nhập số a: “))
b = float(input(“Nhập số b: “))
c = float(input(“Nhập số c: “))
if a != 0:
print(“Phương trình có nghiệm duy nhất x = “, (c – b)/a)
else:
if c – b == 0:
print(“Phương trình có vô số nghiệm (x có thể là một số bất kì)!”)
else:
print(“Phương trình đã cho vô nghiệm!”)
Câu 19.11 trang 41 SBT Tin học 10: Em hãy viết chương trình giải phương trình bậc hai dạng tổng quát ax2 + bx + c = 0 (a khác 0). Yêu cầu các giá trị a, b, c là các số thực được nhập vào từ bàn phím.
Trả lời:
Thuật toán giải phương trình bậc hai có thể nêu tóm tắt như sau:
Tính ∆ = b2 – 4ac
Nếu ∆ < 0 ⇒ phương trình vô nghiệm.
Nếu ∆ = 0 ⇒ phương trình có nghiệm kép x1 = x2 = -b/2a.
Nếu ∆ > 0 ⇒ phương trình có 2 nghiệm phân biệt:
Chương trình có thể viết như sau:
#Giải phương trình bậc hai dạng tổng quát
a = float(input(“Nhập số a (a < > 0): “))
b = float(input(“Nhập số b: “))
c = float(input(“Nhập số c: “))
delta = b*b – 4*a*c
if delta == 0:
print(“Phương trình có nghiệm kép x1 = x2 =”, -b/(2*a))
if delta > 0:
print(“Phương trình có 2 nghiệm x1 =”, (-b + delta**0.5)/(2*a), ” và x2 =”, (-b – delta* *0.5)/(2*a))
if delta < 0:
print(“Phương trình đã cho vô nghiệm ! “)
Lưu ý: Cũng có thể sử dụng câu lệnh if lồng trong nhau tương tự như Câu 19.10. Khi đó phần chính của chương trình có thể viết như sau:
if delta== 0:
print(“Phương trình có nghiệm kép x1 = x2 =”, -b/(2*a))
else:
if delta > 0:
print(“Phương trình có 2 nghiệm x1 =”, (-b + delta**0.5)/(2*a), ” và x2 =”, (-b – delta**0.5)/(2*a))
else :
print(“Phương trình đã cho vô nghiệm! “)
Câu 19.12 trang 41 SBT Tin học 10: Tiền điện được tính theo đơn giá bậc thang như sau: đơn giá 1 được áp dụng cho 50 kWh điện tiêu thụ đầu tiên, đơn giá 2 được áp dụng cho mỗi 1 kWh từ 51 cho tới 100; đơn giá 3 được áp dụng cho mỗi 1 kWh từ 101 cho tới 200 và đơn giá 4 áp dụng cho mỗi kWh từ 201 trở đi. Đơn giá và lượng điện tiêu thụ là các số nguyên được nhập vào từ bàn phím. Em hãy viết chương trình tính tiền điện phải nộp.
Trả lời:
Chương trình có thể viết như sau:
#Tính tiền điện tiêu thụ theo đơn giá bậc thang
don_gia1 = int(input(“Đơn giá điện 1: “))
don_gia2 = int(input(“Đơn giá điện 2: “))
don gia3 = int(input(“Đơn giá điện 3: “))
don gia4 = int(input(“Đơn giá điện 4: “))
so_kW_tieuthu = int(input(“Lượng điện tiêu thụ: “))
if so_kW_tieuthu <= 50:
tien_dien = don_gia1*so_kW_tieuthu
if so_kW_tieuthu > 50 and so_kW_tieuthu<=100:
tien_dien = don_gia1*50 + don_gia2*(so_kW_tieuthu – 50)
if so_kW_tieuthu > 100 and so_kW_tieuthu< =200:
tien_dien = don_gia1*50 + don_gia2*50 + don_gia3*(so_kW_tieuthu – 100)
if so_kW_tieuthu > 200:
tien_dien = don_gia1*50 + don_gia2*50 + don_gia3*100 + don_gia4* (so_kW_tieuthu – 200)
print(“Tiền điện phải trả là: “, tien_dien, “đồng”)
Lưu ý: Cũng có thể sử dụng các câu lệnh if lồng trong nhau như sau:
don_gia1 = int(input(“Đơn giá điện 1: “))
don_gia2 = int(input(“Đơn giá điện 2: “))
don_gia3 = int(input(“Đơn giá điện 3: “))
don_gia4 = int(input(“Đơn giá điện 4: “))
so_kW_tieuthu = int(input(“Lượng điện tiêu thụ: “))
if so_kW_tieuthu <= 50:
tien_dien = don_gia1*so_kW_tieuthu
else:
if so_kw_tieuthu <= 100:
tien_dien = don_gia1*50 + don_gia2*(so_kw_tieuthu – 50)
else:
if so_kW_tieuthu <= 200:
tien_dien = don_gia1*50 + don_gia2*50 + don_gia3*(so_kW_tieuthu – 100)
else:
tien_dien = don_gia1*50 + don_gia2*50 + don_gia3*100 + don_gia4* (so_kW_tieuthu – 200)
print(“Tiền điện phải trả là: “, tien_dien, “đồng”)
Xem thêm các bài giải SBT Tin học lớp 10 Kết nối tri thức hay, chi tiết khác:
Giải SBT Tin học 10 Bài 18: Các lệnh vào ra đơn giản
Giải SBT Tin học 10 Bài 19: Câu lệnh rẽ nhánh If
Giải SBT Tin học 10 Bài 20: Câu lệnh lặp For
Giải SBT Tin học 10 Bài 21: Câu lệnh lặp While
Giải SBT Tin học 10 Bài 22: Kiểu dữ liệu danh sách