vb程序设计教程(潘蕾)vb课件.ppt

上传人:牧羊曲112 文档编号:5451938 上传时间:2023-07-08 格式:PPT 页数:74 大小:754KB
返回 下载 相关 举报
vb程序设计教程(潘蕾)vb课件.ppt_第1页
第1页 / 共74页
vb程序设计教程(潘蕾)vb课件.ppt_第2页
第2页 / 共74页
vb程序设计教程(潘蕾)vb课件.ppt_第3页
第3页 / 共74页
vb程序设计教程(潘蕾)vb课件.ppt_第4页
第4页 / 共74页
vb程序设计教程(潘蕾)vb课件.ppt_第5页
第5页 / 共74页
点击查看更多>>
资源描述

《vb程序设计教程(潘蕾)vb课件.ppt》由会员分享,可在线阅读,更多相关《vb程序设计教程(潘蕾)vb课件.ppt(74页珍藏版)》请在三一办公上搜索。

1、第四章 Visual Basic的基本控制结构,授课教师:潘 蕾,2,1、掌握VB 程序设计中的常用语句2、掌握顺序、选择、和循环结构及相应的语句,教学要求,3,教学内容,4.1 顺序结构4.2 选择结构4.3 循环结构4.4 循环嵌套4.5 程序示例,4,4.1 顺序结构,顺序结构是程序设计中最基本、最简单的结构,在此结构中,程序按照语句出现的先后顺序依次执行。顺序结构是任何程序的基本结构,即使在选择结构和循环结构中也包含有顺序结构。,5,4.1 顺序结构,【例4.1】单击窗体,在窗体上输出两行不同格式的文字。新建工程,在窗体的Click事件中添加以下代码:Private Sub Form_

2、Click()Form1.FontSize=12Form1.ForeColor=vbRedForm1.Print 您好Form1.FontSize=16Form1.ForeColor=vbBlueForm1.Print 欢迎学习 Visual BasicEnd Sub,6,4.2 选择结构(分支结构),4.2.1 If-Then-Else-End If语句4.2.2 Select-Case-End Select语句,选择结构是根据某个条件决定执行哪部分程序,可以用If语句或Select Case语句实现。其中If语句根据分支的多少分为单分支、双分支和多分支If语句。Select Case语句使

3、程序只能根据某一个条件的不同取值来决定执行哪部分程序。大部分情况下两种语句间可以相互替换。,7,1、If-Then-Else语句(双分支结构)格式1:If Then Else End If,4.2.1 If-Then-Else-End If语句,逻辑框图:,功能:如果条件成立,则执行A组语句,否则执行B组语句。,说明:(1)判断条件可以是逻辑变量、关系表达式、逻辑表达式(2)If和End If语句成对出现;,条件?,A组语句,B组语句,成立,不成立,8,例:计算分段函数y的值。,Private Sub cmdCalculate_Click()Dim x As Single,y As Singl

4、e x=Val(Text1.Text)If x=0 Then Else End If Text2.Text=Str(y)End Sub,cmdCalculate,缩格输入,Private Sub cmdExit_Click()EndEnd Sub,Private Sub cmdClear_Click()Text1.Text=Text2.Text=Text1.SetFocusEnd Sub,从文本框取数据,向文本框放数据,y=2*Sqr(x+7)-6,y=5*x+Exp(x)-2,9,格式2:单行If-Then-Else语句 If Then Else 说明:(1)在A组语句和B组语句都只有一个语

5、句时,可使用该格式;(2)End If语句省略。例:上例可改写为以下程序段。,Private Sub cmdCalculate_Click()Dim y As Single,x As Single x=Val(Text1.Text)If x=0 Then y=2*Sqr(x+7)-6 Else y=5*x+Exp(x)-2 Text2.Text=Str(y)End Sub,10,格式3:省略 ELSE 的 If 语句(单分支语句)If Then End If格式4:省略 ELSE 的 单行 If 语句 If Then,逻辑框图,11,2.嵌套的If结构:在If语句的“语句块”中包含另一个If语

6、句,叫做嵌套的If结构。,If Then 外层 If Then 内层 Else If then Else 最内层 End IfElse If Then End IfEnd If,用于解决有多种情况的问题,4.2.1 If-Then-Else-End If语句,12,例:输入三角形的三边a、b、c,求三角形的面积,a0 and b0 and c0,a+bc and b+ca and a+cb,13,Private Sub cmdCalculate_Click()Dim a As Single,b As Single,c As Single,p As Single,s As Single a=Va

7、l(Text1.Text)b=Val(Text2.Text)c=Val(Text3.Text)If a0 And b0 And c0 Then If a+bc And b+ca And c+ab Then p=(a+b+c)/2 s=Sqr(p*(p-a)*(p-b)*(p-c)Text4.Text=Str(s)Else Text4.Text=“不能构成三角形”End If Else Text4.Text=“边长不能小于0”End IfEnd Sub,计算公式:,其中:,14,练习:键盘输入三个数,将它们从大到小依次排列输出,Private Sub Form_Click()Dim a As I

8、nteger,b As Integer,c As Integer,temp As Integer a=InputBox(输入a,顺序输出)b=InputBox(输入b,顺序输出)c=InputBox(输入c,顺序输出)If a c Then Print a,b,c Else Print a,c,b End IfEnd Sub,保证a为a,b两数中的大值,15,例:输入分数并判断等级分。计算规则如下:分数 100-90 89-80 79-70 69-60 60等级分 A B C D E,Private Sub Text1_KeyPress(KeyAscii As Integer)Dim Scor

9、e As Integer,Degree As String If KeyAscii=13 Then Score=Val(Text1.Text)If Score=90 And Score=80 Then Degree=B Else If Score=70 Then Degree=C Else If Score=60 Then Degree=D Else Degree=E End If End If End If End If Text2.Text=Degree End IfEnd Sub,缺点:嵌套层次过多,结构不清晰,容易出错。,从文本框取数据,向文本框放数据,16,3、多分支If-Then-

10、ElseIf语句格式:If Then ElseIf Then ElseIf Then Else End If,功能:-对条件自上而下依次判断,若条件i成立,则执行相应的Ai组语句;-若所有条件都不成立,则执行An+1组语句。,4.2.1 If-Then-Else-End If语句,17,(1)该语句结构可以解决多分支问题,只有一个End If语句,避免If语句嵌套层数过多的情况;(2)Else语句可以省略;(3)该结构是一个单出口的结构,即只会执行一组语句。无论执行了哪个语句块,都将执行End If的后继语句。,说 明,18,Private Sub Text1_KeyPress(KeyAsci

11、i As Integer)Dim Score As Integer,Degree As String If KeyAscii=13 Then Score=Val(Text1.Text)If Score=90 And Score=80 Then Degree=B ElseIf Score=70 Then Degree=C ElseIf Score=60 Then Degree=D Else Degree=E End If Text2.Text=Degree End IfEnd Sub,特点:结构清晰。,将上例用If-Then-ElseIf语句改写:,80=Score90?,19,格式:Selec

12、t Case Case Case Case Case Else End Select,功能:计算测试表达式的值,自上而下检查测试条件;若表达式的值符合测试 i,则执行相应的语句块 i;若所有条件都不成立,则执行语句块n+1。,4.2.2 多分支Select-Case-End Select语句,20,例:将上例用Select Case语句改写。,Private Sub Text1_KeyPress(KeyAscii As Integer)Dim Score As Integer,Degree As String If KeyAscii=13 Then Score=Val(Text1.Text)S

13、elect Case Score Case 90 To 100 Degree=A Case 80 To 89 Degree=B Case 70 To 79 Degree=C Case 60 To 69 Degree=D Case Is60 Degree=E End Select Text2.Text=Degree End IfEnd Sub,21,【例4.4】将例4.3用Select Case语句实现。,程序代码如下:Private Sub Command1_Click()Dim st As String*1st=Text1.TextSelect Case st Case a To z Tex

14、t2.Text=是小写字母 Case A To Z Text2.Text=是大写字母 Case 0 To 9 Text2.Text=是数字字符 Case Else Text2.Text=是其他字符End SelectEnd Sub,22,(1)测试表达式可以是算术表达式或字符表达式;(2)测试条件有四种形式:常量,如2、3、“A”等 闭区间,如3 To 78、“B”To“H”等 开区间,如Is20、Is30(3)Case Else语句部分可以省略;(4)以End Select语句结束;(5)该结构是一个单出口的结构,即只会执行一个语句块,若条件中有两个成立,则按语句的顺序执行前面的语句块。无论

15、执行了哪个语句块,都将执行End Select的后继语句。,说 明,23,分支结构的适用情况,验证用户输入数据的合法性分段函数计算用于区分等级其他须根据条件不同执行不同操作的情况,24,例1,例2,25,4.3 循环结构,4.3.1 For-Next 循环结构语句(计数循环)4.3.2 Do-loop循环结构语句(条件循环)4.3.3 GoTo语句*4.3.4 循环嵌套,26,在屏幕上打印5行*号,每行5个:,举例,顺序结构实现:Private Sub Command1_Click()Print*Print*Print*Print*Print*End Sub,循环结构实现:Private Su

16、b Command1_Click()Dim i As Integer Do While i 5 Print*i=i+1 LoopEnd Sub,循环控制条件,循环体,注:循环控制条件 是否已打印了5行 循环体在窗体上打印一行“*”提示:要设立一个变量,用于记录已打印的行数,每打印一行,计数变量要加1,循环控制条件即计数变量小于等于5,27,由一定的条件控制,反复执行某个程序段的程序结构称为循环结构。用于解决一些需要重复进行某些操作的问题。循环要素:循环体 重复执行的语句块 循环控制条件 条件或逻辑表达式 注:为防止死循环,在循环体内必须要有对应语句,使得循环执行条件会不满足,结束循环运行。,基

17、本概念,28,4.3.2 Do-Loop 循环(条件循环),Do-Loop循环的两种类型:“当型”(While)循环“直到型”(Until)循环,29,4.3.2 Do-Loop 循环结构语句一、“当型”循环:当条件成立时,执行循环体,至少执行一次循环体,30,4.3.2 Do-Loop 循环二、“直到型”循环:直到 条件成立时,退出循环体,31,(1)Do和Loop为循环结构关键字,必须成对出现,缺一不可;(2)循环体由可执行语句组成,可以嵌套分支结构和循环结构;(3)While语句和Until语句是可以相互转换的;(4)使用Exit Do语句可无条件退出循环,一般情况下在该语句前加上If条

18、件判断,如:If e Then Exit Do 当在执行循环体时,如果条件e被满足,则执行Exit Do语句直接退出循环。,说 明,32,格式五(特殊形式):Do Loop,执行过程:反复执行循环体。该结构称为“死循环”,在循环体内必须通过 Exit Do 语句强制退出循环体。,Do print“*”i=i+1 If i=5 then Exit Do Loop,注意:如果程序运行时出现死循环,可以使用 Ctrl+Break中止。,33,算法分析:求最大公约数的常用方法是,例1:求两个数的最大公约数,解决这类问题的核心是如下两点:(1)需要重复运行的操作相除取余(2)终止循环的条件除数为0,M

19、N R,8,2,0,Do r=m Mod n m=n n=rLoop Until n=0,最大公约数是()?,m,辗转相除法,0,34,由于输入的数据M和N要求是自然数,在程序中应加入对数据的合法性进行检验的部分;考虑到程序的应用范围,数据类型可选用长整型。,问题分析及界面设计,35,Private Sub Command1_Click()Dim m As Long,n As Long,r As Long m=Val(Text1.Text)取数据M n=Val(Text2.Text)取数据N If m 1 Or n 1 Then Text3.Text=数据错误!Else Do 求最大公约数 r

20、=m Mod n m=n n=r Loop Until n=0 Text3.Text=CStr(m)输出最大公约数 End If End Sub,Private Sub Command2_Click()Text1.Text=Text2.Text=Text3.Text=End Sub,Private Sub Command3_Click()End End Sub,检验数据合法性,Mod 前后加空格,36,例2:将十进制数转换成二进制,算法分析:十进制向二进制转换,采取的是除2取余法。,解决本问题必须考虑的是如下几点:(1)需要重复运行的操作除2取余(2)终止循环的条件商为0(3)二进制字符串的输

21、出由高位到低位,37,注意:在循环控制条件中必须出现变量,且该变量在循环体中一定要改变值,否则会造成“死循环”,即无休止的循环。若在运行程序过程若出现“死循环”,用Ctrl+Break可以强制终止程序的执行。,s=Cstr(r)&s,将余数逆序输出,即将最新获得的余数,连接在已获得的余数串的前面,s=Cstr(r)&s,Eg.a=6,38,Private Sub Form_click()Dim n as Integer,s as Long n=1 s=0 Do While n=100 s=s+n n=n+1 Loop Print“1+2+3+100=”;sEnd Sub,实现累加,练习1:求S

22、=1+2+3+4+100:,100内的奇数/偶数和?,39,练习2:计算圆周率的近似值。计算公式如下:,计算精确到通项的值小于10-7。提示:s=s+可实现累加。,解决求累加和的问题,关键注意两点:(1)通项的表示;(2)循环的结束条件;,40,Private Sub Form_Click()Dim Pi As Single,s As Single,r As Single Dim n As Integer n=1:s=0s为累加器 Do r=1/(2*n-1)2求通项 s=s+r n=n+1 Loop While r 1e-7 Pi=Sqr(8*s)Print PiEnd Sub,41,1)通

23、项为:,2)循环的结束条件为:|r|1e-4,42,Private Sub Form_Click()Dim Pi As Single,s As Single,r As Double Dim n As Integer n=1:s=0 Do r=(-1)(n+1)*1/(2*n-1)求通项 s=s+r n=n+1 Loop While Abs(r)0.0001 Pi=4*s Print PiEnd Sub,43,格式:For=To Step 循环体 Next 功能:由计数变量控制,有限次地执行循环体。,4.3.1 计数循环(For-Next循环),相当于以下语句的实现:i=Do Until i i

24、i Loop,44,Private Sub Form_Click()For i=1 To 10 Step 2 Print i;Next i Print i=;iEnd Sub,执行本程序,窗体上将显示:1 3 5 7 9 i=11。它表明循环一共执行了5次,退出循环时,i的取值为11。,例1:请写出窗体上打印的内容,以及循环执行的次数。,45,1)循环控制变量主要是用于控制循环的执行次数,但通过合理的设置,可以在循环体中巧妙加以利用,以提高程序的效率.,分析:这个式子有现成的求和公式,在这里主要借助该例体现一下在循环体中计数变量的应用。设:计数变量为i,初值为1,终值为100,步长值为1,可省

25、略。i从1变化到2、3、4、100,正好和式子中的通项变化一致。,S=0For i=1 To 100 S=S+iNext i,S=0For i=100 To 1 Step-1 S=S+iNext i,例2:求S=1+2+3+100。,S=0:n=1Do While n=100 S=S+n n=n+1 Loop,46,For-Next是关键字,成对出现,缺一不可;循环体由可执行语句组成,可嵌套分支结构和循环结构(例4.6);计数变量应为整型或单精度型,初值、终值和步长值为相应类型的表达式;步长值可以为正,也可以为负,省略时默认步长值为1;循环次数为:Int(终值-初值)/步长值)+1;Exit

26、For语句可以出现在循环体中,用于无条件退出循环;初值、终值、步长值包含的变量如果在循环体内被改变,不会影响循环执行的次数,但循环控制变量若在循环体内被重新赋值,则循环的次数有可能变化。,说 明:,47,【例4.6】输入20个整数,分别计算并输出正数和负数的平均值。,程序运行后,显示一个对话框,在对话框中输入第一个数,接着再显示一个对话框,再输入下一个数直到20个数输完为止。输入完20个数之后,文本框1和文本框2中分别显示正数和负数的平均值。,Private Sub Form_Click()Dim i As Integer,number As IntegerDim Pnumber As Int

27、eger,Nnumber As IntegerDim p As Integer,n As IntegerDim Pav As Single,Nav As SingleFor i=1 To 20 number=InputBox(Enter data:)输入数据 If number 0 Then Pnumber=Pnumber+number 正数求和 p=p+1 正数计数 Else Nnumber=Nnumber+number 负数求和 n=n+1 负数计数 End IfNext iPav=Pnumber/p 求正数平均值Nav=Nnumber/n 求负数平均值Text1.Text=Str(Pav

28、)显示正数平均值Text2.Text=Str(Nav)显示负数平均值End Sub,48,*写出下列程序的运行结果,Private Sub Form_Click()Dim p As Integer,i As Integer,n As Integer p=2:n=20 For i=1 To n Step p p=p+2 n=n-3 i=i+1 If p=10 Then Exit For Next i Print i,p,nEnd Sub,49,分析:这类问题没有什么算法,只有将所有情况列举然后检查得分情况,直到发现答案为止。设该生共答对i道题,答错(26-i)道题,如果 i*8-(26-i)*5

29、=0那么i就是答案。i的变化范围是1-26。一旦找到答案,可以立即结束循环。,穷举法要点:-通过循环语句,遍历所有可能的情况;-在循环体内通过条件语句,将符合条件的情况找出来。,例3:某试卷有26个问题,答对一题得8分,答错一题扣5分,某学生回答了全部26个问题,总分为0分,问他答对几道题,答错几道题。,Private Sub Form_Click()Dim i As Integer For i=1 To 26 If i*8-(26-i)*5=0 Then Exit For Next i Print 答对;i;道,答错;26-i;道End Sub,条件(关系表达式),50,*例4 从字母数字组

30、成的字符串中找出所有的大写字母并逆序输出(P71-例5-5),51,一、界面设计(如上图)二、算法设计 由题意,所需执行的操作应该是:依次判断字符串中的每一个字符是否是大写字母,若是,则取出放入结果字符串中。1)考虑通过在一个循环结构里面嵌套一个判断结构实现,因重复执行判断的次数,即字符串的长度len(s)已知,则循环结构用FOR语句实现;2)判断一个字符是否是大写字母,可先将单个字符从字符串中取出Mid(s,i,1),并将该字符直接与“A”、”Z”字符进行比较,应大于等于“A”,并同时小于等于”Z”x=“A”AND x=“Z”;3)要实现逆序,即将最新获得的大写字母字符,连接在已获得的结果字

31、符串的前面t=x&t。,52,Private Sub Cmd1_Click()Dim s As String,x As String,t As String Dim i As Integer s=Text1.Text Text2.Text=tEnd Sub,For i=1 To Len(s)x=Mid(s,i,1)If x=A And x=Z Then t=x&t End If Next i,53,分析:素数:除了1和它本身,不能被其它数整除的数。算法考虑用穷举法。程序:,For i=2 To x-1 If x Mod i=0 Then Exit For Next i,例5:判断一个数是否为素

32、数.,If Then Print x;是素数!Else Print x;不是素数!End If,i=x,For i=2 To x-1 If x Mod i=0 Then Print x;不是素数 Else Print x;是素数 End IfNext i,其实不用整除到X-1,整除到Sqr(X),即可判断,错误程序,54,4.3.3 GoTo语句(选讲),前面介绍的循环结构都是根据某个条件进行循环,称为有条件跳转语句;还有一种结构,即GoTo语句,是无条件跳转语句,程序执行到该语句时不需要判断条件,直接将程序执行的流程无条件地转移到本过程的另一段程序代码。格式为:GoTo 行标签|行号 行标签

33、为语句行标识符的简称。该语句在执行后,无条件地转移到行标签或行号所在的位置处往下执行。行标签的命名与变量命名相同,行标签的后面跟“:”,行号则采用正整数形式。GoTo语句可以改变程序的执行顺序,跳过程序的某一部分去执行另一部分,或者返回已经执行过的某段程序使之重复执行,因此,用GoTo语句可以构成循环。在结构化程序设计中,要尽量少用或不用GoTo语句,以免造成结构混乱,程序可读性下降,用选择结构或循环结构来代替。,55,【例4.8】用GoTo语句编写例4.7程序,程序代码如下:Option ExplicitPrivate Sub Command1_Click()Dim n As Integer

34、,sum As Integer n=1 sum=0There:sum=sum+n n=n+1 If sum 1000 Then GoTo There Print sum最小值=;sum Print n最小值=;n-1End Sub,56,4.4 循环的嵌套 所谓循环的嵌套,是指在循环结构中包含另一个循环结构。条件循环和计数循环可以相互嵌套。,57,例1:在窗体上按行依次打印1到10,每个数字打印10遍。分析:这是一个典型的需要用二重循环结构的例子,外层用于控制打印的数字,内层控制每个数字打印的遍数。,Private Sub Form_click()Dim i as integer,j as i

35、nteger For i=1 to 10 For j=1 to 10 Print i;Next j Print Next IEnd Sub,问题:在执行整个程序中 print i 语句共执行了多少次?,打印10个数字,每个数字打印10遍,换行,58,(1)内层循环必须完全包含在外层循环之中,不能交叉;(2)内层循环中还可以嵌套循环结构,但建议不要使用多层循环,解决一般问题最多需要三重循环;(3)在多重DO-LOOP循环中,若有EXIT DO语句,则只会强制退出该语句所在的循环,并执行LOOP的后续语句,并不会退出所有的循环(就近原则)。(4)在多重FOR-NEXT循环中,若有EXIT FOR语

36、句,则只会强制退出该语句所在的循环,并执行NEXT的后续语句,并不会退出所有的循环。,说 明,59,【例4.9】编写程序,找出100以内所有满足a2+b2=c2且ab的自然数组合。,本题也属于“穷举”问题,解题的基本思想是:一一列举各种可能的情况,并判断哪种情况是符合要求的解,这种算法称为穷举法(又称“枚举法”),通常采用循环结构来实现。程序界面如图所示,主要由三个列表框和一个命令按钮及用于说明的标签组成,查找到的a、b、c分别放入三个列表框中,组数显示在界面下方的标签4上。,60,程序代码如下:Private Sub Command1_Click()Dim a As Integer,b As

37、 Integer,c As Integer Dim i As Integer For a=1 To 100 For b=1 To 100 For c=1 To 100 If a 2+b 2=c 2 And a=b Then List1.AddItem a List2.AddItem b List3.AddItem c i=i+1 End If Next c Next b Next a Label4.Caption=共有&i&组End Sub,本程序使用了三重循环,循环变量在1100之间变化,内循环体被执行了100*100*100次。,61,Private Sub Form_Click()Dim

38、 S As Long,i As Integer Dim j As Integer,fact As Long For i=1 To 10 fact=1 For j=1 To i fact=fact*j Next j S=S+fact Next i Print s=;SEnd Sub,Private Sub Form_Click()Dim S As Long,i As Integer Dim fact As Long fact=1 For i=1 To 10 fact=fact*i S=S+fact Next i Print s=;SEnd Sub,*问题:这两段程序的功能分别是什么?,请注意多重

39、循环中赋初值语句的位置。,62,4.5 程序示例,63,例1:产生10个2050随机整数,打印在窗体上,并指出最大值和最小值。,分析:1.要求得到10个随机数,用记数循环FOR语句实现。2.产生随机整数的方法是 x=Int(上界-下界+1)*Rnd)+下界 必须和Randomize语句配合使用。3.要求出最大值和最小值,则每产生一个随机数,即与已知的最大数、最小数比较,若它大于已知的最大数,则它是新的最大数;若它小于已知的最小数,则它是新的最小数。,64,Private Sub Form_Click()Dim i As Integer,x As Integer,Dim max As Integ

40、er,min As Integer For i=1 To 10 x=Int(Rnd*31)+20 Print x;Next I Print Print max=;max Print min=;minEnd Sub,max=20:min=50,If max x Then min=x,65,例2:找出所有三位水仙花数。所谓水仙花数,是指各位数字的立方和等于它本身的数,如153=13+53+33。(P77例5-9),解题思路:第一步:找出确定一个数是水仙花数的方法;第二步:从100到999依次判断。算法实现:采用循环穷举所有100到999的整数 确定是否水仙花数的基本要素是分解出个、十、百位上的数值

41、进行立方和运算,方法如下:1、穷举法 2、算术法 3、截取字符串法,66,Private Sub Command1_Click()Dim i As Integer,a As Integer,b As Integer Dim c As Integer,st As String For i=100 To 999 a=i100 b=(I Mod 100)10 c=I Mod 10 If i=a3+b3+c3 Then st=i&=&a&3+&b&3+&c&3 list1.AddItem st End If Next iEnd Sub,67,分析:设要解的方程为f(x)=0,并已知一个不够精确的初始解

42、X0,则有牛顿迭代公式:Xn+1=Xn-f(Xn)/f(Xn)n=0,1,2,利用迭代公式,依次求得X1,X2,X3,当|Xn+1-Xn|时,Xn+1即为所求得根。3 注意此算法的三要素:迭代公式、初值、和迭代精度(结束条件).,例3:用牛顿迭代法求方程xex-1=0在X0=0.5附近的一 个根,要求精确到10-7。,68,Private Sub Form_Click()Dim x as Single,x0 as Single x=0.5 Do x0=x x=x0-(x0*exp(x0)-1)/(exp(x0)*(x0+1)Loop Until Abs(x-x0)=1e-7 Print xEn

43、d Sub,69,例4:求补码。,70,Private Sub Command1_Click()Dim Source As String,i As Integer Dim D As String*1 Source=Text1.Text If Mid(Source,1,1)1 Then Text2.Text=Source Text3.Text=Source Else Text2.Text=Source Text3.Text=Source End IfEnd Sub,Mid函数的特殊功能:用指定的字符替换字符串中指定位置的内容,求反码,求补码,For i=2 To Len(Source)If Mi

44、d(Source,i,1)=1 Then Mid(Source,i,1)=0 Else Mid(Source,i,1)=1 End IfNext i,D=1 进位标志For i=Len(Source)To 2 Step-1 If Mid(Source,i,1)=1 And D=1 Then Mid(Source,i,1)=0 D=1 ElseIf Mid(Source,i,1)=0 And D=1 Then Mid(Source,i,1)=1 D=0 End IfNext i,71,*练 习,(1)随机产生10个201000之间的整数,分别 求出奇数偶数之和;(2)求出1000以内的完数;完数

45、即该数是其所有 因子之和,如:6=1+2+3;,72,Private Sub Form_Click()Dim n As Integer,i As Integer Dim ou As Double,ji As Double Print 该组随机数为:Randomize For i=1 To 10 n=Int(Rnd*(1000-20+1)+20 Print n;If n Mod 2=0 Then ou=ou+n Else ji=ji+n End If Next i Print Print 奇数之和=;ji Print 偶数之和=;ouEnd Sub,解1:,73,解2:找出1000以内的所有完数

46、。所谓完数,是指它的所有的质因子之和等于它本身的数,如6=1+2+3。,解题思路:第一步:找出确定一个数是完数的方法;第二步:从1到1000依次判断。算法实现:两层循环:内层循环用于找出某数 m 的所有因子并相加求和,并在循环结束后依据因子和是否与该数相等来判断该数是否是完数;外层循环则用于穷举所有1000以内的整数。,74,Private Sub Form_Click()Dim i As Integer,f As Integer,s As Integer For i=1 To 1000 s=0 For j=1 To i-1 If i Mod j=0 Then s=s+j Next j If s=i Then Print i Next iEnd Sub,注意s赋初值的位置,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号