收藏 分销(赏)

计算机二级VB笔记第四章.doc

上传人:pc****0 文档编号:6530293 上传时间:2024-12-11 格式:DOC 页数:16 大小:110KB
下载 相关 举报
计算机二级VB笔记第四章.doc_第1页
第1页 / 共16页
计算机二级VB笔记第四章.doc_第2页
第2页 / 共16页
计算机二级VB笔记第四章.doc_第3页
第3页 / 共16页
计算机二级VB笔记第四章.doc_第4页
第4页 / 共16页
计算机二级VB笔记第四章.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

1、第四章:程序程序:若干条语句(命令)的集合。程序(代码)的基本结构有三种:顺序结构,选择结构和循环结构(1)顺序结构:按照书写的顺序从上往下执行。任何一段代码总得来说是顺序结构(2)选择结构:表示如果.就.的意思分为三种选择:单分支选择,双分支选择,多分支选择1.单分支选择: a.单if(没有endif)在then后面只执行一条语句 格式: if 条件 then 语句1 如果条件成立,就执行语句,执行完后,就转到下一行去执行。 如果条件不成立时,直接转到下一行执行.例:以下程序用于从键盘上输入一个数,如果是3的倍数则输出yes,no,如果不是3的倍数,输出noDim x As Integer

2、Cls x = InputBox(请输入一个数) If x Mod 3 = 0 Then Print yes Print no b.块if(有end if),语句可以写多条 格式: if 条件 语句序列 end if 如果条件成立,就执行语句序列,执行完后,直接转到end if的后面执行。如果条件不成立,就直接转到end if后面执行. 例:输入一个数,并判断其是否为偶数,如果是,则输出yes,no,bye,如果不是,则输出bye dim x as integer x=inputbox(“请输入一个数:”) if x/2=x2 then print “yes” print “no” end i

3、f print “bye”如果将if x/2=x2 then print “yes” print “no”end ifprint “bye”改为if x/2=x2 then print “Yes” print “no” print “bye”结果是否一样?2、双分支选择: if 条件 then 语句序列1 else 语句序列2 end if如果条件成立,就执行语句序列1,执行完后,就转到end if后面执行,如果条件不成立,就执行else后面的语句序列2,执行完后,就转到end if后面执行.例:dim x as string,s as integerx=inputbox(“请输入:”) if

4、 x=”ABCD” then s=0endifs=1?s &无论输入的值为多少,结果都为1例:判断所输入的年份的是否为闰年.闰年满足以下两个条件之一:(1)能被4整除但不能被100整除(2)能被400整除如果闰年,则输出yes,否则输出no Dim x As Integer x = Val(Text1.Text) If x Mod 4 = 0 And x Mod 100 0 Or x Mod 400 = 0 Then MsgBox yes Else MsgBox no End Ifval(S)-将字符串s转换为数值,当碰到第一个非数字字符时,转换停止.print val(3*5);val(ab

5、c3),val(你好)3 0 03、多分支选择:1)if.elseif.elseif.else.endif 2)select case.case.case.case else.endif1)if.elseif.endif格式:if 条件1 then 语句序列1 elseif 条件2 then 语句序列2 elseif 条件3 then 语句序列3 . elseif 条件n then 语句序列n else 语句序列n+1 end if 首先判断if条件是否成立,如果成立,就执行语句序列1,执行完后,就转到endif的后面.如果if条件不成立,就接着判断elseif后面的条件2,如果成立,就执行语

6、句序列2,执行完后,转到end if的后面执行,依次类推. 当所有的if条件都不成立时,就执行else后面的语句 即系统会从上往下依次判断每一个if条件,一旦找到满足条件的if,执行其中的语句序列,执行完后,就转到end if的后面。即多个if只能选一个 else 语句序列n+1并不是必须写例:根据输入的笔试成绩(bs)和上机成绩(sj)计算考生的等级,等级规定如下: (1)如果笔试成绩和上机成绩均在85以上,为”优秀” (2)笔试成绩和上机成绩均在75以上,为”良好” (3)笔试成绩和上机成绩都及格,为”通过” (4)笔试成绩和上机成绩一门未过,为”补考” (5)笔试成绩和上机成绩两门未过,

7、为”重考”要求运行时,单击”评定”则计算考生的等级 Dim bs As Single, sj As Single, dj As Stringbs = Val(Text1.Text)sj = Val(Text2.Text)If bs = 85 And sj = 85 Then dj = 优秀ElseIf bs = 75 And sj = 75 Then dj = 良好ElseIf bs = 60 And sj = 60 Then dj = 通过ElseIf bs 60 and sj =1 and 测试表达式=4 当测试表达式=4时(is表示测试表达式)例:clsdim x as integerx

8、=inputbox(“请输入:”)select case xcase 3,1 print “1”case 2 print -1case 1 to 3 print 2case is=1 print 3case else print 0 end select &如果输入3,结果为1,如果输入2.2,结果为2例:根据输入的分数,求等级等级规定如下:100分为A+90分及以上:等级为,80-89分为B,70-79为C,60-69为D,其它为EDim score As Singlescore = InputBox(请输入分数:)ClsSelect Case score Case 100 Print A+

9、 Case 90 To 99 Print A Case 80 To 89 Print B Case 70 To 79 Print C Case 60 To 69 Print D Case Else Print EEnd Select第二种方法:Dim score As Singlescore = InputBox(请输入分数:)ClsSelect Case score Case 100 Print A+ Case Is = 90 Print A Case Is = 80 Print B Case Is = 70 Print C Case Is = 60 Print D Case Is =0 a

10、nd is=60 (错误)只能改成0 to 60 (对)三.循环结构:有三种:for.next,while.wend,doloop循环。 循环体:放在循环结构中,可以被反复执行若干次的语句.(1)while 循环 格式:while 条件 循环体 wend当条件为True时,就执行循环体,碰到wend,则返回到while处再次判断条件,如果成立,再执行循环体,碰到wend则转到while处再次判断条件.依次类推。当while条件一旦为false,就转到wend后面顺序往下执行。 例:求1和3的和 Dim i As Integer, s As Integer s = 0 i = 1 While i

11、 = 3 s = s + i i = i + 1 WendPrint s求1+2+.100的和Dim i As Integer, s As Integer s = 0 i = 1 While i = 100 s = s + i i = i + 1 WendPrint s求1+2+3.n的和Dim i As Integer, s As Integer,n as integer s = 0i = 1n=inputbox(“请输入n的值) While i 0时,条件为循环变量=终值 (2) 当步长=终值 (3)缺省 step 步长,则默认步长为1。2、exit for即强制性终止for循环.一般与i

12、f条件搭配使用。例:求n!写法1:Dim i As Integer, n As Integer, s As Double n = InputBox(请输入n:) s = 1 For i = 1 To n Step 1 s = s * i Next i i可以省略。Print s相当于Dim i As Integer, n As Integer, s As Double n = InputBox(请输入n:) s = 1 i = 1 While i = 1 s = s * i i = i - 1 Wend Print s例1:判断自然数n是否为素数素数:对于一个自然数n,如果它只能被1和本身整除

13、,称为该数为素数。数学规定最小的素数为2。分析:n能够除尽的数只能是1.n之间,除掉1和本身n,剩下的只有2.n-1,用n去除以2.n-1中的每一个数,一旦除尽,则n不是素数(能被第3个数除尽),如果都除不尽,则n是素数。Dim n As Integer, i As Integer n = InputBox(请输入一自然数n:) For i = 2 To n - 1 If n Mod i = 0 Then Exit For 一旦除尽即退出for循环,此时i在2到n-1之间。 Next i If i n-1 Then Print n & 是一个素数! Else Print n & 不是一个素数!

14、End If因为n不可能除尽超过它自己一半的数(本身除外),所以程序可以改为:Dim n As Integer, i As Integer n = InputBox(请输入一自然数n:) For i = 2 To n2 If n Mod i = 0 Then Exit For Next i If i n2 Then Print n & 是一个素数! Else Print n & 不是一个素数!End If数学家证明:只要除到n的平方根,即可出结论:因此,程序可以进一步改为:Dim n As Integer, i As Integer n = InputBox(请输入一自然数n:) For i

15、= 2 To int(sqr(n) If n Mod i = 0 Then Exit For Next i If i int(sqr(n) Then Print n & 是一个素数! Else Print n & 不是一个素数!End IfDo . Loop循环(有四种结构)格式1:Do while 条件循环体Loop当条件为True时,就执行循环体,碰到loop,则返回到do while处再次判断条件,如果成立,再执行循环体,碰到loop则转到do while处再次判断条件.依次类推。当do while条件一旦为false,就转到loop后面顺序往下执行。(即反复执行循环体,当一旦遇到条件为

16、假时循环结束,有点类似While wend语句)例:求1到100的和Private Sub Command1_Click() Dim i As Integer, sum As Integer sum = 0 i = 1 Do While i = 100 sum = sum + i i = i + 1 Loop Print sumEnd Sub思考:写成如下形式,等同吗?Private Sub Command1_Click() Dim i As Integer, sum As Integer sum = 0 i = 1 if i = 100 then sum = sum + i i = i +

17、1 end if Print sumEnd Sub格式2:Do 循环体Loop while 条件先执行循环体,碰到loop while时,判断后面的条件,若条件为true,则返回到上面的do继续执行循环体,执行完后碰到loop while时,判断后面的条件,若条件为true,则返回到上面的do继续执行循环体,依次类推,直到loop while后面的条件为false为止。(即反复执行循环体,当一旦遇到条件为假时循环结束)例:求1到100的和Private Sub Command1_Click() Dim i As Integer, sum As Integer sum = 0 i = 1 Do

18、sum = sum + i i = i + 1 Loop While i 100 条件为假时执行循环体。 sum = sum + i i = i + 1 Loop Print sum End Sub格式4:Do 循环体Loop until 条件先执行循环体,碰到loop until时,判断后面的条件,若条件为false,则返回到上面的do继续执行循环体,执行完后碰到loop until时,判断后面的条件,若条件为false,则返回到上面的do继续执行循环体,依次类推,直到loop until后面的条件为true为止。(即反复执行循环,直到条件为真时循环结束)例:求1到100的和Private

19、Sub Command1_Click() Dim i As Integer, sum As Integer sum = 0: i = 1 Do sum = sum + i i = i + 1 Loop Until i 100 条件为假时执行循环体。 Print sum End Sub思考:在 do loop循环中,while 条件与 until条件区别是什么?答:一个是当循环(while条件),即当条件为真时反复执行循环体,一旦遇到条件不成立,循环结束;一个是直到型循环(until条件),当条件为假时反复执行循环体,直到遇到条件为真时循环结束。同一个事物两种说法都可以表述:如: 吃吧当没有吃饱

20、 吃吧直到吃饱思考:在 do loop循环中,while 条件或until条件写在do后与写在loop后的区别是什么。答:while 条件或until条件,写在do后面时,是先判断后执行,有可能一次都不执行(即第一次条件就不成立);而当写在loop后面时,是先执行后判断,无论如何,总是要执行一次。这相当于人生的两种处事态度:前者是三思而后行,后者是先斩后奏。exit do 在上述四种格式中,都允许出现exit do语句,当有机会执行到此语句时,do.loop循环即刻终止(与for循环中的exit .for类似)例2:求s=1!+2!+3!+4!+5!,最后应为153.分析:用循环嵌套做,外层循

21、环用来控制总的次数(总共5次),内层循环用来求数的阶乘。Dim i As Integer, j As Integer, s As Double, t As Double s = 0 For i = 1 To 5 t = 1 For j = 1 To i求i的阶乘,结果放在变量t中 t = t * j Next j s = s + t Next i Print s说明:一般阶乘的数值都比较大(考试时可能要加到50!),所以s,t都定义为double型。思考:如果将t=1放在s=0这句话的后面,结果会有变化吗?如果有变化,结果为多少?Dim i As Integer, j As Integer,

22、s As Double, t As Double s = 0t = 1 For i = 1 To 5 For j = 1 To i t = t * j Next j s = s + t Next i Print s结果为:34863此题用以下写法可以吗?请分析Dim i As Integer, s As Double, t As Double s = 0 t = 1 For i = 1 To 5 t = t * i s = s + t Next i Print s例3:解数学竞赛题(小学四年级),36人搬36块砖,男搬4,女搬3,2个小孩抬1砖,问男、女、小孩各有多少人。分析:设男为x,女为y,小孩为z,于是有以下方程组x+y+z=36 4x+3y+z/2=36 用消元法,消掉z,得到以下式子:4x+3y+(36-x-y)/2=36解此二元一次不定方程,考虑实际情况:x的取值范围为0到9,y的取值范围为0到12。Dim x As Integer, y As Integer For x = 0 To 9 For y = 0 To 12 If x * 4 + 3 * y + (36 - x - y) / 2 = 36 Then Print x, y, 36 - x - y End If NextNext结果为:3 3 30

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服