参考答案:
(1)S (2) x/n (3)T<0.00001 (4) S+T (5)n+1→n
详细解析:
本题属于简单的数值计算应用。
人们经常需要近似计算初等函数的值。在计算机内部,近似计算初等函数的值最常用的方法就是将初等函数按幂级数展开,再计算前若干项的和,直到计算误差满足要求为止。
在设计算法时应考虑,对于自变量的大致范围,如何展开级数,使级数收敛的速度比较快,在计算过程中,怎样估计计算的误差是否己经满足要求。
由于初等函数在计算机中需要频繁使用,因此设计高效率的算法非常重要。这种精益求精的设计是全世界许多专家已经反复探索并实现了的。
对于一般程序员来说,只要求基本的、正确的算法设计,并实现编程就可以了。
本题中,为了计算指数函数ex的值,已经给出了基本的算法,以及计算过程中控制误差终止计算的方法。本题主要的重点是如何设计计算流程,实现级数前若干项的求和,以及判断终止计算的条件。
级数求和通常采用逐项累加的方法。设S为累加的结果,T为动态的项值,那么,S+T→S就能完成各项的累加。
由于本题中T= xn/n!,如果每次都直接计算该项的值,则计算量会很大。这种项的特殊性表明,后一项与前一项有简单的关系Tn=Tn-1*x/n。充分利用前项的计算结果则会大大减少计算量。这是程序员需要掌握的基本技巧。
本题的流程图中,一开始先输入自变量x,接着对一些变量赋初值。变量n与T需要赋初值,对变量S也应赋初值。级数项号n的初值为1,逐次进行累积的T也应有初值1,逐次进行累加的S则应有初值0或级数第1项的值1。从随后的流程看,S应有初值1,本题(1)处填S。
项值T的累积公式应是T*x/n→T,所以本题中(2)处应填x/n 。
流程图中(3)处为判断计算过程结束的条件,按照题中的要求,当T<105时计算过程结束,因此,(3)处应填T<0.00001。
流程图中(4)处需要累加S,实现S+T→S,因此,(4)处应填S+T。
流程图中(5)处应对级数的项号n进行自增,因此,(5)处应填n+1→n。