【文档说明】计算机二级补习VB基础部分课件.ppt,共(54)页,630.500 KB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-5092.html
以下为本文档部分文字说明:
VB程序设计基础信管教研室第1页,共54页。第一章VB概述属性(Property):看起来像什么?指对象的性质、特征。方法(Method):能做什么?指对象能执行的动作。事件(Event):对什么事有
反应。指对象能识别的动作。•程序代码中使用如下格式的语句来改变属性值:对象名.属性=值(常量、变量、表达式)•通过如下格式为变量赋值:变量=对象名.属性•使用方法的格式:控件名.方法VB采用事件驱动的编程方式,事件过程的一般格式:PrivateSub控件名_事件名([参数表])(程序
代码)EndSub第2页,共54页。第二章创建用户界面窗体类的相关属性、方法和事件属性方法事件NameCaptionBackcolorForecolorEnabledVisibleFontLeftTopWidthHeightHideShowPrintClsClickLoadActiveD
eactive第3页,共54页。第二章创建用户界面控件类名属性方法事件文本框TextBoxNameTextPasswordCharMultiLineSetFocusChangeKeyPress标签LableCaptionAutoSizeClick命令按钮Comma
ndButtonCaptionEnabledSetFocusClick第4页,共54页。第二章创建用户界面控件类名属性方法事件列表框ListBoxListListCountListIndexTextAddItemClearRemoveItemClick组合框ComboBoxStyle
TextAddItemClearRemoveItemClick图片框控件PictureBoxPictureAutosizePrintClsClick第5页,共54页。第二章创建用户界面控件类名属性方法事件选项按钮OptionButton复选框CheckBoxCaptionVa
lueClick框架FrameCaption水平滚动条Hscrollbar垂直滚动条VscrollbarValueMax和MinLargeChangeSmallChangeChange计时器TimerIntervalTimer第6页,共54页
。第三章VB语言基础VB应用程序窗体文件标准模块文件声明部分事件过程通用过程全局声明部分模块声明部分通用过程第7页,共54页。声明部分事件过程通用过程窗体文件标准模块文件全局声明部分模块声明部分通用过程第8页,共54页。第三章VB语言基础语句:VB程序的最基本成分
一个语句可通过续行符号“_”(一个空格加一个下划线)分成多行写;多个语句也可通过分行符号“:”(冒号)写在一行上。注释语句:[格式一]:Rem<注释语句>[格式二]:’<注释语句>第9页,共54页。第三章VB语言基础整型数浮点型数整
型长整型单精度数双精度数程序运行中取值始终保持不变的数据称为“常量”数值常量:P43表(4-1)八进制数(数字前加&O)和十六进制(数字前加&H)<底数>E<指数>或<底数>D<指数>,其中以E分隔的数为单精度数,以D分隔的数为双精度数字符常量:用引号括起来的一串字
符逻辑型常量:只有True(真)和False(假)两个取值日期型常量:用#作为界定符,mm/dd/yy表示日期,hh:mm:ss表示时间符号常量:以符号形式表示的常量[Public|Private]Const<常量名>[AsType]=<表达式>第10页,共54页
。第三章VB语言基础以符号形式出现在程序中,且取值可以发生变化的数据称为“变量”,变量名的命名规则如下:必须以字母开头长度不超过255个字符在作用域内必须唯一字符串内不得包含点号和用于类型说明的符号%、&、!、#、@、$,也不能有空格不得使用系统保留字(如EndPriva
teSub)第11页,共54页。第三章VB语言基础变量的说明语句局部变量(包括静态变量)——在过程中声明Static|Dim<变量名>[As<类型>]窗体/模块级变量——在模块的“通用”部分声明Private|Dim<变量名>[As<类型>]全局变量——在模块的“通用”部分
声明Public<变量名>[As<类型>]第12页,共54页。第三章VB语言基础变量初始值:当对一个变量进行说明后,系统会自动为其赋一个默认的初始值。数值型数据的初值为0;字符型数据的初值为空串“”;逻辑型数据的初值为False;日
期型数据的初值为0:00:00一条语句声明多个变量:必须对每个变量都逐个声明例:Dimx,yasInteger第13页,共54页。第三章VB语言基础变量的赋值:变量名=表达式隐式说明——类型说明符(P47,表3-4)例:k%=1
:Country$=“China”定长字符串的说明:Private|Dim|Static|Public<变量名>AsString*<长度>例:PublicString1AsString*10第14页,共54页。第三章VB语言基础Option
Explicit语句功能:系统自动检查模块中所有未加显式说明的变量,一旦发现便产生出错信息提示使用者改正错误。该语句应在模块的通用说明部分输入。强制显式说明的好处:一个变量如果不被定义,会被当作变体类型来进行处理,从而降低程序的效率;变量定义之
后,若事后使用了错误的变量名,则系统检测到错误的变量名时会发现其没有被声明,便会提示用户输入错误。第15页,共54页。第三章VB语言基础算术运算符加(+)、减(-)、乘(*)、除(/)、整除(\)、取余(Mod)、乘方(^)、字符串连接(&)
优先级:^-(负号)*和/\Mod+和-&关系运算符:=、>、<、>=、<=、<>逻辑运算符:非(Not)、与(And)、或(Or)、异或(Xor)优先级:NotAndOrXorA/BA\BF
ix(A/B)Int(A/B)第16页,共54页。第三章VB语言基础运算规则:先算术运算,再关系运算,最后逻辑运算()可用来改变运算的优先顺序不同数据类型的数据进行运算:结果为存储长度较长的数据类型,但除法运算的结果都为双精度型要注意表达式可能溢出的情况X>Y+3>2(结果T/F?)第17页
,共54页。第三章VB语言基础公共函数:VB系统已预先定义好的完成某特定功能的程序段,公共函数可供编程者直接调用使用。算术函数(P52表4-6)字符函数(P53表4-7)转换函数(P54表4-8)日期与时间函数(P55表
4-9)第18页,共54页。第三章VB语言基础格式化函数format[$](<算术表达式>,fmt$)[格式控制字符]:数位控制符:#、0标点控制符:.、,指数输出控制符:E+、E-符号控制符:%、$、-、+例:X=12345
6.78PrintFormat(x,”00000000.0000”)PrintFormat(x,”###,###,###.#”)00123456.7800123,456.8四舍五入考法?????除了
Cint,其他的都是直接五入?第19页,共54页。第四章算法基础及VB的基本语句任何算法都可由以下三种基本结构实现:顺序结构、分支结构、循环结构语句1语句2条件满足?语句块1语句块2TrueFalse语句块TrueFalse条件第20页,共54页。第四章算法基础及VB的基本语句分支结构If条
件表达式成立Then[A语句组]Else[B语句组]EndIf注意:1.语句体为语句组时,语句体和Then或Else不能够写在同一行2.当分支结构中A组或者B组语句仅有一条时,可省略“EndIf”,但必须将所有语句写在同一行:第21页,共54页。第四章
算法基础及VB的基本语句If条件表达式成立Then<语句1>Else<语句2>If条件表达式成立Then<语句1>If条件表达式成立Then[A语句组]EndIf第22页,共54页。第四章算法基础及VB的基本语句多分支结构If条件1Then语句块1ElseIf
条件2Then语句块2……ElseIf条件nThen语句块nElse语句块n+1EndIfSelectCase测试表达式Case测试项1语句块1Case测试项2语句块2……CaseElse语句块n+1EndSelectP66第23页,共54页。第四章算法基础及VB的基本语句条件?循环体
TF条件?循环体FTDoWhile<条件><循环体>LoopDo<循环体>LoopWhile<条件>“当(while)型”循环——条件成立时,执行循环体第24页,共54页。第四章算法基础及VB的基本语句条件
?循环体FT条件?循环体TF“直到(Until)型”循环——条件成立时,结束循环DoUntil<条件><循环体>LoopDo<循环体>LoopUntil<条件>第25页,共54页。第四章算法基础及VB的基本语句For-Next循环For<计数变量>=<初值>To<终值>[Step<步长>]循环
体Next<计数变量>注意:计数变量应为整型或单精度型,初值、终值和步长值为相应类型的表达式;步长值可以为正,也可为负,省略时默认步长值为1;表达式1表达式2表达式3计数变量=计数变量+步长第26页,共54页。第四章算法基础及VB的基本语句ExitDo
用于直接(无条件)退出循环,可在任意Do-Loop结构的循环体中出现,一般形式为:If条件表达式成立ThenExitDo循环体中可出现ExitFor语句,用于直接(无条件)退出循环例如:求前N项的和、素数、„„第27页,共54页。2010年秋:利用下列公式求函数Cos(x)的近似值,规
定通项的绝对值<=10-6时结束计算。1........k1)(2k)(2kx1)(a0....k..............................1.........aa...6!x4!x2!x1cos(x)2
1kk0kk642第28页,共54页。OptionExplicitPrivateSubCommand1_Click()DimSAsSingle,TAsSingle,KAsInteger,xAsSingleConstepsAsSingle=0.0
00001x=Val(Text1)S=1T=1DoT=S=S+TK=K+1LoopWhileText2=SEndSubK=1T*(-1)*x^2/((2*K-1)*(2*K))Abs(T)<epsAbs(T)<=epsAbs(T)>
eps第29页,共54页。第四章算法基础及VB的基本语句赋值语句的一般形式为:var=<表达式>其中:var表示某个变量名或属性名,赋值语句的左边不能是表达式或常量第30页,共54页。第四章算法基础及VB的基本语句变量(数值型)=表达式(数值型)将表达式值类型先转换为
变量类型再赋值变量(字符型)=表达式(数值型)将表达式值先转换为数字字符再赋给变量变量(逻辑型)=表达式(数值型)非零值转换为True赋给变量,0值转换为False赋给变量变量(数值型)=表达式(逻辑型)True转换为-1
赋给变量,False转换为0赋给变量变量(字符型)=表达式(逻辑型)True转化为“True”赋给变量,False转化为“False”赋给变量变量(数值型)=表达式(字符型)将表达式的值类型转换为数值类型再赋值,如果转换不
成功则报错第31页,共54页。第四章算法基础及VB的基本语句InputBox函数v=InputBox[$](<Prompt>[,<Title>][,<Default>][,<x,y>])MsgBox函数P58表(4-10)(4-11)MsgBox[(Prompt[,Button]
[,Title][,HelpFile,Context])]1.函数在此等同为一个过程(sub)使用,不加括号;例:MsgBox"非法数据!",,"警告"2.使用Print方法打印函数返回值例:PrintMsgBox("非法数据!",,"警告")3.需要用户的响应结果,将函数返回结
果(P59,表4-11)赋给一个变量例:Response=MsgBox("真删除吗?",4+48,"提示信息")第32页,共54页。第五章数组数组:一组具有相同类型的有序变量的集合数组必须先定义后使用。数组的定义:Pub
lic|Private|Static|Dim数组名([<1下界>To]<1上界>[,[<2下界>To]<2上界>,…])As类型说明:1.<下界>TO<上界>决定了每一维的大小,下界指下标的最小值,上界指下标的最大值,默认下界是从0开始,若想使下标从1开始,
可在模块的“通用”部分中使用语句“OptionBase1”2.上、下界必须是常量或常量表达式,不得是变量,上、下界应是整数,若不是,则自动四舍五入第33页,共54页。第五章数组返回上、下界函数:UBound(数组名[,第几维]):返回数组某维的维上界值LBound(数组名[,第几维]
):返回数组某维的维下界值Erase:初始化固定大小数组的元素(根据数组类型给元素赋初值),或释放动态数组的存储空间。第34页,共54页。第五章数组数组元素的赋值通过循环逐一给数组元素赋值(用InputBox函数)通过循环逐一给数组元素赋值(用Int函数)数组元
素的输出按矩阵格式输出数组(Print方法的使用)输出到窗体(图片框)输出到文本框数组元素的引用通过数组名和下标来引用,但元素的下标一定要在定义的上下界范围之内,否则便会报出“下标越界”的错误
。第35页,共54页。第五章数组动态数组Dim数组名()as类型ReDim[Preserve]<数组名>(维界定义)控件数组:由一组具有相同名称的同类型控件组成,每个控件共享同一事件过程控件数组中的每个控件都由其下标属性Inde
x标识控件数组的第一个元素下标为0第36页,共54页。第五章数组Loadobject(index)Unloadobject(index)用于添加和删除控件数组中的控件,但添加和删除控件只能针对现有控件数组操作index可
以跳序;Unload语句只能删除由Load语句添加的控件;由Load语句添加的控件,其Visible属性为False,所以要在程序中将刚装载控件的Visible属性设置为True,才能在窗体上可见;另外
,新控件的大小、位置与原控件一样,隐藏在其背后,所以还要重新设置它的Top、Left等属性;第37页,共54页。第五章数组排序选择法排序冒泡排序查找直接查找二分法查找第38页,共54页。第五章数组选择法排序:Fori=1toN-1Forj=i+1toNIfA(i)<A(j)The
nTEMP=A(i)A(i)=A(j)A(j)=TEMPEndIfNextjNexti第39页,共54页。第五章数组冒泡排序ForN=1ton-1ForM=1ton-NIfa(M)<a(M+1)ThenTEMP=A(M)A(M)=A(M+1)A(M+1)=TEMPEnd
IfNextMNextN*需要冒了多少次?每次冒需要比较几次?第40页,共54页。[分析]:二分查找是一种快捷有效的查找方法,使用二分查找的前提是数据序列已排好序。假设有n个数已经按照从小到大的顺序排列,并存放在数组A中,设Left为查找区间的下界——下标,初值为1
;Right为查找区间的上界,初值为n;设需要查找的数为x;二分查找的算法如下:(1)求出查找区间的中间位置Mid=Int((Left+Right)/2)(2)若A(Mid)=x,则找到,结束比较(3)若A(Mid)<x,则表明x在
A(Mid+1)到A(Right)区间内,查找区间缩小一半,设置Left=Mid+1(4)若A(Mid)>x,则表明x在A(Left)到A(Mid-1)区间内,查找区间缩小一半,设置Right=Mid-1(5)重复执行以上操作(6)结束循环的条件有两个:已经找到;
找不到--Left>Right二分查找第41页,共54页。341111059678x=8LeftRightMidLeftRightMidRightLeftMid231111049678x=5LeftRightM
idMidRightLeftMidLeftLeftMidLeftMid1234567891012345678910第42页,共54页。Left=LBound(a)Right=UBound(a)x=Inpu
tBox("请输入要查找的数据")DoWhileLeft<=RightMid=Int((Left+Right)/2)Ifa(Mid)=xThenExitDoElseIfa(Mid)<xThenLeft=Mid+1ElseRight=Mid-1EndIfLoopIfLeft<=Righ
tThenPrint"要查找的";x;"是A(";Mid;")"ElsePrint"没找到!";xEndIf二分查找第43页,共54页。第八章过程过程Sub过程Function过程事件过程通用过程窗体事件过程控件事件过程公有过程私有过程公有过程私有过程第44页
,共54页。第八章过程窗体事件过程的一般形式如下:PrivateSubForm_事件名([参数列表])[局部变量和常数声明]语句块EndSub窗体事件过程InitializeLoadActivateGotfocus窗体的事件过程名中不使用其具体名称,而固定
用Form窗体事件固定为“Private”,说明它是模块级的第45页,共54页。第八章过程控件事件过程的一般形式如下:PrivateSub控件名_事件名([参数列表])[局部变量和常数声明]语句块End
Sub控件的事件过程名中必须使用其具体名称控件事件固定有“Private”关键字,说明它是模块级的第46页,共54页。第八章过程通用过程[Private|Public][Static]Sub<过程名>([<参数列表>])<过程体>EndSub缺省作用域声明时,系统默认为Publ
ic;在一个窗体模块中调用另一窗体模块的公有过程时,需以“窗体名.公有过程名”的形式调用;ExitSub可以提前退出过程调用过程不能嵌套定义第47页,共54页。第八章过程Function过程的特点是返回一个值,F
unction过程的形式如下:[Private|Public]Function<函数名>([参数列表])[As<数据类型>]<函数体>EndFunction函数体中一定要有对函数名赋值的语句——函数名=表达式函数体内可有ExitFuncti
on语句——无条件退出函数过程第48页,共54页。第八章过程Sub过程的调用Call<过程名>([实参1[,实参2,„„]])过程名[实参1[,实参2,„„]]调用Function过程的一般形式如下:var=<函数名>([实在参数表])Call<函数名>([实在参数表])<函数名>[实在参数表
]第49页,共54页。第八章过程形参:指过程定义时出现在过程或函数名后括号中的参数形参为ByVal,指明参数传递方式是传值;形参为ByRef,指明参数传递方式是传地址或称为“引用”实参:指调用过程函数时,出现在过程的函数名后括号中的
参数在调用一个有参数的过程时,首先进行“形实结合”,实参按“位置”向形参传值或传地址;实在参数和形式参数,要求个数相同,位置对应,类型一致,否则会出错;第50页,共54页。第八章过程若调用过程时实参为常量或表达式,则无论形参定义的是按值传递还是按地址传递,系统都是按传
值方式传递调用函数或过程时,将单个变量转换成表达式的方法:将变量放在一对括号中。第51页,共54页。第八章过程数组作为形式参数,声明数组的格式为:<数组名>()As<数据类型>数组参数只能按地址传递,即不能用ByVal来说明数组参数定义数组
形参时不能说明数组的维数和下标变化范围;调用过程时,对应的实参也必须是数组,但只需要数组名,无须后跟括号,且数据类型也要一致;第52页,共54页。第八章过程递归过程:在过程中通过调用自身“和自身相同的过程”来完成某一特定任务的过程递归过程的执行过
程:逐层调用,逐层返回此处要加递归样例程序讲解???第53页,共54页。第八章过程变量的作用域作用域关键字声明位置全局变量Public在模块的通用部分模块级变量Private和Dim在模块的通用部分局部|过程级变量Dim在过程中静态变量Sta
tic在过程中第54页,共54页。