.编写一个类,该类封装了一元二次方程共有的属性和功能,即该类有刻画方程系数的 3 个成员变量以及计算实根的方法。要求:该类的所有对象共享常数项。
时间: 2023-06-01 13:02:41 浏览: 103
以下是一个符合要求的类的代码实现:
```python
class QuadraticEquation:
a = None # 一次项系数
b = None # 二次项系数
c = None # 常数项系数
constant_term = None # 常数项
def __init__(self, a, b, c):
self.a = a
self.b = b
self.c = c
def calculate_constant_term(self):
self.constant_term = self.b ** 2 - 4 * self.a * self.c
def calculate_real_roots(self):
if self.constant_term < 0:
return None # 无实根
elif self.constant_term == 0:
return -self.b / (2 * self.a) # 一个实根
else:
root_1 = (-self.b + self.constant_term ** 0.5) / (2 * self.a)
root_2 = (-self.b - self.constant_term ** 0.5) / (2 * self.a)
return root_1, root_2
```
这个类中,`a`、`b`、`c` 分别表示一元二次方程的系数,`constant_term` 表示常数项,它是一个类变量,即所有对象共享的变量。`__init__()` 方法用于初始化对象的三个系数。`calculate_constant_term()` 方法用于计算常数项的值。`calculate_real_roots()` 方法用于计算实根,如果无实根则返回 `None`,如果有一个实根则返回一个实数,如果有两个实根则返回一个二元组。
阅读全文