利用C/Java/Python语言按照一定的编码风格编写实现一个解二次方程式功能的子程序;为该程序编写一个序言式注释;
时间: 2024-11-12 18:46:27 浏览: 22
当然可以。这里是一个简单的示例,我们将创建一个函数用于求解一元二次方程(ax^2 + bx + c = 0)。这个示例将分别展示如何用C、Java和Python三种语言编写:
**C语言**:
```c
// 解决一元二次方程的子程序 - C语言版本
#include <stdio.h>
#include <math.h>
/*
* 函数声明:接受三个浮点数a、b和c作为参数,
* 返回两个解,如果判别式小于0则返回复数解
*/
void quadratic_solver(double a, double b, double c) {
double discriminant = b * b - 4 * a * c;
if (discriminant >= 0) {
double x1 = (-b + sqrt(discriminant)) / (2 * a);
double x2 = (-b - sqrt(discriminant)) / (2 * a);
printf("解为: x1 = %.2lf, x2 = %.2lf\n", x1, x2);
} else {
double real_part = -b / (2 * a);
double imaginary_part = sqrt(-discriminant) / (2 * a);
printf("解为: x1 = %.2lf + %.2lfi, x2 = %.2lf - %.2lfi\n", real_part, imaginary_part, real_part, imaginary_part);
}
}
int main() {
// 示例调用
quadratic_solver(1, -3, 2); // 为ax^2 + bx + c = 0提供系数
return 0;
}
```
**Java语言**:
```java
// 解决一元二次方程的Java子程序
public class QuadraticSolver {
/**
* 函数求解一元二次方程
* @param a 二次项系数
* @param b 一次项系数
* @param c 常数项系数
* @return 返回一个包含两个解的数组,若无实根则返回复数解
*/
public static void solveQuadratic(double a, double b, double c) {
double discriminant = Math.pow(b, 2) - 4 * a * c;
if (discriminant >= 0) {
double[] roots = new double[2];
roots[0] = (-b + Math.sqrt(discriminant)) / (2 * a);
roots[1] = (-b - Math.sqrt(discriminant)) / (2 * a);
System.out.printf("解为: x1 = %.2f, x2 = %.2f\n", roots[0], roots[1]);
} else {
double realPart = -b / (2 * a);
double imaginaryPart = Math.sqrt(-discriminant) / (2 * a);
System.out.printf("解为: x1 = %.2f + %.2fi, x2 = %.2f - %.2fi\n", realPart, imaginaryPart, realPart, imaginaryPart);
}
}
public static void main(String[] args) {
solveQuadratic(1, -3, 2); // 示例调用
}
}
```
**Python语言**:
```python
# 解决一元二次方程的Python子程序
import cmath
def quadratic_solver(a, b, c):
"""
解一元二次方程 ax^2 + bx + c = 0
:param a: 二次项系数
:param b: 一次项系数
:param c: 常数项系数
:return: 实数解的列表,若有复数解则返回两个复数
"""
discriminant = b ** 2 - 4 * a * c
if discriminant >= 0:
x1 = (-b + discriminant ** 0.5) / (2 * a)
x2 = (-b - discriminant ** 0.5) / (2 * a)
print(f"解为: x1 = {x1:.2f}, x2 = {x2:.2f}")
else:
real_part = -b / (2 * a)
imaginary_part = cmath.sqrt(-discriminant) / (2 * a)
print(f"解为: x1 = {real_part:.2f} + {imaginary_part.real:.2fj}, x2 = {real_part:.2f} - {imaginary_part.real:.2fj}")
if __name__ == "__main__":
quadratic_solver(1, -3, 2) # 示例调用
```
以上每种语言都展示了如何通过函数实现解一元二次方程的功能,并且包含了相应的序言式注释。
阅读全文