设计一个类Root来计算ax2+bx+c=0的根。该类包括:a、b、c共3个属性表示方程的3个系 数,getDiscriminant()方法返回b2-4ac,getRoot1()和getRoot2()返回方程的两个根。 其中,getRoot1()返回的根对应:
时间: 2024-02-01 20:14:25 浏览: 102
该类可以设计如下:
```python
import math
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 + math.sqrt(discriminant)) / (2 * self.a)
def getRoot2(self):
discriminant = self.getDiscriminant()
if discriminant < 0:
return None
else:
return (-self.b - math.sqrt(discriminant)) / (2 * self.a)
```
在这个类中,我们首先定义了三个属性a、b、c来表示方程的三个系数。然后,我们定义了getDiscriminant()方法来计算方程的判别式b^2-4ac。最后,我们定义了getRoot1()和getRoot2()方法来计算方程的两个根。如果方程无解,则返回None。
其中,getRoot1()方法返回的是在求根公式中加号前面的根,即:
$$x_1 = \frac{-b + \sqrt{b^2 - 4ac}}{2a}$$
而getRoot2()方法返回的是在求根公式中减号前面的根,即:
$$x_2 = \frac{-b - \sqrt{b^2 - 4ac}}{2a}$$
阅读全文