计算机语言课教学中,要编程来解决一系列的数列求和问题。例如:求
1+2+3+4+……+100;1+1/2+1/3+……+1/100
1+2+1+2+3+1+2+3+4+……1+2+3+……100等等。学生对这类问题普遍感到难于掌握。为此,我把学生学过的数学知识运用于程序设计中,总结出一个编程求解数列和的通用程序,供大家参考。
以 2+4+6+……100的和为例,用BASIC可编程如下:
S=0
FOR N=1 TO 50
(1)
S=S + 2 * N
(2)
NEXT N
PRINT S
END
先分析数列 {2、4、6、……、100},它的项数:N=50,通项:an =2 * N
请看上面程序:在(1)中填入的恰好是数列的项数:50; 在(2)中填入的恰好是数列的通项:2 * N,于是得到一个求数列和的通用程序框架:
S=0
FOR N=1 TO (1)
S=S + (2)
NEXT N
PRINT S
END
结论:当拿来一个欲求和数列,先求出它的项数N和通项表达式 an (用“N”表示的)。然后,将 N 与 an 的值分别嵌入上面(1),(2)两处,则程序完成。
例如:欲求以下数列和
(1) 1* 2、 2* 3、……、50 * 51
(N=50,an=N*(N+1))
(2) 1/2、2/3、……、98/99、99/100
(N=99, an=N/(N+1))
(3)1+2、1+2+3、1+2+3+4、……、1+2+3+……+100
(N=99, an=((N+1)(N+2))/2) ……
则只需将各数列N与 an 值分别嵌入程序框架的(1),(2)处即可。此程序在 GWBASIC .QBASIC中均通过。
(黑龙江省财贸学校计算机教研室
佟林 157011)