các bạn giúp mình giải bài này với viết chương trình tính nghiệm của phương trình bậc hai trên python. Đầy đủ các trường hợp nha
2 câu trả lời
Do bài này mình làm trước rồi nên mình gửi nha
from math import sqrt
f1 = open("PTB2.INP","r")
f2 = open("PTB2.OUT","w")
n = f1.readline()
def fd(k):
dot = k.find(".")
if len(k[dot:]) <= 2:
return k + "0"
return k
for i in range(int(n)):
t = f1.readline()
t = t.replace("\n","")
t = t.split(" ")
a = float(t[0])
b = float(t[1])
c = float(t[2])
if a == b == c == 0 or a == b ==0:
f2.write("Vo so nghiem\n")
elif a == c == 0 or b == c == 0:
f2.write("0 0\n")
elif c == 0:
kq = str(round((-b)/a,2))
f2.write("0 " + fd(kq) + "\n")
elif a == 0:
kq = str(round((-c)/b,2))
f2.write(fd(kq)+" "+fd(kq)+"\n")
else:
dt = b*b-4*a*c
if dt < 0:
f2.write("Vo nghiem\n")
elif dt == 0:
kq = str((round((-b)/(2*a),2)))
f2.write(fd(kq)+" "+fd(kq)+"\n")
else:
dt = round(sqrt(dt),2)
kq1 = str(round((-b+dt)/(2*a),2))
kq2 = str(round((-b-dt)/(2*a),2))
f2.write(fd(kq1)+" "+fd(kq2)+"\n")
f1.close()
f2.close()
from math import sqrt
a = 1
b = 2
c = 1
if (a == b == c == 0):
print("VSN")
elif a==0:
print('ko phai PTB2')
else:
denta = b*b-4*a*c
if denta < 0:
print("Vo nghiem")
elif denta == 0:
print(round((-b)/(2*a),2))
else:
dt = round(sqrt(dt),2)
x1 = round((-b+dt)/(2*a),2)
x2 = round((-b-dt)/(2*a),2)
print('PT co 2 nghiem phan biet: x1=',x1,', x2=',x2)