知方号

知方号

c++ 求解一元二次方程 全面考虑实根和虚根的情况<一元二次方程求解程序>

题目

求解一元二次方程。 一元二次方程的定义为: ax2+bx+c=0 (1)如果b2 -4ac>0,方程有两个不同的实根,分别是: (2)如果b2 -4ac< 0,方程没有实根,但有虚根; (3)如果b2 -4ac= 0,方程有一个实根。 请你编写一个程序,使其能求出多个二次方程的根。该程序要询问用户是否想继续解下一个方程。用户输入1来继续,输入其它数字,则终止程序。程序要求用户输入a,b和c,然后根据前面的条件计算,并输出答案。 要求:使用类实现, (1)a,b,c为该类的私有成员变量; (2)求根的实现为该类的成员函数,形式为:

//函数返回值:实根的个数;//参数:x- 用以返回实根值的数组;long CalResult(float x[]);

(3)该类还包含有参构造函数、析构函数。 (4)使用MFC工程实现,可酌情加分。

问题描述

题中要求我们编写一个程序,使其能求出多个二次方程的根,并要询问用户是否想继续解下一个方程,用户输入1来继续,输入其它数字,则终止程序。该程序还要求用户分别输入一元二次方程各项的系数a,b和c,然后经过计算,输出答案。

问题分析

对于本题,除了要从数学角度来解一元二次方程,还要用计算机语言表示出来。所以我们应定义一个求解类FindRoot,并使一元二次方程各项系数a,b,c为该类的私有成员变量,按照题中要求,求根的实现为该类的成员函数,其形式为long CalResult(float x[]),而询问客户是否继续计算一元二次方程则放在主函数部分。 但是在编写函数的过程中要注意两点: 1.当a = 0时的情况要考虑进去。 2.当Δ0时,方程有两个不相等的实根 (2)当Δ=0时,方程有两个相等的实根x1=x2=(-b)/(2a),即一个实根; (3)当Δ 0){n = 2;x[0] = (-b + sqrt(m)) / 2 * a;x[1] = (-b - sqrt(m)) / 2 * a;cout

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。