|
【实训目的】综合运用本章技能求解一元二次方程
【第 1 步】实训内容介绍
1. 实训内容介绍
2. 编写程序
3. 实训结束
【Jitor 校验第 1 步】我已阅读实训内容介绍 // 送分题。直接点击。
【第 2 步】编写程序
1、在项目 cpp3 中创建一个源文件,文件名自定(也可以用已有的文件)。如果项目不存在,则先创建项目,然后创建源代码文件。
2、将下述代码复制到你的文件中:
#include <iostream.h>
void main(void) {
}
然后编写一个程序,求解一元二次方程,代码自行设计和编写,只检查结果是否正确。对于如下的一元二次方程式:
ax² + bx + c = 0
求解的公式如下:
________
-b±√(b²-4ac)
x = ——————
2a
运行结果如下:
Input a,b,c: 0 0 5
{方程无解}
Press any key to continue
Input a,b,c: 0 2 4
{方程的单根}:{-2}
Press any key to continue
Input a,b,c: 2 4 2
{相等实根}:{-1}
Press any key to continue
Input a,b,c: 1 4 2
{不相等实根}:{-0.585786,-3.41421}
Press any key to continue
Input a,b,c: 3 4 2
{共轭复根}:{-0.666667+0.471405i,-0.666667-0.471405i}
Press any key to continue
上述输出对应以下各种情况:
1、a = 0 并且 b = 0 时,输出 {方程无解}
2、a = 0 并且 b ≠ 0 时,输出 {方程的单根}
3、a ≠ 0 并且 b2 - 4 a c = 0 时,输出 {相等实根}
4、a ≠ 0 并且 b2 - 4 a c > 0 时,输出 {不相等实根}
5、a ≠ 0 并且 b2 - 4 a c < 0 时,输出 {共轭复根}
其中要用到数学库函数 math.h 中的 sqrt() 函数和 fabs() 函数,前者是求平方根,后者是求浮点数的绝对值。
代码如下:
// 从下一行开始复制。
#include <iostream.h>
#include <math.h>
void main(void) {
double a, b, c, d, e, x1, x2;
cout << "Input a,b,c: ";
cin >> a >> b >> c;
d = b*b-4*a*c;
if(a==0 && b==0){
cout << "{方程无解}\n";
}else if(a==0 && b!=0){
x1 = -c/b;
cout << "{方程的单根}:{" << x1 << "}\n";
}else if(a!=0 && d==0){
x1 = (-b)/(2*a);
x2 = x1;
cout << "{相等实根}:{" << x2 << "}\n";
}else if(a!=0 && d>0){
e = sqrt(d);
x1 = (-b+e)/(2*a);
x2 = (-b-e)/(2*a);
cout << "{不相等实根}:{" << x1 << "," << x2 << "}\n";
}else if(a!=0 && d<0){
x1 = -b/(2*a);
x2 = sqrt(-d)/(2*a);
cout << "{共轭复根}:";
cout << "{" << x1 << "+" << fabs(x2) << "i" << ",";
cout << x1 << "-" << fabs(x2) << "i" << "}\n";
}
}
// 一直复制到上一行结束。
【Jitor 校验第 2 步】 // 复制上面的代码到VC++ 6.0,保存并运行。点击。
【第 3 步】实训总结
本次实训是所学知识的综合运用。
【Jitor 校验第 3 步】我已阅读实训总结 // 送分题。直接点击。
仍有疑问 ? 联系QQ 9429444(陈海云) : 返回首页 |