已知b≠0,用公式法解方程ax2+bx+c=0,并要求输出它的实根.
答案:思路分析:输入三个实数a,b,c,先判断a是否为零,若不为零,则通过判断判别式来求实根.程序框图如图1-2-12所示.图1-2-12程序步骤如下:input a,b,cd=b^2-4*a*c;p=-b/(2*a);q=sqrt(ABS(d))/(2*a);if a=0print(%io(2),“yuan fang cheng bu shi yi yuan er ci fang cheng”);x=-c/b;print(%io(2),x);elseif d>=0 x1=p+q;x2=p-q;print(%io(2),x1,x2); elseprint(%io(2),“yuan fang cheng wu shi gen”); end end点评:①当a=0时,输出“不是一元二次方程”;②当b2-4ac>0时,求得并输出两个不相等实根;③当b2-4ac=0时,求得并输出两个相等实根;④当b2-4ac<0时,输出“无实数根”.由于需要分情况讨论,故采用条件结构画出流程图,应用条件语句写出程序.本例在前例的基础上加了条件,需要判断a是否为零.例6、例7这两个题放在一起对于锻炼我们的思维能力很有好处,两个题目的巧妙之处在于一个告诉了是一元二次方程,而另一个需要判断是否为一元二次方程,这一点正是我们容易忽略的地方.