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
Em hãy viết chương trình giải phương trình bậc hai dạng tổng quát ax + 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.
Giải sách bài tập Tin học 10 Bài 19: Câu lệnh điều kiện If
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.
Lời giả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! ")