![vb第5章循环结构程序设计ppt课件_第1页](http://file3.renrendoc.com/fileroot_temp3/2021-12/26/d1d2e714-2f4d-41dd-892f-982b32a9583b/d1d2e714-2f4d-41dd-892f-982b32a9583b1.gif)
![vb第5章循环结构程序设计ppt课件_第2页](http://file3.renrendoc.com/fileroot_temp3/2021-12/26/d1d2e714-2f4d-41dd-892f-982b32a9583b/d1d2e714-2f4d-41dd-892f-982b32a9583b2.gif)
![vb第5章循环结构程序设计ppt课件_第3页](http://file3.renrendoc.com/fileroot_temp3/2021-12/26/d1d2e714-2f4d-41dd-892f-982b32a9583b/d1d2e714-2f4d-41dd-892f-982b32a9583b3.gif)
![vb第5章循环结构程序设计ppt课件_第4页](http://file3.renrendoc.com/fileroot_temp3/2021-12/26/d1d2e714-2f4d-41dd-892f-982b32a9583b/d1d2e714-2f4d-41dd-892f-982b32a9583b4.gif)
![vb第5章循环结构程序设计ppt课件_第5页](http://file3.renrendoc.com/fileroot_temp3/2021-12/26/d1d2e714-2f4d-41dd-892f-982b32a9583b/d1d2e714-2f4d-41dd-892f-982b32a9583b5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、n心理专家与经济学家会问的问题心理专家与经济学家会问的问题n想象一下,如果有一张足够大、足够柔韧想象一下,如果有一张足够大、足够柔韧的纸,把它折叠的纸,把它折叠42次,会产生什么效果?次,会产生什么效果?你觉得会有多高?一个冰箱?一层楼?还你觉得会有多高?一个冰箱?一层楼?还是一栋摩天大厦?是一栋摩天大厦? n一张厚度一张厚度0.1毫米的纸,折叠毫米的纸,折叠42次就可以厚次就可以厚到到43万公里万公里超出了地球到月球超出了地球到月球38万万公里的距离公里的距离n0.1*242 = 439804651110.4n 43.9804*104 (万)(万) *103 (公里)(公里) *103毫米)
2、毫米)5-0循环折纸问题循环折纸问题n一张厚度一张厚度0.1毫米的纸,折叠多少次就可以毫米的纸,折叠多少次就可以达到或超过珠穆朗玛峰的达到或超过珠穆朗玛峰的8848米的高度?米的高度?5-0循环折纸问题循环折纸问题n一张厚度一张厚度0.1毫米的纸,折叠毫米的纸,折叠 27 次就可以达次就可以达到或超过珠穆朗玛峰的到或超过珠穆朗玛峰的8848米的高度?米的高度?Private Sub Command1_Click() d = Val(Text1.Text) limit = Val(Text2.Text) n = 0 Do While d = limit d = 2 * d n = n + 1 L
3、oop Text3.Text = nText4.Text = Int(d * 100 + 0.5) / 100End Subn其他常见的循环问题其他常见的循环问题n求累加和求累加和 123. 100n使用计算器加数用于运动会累计分数或商使用计算器加数用于运动会累计分数或商店累计营业额等。店累计营业额等。5.15.1循环结构程序设计的概念循环结构程序设计的概念P102P102nLoop Structure ProgrammingLoop Structure Programmingn循环是指在程序设计中,从某处开始有规律地反循环是指在程序设计中,从某处开始有规律地反复执行某一程序块的现象,复执行某
4、一程序块的现象,n重复执行的程序块称为重复执行的程序块称为“循环体循环体”。 n VBVB循环结构语句:循环结构语句:nDoLoopDoLoopnWhileWendWhileWendnForNextForNextn5 52 Do.Loop2 Do.Loop语句语句n前测型循环结构与后测型循环结构。前测型循环结构与后测型循环结构。5 52 21 1 前测当型前测当型DoLoopDoLoop循环循环nFront Test Do.Loop Loop Front Test Do.Loop Loop n首先判断条件,当条件为真首先判断条件,当条件为真TrueTrue时执行循环体,时执行循环体,接着执行接
5、着执行Loop Loop 语句语句, , 控制转到控制转到Do,Do,再次测试条再次测试条件件, , 当条件为假当条件为假FalseFalse时,终止循环时,终止循环, ,执行执行LoopLoop语句后的语句。语句后的语句。n其语法为其语法为nDoDoWhileWhile条件)条件)n (循环体语句列)(循环体语句列)nLoopLoopn阐明:阐明:n(l l)(循环体语句列是一条或多条命令循环)(循环体语句列是一条或多条命令循环体),条件为体),条件为TrueTrue它们将被重复执行。它们将被重复执行。计算计算“条件的值条件的值条件真?条件真?执行循环体执行循环体假假真真求累加和求累加和n例
6、例5 5l l 求累加和求累加和 1 12 23 3. . 100 100 (如图(如图 5 52 2) 。nS1=0+1S1=0+1nS2=S1+2S2=S1+2nS3=S2+3S3=S2+3nS4=S3+4S4=S3+4nnS100=S99+100S100=S99+100nS=0+1S=0+1(0+1)(0+1)nS=S+2 S=S+2 (0+1+2)(0+1+2)nS=S+3 S=S+3 (0+1+2+3)(0+1+2+3)nS=S+4 S=S+4 (0+1+2+3+4)(0+1+2+3+4)nnS=S+100 S=S+100 (0+1+2+3+4+100)(0+1+2+3+4+100)
7、S=S+ nS=S+ nn=n+1n=n+1nS S :累加器:累加器, ,采用累加的方法,存放累采用累加的方法,存放累加的和开始为加的和开始为0 0),),nn n :计数器:计数器, ,存放存放“加数加数” ” ,从,从1 1开始开始到到100100为止。为止。求累加和求累加和n例例5 5l l 求累加和求累加和 1 12 23 3.100100如图如图 )。)。n流程图如图所示流程图如图所示n n+1S S+n输出S 当n=100n 1 计数器赋初值S 0 累加器赋初值累加器赋初值设计步骤如下:设计步骤如下:设计窗体界面设计窗体界面命令按钮的命令按钮的ClickClick事件代码;事件代
8、码;Private Sub command1_Click()Private Sub command1_Click()Dim s As Integer, n As IntegerDim s As Integer, n As Integers = 0: n = 1s = 0: n = 1Do While n = 100Do While n = 100s = s + ns = s + nn = n + 1n = n + 1LoopLoopLabel2.Caption = 1+2+3+.+l00= & sLabel2.Caption = 1+2+3+.+l00= & sEnd SubE
9、nd Subn n+1S S+n输出S 当n 100Do Until n 100 s = s + n s = s + n n = n + 1 n = n + 1LoopLoopLabel2.Caption = “1+2+3+.+100 = & sLabel2.Caption = “1+2+3+.+100 = & sEnd SubEnd Sub后测直到型后测直到型Do LoopDo Loop循环循环n首先执行循环体,然后判断条件。首先执行循环体,然后判断条件。n条件为假时执行循环体,直到条件为真时,终止条件为假时执行循环体,直到条件为真时,终止循环。因此执行循环的最少次数为循环。
10、因此执行循环的最少次数为1 1。n其语法为其语法为nDoDon (循环体语句列)(循环体语句列)nLoop Loop UntilUntil条件)条件)n阐明:阐明:n(l l) (循环体语句列将被重复执行直到条件(循环体语句列将被重复执行直到条件为为True True 。条件条件循环体循环体假真计算圆周率计算圆周率pipi的近似值:的近似值:n【例【例5 53 3】输入有效数】输入有效数字的位数字的位数m(m(前后两项差前后两项差值等于值等于1010的的m m负方次负方次) ),利用下述公式计算圆周利用下述公式计算圆周率率pipi的近似值:的近似值:n分析:连乘积式各项的分析:连乘积式各项的规
11、律:设第规律:设第n n项的分母项的分母为为pnpn,则第,则第n n1 1项的分项的分母为母为Pn+1= Sqr (2+pn)Pn+1= Sqr (2+pn)若设若设 n n项项 积为积为 SnSn,则,则前前n+1n+1项乘积为项乘积为 Sn+1Sn+12Sn/pn+12Sn/pn+1S S2 2,p p 0 0输入小数点后有效数字位数输入小数点后有效数字位数m mtsp Sqr(2+p)S S 2 2* *S/pS/p输出圆周率输出圆周率PiPiS S直到直到|t-s|t-s|0.1 m0.1 m 2222222222 n图图5 57 7 计算圆周率的流程图计算圆周率的流程图n设计步骤如
12、下:设计步骤如下:n(1 1建立应用程序用户界面与设置对象属性建立应用程序用户界面与设置对象属性( (图图5 58)8)n nCommand1Command1的的ClickClick事件代码为事件代码为nPrivate Sub Command1_Click()Private Sub Command1_Click()nDim m As IntegerDim m As Integernm = Val(Text1.Text)m = Val(Text1.Text)np = 0#: s = 2#: e = 0.1 mp = 0#: s = 2#: e = 0.1 mnDoDont = s: p = Sq
13、r(2 + p): s = s t = s: p = Sqr(2 + p): s = s * * 2 / p 2 / pnLoop Until Abs(t - s) 0.1 mLoop Until Abs(t - s) 0.1 mnf = String(m - 1, #)f = String(m - 1, #)nText2.Text = Format(s, 0. & f)Text2.Text = Format(s, 0. & f)nText1.SetFocusText1.SetFocusnEnd SubEnd Subn文本框文本框Text1Text1的的GotFocusGotF
14、ocus事件代码:事件代码:nPrivate Sub Text1_GotFocus()Private Sub Text1_GotFocus()nText1.SelStart = 0Text1.SelStart = 0nText1.SelLength = Len(Text1.Text)Text1.SelLength = Len(Text1.Text)nEnd SubEnd Sub 求两个正整数的最大公约数。求两个正整数的最大公约数。例例5-45-4容易理解方法,容易理解方法, 5-4DoWhile5-4DoWhile前测求最大公约数前测求最大公约数输入两个正整数,求它们的最大公约数。输入两个正整
15、数,求它们的最大公约数。n分析:求最大公约数可以用分析:求最大公约数可以用“辗转相除法辗转相除法”,方法如下:,方法如下:n (1 1以大数以大数m m作被除数,小作被除数,小数数n n做除数,相除后余数为做除数,相除后余数为r r。n (2 2若若r0r0,则,则mnmn,nrnr,继续相除得到新的,继续相除得到新的r r。若。若仍有仍有r0r0,则重复此过程,直,则重复此过程,直到到r r0 0为止。为止。n(3 3最后的最后的n n就是最大公约数。就是最大公约数。求m对n的余数rn rm n输出n 当r0求得m对n的余数r大数放m,小数放n输入m,n 求两个正整数的最大公约数。求两个正整
16、数的最大公约数。n例例5.45.4输入两个正整数,递增法求最大输入两个正整数,递增法求最大公约数。公约数。n分析:求最大公约数可以用分析:求最大公约数可以用“递增法递增法”,方法如下:,方法如下:n 可能的因子从可能的因子从1 1到到n nd=d+1如果m、n都能被d整除,则max d输出max 当d m Then t = m m = n n = t End If d = 1 Do While d = n If m Mod d = 0 And n Mod d = 0 Then Max = d d = d + 1 Loop Text3.Text = MaxEnd Subd=d+1如果m、n都能被
17、d整除,则max d输出max 当d=1除数d=n大数放m,小数放n输入m,nPrivate Sub Command1_Click() m = Val(Text1.Text) n = Val(Text2.Text) If n = 0 Or m = 0 Then MsgBox 不能为不能为0 Exit Sub End If If n m Then t = m m = n n = t End If d = n Do While d = 1 If m Mod d = 0 And n Mod d = 0 Then Max = d Exit Do End If d = d - 1 Loop Text3.
18、Text = MaxEnd Subd=d-1如果m、n都能被d整除,则max d输出max 当d=1除数d=n大数放m,小数放n输入m,nn设计步骤如下。窗体界面的设计如图所示,设计步骤如下。窗体界面的设计如图所示,nPrivate Sub Command1_Click()Private Sub Command1_Click()nm = Val(Text1.Text)m = Val(Text1.Text)nn = Val(Text2.Text)n = Val(Text2.Text)nIf n If n * * m = 0 Then m = 0 Thenn MsgBox MsgBox两数都不能为
19、两数都不能为 0 0! n Exit Sub Exit SubnEnd IfEnd IfnIf m n ThenIf m n Thenn t = m: m = n: n = t t = m: m = n: n = tnEnd IfEnd Ifnr=m mod nr=m mod nnDo While r0Do While r0n m=nm=nn n=rn=rn r=m mod nr=m mod nnLoopLoopnText3.text=nText3.text=nnEnd SubEnd SubDo r = m Mod n m = n n = rLoop While r 0Text3.Text =
20、 m求m对n的余数rn rm n输出n 当r0求得m对n的余数r大数放m,小数放n输入m,n 求两个正整数的最大公约数。求两个正整数的最大公约数。例例5-45-4第第2 2版教材方法,版教材方法, 5-4DoWhile5-4DoWhile后测求最大公约数后测求最大公约数输入两个正整数,求它们的最大公约数。输入两个正整数,求它们的最大公约数。n分析:求最大公约数可以用分析:求最大公约数可以用“辗转相除法辗转相除法”,方法如下:,方法如下:n (1 1以大数以大数m m作被除数,小作被除数,小数数n n做除数,相除后余数为做除数,相除后余数为r r。n (2 2若若r0r0,则,则mnmn,nrn
21、r,继续相除得到新的,继续相除得到新的r r。若。若仍有仍有r0r0,则重复此过程,直,则重复此过程,直到到r r0 0为止。为止。n(3 3最后的最后的m m就是最大公约数。就是最大公约数。求m对n的余数rn rm n输出m 当r 0大数放m,小数放n输入m,n有错有错误误当型当型WhileWendWhileWend循环循环( (前测前测) )n其语法为其语法为nWhile While n nWendWendnDo While n = l00Do While n = l00ns = s + ns = s + nnn = n + 1n = n + 1nLoopLoopn阐明:阐明:n(l l条
22、件为条件为True ,True ,(循环体语句列将被重复执(循环体语句列将被重复执行行计算计算“条件的值条件的值条件真?条件真?执行循环体执行循环体假假真真While n = l00While n = l00 s = s + n s = s + n n = n + 1 n = n + 1WendWend作业:作业: 例题例题5-1、5-4 5-6选做选做5-2、5-35.6习题习题xt5-1 xt5-4选做选做xt5-55 53 For Next3 For Next语句语句nFor.Next Statement For.Next Statement nDoloop:Doloop:条件型循环条件
23、型循环nFor.NextFor.Next:计数型循环:计数型循环nForFor循环使用一个循环变量,循环使用一个循环变量,n每重复一次循环之后,循环变量的值就会自动增加或者每重复一次循环之后,循环变量的值就会自动增加或者减少。减少。 n其语法为其语法为nForFor循环变量)循环变量)= =(初值(初值ToTo终值)终值)StepStep步长)步长) n (循环体语句列(循环体语句列1 1) n Exit For Exit Forn (循环体语句列(循环体语句列2 2)nNext Next nFor I = 1 To 3 Step 1n Print InNext InPrint I初值送循环变
24、量初值送循环变量循环变量的值超过终值?循环变量的值超过终值?执行循环体中各个语句执行循环体中各个语句循环变量的值加步长值循环变量的值加步长值NextNext后的语句后的语句是否 阐明:阐明:n1、循环变量超过终值循环结束,而不是等于终值。、循环变量超过终值循环结束,而不是等于终值。n2、循环次数计算:(终值、循环次数计算:(终值 - 初值)初值)/步长步长+1。n3、初值、终值可以是正数、负数和零;、初值、终值可以是正数、负数和零;n4、步长可以是整数或小数,、步长可以是整数或小数, Step 1可以省略。可以省略。n步长为正时,超越步长为正时,超越循环变量大于终值使循环结循环变量大于终值使循
25、环结束束n步长为负时,超越步长为负时,超越循环变量小于终值使循环结循环变量小于终值使循环结束束n5、一般在循环体中不对循环变量重新赋值,、一般在循环体中不对循环变量重新赋值,n否则影响循环的次数控制。否则影响循环的次数控制。步长为负时步长为负时For I = 3 To 0 Step -1.5Print INextPrint After For :; IFor I = 0 To 3 Step -1.5Print INextPrint After For :; I01.53初值送循环变量初值送循环变量循环变量的值超过终值?循环变量的值超过终值?执行循环体中各个语句执行循环体中各个语句循环变量的值加
26、步长值循环变量的值加步长值NextNext后的语句后的语句是否求整除的自然数求整除的自然数n【例【例5 55 5显示显示10001000以内的所有能被以内的所有能被3737整除整除的自然数如图的自然数如图5-l3 5-l3 所示)。所示)。nn n从从1 1到到10001000,如果,如果n n被被3737整除整除: n Mod 37 =0: n Mod 37 =0n设计步骤如下:设计步骤如下:n(1 1窗体界面的设计与属窗体界面的设计与属性设置。增加一个文本框性设置。增加一个文本框Text1Text1、其、其MultiLineMultiLine属性为属性为“True”, True”, 其其S
27、crollBarsScrollBars属属性为性为“2-Vertical” 2-Vertical” n一个命令按钮一个命令按钮Command1Command1和和一个框架一个框架Frame1Frame1。 (2 2编写代码。编写代码。n编写命令按钮的编写命令按钮的ClickClick事件代码:事件代码:nPrivate Sub Command1_Click()Private Sub Command1_Click()na = a = nFor n = 1 To 1000For n = 1 To 1000n If n Mod 37 = 0 Then If n Mod 37 = 0 Thenn a
28、= a & Str(n) & vbCrLf a = a & Str(n) & vbCrLfn End If End IfnNextNextnText1.Text = aText1.Text = anEnd SubEnd Subn阐明:常量阐明:常量VbCrLfVbCrLf表示插入一个回车与换行符组合,表示插入一个回车与换行符组合,相当于:回车加上换行符相当于:回车加上换行符Chr(l3)Chr(l3)Chr(10)Chr(10))来)来产生一个行断点。产生一个行断点。判断一个正整数是否素数。判断一个正整数是否素数。n【例【例5 52 2】输入一个正整数,利用】输
29、入一个正整数,利用“forfor循循环判断是否素数。环判断是否素数。n分析:所谓分析:所谓“素数是指除了素数是指除了1 1和该数本身,和该数本身,不能被任何整数整除的数。不能被任何整数整除的数。n一个自然数一个自然数n n不是素数,它一定有这样的因子不是素数,它一定有这样的因子i i: 2 2 i i n-1 n-1、Sqr(n)Sqr(n)、n/2n/2n如图如图5 54 4所示。所示。命令按钮的命令按钮的Click Click 事件代码事件代码Private Sub Command1_Click()Private Sub Command1_Click()Dim n As LongDim n
30、 As LongSelect Case Val(Text1.Text)Select Case Val(Text1.Text)Case Is 3Case Is 2147483647Case Is 2147483647MsgBox MsgBox 此数太大!此数太大!, vbInformation + vbOKOnly, , vbInformation + vbOKOnly, 留留意意 Case ElseCase Elsen = Val(Text1.Text)n = Val(Text1.Text)s = 0s = 0i = 2i = 2Do While i = Sqr(n) And s = 0Do
31、While i = Sqr(n) And s = 0 If n Mod i = 0 Then If n Mod i = 0 Then s = 1 s = 1 Else Else i = i + 1 i = i + 1 End If End IfLoopLoopIf s = 0 ThenIf s = 0 Then a = “ a = “是一个素数是一个素数”ElseElsea = “a = “不是素数不是素数”End IfEnd IfLabel1.Caption = Str(n) & aLabel1.Caption = Str(n) & aEnd SelectEnd Select
32、Text1.SetFocusText1.SetFocusEnd SubEnd Subs = 0For i = 2 To Sqr(n) If n Mod i = 0 Thens = 1Exit For End IfNext判断标志判断标志n-1或或n/2Do While i = Sqr(n)Do While i = Sqr(n) If n Mod i = 0 Then If n Mod i = 0 Then s = 1 s = 1 Exit Do Exit Do End If End If i = i + 1 i = i + 1LoopLoop求从求从10001000到到11001100之间的所
33、有素数之间的所有素数n【例【例 5 56 6】求从】求从10001000到到11001100之间的所有素数。之间的所有素数。 分分析:现对析:现对1000100011001100之间的各整数依次测试。使用之间的各整数依次测试。使用了双重了双重ForFor循环循环, ,窗体界面的设计参见图窗体界面的设计参见图5 51515,命令按钮的命令按钮的ClickClick事件代码:事件代码: Private Sub Command1_Click()Private Sub Command1_Click() a = a = For n = 1001 To 1100 Step 2For n = 1001 To
34、 1100 Step 2s = 0s = 0For i = 2 To Int(Sqr(n)For i = 2 To Int(Sqr(n) If n Mod i = 0 Then If n Mod i = 0 Then s = 1 s = 1 Exit For Exit For End If End If Next NextIf s = 0 Then a = a & Str(n) & vbCrLfIf s = 0 Then a = a & Str(n) & vbCrLfNextNextText1.Text = aText1.Text = aEnd SubEnd S
35、ub窗体上打印图形窗体上打印图形n在窗体上用字符在窗体上用字符“*”打印出下列图形打印出下列图形ni值控制行值,值控制行值,j值控制列值值控制列值n两重循环两重循环循环嵌套循环嵌套n5-6-2打印金字塔形打印金字塔形nPrivate Sub Command1_Click()nFor i = 1 To 5n Print Tab(20 - i);n For j = 1 To 2 * i - 1n Print *;n Next jnNext inEnd Sub不换行不换行5 54 4 列表框与组合框列表框与组合框nList Box & Combo Box List Box & Com
36、bo Box n为用户提供了包含一些选项和信息的可滚动列表。为用户提供了包含一些选项和信息的可滚动列表。n5 54 41 1 列表框列表框 List Box List Box n可以看到多个项目,可以看到多个项目,n当不能同时显示所有选项时,会自动加上一个垂当不能同时显示所有选项时,会自动加上一个垂直滚动条,直滚动条,n 1 1列表框的属性与方法列表框的属性与方法 n 表表5-15-1列出了常用的列表框属性。列出了常用的列表框属性。 表表5-1 5-1 常用的列表框属性。常用的列表框属性。属属 性性说说 明明ListList设置或返回列表中选项,使用设置或返回列表中选项,使用ListList属
37、性可以得到列表中的属性可以得到列表中的任何选项。例如任何选项。例如List1.List(2)List1.List(2)表示列表框表示列表框List1List1中第中第3 3项的项的值。值。(列出项目内容列出项目内容) List(i) 添加添加内容内容:Ctrl+EnterListCountListCount返回列表框中的选项个数。返回列表框中的选项个数。 (列表框项目的数量列表框项目的数量)ListIndexListIndex返回当前选项的索引号,如果没有选项被选中,该属性为返回当前选项的索引号,如果没有选项被选中,该属性为- -1 1。(已选中的项目的位置已选中的项目的位置)Selected
38、Selected在程序运行使用代码来选定列表中的选项,例如在程序运行使用代码来选定列表中的选项,例如 List1.Selected(2)List1.Selected(2)TrueTrue使得列表框使得列表框List1List1中的第中的第3 3条选条选项被选中。项被选中。 (列表框名列表框名. Selected(索引值索引值)=True)TextText设置或返回列表中当前选项的值。设置或返回列表中当前选项的值。(最后一次选中的最后一次选中的项项目目文本文本) 表表5-2 5-2 常用列表框方法常用列表框方法方方 法法说说 明明AddItemAddItem用来向列表框中添加数据用来向列表框中添
39、加数据(添加项目添加项目)n列表框名列表框名. AddItem 项目字符串项目字符串,索引值索引值RemoveItemRemoveItem用来从列表框中删除数据用来从列表框中删除数据(删除项目删除项目)n列表框名列表框名. RemoveItem 索引值索引值ClearClear清除列表框中的各项清除列表框中的各项(清除项目清除项目)n列表框名列表框名. Clear 2 2使用列表框显示数据使用列表框显示数据n【例【例5 57 7】将例】将例5 56 6中的文本框改为列表中的文本框改为列表框如图框如图5 51616所示)。所示)。n将窗体中的文本框换为列表框,无需修改将窗体中的文本框换为列表框,
40、无需修改列表框的属性,只需修改命令按钮的列表框的属性,只需修改命令按钮的ClickClick事件代码:事件代码:n增加项目增加项目使用列表框的使用列表框的AddItemAddItem方法方法Private sub Command1_Click()Private sub Command1_Click()List1.ClearList1.ClearFor n = 1001 To 1100 Step 2For n = 1001 To 1100 Step 2s = 0s = 0For i = 2 To Int(Sqr(n)For i = 2 To Int(Sqr(n) If n Mod i = 0 T
41、hen If n Mod i = 0 Then s = 1: Exit For s = 1: Exit For End If End IfNextNextIf s = 0 Then List1.AddItem nIf s = 0 Then List1.AddItem nNextNextEnd SubEnd Sub项目内项目内容容n显示选中项目操作显示选中项目操作nPrivate Sub List1_Click()nPrint 选中项目与索引值:选中项目与索引值:; List1.Text; List1.ListIndexnPrint 项目数:项目数:; List1.ListCountnEnd S
42、ubn删除选中项目操作删除选中项目操作nPrivate Sub Command2_Click()nk = Val(InputBox(输入索引值输入索引值)nClsnPrint 删除的项目内容删除的项目内容; List1.List(k)nList1.RemoveItem knEnd Sub求求“同构数同构数”n【例【例5 58 8】“同构数是指这样的整数:它恰好同构数是指这样的整数:它恰好出现在其平方数的右端,例如出现在其平方数的右端,例如 1 1和和 5 5就是这样的就是这样的数。试找出数。试找出 l l99999999之间的全部之间的全部“同构数同构数”(如(如图图5-175-17所示)。所
43、示)。n分析:分析:l l位同构数位同构数 n n应满应满足条件:足条件:n nn2 Mod 10n2 Mod 10,n2 2位同构数位同构数 n n应满足条件:应满足条件:n nn 2 Mod l00,n 2 Mod l00,n3 3位同构数位同构数 n n应满足条件:应满足条件:n nn2 MOd 1000n2 MOd 1000,n4 4位同构数位同构数 n n应满足条件:应满足条件:n nn2 MOd 10000, n2 MOd 10000, n流程图如图流程图如图5-l8 5-l8 所示。所示。n窗体界面的设计参见图窗体界面的设计参见图5 51717,ClickClick事件代码事件代
44、码nPrivate Sub Command1_Click()Private Sub Command1_Click()nList1.ClearList1.ClearnFor n = 1 To 9999For n = 1 To 9999nSelect Case nSelect Case nnCase n 2 Mod 10Case n 2 Mod 10nList1.AddItem Format(n, ) & Format(n 2, List1.AddItem Format(n, ) & Format(n 2, )nCase n 2 Mod 100Case n 2 Mod 100nLi
45、st1.AddItem Format(n, ) & Format(n 2, List1.AddItem Format(n, ) & Format(n 2, )nCase n 2 Mod 1000Case n 2 Mod 1000nList1.AddItem Format(n, ) & Format(n 2, List1.AddItem Format(n, ) & Format(n 2, )nCase n 2 Mod 10000Case n 2 Mod 10000nList1.AddItem Format(n, ) & Format(n 2, List1.
46、AddItem Format(n, ) & Format(n 2, )nEnd SelectEnd SelectnNextNextnEnd SubEnd Sub n【例【例5 59 9小学生做加减法的算术练习程序。小学生做加减法的算术练习程序。n计算机连续地随机给出两位数的加减法算术题,计算机连续地随机给出两位数的加减法算术题,要求学生回答,答对的打要求学生回答,答对的打“”,答错的打,答错的打“”。n将做过的题目存放在列表框中备查,并随时给出将做过的题目存放在列表框中备查,并随时给出答题的正确率如图答题的正确率如图5 51919所示)。所示)。n分析:随机函数分析:随机函数RndRn
47、d返回一个返回一个00,l l之间的随机之间的随机小数,小数,n为了生成某个范围内的随机整数,可以使用公式:为了生成某个范围内的随机整数,可以使用公式:nInt( Int( 最大值最大值- -最小值十最小值十1 1)* * Rnd+ Rnd+最小值)最小值)n其中,最大值和最小值为指定范围中的最大、最其中,最大值和最小值为指定范围中的最大、最小数。小数。 设计步骤如下:设计步骤如下:n(1 1建立应用程序用户建立应用程序用户界面。界面。n窗体设计器,首先增加一窗体设计器,首先增加一个标签个标签Label1Label1显示题显示题目)、一个文本框目)、一个文本框Text1Text1输入答案)、一
48、个列表输入答案)、一个列表框框List1List1保存做过的题保存做过的题目)、一个命令按钮目)、一个命令按钮Command1Command1、一个图像、一个图像Image1Image1以及一个框架以及一个框架Frame1Frame1。n激活激活Frame1Frame1后,在其中增后,在其中增加两个标签,加两个标签,n(2 2设置对象属性,表设置对象属性,表5 53 3 属性的设置属性的设置nn对象对象 属性属性属性值属性值阐明阐明 nnForm1 Tag 0.0 Form1 Tag 0.0 存放题目总数存放题目总数 nnList1 Tag 0.0 List1 Tag 0.0 存放答对的题存放
49、答对的题数数nn(3 3编写代码。出题部编写代码。出题部分由窗体的激活分由窗体的激活ActivateActivate事件代码事件代码完成:完成:nPrivate Sub Private Sub Form_Activate()Form_Activate()nRandomize (Time)Randomize (Time)na = Int(10 + 90 a = Int(10 + 90 * * Rnd) Rnd)nb = Int(10 + 90 b = Int(10 + 90 * * Rnd) Rnd)np = Int(2 p = Int(2 * * Rnd) Rnd)nSelect Case p
50、Select Case pnCase 0Case 0nLabel1.Caption = a & Label1.Caption = a & + & b & “ = + & b & “ = nText1.Tag = a + bText1.Tag = a + bn 将本题答案放入将本题答案放入Text1.TagText1.Tag中中Case 1Case 1If a b Then t = a: a = b: If a b Then t = a: a = b: b = tb = tLabel1.Caption = a & - & Label
51、1.Caption = a & - & b & = b & = Text1.Tag = a - bText1.Tag = a - b 将本题答案放入将本题答案放入Text1.TagText1.Tag中中End SelectEnd SelectForm1.Tag = Form1.Tag + 1Form1.Tag = Form1.Tag + 1Text1.SelStart = 0Text1.SelStart = 0Text1.Text = Text1.Text = End SubEnd Subn答题部分由文本框的按住答题部分由文本框的按住KeyPressKeyPre
52、ss事件代码完成:事件代码完成:nPrivate Sub Text1_KeyPress(KeyAscii As Integer)Private Sub Text1_KeyPress(KeyAscii As Integer)nIf KeyAscii = 13 ThenIf KeyAscii = 13 Thenn fm = ! fm = !n If Val(Text1.Text) = Text1.Tag Then If Val(Text1.Text) = Text1.Tag Thenn Item = Format(Label1.Caption & Text1.Text, Item = Fo
53、rmat(Label1.Caption & Text1.Text, fm) & Dfm) & Dn List1.Tag = List1.Tag + 1 List1.Tag = List1.Tag + 1n Else Elsen Item = Format(Label1.Caption & Text1.Text, Item = Format(Label1.Caption & Text1.Text, fm) & Xfm) & Xn End If End Ifn List1.AddItem Item, 0 List1.AddItem Item,
54、 0 将题目和回答插入到列表将题目和回答插入到列表框中的第框中的第1 1项项n Label2.Caption = Label2.Caption = 共共 & Form1.Tag & & Form1.Tag & 题题, & , & Chr(13) & Chr(13) & 正确率为:正确率为: nLabel3.Caption = Format(List1.Tag / Form1.Tag, Label3.Caption = Format(List1.Tag / Form1.Tag, #0.0#%)#0.0#%)nForm_Activat
55、e Form_Activate 调用出题代码调用出题代码nEnd IfEnd IfnEnd SubEnd Sub3 3选择和移动数据选择和移动数据n【例【例5 51010】利用循环结构和列表框控件,】利用循环结构和列表框控件,设计的设计的“选项移动窗体选项移动窗体指由两个列指由两个列表框和表框和4 4个命令按钮所构成的窗口,在个命令按钮所构成的窗口,在 WindowsWindows中常见图中常见图5 52121)。)。 表表5-4 5-4 属性设置属性设置对对 象象属属 性性属性值属性值说说 明明List1List1MultiselectMultiselect0- None0- None不能多
56、项选择不能多项选择StyleStyle1-Checkbox1-Checkbox风格风格List2List2MultiselectMultiselect2- Extended2- Extended扩展多项选择扩展多项选择有错误有错误 阐明:阐明:n(1 1列表框的列表框的MultiselectMultiselect属性决定了用户是否能属性决定了用户是否能够选择多项数据:够选择多项数据:nMultiselectMultiselect0-None 0-None 不能不能 nMultlselectMultlselectl-Simple l-Simple 简单多重简单多重 nMultiselectMul
57、tiselect2-Extended 2-Extended 扩展多重扩展多重n(2 2简单或扩展的多重选择。简单或扩展的多重选择。n简单多选可以多次选择多项选项直接单击鼠标左简单多选可以多次选择多项选项直接单击鼠标左键),键),n扩展多选允许用户可以一次选择相邻的多项选项扩展多选允许用户可以一次选择相邻的多项选项ShiftShift十单击鼠标左键或逐条选择不相邻的多项十单击鼠标左键或逐条选择不相邻的多项选项选项CtrlCtrl十单击鼠标左键)十单击鼠标左键) n(3 3List1.Selected(i)List1.Selected(i)TrueTrue表示列表框表示列表框 List1List1
58、中的第中的第 i i1 1项选项被选中。项选项被选中。n(4 4List1.List(i)List1.List(i)表示列表框表示列表框List1List1中第中第i+1i+1项的项的值。值。(2 2编写事件代码。编写事件代码。n编写窗体的读入编写窗体的读入LoadLoad事件代码:事件代码:nPrivate Sub Form_Load()Private Sub Form_Load()nList1.AddItem List1.AddItem 电冰箱电冰箱 nList1.AddItem List1.AddItem 洗衣机洗衣机 nList1.AddItem List1.AddItem 彩色电视机
59、彩色电视机 nList1.AddItem List1.AddItem 组合音响组合音响 nList1.AddItem List1.AddItem 影碟机影碟机 nList1.AddItem List1.AddItem 电水壶电水壶 nList1.AddItem List1.AddItem 饮水机饮水机 nList1.AddItem List1.AddItem 微波炉微波炉 nList1.AddItem List1.AddItem 照相机照相机 nEnd SubEnd Sub编写命令按钮的编写命令按钮的ClickClick事件代码:事件代码:右侧右侧List2List2增加增加List1List
60、1所选项部分增)所选项部分增)Private Sub Command1_Click()Private Sub Command1_Click()i = 0i = 0Do While i List1.ListCountDo While i List1.ListCount If List1.Selected(i) = True Then If List1.Selected(i) = True Then List2.AddItem List1.List(i) List2.AddItem List1.List(i) List1.RemoveItem i List1.RemoveItem i Else Else i = i + 1 i = i + 1 End If End IfLoopLoopEnd SubEnd Subi=List1.ListCount-1i=List1.ListCount-1右侧右侧List2List2增加全部增加全部List1List1项项( (全部增全部增) )Private Sub Command2_Click()Private Sub Command2_Cli
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业人民币借款合作协议
- 企业设备采购合同范文
- 模具定制生产合同样本
- 工商银行贷款合同模板
- 即便遭遇金融危机购房合同法仍保持不变(合同模板)
- 个人向银行借款购房合同范本
- 电梯销售代理合同范本
- 仓库文化建设与团队凝聚力计划
- 美术教师技能在线培训计划
- 二零二五版软件系统稳定性维护与支持合同2篇
- 护理责任组长续聘竞聘
- 2024-2025学年第二学期教学教研工作安排表
- 2025年山东商务职业学院高职单招数学历年(2016-2024)频考点试题含答案解析
- 2025年个人合法二手车买卖合同(4篇)
- 2025年贵州云上产业服务有限公司招聘笔试参考题库含答案解析
- 2025-2030年中国天然气行业发展分析及发展趋势预测报告
- 2025届贵州省兴义市三年级数学第一学期期末达标检测试题含解析
- 外研版(三起)小学英语三年级下册Unit 1 Animal friends Get ready start up 课件
- 2024年中考语文复习分类必刷:非连续性文本阅读(含答案解析)
- 春节文化研究手册
- 东芝(TOSHIBA)变频器VF-S9说明书
评论
0/150
提交评论