(
课件网) 累加求和 第四课 [前情回顾] 上一节课,我们为了减少程序中命令的重复,优化算法,学习了循环词句,大家回顾一下: For…EndFor循环语句流程图: 循环变量=初值 执行循环语句中间的语句组 循环变量增加一个步长 循环变量超过终值? 是 否 画正12边形的程序及流程图: 开始 i=1 画一条边,右转30度 i增加1 i 12 是 否 ≤ 结束 循环语句 S=12 Length=50 E=360/s For i=1 to S Step 1 Turle.Move(Length) Trutle.Turn(E) EndFor 循环变量 步长 终值 累加求和 1+2+3+4+5+6+7+8+9+10=? 2+4+6+8+10+12+14+16=? 1+2+3+4+5+6+7+┅ +89=? 1+3+5+7 +┅ +77+79=? 像这样重复做加法的过程叫累加求和 下面这些算式,大家能快速的算出来吗? 1.上面这些例子是不是有规律排列重复做加法的过程? 2. 可以用上节课学的For…EndFor循环语句吗? 一.设计算法和流程图 变量就像一个存放数据的”盒子”,因此,我们用变量sum来存放累加的结果。 1+2+3+4+┅+89 可以用如下的算法来计算: 1.先将存放数据的“盒子”清空:sum=0 2.将第一个数据“1”放入“盒子”中:sum=sum+1 3.将第2个数据“2”放入“盒子”中:sum=sum+2 4.将第3个数据“3”放入“盒子”中:sum=sum+3 …… 一直把所有的数据都放入“盒子”中, 当把所有的数据都放入了变量sum这个“盒子”中,变量sum才是我们要的结果。 sum 0 sum 1 sum 0 sum 1 sum 3 + 2 sum 6 sum 3 + 3 + 1 = = = …… 特别指出: 赋值语句“sum=sum+1”虽然看上去是一个数学等式,但它的含义与我们数学中的等式是完全不同的: 1.赋值词句的左边必须是一个变量. 2.赋值词句右边的“sum”和左边的“sum”的值是不一样的。 设计算法流程图 开始 sum=0 sum=sum+1 sum=sum+2 …… sum=sum+89 结束 顺 序 结 构 图1 开始 sum=0 i=1 i=i+1 sum=sum+i 结束 i<=89 是 否 循 环 结 构 图2 ●上面图1的流程图是顺序结构,虽然算法简单,但重复的语句很多,程序太长。如果采用图2的循环结构,程序就简洁的很多。 ●用For…EndFor循环语句可以很简单地实现图2的算法,程序如下: sum=0 For i=1 to 89 step 1 sum=sum+i EndFor 小试牛刀: ⑴2+4+6+8+10+┅+100=? ⑵1+4+7+10 +┅+51=? ⑶90+85+80+┅+20=? ⑷-1-3-5- ┅ -99=? 1.它们的步长分别是( ) 、( )、 ( )、 ( ) 2.它们的循环语句及步长分别是( ) 、( )、 ( )、 ( ) 二.显示信息 上面累加的结果算出来了,那么怎样将结果显示出来呢? 1.一个是“图形窗口”,对象名称叫“GraphicsWindow”,这个窗口既可以绘图也可以显示文字信息。 2、另一个窗口叫“文本窗口”,对象名称叫“TextWindow”,这个窗口只能显示文字信息。 ◎在Small Basic中有两个显示信息的窗口: 下面的程序在图形窗口显示1+3+5+…+79的计算结果: sum=0 For i=1 to 79 step 2 sum=sum+i EndFor GraphicsWindow.FontSize=30 GraphicsWindow.DrawText(100,80,"1+3+5…+79=" + sum) 运行程序,显示结果如图 字体大小设置 100是纵坐标,80是横坐标 +是连接符 DrawText操作格式: GraphicsWindow.DrawText(x,y,text) 作用是在坐标(x,y)显示文本text。 如果只显示文字,我们也可以将结果显示在文本窗口。例如: sum=0 For i=1 to 79 step 2 sum=sum+i EndFor TextWindow.WriteLine(“1+3+79=”+sum) 1、GraphicsWindow.DrawText(x,y,text) GraphicsWindow.DrawText(100,80, “1+2+…+89=”+ sum) 2、TextWindow.WriteLine( text ) TextWindow.WriteLine(“1+2+…+89=” + sum) 注意:1.GraphicsWindow.DrawText操作格式有坐标(x,y),而TextWindow.WriteLine没有。 2. GraphicsWindow.DrawText和TextWindo ... ...