《第八课循环结构一》由会员分享,可在线阅读,更多相关《第八课循环结构一(3页珍藏版)》请在金锄头文库上搜索。
1、第八课 循环结构一一、 问题:开始输入ni=n?结束yni1s0输出sii+1ss+i图1如果计算机在运行如图1所示的流程所描述的算法时,若n的输入值为100,分析变量i,s 的变化,说出s的最后的输出值。分析:只是一个循环结构的算法,这个问题的关键在于理解这个循环结构,这个循环由i=n 组成了循环的条件,由ss+i和 ii+1两个操作组成了循环体,分析循环结构的算法或程序,关键在于分析循环体内的变量变化情况,很显然,这个循环中的规律是这样的:每进入一次循环体,就会将i的值累加到S变量中,而后i变量的值自身增加1,通常我们将s=s+i这样的语句称为累加器,而把i=i+1这样的语句称为计数器。用
2、于累加的变量s的初始值是0,第一次进入循环体的i是1,自然满足循环条件,进入循环,循环体中把1加到s中去,然后i增1变成2,也满足循环条件,进入循环,然后将2加入到s中is10+1=121+2=331+2+3=641+2+3+4=10.991+2+99=49501001+2+100=5050表1这样每次进入循环中的i分别是1、2、3、100,每次进入的i都被加到S里面去,当i的值为101的时候不符合循环条件,退出循环。那么这个时候i的数值当然是101,而s的数值是1+2+100的累加和,即5050。 数据的变化如表1所示。 由于N的任意性,上述的算法的能完成计算1+2+3+n的和。二、算法的实
3、现界面设计如图2所示我们容易实现红框外的流程图代码:private Sub command1_click()Text2Command1Text1图2 Dim s, i, n As Long n = Val(Text1.Text) s = 0图1的红框流程实现代码Text2.Text = Str(s)End SubTF图3条件表达式循环体的语句块那么图1红框代码怎样实现呢?这就要用到VB的循环语句VB中最常见的循环语句有两种:1Do 语句 Do语句格式:Do While 条件表达式语句块(循环体)LoopDo 语句的执行过程是:先计算条件表达式的值,如果值为True,则执行一次循环体中的语句块,
4、遇到loop后再次计算条件表达式的值,若仍true,继续执行循环体中的语句块,如此不断重复,知道条件表达式的值为False时,才终止Do语句的执行,具体执行的流程参见图3。针对于本课的问题中红框内的流程,用Do 语句实现的代码就是:i=1 Do while i=2 and i=8 if s mod i 0 then s=s+2 else s=s+i end if i=i+2 loop这段代码运行后s=_ 。(5)dim s,I,n AS Integer s=2 For i=1 to 5 step 2 if si then s=s+i end ifNext i这段代码运行后s=_ 。(4)dim x,i as integer x=1for i =1 to 10 step 2 if i mod 2 = 0 then x= x+1next i这段代码运行后x=_ 。(2)S=0For i=5 to -3 step -6S=s+iNext i这段代码运行后S= i= (1)K=0i=-3Do while i3K=k+1i=i+2Loop这段代码运行后K= i= (3) s=1 For i=10 to 8 step -1 S=s*i Next i这段代码运行后s=_ 。读程序,写答案