VB第5章电子讲稿

上传人:沈*** 文档编号:228477142 上传时间:2023-08-21 格式:PPT 页数:52 大小:218.50KB
返回 下载 相关 举报
VB第5章电子讲稿_第1页
第1页 / 共52页
VB第5章电子讲稿_第2页
第2页 / 共52页
VB第5章电子讲稿_第3页
第3页 / 共52页
点击查看更多>>
资源描述
采用循环程序可以解决一些按一定规则重复执行的问题。采用循环程序可以解决一些按一定规则重复执行的问题。例如,统计一个班几十名学生,甚至全校几千名学生的学期例如,统计一个班几十名学生,甚至全校几千名学生的学期成绩,如求平均分、不及格人数等成绩,如求平均分、不及格人数等 本章主要内容 循环语句循环语句 For.Next/Do.Loop/While.Wend 循环出口语句循环出口语句(Exit)多重循环多重循环 列表框与组合框列表框与组合框 程序举例程序举例 第第5 5章章 循环结构设计循环结构设计 循环循环是指在指定的条件下多次重复执行一组语是指在指定的条件下多次重复执行一组语句。被重复执行的一组语句称为句。被重复执行的一组语句称为循环体循环体 VB提供的循环语句有提供的循环语句有 Do.Loop For.Next While.Wend For Each.Next 最常用的是最常用的是For.Next和和Do.Loop语句语句 5.1.1 For.Next5.1.1 For.Next循环语句循环语句 按指定次数执行循环体按指定次数执行循环体 例例5.1 在窗体上显示在窗体上显示2至至10各偶数的平方数各偶数的平方数 采用采用Print直接在窗体上输出结果,程序代码:直接在窗体上输出结果,程序代码:Private Sub Form_Load()Dim k As Integer Show For k=2 To 10 Step 2 Print k*k Next k End Sub 5.1 循环语句循环语句程序运行结果:程序运行结果:4 16 36 64 100 说明:说明:上述程序,循环变量上述程序,循环变量k的初值、终值和步长值分别的初值、终值和步长值分别为为2,10和和2,即从,即从2开始,每次加开始,每次加2,到,到10为止,控制循环为止,控制循环5次。次。每次循环都将循环体每次循环都将循环体(Print k*k)执行一次执行一次 格式:格式:For 循环变量初值循环变量初值 To 终值终值 Step 步长值步长值 循环体循环体 Next 循环变量循环变量 功能:功能:本语句指定循环变量取一系列数值,并且本语句指定循环变量取一系列数值,并且对循环变量的每一个值把循环体执行一次对循环变量的每一个值把循环体执行一次 初值、终值和步长值都是数值表达式,步长值可以是正数初值、终值和步长值都是数值表达式,步长值可以是正数(称为递增循环称为递增循环),也可以是负数,也可以是负数(称为递减循环称为递减循环)若步长值为若步长值为1,则,则Step 1可以省略可以省略 (1)求出初值、终值和步长值,并保存起来求出初值、终值和步长值,并保存起来 (2)将初值赋给循环变量将初值赋给循环变量 (3)判断循环变量值是否超过终值判断循环变量值是否超过终值(步长值为正时,指大于步长值为正时,指大于终值;步长值为负时,指小于终值终值;步长值为负时,指小于终值)。超过终值时,退出循环,。超过终值时,退出循环,执行执行Next之后的语句之后的语句 (4)执行循环体执行循环体 (5)遇到遇到Next语句时,修改循环变量值,即把循环变量的语句时,修改循环变量值,即把循环变量的当前值加上步长值再赋给循环变量当前值加上步长值再赋给循环变量 (6)转到转到(3)去判断循环条件去判断循环条件 例例5.1的执行过程的执行过程For.NextFor.Next语句的执行步骤语句的执行步骤 采用采用Print直接在窗体上输出结果,程序代码:直接在窗体上输出结果,程序代码:Private Sub Form_Load()Show s=0 For k=1 To 8 s=s+k Next k Print s=;s End Sub 程序运行结果如下:程序运行结果如下:s36 语句语句ss+k(循环体语句循环体语句)的执行过程的执行过程 例例5.2 求求S=1+2+3+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 采用采用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项来进行计算项来进行计算)下面采用下面采用“穷举法穷举法”来解此题。来解此题。其做法是:从所有可能解中,逐个进行试验,若其做法是:从所有可能解中,逐个进行试验,若满足条件,就得到一个解,否则不是。直到条件满满足条件,就得到一个解,否则不是。直到条件满足或判别出无解为止。足或判别出无解为止。令母鸡为令母鸡为x只,小鸡为只,小鸡为y只,根据题意可知只,根据题意可知 y=100 x 开始先让开始先让x初值为初值为1,以后逐次加,以后逐次加1,求,求x为何值时,为何值时,条件条件3x+y/3=100成立。如果当成立。如果当x达到达到30时还不能使条时还不能使条件成立,则可以断定此题无解件成立,则可以断定此题无解 例例5.5 用用100 元买元买100 只鸡,母鸡只鸡,母鸡3元元1只,只,小鸡小鸡1元元3只,问各应买多少只只,问各应买多少只?采用采用Print直接在窗体上输出结果,程序代码:直接在窗体上输出结果,程序代码:Private Sub Form_Load()Dim x As Integer,y As Integer Show For x=1 To 30 y=100-x If 3*x+y/3=100 Then Print 母鸡只数为母鸡只数为:;x,Print 小鸡只数为小鸡只数为:;y End If Next x End Sub 运行结果:运行结果:母鸡只数为:母鸡只数为:25 小鸡只数为:小鸡只数为:75 For.Next循环主要是用在知道循环次数的情况下,循环主要是用在知道循环次数的情况下,若事先不知道循环次数,可以使用当型循环若事先不知道循环次数,可以使用当型循环Do.Loop Do.Loop两种格式:两种格式:前测型循环结构前测型循环结构和和后测型循后测型循环结构环结构。两者区别在于判断条件的先后次序不同。两者区别在于判断条件的先后次序不同 Do.Loop循环语句循环语句 格式:格式:Do While|Until 条件条件 循环体循环体 Loop Do While.Loop语句的功能:语句的功能:当条件成立当条件成立(为真为真)时,执行循环体;当条件不成立时,执行循环体;当条件不成立(为假时为假时),终止循,终止循环环 Do Until.Loop(直到型循环直到型循环)语句的功能:语句的功能:当条件不成立当条件不成立(为假为假)时,执行循环体,直到条件时,执行循环体,直到条件成立成立(为真为真)时,终止循环时,终止循环 1.1.前测型前测型Do.LoopDo.Loop循环循环 采用采用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.65.6 求 S12+22+1002采用采用Print直接在窗体上输出结果,程序代码:直接在窗体上输出结果,程序代码:Private Sub Form_Load()Show Dim pi As Single,n As Long,s As Integer pi=0:n=1:s=1 Do While n=0.00001 pi=pi+s/n s=-s n=n+2 Loop Print=;pi*4 End Sub 程序运行结果:程序运行结果:3.141575例例5.75.7 用用/4/41-1/3+1/5-1/7+1-1/3+1/5-1/7+级数级数,求求的近似值。当最后一项的绝对值小于的近似值。当最后一项的绝对值小于1010-5-5时,停止计算时,停止计算 语句格式如下:语句格式如下:Do 循环体循环体 Loop While|Until条件条件 功能:功能:先执行循环体,然后判断条件,根据条件决定是否先执行循环体,然后判断条件,根据条件决定是否继续执行循环继续执行循环 注意,本语句执行循环的最少次数为注意,本语句执行循环的最少次数为1,而前测型,而前测型Do.Loop语句的最少次数为语句的最少次数为0(即一次都不执行循环即一次都不执行循环)2.后测型后测型Do.Loop循环循环 ForNext 前测型前测型 S=0 s=0:k=1 For k=1 to 8 Do While k=8 s=s+k s=s+k Next k k=k+1 Print s Loop Print s s=0:k=1 do s=s+k k=k+1 Loop While k=8 Print s三种循环语句比较三种循环语句比较 示例:求和示例:求和s=1+2+3+8后后测测型型 “辗转相除法辗转相除法”算法:算法:求出求出m/n余数余数p,若,若p0,n即为即为最大公约数;若最大公约数;若p非非0,则把原来的分母,则把原来的分母n作为新的分子作为新的分子m,把,把余数余数p作为新的分母作为新的分母n继续求解继续求解 设计步骤如下:设计步骤如下:(1)创建应用程序的用户界面和设置对象属性创建应用程序的用户界面和设置对象属性 例例5.8 输入两个正整数,求它们的最大公约数输入两个正整数,求它们的最大公约数 编写的编写的“计算计算”按钮按钮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 条件条件 循环体循环体 Wend 功能:当条件成立功能:当条件成立(为真为真)时,执行循环体;当条时,执行循环体;当条件不成立件不成立(为假为假)时,终止循环。时,终止循环。本语句与上述本语句与上述Do While.Loop循环语句相似循环语句相似 While.Wend While.Wend循环语句循环语句 用于提前退出循环用于提前退出循环 格式:格式:Exit For|Do功能:直接从功能:直接从For循环或循环或Do循环中退出循环中退出 当程序运行时遇到当程序运行时遇到Exit语句时,就不再执行循环语句时,就不再执行循环体中的任何语句而直接退出,转到循环语句体中的任何语句而直接退出,转到循环语句(Next、Loop)的下面继续执行的下面继续执行 循环出口语句循环出口语句 例例5.8的循环语句可改为的循环语句可改为 Do p=m Mod n If p=0 Then Exit Do End If m=n n=p Loop While p 0 Text3.Text=n 把每次输入的数累加。当输入把每次输入的数累加。当输入-1时结束程序的运行时结束程序的运行(1)创建应用程序的用户界面和设置对象属性创建应用程序的用户界面和设置对象属性(2)编写程序代码编写程序代码 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.9 5.9 设计一个设计一个“加法器加法器”程序程序 多重循环是指循环体内含有循环语句的循环多重循环是指循环体内含有循环语句的循环 例例5.10 多重循环程序示例多重循环程序示例 程序运行结果程序运行结果 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.2 5.2 多多 重重 循循 环环 本例可采用本例可采用两重循环两重循环来实现。外循环控制输出来实现。外循环控制输出7行,内循行,内循环控制每行输出要求的字符数。环控制每行输出要求的字符数。在进入内循环之前,使用在进入内循环之前,使用Print Tab()来对起始输出位置来对起始输出位置定位,退出内循环后,使用定位,退出内循环后,使用Print来控制换行。来控制换行。例例5.11 5.11 编一程序,输出下列所示的图形编一程序,输出下列所示的图形 采用采用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.125.12 取一元、二元、五元的硬币共十枚,付取一元、二元、五元的硬币共十枚,付给给2525元钱,有多少种不同的取法元钱,有多少种不同的取法?(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 列表框和组合框都能为用户提供若干个选列表框和组合框都能为用户提供若干个选项,供用户从中任意选择项,供用户从中任意选择 两种控件的特点是为用户提供大量的选项两种控件的特点是为用户提供大量的选项但又占用很少的屏幕空间,操作简单方便但又占用很少的屏幕空间,操作简单方便 5.3 列表框与组合框列表框与组合框 1.列表框的用途列表框的用途 列表框列表框(ListBox)用于列出可供用户选择的项目列表,用用于列出可供用户选择的项目列表,用户可从中选择一个或多个选项。户可从中选择一个或多个选项。自动出现滚动条自动出现滚动条 表项表项 索引索引 2.常用属性常用属性 (1)Name属性属性(2)List属性:该属性是一个字属性:该属性是一个字 符型数组符型数组,用于存放列表框的表项用于存放列表框的表项 数组的下标从数组的下标从0开始开始 图图5.5中,中,List1.List(0)的值为的值为“教授教授”,List1.List(1)的值为的值为“副教授副教授”列表框列表框 (3)ItemData属性属性:为每个表项设置一个对应的数值:为每个表项设置一个对应的数值 (4)ListCount属性属性:返回列表框中表项的数目:返回列表框中表项的数目 (5)ListIndex属性属性:返回已选定表项的顺序号:返回已选定表项的顺序号(索引索引)。若。若未选定任何项,则未选定任何项,则ListIndex的值为的值为-1 (6)Text属性属性:存放当前选定表项的文本内容:存放当前选定表项的文本内容 (7)Selected属性属性:逻辑值,表示列表框中某一表项是否:逻辑值,表示列表框中某一表项是否被选中被选中 (8)Sorted属性属性:设置列表框中各表项在运行时是否按字:设置列表框中各表项在运行时是否按字母顺序排列母顺序排列 (9)MultiSelect属性属性:设置是否允许同时选择多个表项:设置是否允许同时选择多个表项 假设列表框假设列表框List1中有四个表项,并已选定第中有四个表项,并已选定第2项,则项,则 有:有:List1.List(0)的值为的值为”教授教授”个数个数List1.ListCount 为为4 List1.ListIndex 为为1 List1.Text的值为的值为”副教授副教授”List1.Selected(1)为为True List1.Selected(0)为为False 采用以下方法,可为列表框采用以下方法,可为列表框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)=“助教助教”3.事件事件 可接收可接收Click、DblClick等事件等事件 4.方法方法 (1)AddItem方法:方法:用于把一个列表项加入列表框用于把一个列表项加入列表框 格式:格式:对象对象.AddItem 列表项列表项,索引,索引 举例:举例:List1.AddItem 海南省海南省,28 (2)Clear和和RemoveItem方法方法:用于删除列表项:用于删除列表项 5.列表框表项的输出列表框表项的输出 常用两种方法:常用两种方法:(1)用鼠标单击列表框内某一表项,则该表项值存放在用鼠标单击列表框内某一表项,则该表项值存放在Text属性中。例如:属性中。例如:x=List1.Text 把表项值存放在把表项值存放在x变量中变量中 (2)指定索引号来取表项的内容,例如:指定索引号来取表项的内容,例如:List1.ListIndex=3 x=List1.Text (1)分析:判别条件为分析:判别条件为(n Mod 3=0)And(n Mod 8=0)(2)创建应用程序的用户界面和设置对象属性创建应用程序的用户界面和设置对象属性例例5.13 设计一个程序,找出设计一个程序,找出100800范围内所有范围内所有能同时被能同时被3和和8整除的自然数整除的自然数 (3)编写程序代码编写程序代码 编写的编写的“显示显示”按钮按钮Click事件过程代码:事件过程代码:Private Sub Command1_Click()List1.Clear For n=100 To 800 If (n Mod 3=0)And (n Mod 8=0)Then List1.AddItem n End If Next n End Sub (1)创建应用程序的用户界面和设置对象属性创建应用程序的用户界面和设置对象属性 用户先在左列表框用户先在左列表框(List1)选择一个或多个选修课,当单击选择一个或多个选修课,当单击“显示显示”按钮时,在右列表框按钮时,在右列表框(List2)中将显示出用户选中的中将显示出用户选中的所有课程。单击所有课程。单击“清除清除”按钮时,将清除右列表框中的内容按钮时,将清除右列表框中的内容 (2)编写程序代码编写程序代码例例5.14 设计一个选课程序设计一个选课程序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)组合框组合框 (2)Text属性属性:该属性是用户所选定项目的文本或:该属性是用户所选定项目的文本或直接从文本框输入的文本直接从文本框输入的文本 (1)创建应用程序的用户界面创建应用程序的用户界面(2)设置对象属性设置对象属性 组合框的组合框的Style属性为属性为0,TabIndex(键序键序)为为0 两个标签;四个命令按钮;两个标签;四个命令按钮;一个文本框一个文本框Text1,用来显示当,用来显示当前的选修课总课程数前的选修课总课程数例例5.15 5.15 编制程序,把一批课程名放入组合框中,再对组编制程序,把一批课程名放入组合框中,再对组合框进行项目显示、添加、删除、全部删除等操作合框进行项目显示、添加、删除、全部删除等操作 (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两重循环;两重循环;采用采用Print直接在窗体上输出结果直接在窗体上输出结果Private Sub Form_Load()Show FontSize=15 设置字号设置字号 Print Tab(12);“九九乘法表九九乘法表“输出标题输出标题 FontSize=12 Print 输出空行输出空行 For k=0 To 9 Print Tab(k*4);k;输出第一行数字输出第一行数字 Next k Print 换行换行 For j=1 To 9 外循环外循环 Print j;For k=1 To j 内循环内循环 Print Tab(k*4);j*k;输出乘积输出乘积 Next k Print 换行换行 Next jEnd Sub5.4 5.4 程序举例程序举例 例例5.16 5.16 打印打印“九九乘法表九九乘法表”打印打印“九九乘法表九九乘法表”(1)分析分析:模仿十进制整数转换成二进制数的方法:模仿十进制整数转换成二进制数的方法(即即“除除2取余取余”),采用逐次,采用逐次“除除n取余取余”法法(n为为2,8或或16),即用,即用n不不断去除要转换的十进制数,直至商为断去除要转换的十进制数,直至商为0为止,将每次所得的余为止,将每次所得的余数逆序排列数逆序排列(以最后余数为最前位以最后余数为最前位),即得到所转换的,即得到所转换的n进制数。进制数。(2)创建应用程序的用户界面和设置对象属性创建应用程序的用户界面和设置对象属性例例5.17 输入一个十进制整数,将其转换成二进制输入一个十进制整数,将其转换成二进制数、八进制数或十六进制数数、八进制数或十六进制数 列表框的名称为列表框的名称为List1,其,其List属性设置了三个表项:属性设置了三个表项:二进制、八进制和十六进制,二进制、八进制和十六进制,ItemData属性设置了相应的属性设置了相应的值:值:2,8和和16 (3)编写程序代码编写程序代码 功能要求:用户在文本框功能要求:用户在文本框Text1中输入要转换的十进制中输入要转换的十进制数,选择转换进制,单击数,选择转换进制,单击“转换转换”按钮按钮(Command1)后,则后,则在文本框在文本框Text2中输出转换结果。中输出转换结果。“换码表换码表”(Ch变量变量)的作用的作用Private Sub Command1_Click()“转换转换”按钮单击事件过按钮单击事件过程程 Dim y As String,x As Long,s As Integer Dim Ch As String,n As Integer Ch=0123456789ABCDEF 换码表换码表 If List1.ListIndex=-1 Then n=2 未选,则以二进制转换未选,则以二进制转换 Else n=List1.ItemData(List1.ListIndex)End If y=:x=Val(Text1.Text)If x=0 Then Text2.Text=Exit Sub End If Do While x 0 s=x Mod n 取余数取余数 x=Int(x/n)求商求商 y=Mid(Ch,s+1,1)+y 换码,反序加入换码,反序加入 Loop Text2.Text=yEnd SubPrivate Sub Command2_Click()“结束”Unload MeEnd Sub示例:(142)10=(8E)16 例如:例如:102*5 24=2*2*2*3 76=2*2*19解题的步骤;程序代码:解题的步骤;程序代码:Private Sub Form_Load()Show s=InputBox(请输入一个正整数请输入一个正整数)x=Val(s):Print Print x;=;For i=2 To x Do While(x Mod i=0)求相同因子求相同因子 x=x/i Print i;If x 1 Then Print *;Loop Next i End Sub例例5.18 把一个正整数写成若干个素数相乘的形式把一个正整数写成若干个素数相乘的形式示例:20=2*2*5 统计试验法是一种进行大量的随机性试验,并根据试验统计试验法是一种进行大量的随机性试验,并根据试验结果统计而得到结论的方法结果统计而得到结论的方法 (1)分析分析:在下图中,边长为:在下图中,边长为1个单位的正方形内包含了半个单位的正方形内包含了半径为径为1个单位的个单位的1个圆,假设在正方形内有大量的密集的随机个圆,假设在正方形内有大量的密集的随机点,那么可以认为:点,那么可以认为:(1/4圆面积圆面积)/正方形面积正方形面积对应区域随机点数之比对应区域随机点数之比 (1/4)对应区域随机点数之比对应区域随机点数之比由此得到:由此得到:4对应区域随机点数之比对应区域随机点数之比程序中,使用随机函数来产生随机点数的位置程序中,使用随机函数来产生随机点数的位置(x,y),即,即 x=Rnd y=Rnd x,y值都小于值都小于1,可以认为所产生的全部随机点都落在正,可以认为所产生的全部随机点都落在正方形内。如果采用方形内。如果采用s和和n来分别记录落在正方形内和来分别记录落在正方形内和1/4圆内的圆内的随机点数。随机点数。s为用户指定的随机点数,对于每次产生的随机点为用户指定的随机点数,对于每次产生的随机点(x,y),若,若x2+y21,说明此点落在,说明此点落在1/4圆内,则圆内,则n加加1。最后计。最后计算算4*n/s就是所求的就是所求的近似值。近似值。附录附录 利用统计试验法计算利用统计试验法计算值值 (例例5.19)(2)创建应用程序的用户界面和设置对象属性创建应用程序的用户界面和设置对象属性 假设随机点数为假设随机点数为10000 (3)编写程序代码编写程序代码 利用利用Circle方法和方法和Line方法画出方法画出1/4圆弧和正方形的两个边,用圆弧和正方形的两个边,用Pset方法画出随机点方法画出随机点 Private Sub Command1_Click()Dim x As Double,y As Double Randomize n=0:s=Val(Text1.Text)For i=1 To s x=Rnd y=Rnd PSet(2500*x,2500*y),RGB(0,255,0)If x*x+y*y=1 Then n=n+1 End If Next i Text2.Text=4*n/s End Sub Private Sub Form_Load()Show 画线和圆弧画线和圆弧 Line(0,2500)-(2500,2500),RGB(255,0,0)Line(2500,0)-(2500,2500),RGB(255,0,0)Circle(0,0),2500,RGB(0,0,255)Text1.SetFocus 设置焦点设置焦点 End Sub Private Sub command2_click()Text1.Text=Text2.Text=Cls Call Form_Load 调用过程调用过程form_load Text1.SetFocus End Sub
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!