vb理论资料Word格式.docx

上传人:b****6 文档编号:19435868 上传时间:2023-01-06 格式:DOCX 页数:37 大小:85.81KB
下载 相关 举报
vb理论资料Word格式.docx_第1页
第1页 / 共37页
vb理论资料Word格式.docx_第2页
第2页 / 共37页
vb理论资料Word格式.docx_第3页
第3页 / 共37页
vb理论资料Word格式.docx_第4页
第4页 / 共37页
vb理论资料Word格式.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

vb理论资料Word格式.docx

《vb理论资料Word格式.docx》由会员分享,可在线阅读,更多相关《vb理论资料Word格式.docx(37页珍藏版)》请在冰豆网上搜索。

vb理论资料Word格式.docx

分隔符可以是逗号或者分号。

如:

printa,b与printa;

b

用逗号按制表列进行输出。

printa,b输出结果是ab

用分号按紧凑格式输出。

当输出数值时数值尾部加一个空格,头部加一个符号位(正数为空格)。

printa;

b输出结果是ab。

Print1;

2输出结果是12

3、常用控件

●命令按钮(Commandbutton):

注意cancel属性和default属性。

Cancel:

当其值为true时,按[Esc]等于单击本按钮。

Default:

当其值为true时,按[Enter]等于单击本按钮

●列表框(Listbox):

注意AddItem的用法:

[object].AddItem<

l列表项文本>

[,插入位置序号]

如List1.AddItem"

电子商务"

●计时器控件(Timer):

Interval:

单位为千分之一秒

没有方法,事件只有Timer

4、注意Setfocus与Gotfocus的区别:

Setfocus:

是方法

Gotfocus:

是事件

5、注意方法Clear和Cls:

两者都可用于内容的清除,但不同的控件,方法不同

Clear:

只有ListBox和ComboBox才有

Cls:

只有Form和PictureBox才有

6、菜单:

每个菜单至少包括一个菜单项(菜单命令)。

VB允许最多创建四级子菜单。

第四章

1、过程:

事件过程:

缺省情况下是私有的。

通用过程:

缺省情况下是公有的。

2、模块

窗体模块

标准模块:

被多个窗体共享的代码,应该被组织到标准模块中。

其保存的过程都是通用过程。

其代码可供其他应用程序使用。

类模块

3、数据类型

变体型数(Variant):

可存储数值的最大。

故其占用的内存也较大。

整数(Interger)的取值范围:

-32768~32767

4、常量:

mmmEeee与mmmDeee:

mmm是尾数,eee是指数。

如1.234E5代表1.234×

105,E代表单精度,D代表双精度

&

O与&

H:

数字前面加&

O指八进制数,数字前面加&

H指十六进制数。

日期常量:

表示形式:

mm/dd/yy(m指月month,d指天day,y指年year)日期常量要用#括起来。

如#6/15/1998#

符号常量:

常量名只能由字母,数字和下划线组成,首字符必须是字母的,字母不区分大小写。

(与控件的Name的命名规则是一样的)

5、变量

命名规则:

与符号常量的命名规则一致。

变量的初始值:

数值型的为“0”。

变长字符串型的为空串。

定长字符串型的为n个空格。

逻辑型的为“False”

定义:

必须逐个定义。

如Dima,bAsInterger:

a为变体型,b为整型。

DimaAsInterger,bAsInterger:

a,b都是整型。

6、运算符与表达式:

算术运算符与算术表达式,关系运算符与关系表达式,逻辑运算符与逻辑表达式。

运算符运算次序:

^,-(负号),*和/,\(整除),mod,+和-,&

速记方法:

方负乘(除)整模(模除即取余)加(减)连

关系表达式:

按值比较。

字符型的是按字符的ASCII代码,自左至右逐个进行比较的,遇到则大的。

逻辑运算:

✧Or逻辑或:

只要有一个为“True”则为“True”

✧Xor逻辑异或:

只有一个为“True”才为“True”

✧运算次序:

Not,And,Or,Xor速记:

非与或异或

3*2<

8值为真

"

32"

<

="

3"

"

2"

值为真

6>

8值为假

7>

=9值为假

ac"

="

a"

值为假

3<

>

6值为真

其值只有真(true)与假(false)如:

预算规则:

算术〉〉关系>

逻辑

注意:

✧一个整数和一个长整数运算结果是长整数。

✧一个整数和一个单精度数进行运算结果是单精度数

✧一个单精度数和一个长整数进行运算结果是双精度

✧不管除数和被除数什么类型,结果都是双精度数

7、赋值语句不同数据类型的转换:

(赋值语句是将等号右边的值赋给左边的变量)

字符型变量=数值型表达式:

数值型表达式的值变成字符型赋给左边的变量

逻辑型变量=数值型表达式:

数值型表达式的值为非零值时,则转换为“True”赋给变量,为“0”时则把“False”赋给变量。

整型变量=逻辑型表达式:

表达式为“True”时则把“-1”赋给整型变量,为“False”时则把“0”赋给整型变量。

字符型变量=逻辑型表达式:

表达式为“True”时则把字符“True”赋给整型变量,为“False”时则把字符“False”赋给整型变量。

数值型变量=字符型表达式:

不可行。

系统提示错误,并停止执行。

8、公共函数:

Ø

注意Mid(),Instr(),Right(),Left()

比较Str(),CStr,

比较CInt(),Int(),Fix()

注意Val(),Chr(),Asc()

注意Ucase(),Lcase()

在表达式给变量赋值时,若数据类型不匹配,系统按C族函数(即CInt,CStr,CLng等)的方式自动进行类型转换。

CInt,CLng的运算规则:

小数部分大于0.5则进位加1,小数部分小于0.5,则舍去,若等于0.5则以整数位得到最靠近偶数进行取舍。

如CInt(2.5)的值为2,而CInt(3.5)的值为4。

9、Format函数:

注意#和0的区别。

10、Input函数和MsgBox函数

MsgBox函数的语法格式是:

变量=MsgBox(提示[,对话框类型[,对话框标题]])

如左边的消息对话框的代码应写作:

y=MsgBox(“输入文件名是否正确”,52,“请确认”)

注意括号中52的意义

消息框的三种格式

✧y=MsgBox(“输入文件名是否正确”,52,“请确认”)

✧MsgBox“输入文件名是否正确”,52,“请确认”

✧MsgBox(“输入文件名是否正确”,52,“请确认”)注意括号与等号

Input函数格式:

变量=InputBox(提示[,标题][,缺省值][,xpos][,ypos])

如左边的输入对话框的代码应写作:

y=InputBox(“请输入文件名(不超过8个字符)”,”文件名”,”vbfile”)

注意与msgbox函数比较括号中各项的位置差异。

11、注意字符串与数字的表达式的运算:

(字符串要加上“”)

字符串+字符串等同于字符串&

字符串(&

为连字符)。

如“123”+“456”结果是“123456”

字符串(数字组成的。

如“123”)+数字等同于字符串中的数字+数字。

如“123”+456结果是123456

字符串&

数字等同于字符串&

数字转换过来的字符串。

如“123”&

456结果是“123456”

第五章

随机数:

Rnd()。

生成某个范围内的随机数:

Int((上限-下限+1)*Rnd+下限)

随机化语句:

Randomize(置于变量语句之下,循环之上)。

第六章

1.数组:

动态数组和固定数组。

2.数组下界起始值定义:

OptionBasicn,缺省此语句则从0开始。

3.数组元素的初始值与变量的初始值类似。

4.二维数组在内存中是按列存放的。

先列后行。

5.三维数组则逐页逐列存放的。

先页再列后行。

6.LBound()和UBound()返回数组的维下界值和维上界值。

类型为Long型。

7.Debug.print将内容显示在“立即”窗口。

8.动态数组:

先不说明数组元素的数量,在过程中使用ReDim语句来定义元素的数量。

若ReDim后带有Preserve,则重新定义数组时会保留原数组最后一维元素的值。

第七章

1.过程:

子程序过程(Sub)。

不返回值。

可分为事件过程(窗体事件过程和控件过程)和通用过程

函数过程(Function)。

返回一个值

属性过程

2.窗体Initialize>

Load>

Active>

Gotfocus

3.Sub过程和Function过程比较

✧定义:

[Private\Public\Static]Sub过程名(参数列表)[Private\Public\Static]Function函数名(参数列表)As数据类型

✧调用:

Sub过程:

●Call语句(无参时,参数列表括号可省略)

●不加Call,参数列表括号省略

Function过程:

不能省略参数列表括号。

4.形参:

可以是数组,不可以是定长字符串变量。

5.按值传递(ByVal)与按址传递(缺省或ByRef)

6.形参为表达式或常数时只能是传值传递。

7.当不用作用域的同名变量发生冲突时,VB优先访问局限大的变量。

(即优先采用局部的变量的值)

8.静态变量作用域仅局限于定义它的过程,且能保留上一次访问时变量的值,不重新初始化。

第八章

该章一般情况下出题较上,而且江苏省二级笔试更加明显。

但并不是不可能出题。

选择题或者填写代码这类题目都有可能。

但大学的教学对此章并不太重视。

故在此不再对此章的内容进行整理。

此章识记的内容较多。

VB学习资料二

VB编程基础与实例

言:

VB的编程,一般是从第五章(循环和分支)开始的。

之前的几章着重于学习VB的变量,常量以及各种表达式的使用,各种数据类型的区别与使用,还用VB编程设计界面的各种控件的使用。

而从第五章开始就要开始重点学习VB的编程思想,开始自己尝试设计算法。

循环和分支结构以及第六章的数组知识将在第七章得到大量的应用。

所以第五章和第六章是学好第七章的基础。

而第五章之前的几章,尤其是第四章又是第五章和第六章的基础。

循环与分支结构

IfCJ<

60Then

Print"

成绩不及格“

Print"

请准备补考"

EndIf

条件语句:

如果~~~~~则

~~~~~~

If...Then

Else

成绩及格“

不然的话就

~~~~~~~

...

ElseIfCJ<

80Then

Else

Print“成绩优秀”

如果~~~~~~则

否则如果~~~则

ElseIf...Then

...

注意当程序运行到ElseIfCJ<

时,CJ是不满足CJ<

60的,即CJ<

80相当于CJ<

80AndCJ>

=60。

(注意不能写成60<

CJ<

80)

SelectCasescore

Case0To59

Label2.Caption="

不及格"

Case60To69

及格"

Case70To79

Label2.Caption="

中"

Case80To89

良"

Case90To100

优"

CaseElse

成绩出错"

EndSelect

多分支语句SelectCase

SelectCase表达式

Case表达式表1

语句块1

Case表达式表2

语句块2

...

CaseElse

语句块n

For...Next循环语句

格式:

For循环变量=初值To终值[Step步长值]

循环体

Next循环变量

步长值可以是正数(称为递增循环),也可以是负数(称为递减循环),但必须是整数。

若步长值为1,则Step1可以省略。

Forc=1To10Step2

S=S+c

Nextc

Printc

结果c应为11。

因为步长为2,c是先加2后,等于11才检验是不是在1~10之间。

11超出了这个范围,故不再执行循环体,退出循环。

Do...Loop循环

✧前测型

Do[{While|Until}条件]

循环体

Loop

DoWhile...Loop语句的功能:

当条件成立(为真)时,执行循环体;

当条件不成立(为假时),终止循环

DoUntil...Loop(直到型循环)语句的功能:

当条件不成立(为假)时,执行循环体,直到条件成立(为真)时,终止循环

✧后测型

Do

循环体

Loop[{While|Until}条件]

先执行循环体,然后判断条件,根据条件决定是否继续执行循环

注意:

本语句执行循环的最少次数为1,而前测型Do...Loop语句的最少次数为0(即一次都不执行循环)

数组:

1.当数组的下标为非整数时,会按CInt函数的方式将其转换为整数处理。

CInt是当程序中不说明转换方式(如Int())时系统默认的转换方式,这在很多题目中都会出现这种情况。

这种默认转换也不仅仅是在数组的下标中才出现。

如书上55页:

DimaAsInteger则a=3.7是等同于a=CInt(3.7)的。

2.数组元素的初始化:

在定义数组的同时,就已经将数组元素初始化。

如定义:

Dima(3)AsInteger.AsInteger语句说明将数组定义成数值型,数值型的初始值为零。

变长字符类型的数组元素初始值为空字符串,定长字符类型(如Asstring*4)的初始值为指定长度的空格,布尔型的数组元素初始值为False.

3.一维数组的结构:

按下标序号升序排列

二维数组的结构:

在内存中按列存放。

先列后行

三维数组的结构:

在内存中逐页逐列。

先页然后是列,最后才是行。

4.数组的赋值:

一般是通过For—next循环来进行赋值的。

5.建立动态数组的步骤:

第一步:

声明一个没有下标(或称空维数)的数组为动态数组

第二步:

在过程中用ReDim语句重新定义带下标的动态数组

若采用:

ReDimPreserveF(n),则能保留数组中原有的数据,但只能保持最后一维。

6.ForEach...Next语句专门作用于数组或对象集合中的每一成员。

与前面的循环语句For...Next类似,都是用来执行指定重复次数的循环。

语法格式:

ForEach成员In数组名

[ExitFor]

Next成员

“成员”是一个Variant变量,不需先定义。

本语句可以对数组元素进行读取、查询或显示,在不知道数组中元素的数目时非常有用。

7.数组这一章让人较难理解的首先是动态数组的使用,因其较灵活,但它在不确定数组元素数目的时候是很实用的。

来看一个例子,假如想知道1到23中间的偶数,若不确定个数:

OptionBase1

PrivateSubCommand1_Click()

DimiAsInteger,mAsInteger,a()AsInteger定义动态数组

Fori=1To23

IfiMod2=0Then

m=m+1通过改变m的值在下一步改变数组元素的数目

ReDimPreservea(m)只有用Preserve才能保留之前被赋值元素的值,否则将变零

a(m)=i

EndIf

Nexti

ForEachvIna

Printv;

用ForEach...Next语句来显示数组元素的值,分号能使其横向排列

Nextv

EndSub

然后应该是章后程序示例。

这一章的程序示例较多地引入了算法(求最大数,排序等)。

但要求掌握的,而且常用的只有几种:

求最大数最小数:

98页。

排序:

106页。

二分法查找:

110页。

删除重复数(出题可能很低):

114页。

其他章中:

筛选字母或(数字):

71页。

求最大公约数:

135页。

求最小公倍数:

153页。

寻找素数104页。

当然,在正式考试中,往往会对着这些题目的要求进行一定的变形,以加大难度,但其核心部分总离不开这些算法。

过程

⑴传值与传址(本章难点一):

传值(ByVal):

传递参数值而不是传递它的地址,因而在通用过程中对形参的任何操作都不会影响实参。

传址(ByRef或什么都不加):

把实参变量的内存地址传递给过程,即形参与实参使用相同的内存地址单元,这样通过过程就可以改变变量本身的值。

实参必须是变量,不能采用常量或表达式。

⑵返回值的获得:

Sub过程并不返回任何值,即不存在如:

y=sub(x,y)之类的代码。

sub(x,y)自身是没有任何值的,也就不能通过它为y进行赋值。

Function过程能返回一个值,即存在如:

y=Function(x,y)之类的代码。

Function(x,y)通过对Function过程的调用,自身获得一个值,因此能通过它为y赋值。

选择Function还是Sub过程:

当程序需要通过调用过程得到一个结果,并将这个结果传给一个变量时,选择Function过程比较直接。

当然,也可以选择Sub过程,当需要定义多一个变量作为参数,将需要的结果传给这个额外的参数,再通过这个参数传给变量。

当所需要的结果只是参数的值时(一般是传址过程),两种几乎没区别。

请看下面的例子,用两种过程实现求一个数的立方。

对比:

DimaAsInteger,bAsInteger

a=InputBox("

请输入一个数字"

b=sq(a)

Printb

PrivateFunctionsq(xAsInteger)AsInteger

sq=x^3

EndFunction

用Function过程实现。

注意Function过程的定义。

例子中通过它对b赋值。

注意此时的参数只有一个,即是a。

Callsq(a,b)

Printb

PrivateSubsq(xAsInteger,yAsInteger)

y=x^3

用Sub过程实现。

注意Sub过程的调用使用了Call语句。

而且使用了两个参数,其中b是用来储存所得的结果,即x的立方的。

仍是用Sub过程。

但只用了一个参数。

因为所得的结果在Sub过程中已经打印出来了。

(此时是通过定义变量y来存储结果的)。

不需再将结果传给主过程,然后再打印。

但这种方法并非所有的Sub过程都可行。

注意考虑程序的需要

Callsq(a)

PrivateSubsq(xAsInteger)

DimyAsInteger

Printy

在这个例子中用Sub过程实现的方法有好几种,请看下面,注意比较:

x=x^3

Printx

也只用了一个参数。

但与上种方法不同的是,Sub过程并不再定义额外的变量y,而是直接用原来的参数x来存储它自身的立方。

这样做前提是,程序后来并不再需要参数x原来的值。

这也算是一种特例,慎重使用。

Printa

仍是Sub过程。

也只是用了一个参数。

这种方法与上种方法类似。

区别在于,程序仍将结果传回主过程,只是通过原来的参数x来传递,并没再定义一个参数y。

前提也是程序后来不再需要x原来的值。

这也是一种特例,慎重使用。

但是如果程序的要求是如下的话,那么方法1,2,3均是不可行的。

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

当前位置:首页 > 职业教育 > 职业技术培训

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1