问题:如果把边长都是有理数的三角形称作“有理三角形”,编程计算“有理三角形”的面积(有理数或带根号的无理数,不是浮点数)。
关键点分析:根号中的底化成最简分数,然后分子乘分母留在根号里,分母移到根号外。
第一步、输入三边,用两小边之和大于第三边来做判断数据的合法性。首先定义一个函数输入1个正分数(这样可以重复利用代码,减少代码长度):
;然后定义一个检查三角形三边合法性函数(利于阅读理解程序):
;
最后,编写第一步主体代码:
。
第二步、根号的底的整式运算,并化成最简分数。这里使用秦九韶公式进行整式运算,采用分数形式,系统自动化简:
;
编写主体程序代码:
。
第三步、把分母移除根号外,化成整数开方,只需编写主体程序:
。
第四步、化成整式或最简根式,为了缩短开发时间,引入第二十一课的SquareRoot类:
;编写主体程序代码:
。
为了程序能不断提供服务,把主体代码放在永久循环之中,程序框架:
。
课本计算题运算打印结果:
。
练习题1:把程序组合成完整的程序输入电脑自己算一算。
练习题2:改用海伦公式改编程序并运行,对比结果。