问题 解答题

设计一个求解一元二次方程ax2+bx+c=0的算法,并画出程序框图表示.

答案

程序框图如下:

算法分析:我们知道,若判别式Δ=b2-4ac>0,则原方程有两个不相等的实数根

x1=,x2=

若Δ=0,则原方程有两个相等的实数根x1=x2=

若Δ<0,则原方程没有实数根.也就是说,在求解方程之前,可以先判断判别式的符号,根据判断的结果执行不同的步骤,这个过程可以用条件结构实现.

又因为方程的两个根有相同的部分,为了避免重复计算,可以在计算x1和x2之前,

先计算p=,q=.

解决这一问题的算法步骤如下:

第一步,输入3个系数a,b,c.

第二步,计算Δ=b2-4ac.

第三步,判断Δ≥0是否成立.若是,则计算p=,q=;否则,输出“方程没有实数根”,结束算法.

第四步,判断Δ=0是否成立.若是,则输出x1=x2=p;否则,计算x1=p+q,x2=p-q,并输出x1,x2.

单项选择题
单项选择题