为二次方程式 ax^2+bx+c=0设计一个名为Equation 的类,这个类包括: * 代表3个系数的成员变量a、b,c; * 一个参数为a、b、c的构造方法; * 一个名为getDiscriminant()的方法返回判别式的值; * 一个名为getRoot1()和 getRoot2()的方法返回等式的两个根,如果判别式为负,这些方法返回 0,并给出主函数。python
时间: 2024-02-01 10:15:02 浏览: 36
以下是Python实现的Equation类:
```python
class Equation:
def __init__(self, a, b, c):
self.a = a
self.b = b
self.c = c
def getDiscriminant(self):
return self.b * self.b - 4 * self.a * self.c
def getRoot1(self):
discriminant = self.getDiscriminant()
if discriminant < 0:
return 0
else:
return (-self.b + discriminant ** 0.5) / (2 * self.a)
def getRoot2(self):
discriminant = self.getDiscriminant()
if discriminant < 0:
return 0
else:
return (-self.b - discriminant ** 0.5) / (2 * self.a)
if __name__ == '__main__':
eq = Equation(1, -5, 6)
print("Discriminant:", eq.getDiscriminant())
print("Root 1:", eq.getRoot1())
print("Root 2:", eq.getRoot2())
```
在主函数中,我们创建了一个名为eq的Equation对象,并调用了它的getDiscriminant、getRoot1和getRoot2方法来获取判别式的值和方程的两个根。对于给定的系数a、b、c,程序输出如下:
```
Discriminant: 1
Root 1: 3.0
Root 2: 2.0
```
这意味着,对于二次方程式x^2 - 5x + 6 = 0,它的判别式是1,同时它的两个根是3和2。