2022
医学
专题
广东
药学
VB
复习
复习(fx),第一页,共七十四页。,考试(kosh)题型,单选题(30分,每题1分)填空题(50分,每空2分)编程题(20分,每题10分),第二页,共七十四页。,第三页,共七十四页。,编码(bin m)基础,VB代码不区分字母的大小写 一行可书写(shxi)几句语句,之间用冒号分隔;一句语句可分若干行书写,用续行符(空格下划线)连接Rem开始 或 单撇,第四页,共七十四页。,VB常用(chn yn)数据类型,第五页,共七十四页。,变量和常量的命名(mng mng)规则,变量:在程序运行中其存储(cn ch)的值可以改变。常量:在程序运行中其值不可以改变。以字母或汉字开头,后可跟字母、数字或下划线组成,长度小于等于40个字符;不能使用VB中的关键字;VB中不区分变量名的大小写例如:1)a bc 2)print_65 3)12bc 4)x-y5)x%y 6)abs 7)mn%8)int,第六页,共七十四页。,变量(binling)声明,Dim 变量名 AS 类型 Dim iMark As integer,sTotal As single Dim iItem%注意:在通用(tngyng)声明处加 Option Explicit 语句来强制显式声明变量,第七页,共七十四页。,常量(chngling)声明,Const 常量(chngling)名 AS 类型=表达式例 Const MAX=100Const MIN As Integer=&H13A,第八页,共七十四页。,算术(sunsh)运算符,例:求表达式5+10 mod 10 9/3+2 2值,第九页,共七十四页。,字符串运算符,、+字符串连接 123+456 结果 123456 123&456 结果 123456 区别(qbi):+两边必须是字符串,&不一定 abcdef&12345 结果为 abcdef12345 abcdef+12345 出错 123&456 结果为 123456“123”+456 结果为 579注意:123+True 结果为 122,第十页,共七十四页。,关系(gun x)运算符,将两个操作数进行大小比较,结果为逻辑(lu j)量。字符串比较,则按字符的ASCII码值从左到右一一比较,直到出现不同的字符为止.。例:ABCDE ABRA 结果为 False,第十一页,共七十四页。,逻辑(lu j)运算符,将操作数进行(jnxng)逻辑运算,结果是逻辑值,第十二页,共七十四页。,表达式,组成:变量、常量、函数、运算符和圆括号书写(shxi)规则运算符不能相邻。例a+-b是错误的。乘号不能省略。例x 乘以y 应写成:x*y。括号必须成对出现,均使用圆括号。表达式从左到右在同一基准上书写,无高低、大小。,第十三页,共七十四页。,表达式书写(shxi)举例,sin(45*3.14/180)+(exp(10)+log(10)/sqr(x+y+1),a*b*c*d/e/f/g 或 a*b*c*d/(e*f*g),3=x And x=7,第十四页,共七十四页。,常用内部(nib)函数,1.数学函数 Rnd函数返回0和1(不包括0和1)之间的双精度随机数.产生(chnshng)nm的随机整数:Int(Rnd*(m-n+1)+n 取整函数:Int Fix Round 符号函数:Sgn,第十五页,共七十四页。,常用(chn yn)内部函数,2.转换(zhunhun)函数Chr$(Asc(G)GUcase$(abcdefg)ABCDEFG“Asc$(Chr(65)65StrVal,第十六页,共七十四页。,常用(chn yn)内部函数,3.字符串操作(cozu)函数 Left$(ABCDEFG,3)ABC Mid$(ABCDEFG,2,3)BCD Right$(ABCDEFG,3)EFG Len$(ABCDEFG)7 InStr(2,ABCDEFG,EF)5,第十七页,共七十四页。,赋值语句(yj),形式:变量名表达式 作用:将表达式的值赋值给变量名。一般用于给变量赋值或对控件设定属性值。注意:赋值号左边只能是变量,不能是常量或表达式不能在一个语句(yj)中同时给多个变量赋值,第十八页,共七十四页。,数据(shj)输入函数InputBox,InputBox(提示信息,窗口标题(biot)通常用于赋值语句。产生一个对话框,供用户输入信息,并返回一个字符型的值,赋给一个变量。,MsgBox函数(hnsh)和MsgBox过程,函数形式:变量%=MsgBox(提示,按钮,标题)过程形式:MsgBox 提示,按钮,标题,第十九页,共七十四页。,选择(xunz)结构,1.IfThen语句(单分支(fnzh)结构)If Then语句块End If或 If Then 例:已知两个数x和y,比较它们的大小,使得x大于y.,第二十页,共七十四页。,2.IfThenElse语句(双分支(fnzh)结构)If ThenElseEnd If或 If Then Else 例:已知两个数x和y,求两个数中的大者.,第二十一页,共七十四页。,3.IfThenElseIf语句(多分支(fnzh)结构)If Then ElseIf Then Else 语句块 n+1 End If不管有几个分支,当某条件满足,执行相应的语句块,其余分支不再执行.,第二十二页,共七十四页。,4.Select Case语句(yj)(情况语句(yj)Select Case 变量或表达式 Case 表达式列表1 语句块1 Case 表达式列表2 语句块2 Case Else 语句块n+1 End Select,表达式列表的四种形式(xngsh)a a,b,c a To b(包含a和b)Is a,第二十三页,共七十四页。,5、条件函数(IIf函数)IIf(条件,表达式1,表达式2)先求出两个表达式的值。当条件成立时,函数值为表达式1的值;条件不成立时,函数值为表达式2的值。例:求x,y中大(zhn d)的数,放入Tmax变量中,第二十四页,共七十四页。,循环(xnhun)结构,1.For循环语句(一般用于循环次数(csh)已知)For 循环变量初值 to 终值 Step 步长 语句块Exit For 语句块Next 循环变量循环次数=Int(终值-初值)/步长+1),步长 0 初值终值=0 死循环,第二十五页,共七十四页。,循环(xnhun)结构,执行循环(xnhun)结构 For i=30 To 10 Step 3 Print aNext i 将输出_个a。,第二十六页,共七十四页。,计算的近似值公式为其中(qzhng)n值由文本框读入。阅读程序并填空,Result是标签框的名称。Private Sub Command1_Click()Dim sum As Double,pi As Double Dim i As Integer,n As Integer n=Val(Text1.Text)For i=1 To n sum=sum+_(1)1/(n2)Next i pi=_(2)Sqr(6*sum)_ Result.Caption=pi近似值为:&Str(pi)End Sub,第二十七页,共七十四页。,2.DoLoop循环语句(用于控制循环次数未知)形式(xngsh)1:形式(xngsh)2:Do While|Until Do 语句块 语句块Exit Do Exit Do语句块 语句块Loop Loop While|Until,第二十八页,共七十四页。,3.循环的嵌套 一个循环体内又包含(bohn)了一个完整的循环结 构称为循环的嵌套.例:打印九九乘法表For i=1 To 9 For j=1 To 9 se=i Next j Picture1.PrintNext i,第二十九页,共七十四页。,For ii=1 To 10 For jj=1 To 20 Next ii Next jj,For ii=1 To 10 For ii=1 To 20 Next ii Next ii,For ii=1 To 10 For jj=1 To 20 Next jj Next ii,For ii=1 To 10 Next ii For ii=1 To 10 Next ii,对于循环的嵌套,要注意以下事项:内循环变量与外循环变量不能同名;外循环必须(bx)完全包含内循环,不能交叉;不能从循环体外转向循环体内,反之则可以。正确错误,第三十页,共七十四页。,Private Sub Command1_Click()Dim sum As Double,x As Doublesum=0:n=0For i=1 To 5x=n/i:n=n+1:sum=sum+xNextEnd Sub,第三十一页,共七十四页。,数组,一.静态数组及声明形式:Dim 数组名(下标1,下标2)As 类型声明了数组的维数、大小、类型维数:几个下标为几维数组下标:下界 To 上界;省略下界为0,必须为常数每一维大小:上界下界+1数组大小:每一维大小的乘积例:Dim mark(1 to 100)As IntegerDim a(0 To 3,0 To 4)As Long 共有 45个元素(yun s)等价于:Dim a(3,4)As Long,第三十二页,共七十四页。,注意:1.下界缺省为0,也可在重新定义数组的下界。例如:Option Base 12.在数组声明中的下标说明(shumng)了数组的整体,即每一维的大小;而在程序其他地方出现的下标表示数组中的一个元素。两者写法形式相同,但意义不同。例如:Dim x(10)As Integer 声明了x数组有11个元素x(10)=100 对x(10)这个数组元素赋值,第三十三页,共七十四页。,动态(dngti)数组及声明,在程序执行时分配(fnpi)存储空间。方法:(1)在过程外使用Dim、Private或Public语句声明括号内为空的数组(2)在过程中用ReDim语句指明该数组的大小Dim sArray()As SingleSub Form_Load()ReDim sArray(4,8)End Sub,第三十四页,共七十四页。,注意:(1)ReDim中的下标可以是常量,也可以是有确定(qudng)值的变量.(2)在过程中可多次使用ReDim改变数组的大小,或维数.(3)每次用ReDim会使原数组的值丢失,可以在ReDim语句后加Preserve参数来保留数组中的数据.,第三十五页,共七十四页。,数组元素(yun s)的输入、输出,(1)用循环(xnhun)For i=1 To 10 iA(i)=0:Print iA(i);Next i(2)Array函数 Dim ib As Variant ib=Array(abc,def,67)For i=0 To UBound(ib)Print ib(i);Next i,第三十六页,共七十四页。,注意:利用Array对数组各元素赋值,声明的数组是可调数组或连圆括号都可省,并且其类型只能是Variant。数组的下阶为零,上界(shngji)由Array函数括号内的参数个数可决定,也可通过函数Ubound获得。,第三十七页,共七十四页。,数组的应用(yngyng),求最大值最小值数组的查找、插入和删除(shnch)排序:冒泡排序和选择排序,第三十八页,共七十四页。,过程(guchng),三种自定义过程子过程(Sub Procedure)Sub过程没有返回值函数(hnsh)过程(Function Procedure)Function过程返回一个值属性过程(Property Procedure),第三十九页,共七十四页。,自定义函数过程(guchng)定义,Function 函数名(参数列表)As 数据类型 函数名=表达式 End Function 特点(tdin):函数名有值,有类型,在过程体内至少赋值一次。,第四十页,共七十四页。,函数名(实际参数列表)注意:函数在定义和使用时,无论是否有参数,圆括号一定不能省