已阅读5页,还剩49页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
VB程序设计基础,刘鑫朝 信管教研室 lxc_,第一章 VB概述,属性(Property):看起来像什么? 指对象的性质、特征。 方法(Method): 能做什么? 指对象能执行的动作。 事件(Event): 对什么事有反应。指对象能识别的动作。 程序代码中使用如下格式的语句来改变属性值: 对象名.属性 值(常量、变量、表达式) 通过如下格式为变量赋值: 变量 对象名.属性 使用方法的格式:控件名.方法 VB采用事件驱动的编程方式,事件过程的一般格式: Private Sub 控件名_事件名(参数表) (程序代码) End Sub,第二章 创建用户界面,窗体类的相关属性、方法和事件,第二章 创建用户界面,第二章 创建用户界面,第二章 创建用户界面,第三章 VB语言基础,VB应用程序,窗体文件,标准模块文件,声明部分 事件过程 通用过程,全局声明部分 模块声明部分 通用过程,声明部分,事件过程,通用过程,窗体文件,标准模块文件,全局声明部分,模块声明部分,通用过程,第三章 VB语言基础,语句:VB程序的最基本成分 一个语句可通过续行符号“ _”(一个空格加一个下划线)分成多行写; 多个语句也可通过分行符号“:”(冒号)写在一行上。 注释语句: 格式一:Rem 格式二: ,第三章 VB语言基础,整型数,浮点型数,整型,长整型,单精度数,双精度数,程序运行中取值始终保持不变的数据称为“常量” 数值常量: P43表(4-1) 八进制数(数字前加&O) 和 十六进制(数字前加&H) E或D,其中以E分隔的数为单精度数,以D分隔的数为双精度数 字符常量:用引号括起来的一串字符 逻辑型常量:只有True(真)和False(假)两个取值 日期型常量:用#作为界定符,mm/dd/yy表示日期, hh:mm:ss表示时间 符号常量:以符号形式表示的常量 Public|Private Const As Type = ,第三章 VB语言基础,以符号形式出现在程序中,且取值可以发生变化的数据称为“变量”,变量名的命名规则如下: 必须以字母开头 长度不超过255个字符 在作用域内必须唯一 字符串内不得包含点号和用于类型说明的符号、 &、!、$,也不能有空格 不得使用系统保留字(如End Private Sub ),第三章 VB语言基础,变量的说明语句 局部变量(包括静态变量)在过程中声明 Static|Dim As 窗体/模块级变量在模块的“通用”部分声明 Private|Dim As 全局变量在模块的“通用”部分声明 Public As ,第三章 VB语言基础,变量初始值:当对一个变量进行说明后,系统会自动为其赋一个默认的初始值。 数值型数据的初值为0; 字符型数据的初值为空串“”; 逻辑型数据的初值为False; 日期型数据的初值为0:00:00 一条语句声明多个变量:必须对每个变量都逐个声明 例: Dim x, y as Integer,第三章 VB语言基础,变量的赋值:变量名 = 表达式 隐式说明类型说明符(P47,表3-4) 例:k% = 1 :Country$ = “China” 定长字符串的说明: Private|Dim|Static|Public As String * 例:Public String1 As String*10,第三章 VB语言基础,Option Explicit语句 功能:系统自动检查模块中所有未加显式说明的变量,一旦发现便产生出错信息提示使用者改正错误。该语句应在模块的通用说明部分输入。 强制显式说明的好处: 一个变量如果不被定义,会被当作变体类型来进行处理,从而降低程序的效率; 变量定义之后,若事后使用了错误的变量名,则系统检测到错误的变量名时会发现其没有被声明,便会提示用户输入错误。,第三章 VB语言基础,算术运算符 加(+)、减(-)、乘(*)、除(/)、整除()、取余(Mod)、乘方()、字符串连接(&) 优先级: -(负号) *和/ Mod +和 - & 关系运算符:、=、 逻辑运算符:非(Not)、与(And)、或(Or)、异或(Xor) 优先级:Not And Or Xor,A/B AB Fix(A/B) Int(A/B),第三章 VB语言基础,运算规则: 先算术运算,再关系运算,最后逻辑运算 ()可用来改变运算的优先顺序 不同数据类型的数据进行运算:结果为存储长度较长的数据类型,但除法运算的结果都为双精度型 要注意表达式可能溢出的情况,X Y+32 (结果T/F?),第三章 VB语言基础,公共函数:VB系统已预先定义好的完成某特定功能的程序段,公共函数可供编程者直接调用使用。 算术函数(P52 表4-6) 字符函数(P53 表4-7) 转换函数(P54 表4-8) 日期与时间函数(P55 表4-9),第三章 VB语言基础,格式化函数 format $ (,fmt$) 格式控制字符: 数位控制符: #、0 标点控制符: . 、 , 指数输出控制符: E+、E- 符号控制符: %、$、-、+ 例: X = 123456.78 Print Format(x,”00000000.0000”) Print Format(x,”#,#,#.#”) 00123456.7800 123,456.8,四舍五入考法? 除了Cint,其他的都是直接五入?,第四章 算法基础及VB的基本语句,任何算法都可由以下三种基本结构实现:顺序结构、分支结构、循环结构,第四章 算法基础及VB的基本语句,分支结构 If 条件表达式成立 Then A语句组 Else B语句组 End If,注意: 语句体为语句组时,语句体和Then或Else不能够写在同一行 2. 当分支结构中A组或者B组语句仅有一条时,可省略“End If”,但必须将所有语句写在同一行:,第四章 算法基础及VB的基本语句,If 条件表达式成立 Then Else If 条件表达式成立 Then If 条件表达式成立 Then A语句组 End If,第四章 算法基础及VB的基本语句,多分支结构,If 条件1 Then 语句块1 ElseIf 条件2 Then 语句块2 ElseIf 条件n Then 语句块n Else 语句块n+1 End If,Select Case 测试表达式 Case 测试项1 语句块1 Case 测试项2 语句块2 Case Else 语句块n1 End Select,P66,第四章 算法基础及VB的基本语句,条件?,循环体,T,F,条件?,循环体,F,T,Do While Loop,Do Loop While ,“当(while)型”循环条件成立时,执行循环体,第四章 算法基础及VB的基本语句,条件?,循环体,F,T,条件?,循环体,T,F,“直到(Until)型”循环条件成立时,结束循环,Do Until Loop,Do Loop Until ,第四章 算法基础及VB的基本语句,For-Next循环 For = To Step 循环体 Next 注意: 计数变量应为整型或单精度型,初值、终值和步长值为相应类型的表达式; 步长值可以为正,也可为负,省略时默认步长值为 1;,表达式1,表达式2,表达式3,计数变量 = 计数变量 + 步长,第四章 算法基础及VB的基本语句,Exit Do 用于直接(无条件)退出循环,可在任意Do-Loop结构的循环体中出现,一般形式为: If 条件表达式成立 Then Exit Do 循环体中可出现 Exit For 语句,用于直接(无条件)退出循环 例如:求前N项的和、素数、,2010年秋:利用下列公式求函数Cos(x)的近似值,规定通项的绝对值=10-6时结束计算。,Option Explicit Private Sub Command1_Click() Dim S As Single, T As Single, K As Integer, x As Single Const eps As Single = 0.000001 x = Val(Text1) S = 1 T = 1 Do T = S = S + T K = K + 1 Loop While Text2 = S End Sub,K = 1,T * (-1) * x 2 / (2 * K - 1) * (2 * K),Abs(T) eps,Abs(T) = eps,Abs(T) eps,第四章 算法基础及VB的基本语句,赋值语句的一般形式为: var = 其中:var表示某个变量名或属性名,赋值语句的左边不能是表达式或常量,第四章 算法基础及VB的基本语句,变量(数值型) 表达式(数值型) 将表达式值类型先转换为变量类型再赋值 变量(字符型) 表达式(数值型) 将表达式值先转换为数字字符再赋给变量 变量(逻辑型) 表达式(数值型) 非零值转换为True赋给变量,0值转换为False赋给变量 变量(数值型) 表达式(逻辑型) True转换为1赋给变量,False转换为0赋给变量 变量(字符型) 表达式(逻辑型) True转化为“True”赋给变量,False转化为“False”赋给变量 变量(数值型) 表达式(字符型) 将表达式的值类型转换为数值类型再赋值,如果转换不成功则报错,第四章 算法基础及VB的基本语句,InputBox函数 v = InputBox$(,) MsgBox函数 P58 表(4-10)(4-11) MsgBox(Prompt,Button,Title,HelpFile,Context) 1. 函数在此等同为一个过程(sub)使用,不加括号; 例: MsgBox “非法数据!“, , “警告 “ 2. 使用Print 方法打印函数返回值 例: Print MsgBox(“非法数据!“, , “警告“) 3.需要用户的响应结果,将函数返回结果(P59,表411)赋给一个变量 例:Response=MsgBox(“真删除吗?“, 4+48, “提示信息“),第五章 数组,数组:一组具有相同类型的有序变量的集合 数组必须先定义后使用。数组的定义: Public|Private|Static|Dim 数组名( To , To,) As 类型 说明: TO 决定了每一维的大小,下界指下标的最小值,上界指下标的最大值,默认下界是从0开始,若想使下标从1开始,可在模块的“通用”部分中使用语句“Option Base 1” 上、下界必须是常量或常量表达式,不得是变量,上、下界应是整数,若不是,则自动四舍五入,第五章 数组,返回上、下界函数: UBound(数组名,第几维):返回数组某维的维上界值 LBound(数组名,第几维):返回数组某维的维下界值 Erase:初始化固定大小数组的元素(根据数组类型给元素赋初值),或释放动态数组的存储空间。,第五章 数组,数组元素的赋值 通过循环逐一给数组元素赋值(用InputBox函数) 通过循环逐一给数组元素赋值(用Int函数) 数组元素的输出 按矩阵格式输出数组 (Print方法的使用) 输出到窗体(图片框) 输出到文本框 数组元素的引用 通过数组名和下标来引用,但元素的下标一定要在定义的上下界范围之内,否则便会报出“下标越界” 的错误。,第五章 数组,动态数组 Dim 数组名() as 类型 ReDim Preserve (维界定义) 控件数组:由一组具有相同名称的同类型控件组成,每个控件共享同一事件过程 控件数组中的每个控件都由其下标属性Index标识 控件数组的第一个元素下标为0,第五章 数组,Load object(index) Unload object(index) 用于添加和删除控件数组中的控件,但添加和删除控件只能针对现有控件数组操作 index可以跳序; Unload语句只能删除由Load语句添加的控件; 由Load语句添加的控件,其Visible 属性为False,所以要在程序中将刚装载控件的Visible属性设置为True,才能在窗体上可见;另外,新控件的大小、位置与原控件一样,隐藏在其背后,所以还要重新设置它的Top、Left等属性;,第五章 数组,排序 选择法排序 冒泡排序 查找 直接查找 二分法查找,第五章 数组,选择法排序: For i=1 to N-1 For j= i+1 to N If A(i) A(j) Then TEMP=A(i) A(i)=A(j) A(j)=TEMP End If Next j Next i,第五章 数组,冒泡排序 For N=1 to n-1 For M=1 to n-N If a(M) a(M+1) Then TEMP=A(M) A(M)=A(M+1) A(M+1)=TEMP End If Next M Next N,*需要冒了多少次?,每次冒需要比较几次?,分析:二分查找是一种快捷有效的查找方法,使用二分查找的前提是数据序列已排好序。 假设有n个数已经按照从小到大的顺序排列,并存放在数组A中,设Left为查找区间的下界下标,初值为1;Right为查找区间的上界,初值为n;设需要查找的数为x;二分查找的算法如下: (1)求出查找区间的中间位置Mid=Int(Left+Right)/2) (2)若A(Mid)=x,则找到,结束比较 (3)若A(Mid)x,则表明x在A(Left)到A(Mid-1)区间内,查找区间缩小一半,设置Right=Mid-1 (5)重复执行以上操作 (6)结束循环的条件有两个:已经找到;找不到-LeftRight,二分查找,x=8,x=5,1 2 3 4 5 6 7 8 9 10,1 2 3 4 5 6 7 8 9 10,Left = LBound(a) Right = UBound(a) x = InputBox(“请输入要查找的数据“) Do While Left = Right Mid = Int(Left + Right) / 2) If a(Mid) = x Then Exit Do ElseIf a(Mid) x Then Left = Mid + 1 Else Right = Mid - 1 End If Loop If Left = Right Then Print “要查找的“; x; “是A(“; Mid; “)“ Else Print “没找到!“; x End If,二分查找,第八章 过程,过程,Sub过程,Function过程,事件过程,通用过程,窗体事件过程,控件事件过程,公有过程,私有过程,公有过程,私有过程,第八章 过程,窗体事件过程的一般形式如下: Private Sub Form_事件名(参数列表) 局部变量和常数声明 语句块 End Sub 窗体事件过程 Initialize Load Activate Gotfocus,窗体的事件过程名中不使用其具体名称,而固定用Form,窗体事件固定为“Private”,说明它是模块级的,第八章 过程,控件事件过程的一般形式如下: Private Sub 控件名_事件名(参数列表) 局部变量和常数声明 语句块 End Sub,控件的事件过程名中必须使用其具体名称,控件事件固定有“Private”关键字,说明它是模块级的,第八章 过程,通用过程 Private|Public Static Sub () End Sub 缺省作用域声明时,系统默认为Public; 在一个窗体模块中调用另一窗体模块的公有过程时,需以“窗体名.公有过程名”的形式调用; Exit Sub可以提前退出过程调用 过程不能嵌套定义,第八章 过程,Function过程的特点是返回一个值,Fun
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年重庆考客运资格证
- 2024成品采购合同范文
- 2024技术开发合同模板
- 2024物业保洁员工用工合同
- 2024工程装饰合同范文
- 垃圾分类培训会议记录三篇
- 2024标准产品买卖合同书
- 2024建行外汇借款合同范本
- 深圳大学《油料与谷物科学原理》2022-2023学年第一学期期末试卷
- 艾草委托代工合同范本(2篇)
- 《后羿射日故事》PPT课件.ppt
- 马克思的资本有机构成理论与当代中国的经济发展
- 《电工学》试题库及答案(考试必备)
- 如何构建生态班级
- GB∕T 4942-2021 旋转电机整体结构的防护等级(IP代码) 分级
- 食品加工企业安全设计设施专篇
- 高中政治校本课程——趣味哲学1
- 海南省建设工程施工阶段监理服务费计费规则
- 创建五星级班组PPT课件
- TBJWA001-2021健康直饮水水质标准
- 监理日报模板
评论
0/150
提交评论