题目内容
写出求方程ax2+bx+c=0的根的算法,画出相应的程序框图,并要求输出它的实根.
思路分析:主要考查含参问题的讨论方法及条件嵌套结构的应用.输入三个实数a,b,c,先判断a是否为零,当a≠0时,是一元二次方程,则通过判断判别式来求实根.当a=0,b≠0时,不是一元二次方程,可用一元一次方程的解法来解.
解:当a≠0时,令Δ=b2-4ac,当Δ<0时,方程无实数根;
当Δ≥0时,方程有两个实数根x1=
,x2=
.
当a=0时,再考虑b:若b≠0,则方程的根为x=
;
当b=0时,再考虑c:当c≠0时,方程无根;
当c=0时,方程的解是全体实数.
算法步骤如下:
第一步,输入a,b,c.
第二步,如果a≠0,执行第三步,如果a=0,执行第七步.
第三步,Δ=b2-4ac.
第四步,如果Δ<0,输出“方程无实数根”,如果Δ≥0,执行第五步.
第五步,x1=
,x2=
.
第六步,输出x1,x2.第七步,如果b≠0,执行第八步,如果b=0,执行第十步.
第八步,x=
.第九步,输出x.
第十步,如果c≠0,输出“方程无实根”;
如果c=0,输出“方程的根为全体实数”.
该算法的程序框图如图1-1-14所示:
![]()
图1-1-14
巧妙变式:形如ax2+bx+c=0的方程的求解问题要先定a,分a=0和a≠0两种情况讨论,a≠0要分Δ≥0与Δ<0两种情况讨论,a=0要分b=0和b≠0两种情况讨论,当b=0时再分c=0和c≠0两种情况讨论,一定要做到不重不漏,可按下图来记忆:![]()
共五种情况,因而程序框图中有五个输出框.
变式:写出解方程x2-2x-3=0的一个算法.
算法一:
1.将方程左边因式分解,得(x-3)(x+1)=0;①
2.由①得x-3=0,②
或x+1=0;③
3.解②得x=3,解③得x=-1.
算法二:
1.移项,得x2-2x=3;①
2.①式两边同加1并配方,得(x-1)2=4;②
3.②式两边开方,得x-1=±2;③
4.解③式得x=3或x=-1.
算法三:
1.计算方程的判别式并判断其符号Δ=22+4×3=16>0;
2.将a=1,b=-2,c=-3,代入求根公式,得x1,2=
,得x1=3,x2=-1.
评析:本例是给ax2+bx+c=0中的a,b,c分别赋予数值1,-2,-3.比较三种算法,算法三更简单,步骤最少,由此我们只要有公式可以利用,利用公式解决问题是最理想、合算的算法.因此在寻求算法的过程中,首先是利用公式.