.定义一个函数fun(),判断一元二次方程根的情况;(有相等实根、有不等实根或无实根)。在调用程序中,输入一元二次方程的系数a,b,c,调用fun()函数输出方程根的情况。
时间: 2024-02-26 15:58:05 浏览: 36
好的,下面是实现这个功能的Python代码:
```python
def fun(a, b, c):
delta = b * b - 4 * a * c
if delta > 0:
print("方程有两个不等实根")
elif delta == 0:
print("方程有一个相等实根")
else:
print("方程无实根")
a = float(input("请输入二次项系数a:"))
b = float(input("请输入一次项系数b:"))
c = float(input("请输入常数项系数c:"))
fun(a, b, c)
```
在这个代码中,我们定义了一个名为`fun`的函数。该函数接收三个参数`a`、`b`和`c`,分别表示一元二次方程的三个系数。函数中首先计算方程的判别式`delta`,然后根据`delta`的值输出相应的结果。
在调用程序中,我们首先通过`input`函数获取用户输入的三个系数`a`、`b`和`c`,然后调用`fun`函数输出方程根的情况。
相关问题
8. 编写一个函数,求一元二次方程的根。
def quadratic(a, b, c):
"""
求解一元二次方程的根
:param a: 二次项系数
:param b: 一次项系数
:param c: 常数项
:return: 两个解的元组,如果没有实数解,返回None
"""
delta = b ** 2 - 4 * a * c
if delta < 0:
return None
elif delta == 0:
return (-b / (2 * a),)
else:
x1 = (-b + delta ** 0.5) / (2 * a)
x2 = (-b - delta ** 0.5) / (2 * a)
return (x1, x2)
C++求一元二次方程的根,有两种分情况,有两个不等的实根和有两个相等的实根
在C++中,求解一元二次方程的一般形式是ax^2 + bx + c = 0时,确实需要考虑两种情况:当判别式Δ = b^2 - 4ac > 0时,方程有两个不相等的实根;当Δ = 0时,方程有两个相等的实根。
**两种情况的处理**:
1. **两个不等的实根**:
当判别式大于零时,我们可以使用上面提到的求根公式:
```cpp
double x1 = (-b + std::sqrt(b*b - 4*a*c)) / (2*a);
double x2 = (-b - std::sqrt(b*b - 4*a*c)) / (2*a);
```
这里`std::sqrt`用于计算平方根,确保结果是正数。
2. **两个相等的实根**:
判别式等于零时,方程只有一个根,即x1=x2:
```cpp
double x = -b / (2*a);
```
**完整的函数实现**:
```cpp
#include <iostream>
#include <cmath>
void quadraticEquation(double a, double b, double c, double& x1, double& x2) {
double discriminant = b * b - 4 * a * c;
if (discriminant > 0) {
x1 = (-b + std::sqrt(discriminant)) / (2 * a);
x2 = (-b - std::sqrt(discriminant)) / (2 * a);
} else if (discriminant == 0) {
x1 = x2 = -b / (2 * a);
} else {
// 处理复数根,这通常涉及到复数运算,但这里仅作为理论说明
std::complex<double> sqrtDiscriminant(std::sqrt(-discriminant), 0);
x1 = complex<double>(-b, 2 * a * sqrtDiscriminant).real() / (2 * a);
// 复数根通常是成对出现,但实际应用中可能只取一个
x2 = x1;
}
}
int main() {
double a, b, c;
std::cout << "请输入a, b, c的值:" << std::endl;
std::cin >> a >> b >> c;
double x1, x2;
quadraticEquation(a, b, c, x1, x2);
if (std::abs(x1 - x2) < 1e-9) {
std::cout << "方程有唯一实根 x = " << x1 << std::endl;
} else {
std::cout << "方程有两个实根 x1 = " << x1 << ", x2 = " << x2 << std::endl;
}
return 0;
}
```