资源描述
主页主页 采用循环程序可以解决一些按一定规则重复执行的问采用循环程序可以解决一些按一定规则重复执行的问题。例如,统计一个班几十名学生,甚至全校几千名学生的题。例如,统计一个班几十名学生,甚至全校几千名学生的学期成绩,如求平均分、不及格人数等学期成绩,如求平均分、不及格人数等 本章主要内容 第第5 5章章 循环结构程序设计循环结构程序设计Do.Loop For.Next退出退出循环出口语句循环出口语句(Exit)(Exit)循环语句循环语句多重循环多重循环列表框与组合框列表框与组合框常用算法常用算法程序举例程序举例主页主页 循环循环是指在指定的条件下多次重复执行一组语句是指在指定的条件下多次重复执行一组语句 被重复执行的一组语句称为被重复执行的一组语句称为循环体循环体 VB提供的循环语句有提供的循环语句有 For.NextFor.Next Do.Loop Do.Loop While.Wend While.Wend For Each.Next For Each.Next 最常用的是最常用的是For.NextFor.Next和和Do.LoopDo.Loop语句语句 假真循环体循 环 条件主页主页 For.Next循环主要是用在知道循环次数的情况下;若事先不循环主要是用在知道循环次数的情况下;若事先不知道循环次数,可以使用当型循环知道循环次数,可以使用当型循环Do.Loop 1.For.Next 1.For.Next循环语句循环语句 (计数控制计数控制)For 循环变量初值循环变量初值 To 终值终值 Step 步长值步长值 循环体循环体 Next 循环变量循环变量 2.Do While.Loop2.Do While.Loop语句语句 (条件控制条件控制)Do While|Until 条件条件 循环体循环体 Loop 5.1 循环语句循环语句 示例示例 求求S=1+2+3+8 s=0 For k=1 To 8 s=s+k Next k Print s=;s 程序运行结果如下:程序运行结果如下:s36 n=1:s=0 Do While n=8 s=s+n n=n+1 Loop Print s=;s例例5.2K K为循为循环变量环变量专设变量专设变量n n来控制循环来控制循环主页主页 例例5.2 5.2 求求S=1+2+3+8S=1+2+3+8,把结果显示在窗体上。,把结果显示在窗体上。s=0s=0 累加器初值为累加器初值为0 0 For k=1 To 8For k=1 To 8 s=s+k s=s+k 累加器,在原有和的基础上每次加一个数累加器,在原有和的基础上每次加一个数 NextNext Print s=;s Print s=;s 程序执行结果是:程序执行结果是:s s3636 分析分析 累加器累加器 s=s+kk=1k=1s s s+ks+k 0 10 1k=3k=3s s s+k s+k 1+2 3 1+2 3k=2k=2s s s+s+k k 1 21 2k=8k=8s s s+k s+k 1 1+2 2+7 7 8 8主页主页算法:通常采用重复运算来解决问题算法:通常采用重复运算来解决问题 累加、累乘等累加、累乘等 如用级数如用级数 /41-1/3+1/5-1/7+来求来求设置循环变量设置循环变量 使每次运算变量值有所不同使每次运算变量值有所不同控制循环控制循环 计数控制或条件控制计数控制或条件控制 循环结构程序的实现循环结构程序的实现求求 S=1+2+3+8 s=0 For k=1 To 8 s=s+k Next k Print s=;s 把长式子改为把长式子改为8次加次加主页主页 采用采用Print直接在窗体上输出结果,程序代码:直接在窗体上输出结果,程序代码:Private Sub Form_Load()Show t=1 For c=1 To 8 t=t*c Next c Print T=;t End Sub 程序运行结果是:程序运行结果是:T40320语句语句 t=t*c 称为乘法器。先将称为乘法器。先将t置置1(不能置不能置0)。在循环程序中,常用累加和累乘来完成各种计算任务在循环程序中,常用累加和累乘来完成各种计算任务例例5.3 求求T=8!=1238例例5.3主页主页 例例5.35.3 T=8!=123 8T=8!=123 8,把结果显示在网页上。,把结果显示在网页上。t=1t=1 累乘器初值为累乘器初值为 For c=1 To 8For c=1 To 8 t=t*c t=t*c 累乘器,在原有积的基础上每次乘一个数累乘器,在原有积的基础上每次乘一个数 NextNext Print T=;t Print T=;t 程序执行结果是:程序执行结果是:T T4032040320 分析分析c=1c=1t t t*ct*c 1 11 1c=3c=3t t t*ct*c 1*2 3 1*2 3c=2c=2t t t*ct*c 1 21 2c=8c=8t t t*ct*c 1 1*2*2*7 8 7 8累乘器累乘器 t=t*k主页主页 采用采用Print直接在窗体上输出结果,程序代码如下:直接在窗体上输出结果,程序代码如下:Private Sub Form_Load()Show Dim pi As Single,c As Integer,s As Integer pi=0 s=1 s表示加或减运算表示加或减运算 For c=1 To 10000 Step 2 pi=pi+s/c s=-s 交替改变加、减号交替改变加、减号 Next c Print=;pi*4 End Sub 程序运行结果是:程序运行结果是:3.141397 例例5.4 用用/41-1/3+1/5-1/7+级数级数求求的近似值的近似值 (取前取前5000项来进行计算项来进行计算)例例5.4主页主页 For t=1 To 3 If t=1 Then a=3 If t=2 Then a=2 If t=1 Then a=3 If t=2 Then a=2 If t=3 Then a=1 Print a;Next t Print t A.3 3 3 4 B.1 2 3 4 C.3 2 1 4 D.1 1 1 4 下列程序的运行结果是?下列程序的运行结果是?想一想想一想思考题思考题C主页主页 运行下面程序后,循环体执行了运行下面程序后,循环体执行了_次。次。i=0:n=1 Do While i 32 i=(i+1)*(i+1)n=n+1 Loop Print n A.2 B.3 C.4 D.5 请回答问题请回答问题想一想想一想思考题思考题C主页主页 s=ABCDEFGHIJ:c=For k=2 To Len(s)Step 3 a=Mid(s,k)c=c+Left(a,1)Next k Print c A.BDF B.CFI C.BEH D.BEI 下列程序的运行结果是?下列程序的运行结果是?想一想想一想思考题思考题C主页主页 采用采用Do While.Loop语句语句 采用采用Print直接在窗体上输出结果,程序代码:直接在窗体上输出结果,程序代码:Private Sub Form_Load()Dim n As Integer,s As Long Show n=1:s=0 Do While n=100 s=s+n*n n=n+1 Loop Print s=;s End Sub 程序运行结果:程序运行结果:S338350例例5.55.5 求求 S S1 12 2+2+22 2+100+1002 2例例5.5主页主页 “辗转相除法辗转相除法”算法:算法:求出求出m/n余数余数p,若,若p0,n即为即为最大公约数;若最大公约数;若p非非0,则把原来的分母,则把原来的分母n作为新的分子作为新的分子m,把,把余数余数p作为新的分母作为新的分母n继续求解继续求解 设计步骤如下:设计步骤如下:(1)创建应用程序的用户界面和设置对象属性创建应用程序的用户界面和设置对象属性例例5.7 输入两个正整数,求它们的最大公约数输入两个正整数,求它们的最大公约数例例5.7主页主页 编写的编写的“计算计算”按钮按钮Click事件过程代码如下:事件过程代码如下:Private Sub Command1_Click()Dim m As Integer,n As Integer,p As Integer m=Val(Text1.Text):n=Val(Text2.Text)If m=0 Or n=0 Then MsgBox(数据错误数据错误!)End End If Do p=m Mod n m=n n=p Loop While p 0 Text3.Text=m End Sub 若输入的若输入的m和和n的值为的值为85和和68,则运行结果如上图,则运行结果如上图主页主页 语句格式:语句格式:While While 条件条件 循环体循环体 WendWend 功能:当条件成立功能:当条件成立(为真为真)时,执行循环体;当条件不成立时,执行循环体;当条件不成立(为假为假)时,终止循环。时,终止循环。本语句与上述本语句与上述Do While.LoopDo While.Loop循环语句相似,其差别是:循环语句相似,其差别是:While.WendWhile.Wend语句中不能使用语句中不能使用ExitExit语句跳出循环。语句跳出循环。5.1.35.1.3 While.Wend While.Wend循环语句循环语句 主页主页 用于提前退出循环用于提前退出循环 格式:格式:Exit For|Do功能:直接从功能:直接从For循环或循环或Do循环中退出循环中退出 当程序运行时遇到当程序运行时遇到Exit语句时,就不再执行循环体中的任语句时,就不再执行循环体中的任何语句而直接退出,转到循环语句何语句而直接退出,转到循环语句(Next、Loop)的下面继续的下面继续执行执行 5.1.4 5.1.4 循环出口语句循环出口语句主页主页 把每次输入的数累加。当输入把每次输入的数累加。当输入-1时结束程序的运行时结束程序的运行创建应用程序的用户界面和设置对象属性创建应用程序的用户界面和设置对象属性 编写程序代码编写程序代码 Private Sub Form_Load()Show Sum=0 Do While True 条件为真,循环无终止进行下去条件为真,循环无终止进行下去 x=Val(InputBox(请输入要加入的数请输入要加入的数(-1表示结束表示结束),输入数据输入数据)If x=-1 Then Exit Do End If Sum=Sum+x Text1.Text=Sum Loop MsgBox(累加运算结束累加运算结束)End Sub 以以-1作为作为“终止循环标志终止循环标志”例例5.85.8 设计一个设计一个“加法器加法器”程序程序例例5.8主页主页 多重循环是指循环体内含有循环语句的循环多重循环是指循环体内含有循环语句的循环 例例5.9 多重循环程序示例多重循环程序示例 程序运行结果程序运行结果 Private Sub Form_Load()1 5 Show 1 6 For i=1 To 3 外循环外循环 1 7 For j=5 To 7 内循环内循环 2 5 Print i,j 2 6 Next j 2 7 Next i 3 5 End Sub 3 6 3 7 注意内、外循环层次要分清,不能交叉注意内、外循环层次要分清,不能交叉 5.25.2 多多 重重 循循 环环例例5.9主页主页 本例可采用本例可采用两重循环两重循环来实现。外循环控制输出来实现。外循环控制输出7行,内循行,内循环控制每行输出要求的字符数。环控制每行输出要求的字符数。在进入内循环之前,使用在进入内循环之前,使用Print Tab()来对起始输出位置来对起始输出位置定位,退出内循环后,使用定位,退出内循环后,使用Print来控制换行。来控制换行。例例5.105.10 编一程序,输出下列所示的图形编一程序,输出下列所示的图形例例5.10主页主页 采用采用Print直接在窗体上输出结果,程序代码如下:直接在窗体上输出结果,程序代码如下:Private Sub Form_Load()Show For i=1 To 7 Print Tab(10-i);For j=1 To 2*i-1 Print Chr(i+48);Next j Print Next i End Sub Print Chr(i+48)与与Print i有所不同有所不同主页主页 (1)分析:分析:设一元硬币为设一元硬币为a枚,二元硬币为枚,二元硬币为b枚,五元硬币枚,五元硬币为为c枚,可列出方程枚,可列出方程 a+b+c=10 a+2b+5c=25采用两重循环,外循环变量采用两重循环,外循环变量a从从010,内循环变量,内循环变量b从从010 (2)创建应用程序的用户界面创建应用程序的用户界面例例5.115.11 取一元、二元、五元的硬币共十枚,付取一元、二元、五元的硬币共十枚,付 给给2525元钱,有多少种不同的取法元钱,有多少种不同的取法?例例5.11主页主页 (3)编写程序代码编写程序代码 程序通过程序通过Print方法把处理结果输出在标签的下方。方法把处理结果输出在标签的下方。Private Sub Form_Load()Show CurrentX=0:CurrentY=1500 确定开始显示的坐标确定开始显示的坐标 Print ,五元五元,二元二元,一元一元 n=0 记录解的组数记录解的组数 For a=0 To 10 For b=0 To 10 c=10-b-a If a+2*b+5*c=25 And c=0 Then n=n+1 Print(;n;),c,b,a End If Next b,a End Sub主页主页 执行下列程序段后,变量执行下列程序段后,变量t 的值是的值是_。t=0 For x=2 To 3 n=1 Do While n=x t=t+n n=n+1 Loop Next x A.8 B.9 C.10D.11 请回答问题请回答问题想一想想一想思考题思考题B主页主页 请回答问题请回答问题想一想想一想思考题思考题显示结果为:显示结果为:16执行下列程序段后,显示的结果是执行下列程序段后,显示的结果是_ s=0 For m=1 To 4 Step 2 n=1 Do While n=m s=s+n n=n+1 Loop Next m Print s+m+n例例5.12a主页主页 5.3 列表框与组合框列表框与组合框 列表框和组合框都能为用户提供若干个选项,供用户从中任列表框和组合框都能为用户提供若干个选项,供用户从中任意选择意选择 5.3.1 5.3.1 列表框列表框(ListBox)(ListBox)List属性:字属性:字 符型数组符型数组,存放列表存放列表框的表项框的表项 数组的下标从数组的下标从0开始。开始。例如,例如,List1.List(0)的值为的值为“教授教授”,List1.List(1)的值为的值为“副教授副教授”。ListCount属性:表项数目属性:表项数目 Text属性:当前选定表项的文本内容属性:当前选定表项的文本内容 ListIndex属性:返回已选定表项的顺序号属性:返回已选定表项的顺序号(索引索引)。若未选定任。若未选定任何项,则何项,则ListIndex的值为的值为-1 Selected属性:逻辑型数组,表示列表框中某一表项是否被选属性:逻辑型数组,表示列表框中某一表项是否被选中中例例5.12b主页主页 假设列表框假设列表框List1中有四个表项,并已选定第中有四个表项,并已选定第2项,则项,则 有:有:List1.ListIndex 为为1 List1.Text的值为的值为”副教授副教授”List1.Selected(1)为为True 主页主页方法方法 (1)AddItem方法:用于把一个列表项加入列表框方法:用于把一个列表项加入列表框 格式:格式:对象对象.AddItem 列表项列表项,索引,索引 举例:举例:List1.AddItem 海南省海南省,28 (2)Clear方法:用于清除列表框中的所有项目方法:用于清除列表框中的所有项目 (3)RemoveItem方法:用于删除指定的列表项方法:用于删除指定的列表项 采用以下方法,可为列表框采用以下方法,可为列表框List1赋值:赋值:(1)在属性窗口中设置在属性窗口中设置 (2)利用利用AddItem赋值赋值 (3)利用利用List属性赋值属性赋值 List1.AddItem“教授教授”List1.List(0)=“教授教授”List1.AddItem“副教授副教授”List1.List(1)=“副教授副教授”List1.AddItem“讲师讲师”List1.List(2)=“讲师讲师”List1.AddItem“助教助教”List1.List(3)=“助教助教”主页主页 列表框表项的输出列表框表项的输出 (1)用鼠标单击列表框内某一表项,则该表项值存放在用鼠标单击列表框内某一表项,则该表项值存放在Text属性中。属性中。例如:例如:x=List1.Text 把表项值存放在把表项值存放在x变量中变量中 (2)指定索引号来取表项的内容,例如:指定索引号来取表项的内容,例如:List1.ListIndex=3 x=List1.Text (3)直接从数组直接从数组List()中读取,例如:中读取,例如:x=List1.List(5)主页主页 (1)分析:判别条件为分析:判别条件为(n Mod 14=0)And(n Mod 10=8)(2)创建应用程序的用户界面和设置对象属性创建应用程序的用户界面和设置对象属性例例5.12 设计一程序,找出三位数中能被设计一程序,找出三位数中能被14整除且个位数为整除且个位数为8的自然的自然数,把这些自然数显示在列表框中,其个数显示在标签中。数,把这些自然数显示在列表框中,其个数显示在标签中。例例5.12主页主页 (3)(3)编写程序代码编写程序代码 编写的编写的“显示显示”按钮按钮ClickClick事件过程代码:事件过程代码:Private Sub Command1_Click()Private Sub Command1_Click()“显示显示”List1.ClearList1.Clear For n=100 To 999 For n=100 To 999 If(n Mod 14=0)And(n Mod 10=8)Then If(n Mod 14=0)And(n Mod 10=8)Then List1.AddItem n List1.AddItem n End If End If Next n Next n Label1.Caption=Label1.Caption=符合条件的自然数的个数为:符合条件的自然数的个数为:_ _&List1.ListCount&List1.ListCount End Sub End Sub主页主页 (1)创建应用程序的用户界面和设置对象属性创建应用程序的用户界面和设置对象属性 用户先用户先在左在左列表框列表框(List1)选择一个或多个选修课,当单击选择一个或多个选修课,当单击“显示显示”按钮时,在右列表框按钮时,在右列表框(List2)中将显示出用户选中的所中将显示出用户选中的所有课程。单击有课程。单击“清除清除”按钮时,将清除右列表框中的内容按钮时,将清除右列表框中的内容 (2)编写程序代码编写程序代码 例例5.13 设计一个选课程序设计一个选课程序MultiSelect属性值为属性值为2例例5.13主页主页Private Sub Form_Load()List1.AddItem 电子商务电子商务 List1.AddItem 网页制作网页制作 List1.AddItem Internet简明教程简明教程 List1.AddItem 计算机网络基础计算机网络基础 List1.AddItem 多媒体技术多媒体技术“End SubPrivate Sub Command1_Click()显示显示按钮单击事件按钮单击事件 List2.Clear 清除列表框的内容清除列表框的内容 For i=0 To List1.ListCount-1 逐项判断逐项判断 If List1.Selected(i)Then 真时为选定真时为选定 List2.AddItem List1.List(i)End If Next iEnd SubPrivate Sub Command2_Click()清除清除按钮单击事件按钮单击事件 List2.ClearEnd Sub主页主页 允许从已有的选项中进行选择,还允许输入列表中不包括允许从已有的选项中进行选择,还允许输入列表中不包括的内容的内容 列表框和文本框的组合列表框和文本框的组合 具有列表框和文本框的大部分属性和方法。独有的一些属具有列表框和文本框的大部分属性和方法。独有的一些属性:性:(1)Style属性属性:该属性取值为:该属性取值为0,1或或2,分别决定了组合框,分别决定了组合框的三种不同类型的三种不同类型 下拉组合框下拉组合框(Dropdown Combo):允许选择或输入新数据允许选择或输入新数据 简单组合框简单组合框(Simple Combo):允许选择或输入新数据允许选择或输入新数据 下拉列表框下拉列表框(Dropdown List):只允许选择,不能输入新数据只允许选择,不能输入新数据5.3.2 5.3.2 组合框组合框主页主页 (2)Text属性属性:该属性是用户所选定项目的文本或直接从文:该属性是用户所选定项目的文本或直接从文本框输入的文本本框输入的文本主页主页 (1)创建应用程序的用户界面和设置对象属性创建应用程序的用户界面和设置对象属性 窗体上含有窗体上含有Combo1,Combo2,Combo3三个组合框,其三个组合框,其Style属性从左至属性从左至右分别为右分别为0、1和和2,即除了,即除了“内存内存”容量大小只能从列表中选择外,其余内容容量大小只能从列表中选择外,其余内容既可以从列表中选择,也可以由用户输入。既可以从列表中选择,也可以由用户输入。在属性窗口中输入相关数据在属性窗口中输入相关数据 例例5.14 在窗体上设置在窗体上设置3个组合框,用于选择微机部分配置,个组合框,用于选择微机部分配置,包括包括CPU/主频、硬盘及内存。主频、硬盘及内存。Style=0Style=0下拉组合框下拉组合框设计界面设计界面运行界面运行界面例例5.14主页主页(2)编写程序代码编写程序代码 Private Sub Form_Load()Combo1.Text=Combo1.List(0)Combo2.Text=Combo2.List(0)Combo3.Text=Combo3.List(0)End Sub Private Sub Command1_Click()“确定确定”按钮的事件过程按钮的事件过程 Picture1.Cls Picture1.Print 微机的基本配置微机的基本配置 Picture1.Print String(20,=)Picture1.Print CPU:;Combo1.Text Picture1.Print 硬盘硬盘(GB):;Combo2.Text Picture1.Print 内存内存(MB):;Combo3.Text End Sub主页主页5.4 常用算法常用算法 算法是对某个问题求解过程的描述。算法是对某个问题求解过程的描述。常用的算法有:穷举法、递推法、排序法、查找法、递归法常用的算法有:穷举法、递推法、排序法、查找法、递归法等。等。1.1.累加、连乘和计数累加、连乘和计数 累加(如累加(如s=s+k)是在原有和的基础上一次一次地每次加一)是在原有和的基础上一次一次地每次加一个数,连乘(如个数,连乘(如t=t*c)则是在原有积的基础上一次一次地每次)则是在原有积的基础上一次一次地每次乘一个数。计数通常每次增加的值不是一个加数,而是乘一个数。计数通常每次增加的值不是一个加数,而是1。例例5.15 找出找出100999三位数中的三位数中的“水仙花水仙花”数,计算其个数,计算其个数。所谓水仙花数,是指各位数字立方和等于该数本身,如数。所谓水仙花数,是指各位数字立方和等于该数本身,如153是一个水仙花数,因为是一个水仙花数,因为153=13+53+33。程序中采用计数方法程序中采用计数方法n=n+1(或称(或称“计数器计数器”)来记录有多)来记录有多少个少个“水仙花水仙花”数。数。主页主页找水仙花数找水仙花数Private Sub Form_load()Private Sub Form_load()Dim k As Integer,a As Integer,b As Integer Dim k As Integer,a As Integer,b As Integer Dim c As Integer,n As Intege Dim c As Integer,n As Intege Show Show n=0 n=0 Print Print 三位数的水仙花数是:三位数的水仙花数是:For k=100 To 999 For k=100 To 999 a=Int(k/100)a=Int(k/100)求百位数求百位数 b=Int(k-100*a)/10)b=Int(k-100*a)/10)求十位数求十位数 c=k Mod 10 c=k Mod 10 求个位数求个位数 If k=a3+b3+c3 ThenIf k=a3+b3+c3 Then Print k Print k 输出水仙花数输出水仙花数 n=n+1 n=n+1 对满足条件的数进行计数对满足条件的数进行计数 End IfEnd If Next k Next k Print Print 一共有一共有&n&n&个水仙花数个水仙花数 End SubEnd Sub例例5.15主页主页2穷举法穷举法 “穷穷举举法法”也也称称为为“枚枚举举法法”,它它是是计计算算机机解解题题常常用用的的一一种种方方法法。其其做做法法是是:从从所所有有可可能能解解中中,逐逐个个进进行行试试验验,若若满满足足条条件件,就就得得到到一一个个解解,否否则则不不是是。直直到到条条件件满满足足或或判判别别出出无无解解为为止。止。例例5.16 用用100元买元买100只鸡,母鸡只鸡,母鸡3元元1只,小鸡只,小鸡1元元3只,问只,问各应买多少只各应买多少只?下面采用穷举法来解此题。对于此题,令母鸡为下面采用穷举法来解此题。对于此题,令母鸡为x只,小鸡只,小鸡为为y只,根据题意可知只,根据题意可知y=100-x,开始先让,开始先让x初值为初值为1,以后逐次,以后逐次加加1,求,求x为何值时,条件为何值时,条件3x+y/3=100成立。如果当成立。如果当x达到达到30时时还不能使条件成立,则可以断定此题无解。因为买的母鸡数不还不能使条件成立,则可以断定此题无解。因为买的母鸡数不可能超过可能超过30,超过,超过30就不能买到就不能买到100只鸡。只鸡。主页主页100元买元买100只鸡只鸡Private Sub Form_Load()Private Sub Form_Load()Dim x As Integer,y As Integer Dim x As Integer,y As Integer Show Show For x=1 To 30 For x=1 To 30 y=100-x y=100-x If 3*x+y/3=100 Then If 3*x+y/3=100 Then Print“Print“母鸡只数为母鸡只数为:”;x,:”;x,Print“Print“小鸡只数为小鸡只数为:”;y:”;y End If End If Next x Next xEnd SubEnd Sub例例5.16主页主页5.5 5.5 程序举例程序举例 例例5.185.18 从键盘输入一个正整数,然后把该数的每位数字按逆序从键盘输入一个正整数,然后把该数的每位数字按逆序输出。例如:输入输出。例如:输入3485,则输出,则输出5843;输入;输入100000,则输出,则输出000001。以下采用以下采用两种两种不同解法。不同解法。(1 1)数值处理方法数值处理方法 通过表达式通过表达式x Mod 10 x Mod 10取出该整数取出该整数x x的个位数并输出,如对于的个位数并输出,如对于x=3485,x=3485,则取出则取出5 5;利用赋值语句利用赋值语句x=x 10 x=x 10截去截去x x的个位数的个位数,如如对于对于x=3485,x=3485,处理后处理后x=348x=348;重复执行重复执行和和,直到直到x10 x=10 Do While x=10 Print x Mod 10;Print x Mod 10;x=x 10 x=x 10 Loop Loop例例5.18A主页主页(2)字符串处理方法)字符串处理方法 把该整数作为一个数字字符串,从字符串后部往把该整数作为一个数字字符串,从字符串后部往前逐个取出字符,即可实现按逆序输出。前逐个取出字符,即可实现按逆序输出。Dim x As StringDim x As String x=InputBox(x=InputBox(请输入一个正整数请输入一个正整数)把该数以字符串方式赋给变量把该数以字符串方式赋给变量x x For k=Len(x)To 1 Step-1 For k=Len(x)To 1 Step-1 Print Mid(x,k,1);Print Mid(x,k,1);从后部往前逐个取出字符并显示从后部往前逐个取出字符并显示 Next kNext k例例5.18B主页主页例例5.19 5.19 求解求解s=1!+2!+3!+s=1!+2!+3!+10!+10!的值的值 采用两种不同解法采用两种不同解法 (1)解法一:采用两重循环,外循环)解法一:采用两重循环,外循环10次,每次循环计算一次次,每次循环计算一次阶乘,把每次阶乘值累加起来,即得求解结果。阶乘,把每次阶乘值累加起来,即得求解结果。Dim s As Long,t As Long s=0 For j=1 To 10 计算计算10个阶乘个阶乘 t=1 计算计算1个阶乘前,先赋初值个阶乘前,先赋初值 For k=1 To j 计算计算j!,需要循环,需要循环j次次 t=t*k 连乘连乘j次次 Next k s=s+t 把每次计算得到的阶乘值把每次计算得到的阶乘值t累加累加 Next j Print s例例5.19A主页主页(2)解法二)解法二 这这10个阶乘有一个特点,后一个阶乘为上一个阶乘再乘以一个阶乘有一个特点,后一个阶乘为上一个阶乘再乘以一个数,如个数,如2!=1!*2,3!=2!*3,4!=3!*4,k!=(k-1)!*k。根据这。根据这一特点,程序只须采用单重循环就可以求解。一特点,程序只须采用单重循环就可以求解。把该整数作为一个把该整数作为一个数字字符串,从字符串后部往前逐个取出字符,即可实现按逆序数字字符串,从字符串后部往前逐个取出字符,即可实现按逆序输出。输出。Dim s As Long,t As Long s=0 t=1 For k=1 To 10 循环循环10次,每次求次,每次求1个阶乘个阶乘 t=t*k 求求k!,其值等于,其值等于(k-1)!*k,即,即t*k s=s+t 每次加入一个阶乘值每次加入一个阶乘值t Next k Print s例例5.19B主页主页 (1)创建应用程序的用户界面创建应用程序的用户界面(2)设置对象属性设置对象属性 组合框的组合框的Style属性为属性为0,TabIndex(键序键序)为为0 两个标签;四个命令按钮;两个标签;四个命令按钮;一个文本框一个文本框Text1,用来显示当,用来显示当前的选修课总课程数前的选修课总课程数例例5.20 5.20 编制程序,把一批课程名放入组合框中,再对组编制程序,把一批课程名放入组合框中,再对组合框进行项目显示、添加、删除、全部删除等操作合框进行项目显示、添加、删除、全部删除等操作例例5.20主页主页 (3)编写程序代码编写程序代码 Private Sub Form_Load()Combo1.AddItem 电子商务电子商务 Combo1.AddItem 网页制作网页制作 Combo1.AddItem Internet简明教程简明教程 Combo1.AddItem 计算机网络基础计算机网络基础 Combo1.AddItem 多媒体技术多媒体技术 Combo1.Text=置空值置空值 Text1.Text=Combo1.ListCount 表项个数表项个数 End Sub Private Sub Command1_Click()”添加添加”If Len(Combo1.Text)0 Then Combo1.AddItem Combo1.Text Text1.Text=Combo1.ListCount End If Combo1.Text=Combo1.SetFocus End Sub主页主页 Private Sub Command2_Click()“删除删除”Dim ind As Integer ind=Combo1.ListIndex If ind -1 Then -1表示无表项表示无表项 Combo1.RemoveItem ind 删除已选定的表项删除已选定的表项 Text1.Text=Combo1.ListCount End If End Sub Private Sub Command3_Click()“全清全清”Combo1.Clear Text1.Text=Combo1.ListCount End Sub Private Sub Command4_Click()End End Sub
展开阅读全文