为一元二次方程ax^2+bx+c=0设计一个类名为Equation的类,这个类包括: 1)代表3个系数的成员变量a, b, c; 2)一个名为getDiscriminant()的方法返回判别式的值; 3)一个名为getRoot1和getRoot2的方法返回等式的两个根,如果判别式为负,这些方法返回0.写程序
时间: 2024-03-16 10:48:02 浏览: 153
用Java编写程序,求一元二次方程ax²+bx+c=0的根(系数在程序中给定),并输出。
好的,根据您的要求,我为您设计了一个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)
```
上述代码中,我们定义了一个Equation类,它包括三个成员变量a、b、c,以及三个方法getDiscriminant、getRoot1和getRoot2。
其中,getDiscriminant方法用于计算判别式的值,即b^2 - 4ac;getRoot1和getRoot2方法用于返回方程的两个根,具体计算方式为:
- 当判别式小于0时,返回0;
- 当判别式大于等于0时,根据求根公式计算出根的值并返回。
您可以在程序中创建一个Equation类的实例,然后调用其方法来计算一元二次方程的根。例如:
```python
eq = Equation(1, -5, 6)
print(eq.getDiscriminant()) # 输出:1
print(eq.getRoot1()) # 输出:3.0
print(eq.getRoot2()) # 输出:2.0
```
上述代码中,我们创建了一个Equation类的实例eq,代表一元二次方程x^2 - 5x + 6 = 0。然后,我们分别调用了eq的getDiscriminant、getRoot1和getRoot2方法来计算判别式和方程的两个根,并输出了它们的值。
阅读全文