1、 1 高三算法复习八(循环语句)高三算法复习八(循环语句) 循环的两点本质:循:遵循一定规律环:周而复始 1、For-Next 循环格式 For 循环变量=初值 To 终值 Step 循环变量增量 循环体 Nxt 循环变量 2、Do-Loop 循环格式 For-Next 循环的次数是确定的,但是有的问题只知道循环结束的条件,重复执行的次数事 先并不知道,这是需要 Do-Loop 循环 格式一: Do While 条件 循环体 Loop 格式二: Do 循环体 Loop Until 条件 3、小张想为“希望工程”尽一份力,他在第一个月存入 1 元钱,第二个月存入 2 元钱, 第三个月存入 3 元
2、钱依此类推,那么三年后,小张能为“希望工程”存多少钱? 操作提示 (1)分析问题,确定解决问题的方法。 假设存入的钱的总数是 Sum,则有: 第 1 个月:Sum=1 Sum1=1 第 2 个月:Sum=1+2 即 Sum2=Sum1+2 第 3 个月:Sum=1+2+3 即 Sum3=Sum2+3 第 36 个月:Sum=1+2+36 或 Sum= 由以上分析可知,这是一个累加问题,可以用循环累加的方法来解决。 (2)使用流程图描述算法。 开始 sum0:i0 i=36 输出输出 Sum 结束结束 sumsum+i ii+1 2 (3)请完善下面的程序代码。(在右边写出同样功能的 do 语句
3、) Private Sub Command1_Click() sum=0 for i=1 to 36 print sum next End Sub 4、求 s=1!+2!+3!+-+10! (1)分析问题,确定解决问题的方法。 比较:s=1+2+3+-10 i=1: s1=1 i=2: s2=s1+2 i=3: s3=s2+3 - i=10: s10=s9+10 由以上分析可知,这是一个累加问题,同样可以用循环累加的方法来解决。只是这里的每一 累加项不是简单的 1 to i,但与 i 有关联。关键是找到每一累加项与循环变量 i 的关联,即用 i(循环变量)来表示每一累加项。 (2)表达每一累加
4、项(t) i=1: t1=1 i=2: t2=t1*2 i=3: t3=t2*3 - i=10: t10=t9*10 (3) (3)请把上述计算 s 的代码补充完整。 Private Sub Command1_Click() s=0:t=1 for i=1 to 10 print s next End Sub 5、以下Visual Basic程序的功能是: 计算表达式1+2+22+23+24+25+26+27+28+29+210的值, 并在文本框Text1中输出结果。为了实现这一功能,程序中划线处的语句应更正为 _。 Private Sub Command1_Click() Dim i As
5、Integer,s As Long 3 s = 0 k = 2 For i= 1 To 10 s = s + k k = k * 2 Next i Text1.Text=Str(s) End Sub 以上程序段如果s=0,k=2不改,那后面的程序代码如何改?完整的写在右边。 6、下列Visual Basic程序的功能是:计算表达式1 2+42+72+972的值,并在文本框Text1 中输出表达式的值。为了实现这一目标,程序中划线处填空。 Private Sub Command1_Click() Dim sum As Long Dim i As Integer sum = 0 For i =1
6、To 97 Step sum = sum + Next i Text1.Text = Str(sum) End Sub 7、以下Visual Basic程序的功能是: 计算表达式1+2+4+8+16+32+1024的值,并在文 本框Text1中输出结果。 为了实现这一功能, 程序中划线处的语句应更正为_。 Private Sub Command1_Click() Dim a As Integer, s As Long s = 0 a = 1 Do While a = 1024 s = s + a a = a + 2 Loop Text1.Text=Str(s) End Sub 8、以下Visu
7、al Basic程序的功能是: 找出自然数1-100之间被3整除的数, 并在文本框Text1 中输出这些数的累加和。为了实现这一功能,程序中划线处的语句应更正为 _。 4 Private Sub Command1_Click() Dim i As Integer, sum As Integer sum = 0 For i = 1 to 100 If i Mod 3=0 Then sum = sum + 3 Next i Text1.Text=Str(sum) End Sub 9、某学生说他的年龄不低于10岁,且他的年龄减去10,平方以后得到的一个数,恰好是 他的年龄加上10,问他的年龄多大?
8、设这位学生年龄为y,他年龄减去10的平方为r,则r=(y-10) 2,则y满足的表达式为: (y - 10) 2=y + 10 解决此问题的算法流程图如图VB-1所示,相应的Visual Basic程序如下,在(1)和(2) 划线处,填入合适的语句或表达式,把程序补充完整。 Private Sub Command1_Click() Dim y As Integer, r As Integer y = 10 r = (y - 10) 2 Do While r = (y - 10) 2 Loop Text1.Text = Str(y) End Sub 10、编程解决:随机产生 10 个 1100 之间(不包含 1 和 100)的整数,并求出这 10 个数 的和,请写出主要程序代码。