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)

Câu hỏi trong lớp Xem thêm