【实训3-28】综合实训(四)求解一元二次方程
(总分11)


 【实训目的】综合运用本章技能求解一元二次方程   

【第 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(陈海云) : 返回首页