2.为一元二次方程ax2+bx+c=0设计一个名为Equation的类。这个类包括: ①代表三个系数的私有属性a、b、c; ②为a,b和c赋值的初始化方法; ③获取a、b、c的三个get方法; ④一个名为getDisermnant()的方法,其返回判别式b2-4ac; ⑤两个分别为getRoot1()和getRoot2()的方法,其返回方程的两个根。 , 注意,如果判别式为负,这两方法返回0。
时间: 2024-02-20 11:59:28 浏览: 69
好的,以下是Equation类的代码:
```python
class Equation:
def __init__(self, a, b, c):
self.__a = a
self.__b = b
self.__c = c
def get_a(self):
return self.__a
def get_b(self):
return self.__b
def get_c(self):
return self.__c
def get_discriminant(self):
return self.__b ** 2 - 4 * self.__a * self.__c
def get_root1(self):
discriminant = self.get_discriminant()
if discriminant < 0:
return 0
else:
return (-self.__b + discriminant ** 0.5) / (2 * self.__a)
def get_root2(self):
discriminant = self.get_discriminant()
if discriminant < 0:
return 0
else:
return (-self.__b - discriminant ** 0.5) / (2 * self.__a)
```
这个类中,a、b、c是私有属性,可以通过get_a()、get_b()、get_c()方法进行获取。get_discriminant()方法用于计算判别式b2-4ac,get_root1()和get_root2()方法分别用于计算方程的两个根。若判别式为负,则返回0。
你可以使用以下代码进行测试:
```python
eq = Equation(1, -5, 6)
print("a = ", eq.get_a())
print("b = ", eq.get_b())
print("c = ", eq.get_c())
print("Discriminant = ", eq.get_discriminant())
print("Root 1 = ", eq.get_root1())
print("Root 2 = ", eq.get_root2())
```
输出结果为:
```
a = 1
b = -5
c = 6
Discriminant = 1
Root 1 = 3.0
Root 2 = 2.0
```
阅读全文