def getDiscriminant(self): return self.b**2 - 4 * self.a * self.c def getRoot1(self): discriminant = self.getDiscriminant() if discriminant < 0: return None else: return (-self.b + discriminant ** 0.5) / (2 * self.a) def getRoot2(self): discriminant = self.getDiscriminant() if discriminant < 0: return None else: return (-self.b - discriminant ** 0.5) / (2 * self.a) a = float(input("请输入a的值: ")) b = float(input("请输入b的值: ")) c = float(input("请输入c的值: ")) root = Root(a, b, c) discriminant = root.getDiscriminant() if discriminant < 0: print("该方程无实数根") elif discriminant == 0: root1 = root.getRoot1() print("该方程有一个根:{}".format(root1)) else: root1 = root.getRoot1() root2 = root.getRoot2() print("该方程有两个根:{}和{}".format(root1, root2))更改错误
时间: 2023-12-23 10:02:05 浏览: 172
这段代码是一个求解一元二次方程根的程序。在使用时,需要先输入方程的三个系数 a、b、c,然后程序会根据判别式的值来判断方程有几个实数根,并输出根的值。
不过在代码中有一处错误,即 `getRoot1` 和 `getRoot2` 方法中的根公式应该是 $(-b\pm\sqrt{b^2-4ac})/(2a)$,而不是 $(-b\pm\sqrt{b^2+4ac})/(2a)$。正确的代码如下:
```
class Root:
def __init__(self, a, b, c):
self.a = a
self.b = b
self.c = c
def getDiscriminant(self):
return self.b**2 - 4 * self.a * self.c
def getRoot1(self):
discriminant = self.getDiscriminant()
if discriminant < 0:
return None
else:
return (-self.b + discriminant ** 0.5) / (2 * self.a)
def getRoot2(self):
discriminant = self.getDiscriminant()
if discriminant < 0:
return None
else:
return (-self.b - discriminant ** 0.5) / (2 * self.a)
a = float(input("请输入a的值: "))
b = float(input("请输入b的值: "))
c = float(input("请输入c的值: "))
root = Root(a, b, c)
discriminant = root.getDiscriminant()
if discriminant < 0:
print("该方程无实数根")
elif discriminant == 0:
root1 = root.getRoot1()
print("该方程有一个根:{}".format(root1))
else:
root1 = root.getRoot1()
root2 = root.getRoot2()
print("该方程有两个根:{}和{}".format(root1, root2))
```
阅读全文