第三章 VB程序设计语言基础.docx

上传人:b****8 文档编号:27774757 上传时间:2023-07-04 格式:DOCX 页数:26 大小:26.94KB
下载 相关 举报
第三章 VB程序设计语言基础.docx_第1页
第1页 / 共26页
第三章 VB程序设计语言基础.docx_第2页
第2页 / 共26页
第三章 VB程序设计语言基础.docx_第3页
第3页 / 共26页
第三章 VB程序设计语言基础.docx_第4页
第4页 / 共26页
第三章 VB程序设计语言基础.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

第三章 VB程序设计语言基础.docx

《第三章 VB程序设计语言基础.docx》由会员分享,可在线阅读,更多相关《第三章 VB程序设计语言基础.docx(26页珍藏版)》请在冰豆网上搜索。

第三章 VB程序设计语言基础.docx

第三章VB程序设计语言基础

第三章VB程序设计语言基础

教学内容:

  一、VB中的数据与运算

  vb据类型、常量与变量、运算符与表达式、数组

  二、标准函数

  常用的内部函数(数学函数、转换函数、字符串函数、日期与时间函数等)

  三、三种基本结构(顺序、判定、循环)

教学要求:

  理解:

VB6.0的基本语法规则、数据类型

  掌握:

VB6.0的常量、变量、运算符、运算规则、函数、表达式的正确书写)

  掌握:

判定结构和循环结构的使用方法,直到型和当型的区别。

§3.1数据与运算

数据类型:

数值数据类型

(1)Integer型和Long型

用来表示整数。

Integer型数据占2个字节,Long型数据占4个字节。

除了十进制整型数,常用的还有八进制和十六进制,它们的表示方法为:

Intger型:

八进制数值前加&O或&。

如&O123

十六进制数值前加&H。

如&H123

Long型:

八进制数值前加&O或&,最后加&。

如&O123&

十六进制数值前加&H,最后加&。

如&H123&

(2)Single型和Double型

用来表示浮点数。

Single型占4个字节,Double型占8个字节。

表示一些单精度型常量和双精度常量时,可以用以下方法:

123E5,0.34E-2,0.8D2

(3)Currency型

为表示钱款而设置。

占8个字节。

小数点左边最多15位,右边最多4位。

(4)Byte型

占1个字节,表示无符号整数。

字符数据类型字符(String)类型存放字符型数据。

用双引号括起来,如“abc”。

注:

①”“表示空字符串,长度为0。

②若字符串中含有双引号,则用连续两个双引号表示,如”abc””12”。

日期数据类型

日期型(Date)表示日期和时间,占8个字节。

用“#”括起来,如#2004-5-4#等。

逻辑数据类型

逻辑型(Boolean)表示逻辑判断,占2个字节。

只有True和Fale两个值。

逻辑型数据转换成整型数据时,True转换为-1,False转换为0。

其他类型数据转换成逻辑型数据时,非0数转换为True,0转换为False。

对象数据类型

对象型(Object)表示图形、OLE对象或其他对象,占4个字节。

变体数据类型

变体型(Varient)可存放任何类型的数据

类型说明符

可在常量或变量的后边加上类型说明符指明它是哪一种数据类型,常见的类型说明符如下:

整型:

%长整型:

&

单精度型:

!

双精度型:

#

字符串型:

$货币型:

@

3.1.2变量与常量

命名规则

1.名字由字母、汉字、数字或下划线组成;

2.名字的第一个字符必须是字母或汉字;

3.名字的有效长度小于等于255个字符;

4.不能使用VB中的关键字。

5.VB中不区分变量名的大小写。

6.为了增加程序的可读性,可在变量名前加一个缩写的前缀来表明该变量的数据类型。

变量

变量定义的一般格式如下:

Declare变量名As类型

其中,①Declare可以是Dim、Static、Public、ReDim。

Dim、Static用于定义局部变量

Dim用于定义窗体和模块级变量

Public用于定义全局变量

ReDim用于重新定义数组

②类型可以是基本数据类型或用户自定义数据类型

③若“As类型”省略,默认为变体数据类型

④可在变量名后加类型说明符代替“As类型

例如:

DimxasInteger,yasSingle

DimsasString

注:

Dim定义的局部变量是自动变量,过程结束后其值被重新设置;

Static定义的局部变量是景泰变量,过程结束后其值继续保留。

常量

VB中有三种常量:

即直接常量、用户声明的符号常量和系统提供的常量。

(1)直接常量

直接常量其常数值直接反映了其类型,也可在常数值后紧跟类型符显示地说明常数的数据类型。

(2)符号常量

常量可用由用户定义的符号常量表示,格式如下:

Const符号常量名[As类型]=表达式[,常量名=表达式]……

例如:

ConstPI=3.1415926

(3)系统提供的常量

除了用户通过声明创建符号常量外,VB系统还提供了应用程序和控件定义的常量,这些常量位于对象库中,在“对象浏览器”中的VisualBasic(VB)、VisualBasicforApplications(VBA)等对象库中列举了VisualBasic的常量。

3.1.3运算符和表达式

运算符

1.算术运算符

加:

+减:

-乘:

*

整除:

\浮点除:

/取模:

Mod

负号:

-幂运算:

^

2.字符串运算符

“&”和”+“都是将两个字符串拼接起来。

但字符串连接时最好用”&”,因为“+”还可以作为算术运算符使用

3.关系运算符

对两个表达式的值做比较,若关系成立,则返回True,否则返回False。

等于=大于>大于等于>=小于<

小于等于<=不等于<>或><字符串匹配Like对象引用比较Is

4.逻辑运算符

取反:

Not与:

And或:

Or

异或:

Xor等价:

Eqv蕴含:

Imp

表达式

表达式由变量、常量、运算符、函数和圆括号按一定的规则组成。

表达式通过运算后有一个结果,运算结果的类型由数据和运算符共同决定。

当一个表达式中出现了多种不同类型的运算符时,不同类型的运算符优先级如下:

算术运算符>字符运算符>关系运算符>逻辑运算符

常用内部函数

VB提供了大量的内部函数(或称标准函数)供用户在编程时调用。

内部函数按其功能可分成数学函数、转换函数、字符串函数、日期函数和格式输出函数等。

具体内容参见课本。

3.1.4数组

1.数组的概念

一、数组的概念

在实际应用中,经常需要处理同一类型的成批数据。

比如,要处理100个学生的会计这门课程的考试成绩,如果在程序中定义100个变量来表示这批成绩,显然是很麻烦的。

我们可以用VB提供的数组来完成这个功能。

可以用c1,c2,…,c100来分别代表每个学生的分数,也就是说,用一批具有相同名字、不同下标的下标变量来表示同一属性的一组数据,这样能更清楚的表示它们之间的关系。

在VB中,把一组具有相同名字、不同下标的下标变量称为数组。

在计算机中,下标用“()”括起来。

比如c

(2),其中c为数组名,2是下标。

根据数组中下标变量的个数可以分为一维数组、二维数组或多维数组。

二、数组的声明

定义数组可以用Dim、Public、Private、Static语句实现。

格式(以Dim为例):

 

Dim<数组名>(<第一维说明>[,<第二维说明>]……)[As<类型>]

例:

Dimc(99)asSingle

Dims(3,4)asstring

Dimstu(3,6)

Dima(2to100)asstring*5

Dimb(2to30,5to40)

说明:

①数组必须要先定义,后使用

②如果不用AS语句指明类型,默认为变体数据类型

③一般情况下,下标的下界默认为0,如果希望下标从1开始,可以用OptionBase语句设置,格式为OptionBasen,其中n为下标的下界,只能是0或1

④可以根据需要指定数组下标的下界,格式为:

Dim数组名([下界To]上界[,[下界To]上界]……)

⑤在同一个过程中,数组名不能与变量名同名

⑥在定义数组时如果指明了类型,那么数组中的每个元素都是这种类型的;如果没有指明或定义成了变体数据类型,则其中的每个元素也是变体类型,可以存放各种类型的数据。

2.静态数组与动态数组

定义数组后,为了使用数组,必须为数组开辟所需要的内存区。

根据内存区开辟时机的不同,可把数组分为静态数组和动态数组。

通常把需要在编译时开辟内存区的数组叫做静态数组,把需要在运行时开辟内存区的数组叫做动态数组。

一、静态数组

静态数组的数组元素的个数是在数组声明时确定的,系统运行过程中它的个数不变。

前面定义的几个数组都是静态数组。

我们主要讲一下动态数组。

二、动态数组

动态数组是在声明数组时未给出数组的大小(省略括号中的下标),当要使用它时,随时用ReDim语句重新指出大小的数组。

使用动态数组的优点是可根据用户需要,有效地利用存储空间,它是在程序执行到ReDim语句时分配存储空间。

建立动态数组的方法是,使用Dim、Private或Public语句声明括号内为空的数组,然后在过程中用ReDim语句指明该数组的大小。

形式如下:

ReDim<数组名>(<下标1>[,<下标2>…])[As<类型>]

例如:

Dims()asinteger‘定义动态数组s,括号不能省略

PrivateSubForm_Click()

......

n=InputBox("输入n的值")

m=InputBox("输入m的值")

n=Val(n)

m=vla(m)

ReDims(n,m)‘重新指明数组的大小

......

EndSub

在过程中可多次使用ReDim语句来改变数组的大小,不能改变数组维数,也不能改变数组的类型。

每次执行ReDim语句时,当前存储在数组中的值都会全部丢失。

VisualBasic重新将数组元素的值置为Empty(对Variant数组)、置为0(对Numeric数组)、置为零长度字符串(对String数组)。

如果希望改变数组大小又不丢失数组中的数据,可使用具有Preserve关键字的ReDim语句就可做到这点。

如:

Dimthis()AsString

PrivateSubCommand1_Click()

ReDimthis(4)

this

(2)="microsoft"

Printthis

(2)

ReDimPreservethis(6)

Printthis

(2)

EndSub

3.数组的清除和重定义

在一个程序中,同一个数组只能定义一次。

有时可能需要清除数组的内容或对数组重新定义,这可以用Erase语句来实现。

格式如下:

Erase<数组名>[,<数组名>]……

说明:

①在Erase语句中,只给出要刷新的数组名,不带括号和下标

②Erase语句用于静态数组时,用来重新初始化各元素,内容被清空。

若是数值数组各元素被置0,字符数组各元素被置为空字符串。

③Erase语句用于动态数组时,删除整个数组的结构并释放该数组所占用的内存。

动态数组经Erase后不再存在。

下次引用该动态数组之前,必须用ReDim语句重新定义该数组的维数。

 

4.数组元素的基本操作

一、给数组元素赋值

1.利用循环结构

Fori=1to5

A(i)=3

Nexti

2.利用InputBox()函数输入

PrivateSubCommand1_Click()

Dimb(2,3)

Fori=0To2

Forj=0To3

b(i,j)=InputBox("输入"&Str(i)&","&Str(j)&"的值")

Nextj

Nexti

Fori=0To2

Forj=0To3

Printb(i,j);"";

Nextj

Print

Nexti

EndSub

当给一个较大的数组赋值时,以上方法比较麻烦,可以用Array()函数解决。

3.利用Array()函数

PrivateSubForm_Click()

Dima,b

a=Array(1,2,3,4,5)

b=Array("11","22","33")

Fori=0ToUBound(a)

Printa(i);

Nexti

print

 

Fori=0ToUBound(b)

Printb(i);

Nexti

Print

EndSub

说明:

①Array()函数对各元素赋值,声明的数组是动态数组或连小括号都省略的数组,并且类型只能是Varient。

②数组下界默认为0,可通过OptionBase语句决定,上界由Array()函数括号内的参数个数决定,也可通过UBound()函数获得。

③Array函数只适用于一维数组。

二、数组元素的输出

可以通过Print语句对数组输出

对一维数组,用单重循环就能实现,对二维数组,要用二重循环实现。

三、数组元素的复制

1.单个数组元素可以像简单变量一样从一个数组复制到另一个数组。

如:

Dimb(4),a(6)

……

b

(2)=a(3)

2.要复制整个数组,要使用For循环语句。

PrivateSubCommand1_Click()

Dima(),b()

a=Array(1,2,3,4,5)

ReDimb(UBound(a))

Fori=0ToUBound(a)

b(i)=a(i)

Nexti

Fori=0ToUBound(a)

Printb(i);

Nexti

EndSub

3.要复制整个数组,也可以使用一条简单的赋值语句即可。

如:

Dima(4)asinteger,b()asinteger

A(0)=0:

a

(1)=5:

a

(2)=10:

a(3)=13:

a(4)=14

B=a

使用这种方法赋值时,必须要注意:

①赋值号两边的数据类型必须一致

②如果赋值号左边的是一个大小固定的数组,则数组赋值出错

③赋值号左边的必须是一个动态数组,赋值时系统自动将动态数组ReDim成与右边同样大小的数组

四、ForEach…Next语句

与For…Next语句类似,两者都是用来执行指定重复次数的语句。

但ForEach…Next语句是专门用于操作数组的,它的格式如下:

ForEach<成员>In<数组名>

[<循环体>]

[ExitFor]

Next[<成员>]

说明:

①格式中的“成员”必须是一个变体变量,是为循环提供的,代表的是数组中的每个元素。

②〈数组名〉没有括号和上下界

用ForEach…Next语句可以对数组元素进行处理,它所重复执行的次数由数组中元素的个数确定,数组中有多少个元素,就自动重复执行多少次。

例:

OptionBase1

PrivateSubCommand1_click()

Dimabc(10)AsInteger

Fori=1To10

abc(i)=Int(Rnd*100)

Nexti

Print"使用普通循环输出:

"

Fori=1To10

Printabc(i);

Nexti

Print

Print"使用ForEach…Next输出:

"

ForEachxInabc

Printx;

Next

EndSub

5.自定义数据类型

自定义数据类型由若干个标准数据类型组成,又称记录类型。

通过Type语句实现。

格式:

Type自定义类型名

元素名[(下标)]As类型名

……

[元素名[(下标)]As类型名]

EndType

如:

TypeStudent

NoAsInteger

NameAsString*20

SexAsString*1

Mark(1To4)AsSingle

TotalAsSingle

EndType

说明:

①自定义数据类型一般在标准模块(.bas)中定义,默认是Public。

若在窗体模块中定义,必须是Private。

②自定义数据类型中的元素类型可以是字符串,但应是定长字符串。

定义好了类型,就可在变量的声明时使用该类型,定义的方法和标准类型是一样的。

比如:

Dimstuasstudent

表示自定义类型变量中元素的格式为:

变量名.元素名,如stu.no,stu.name等。

可给变量stu赋值:

§3.2标准函数

1.数学函数

Sin(N):

返回自变量N的正玄函数值,如:

sin(0)=0,N为弧度。

Cos(N):

返回自变量N的余玄函数值,如:

cos(0)=1,N为弧度。

Tan(N):

返回自变量N的正切函数值,如:

tan(0)=0,N为弧度。

Atn(N):

返回自变量N的反正切值,如:

atn(0)=0,函数值为弧度。

Sgn(N):

返回自变量N的符号。

N<0,返回-1;N=0,返回0;N》0,返回1。

如:

Sgn(35)=1,Sgn(0)=0,Sgn(-5.34)=-1

Abs(N):

返回自变量N的绝对值,Abs(-345)=345,Abs(345)=345。

Sqr(N):

返回自变量N的平方根,N>=0,如:

Sqr(81)=9。

Exp(N):

返回e的N次幂值,n>=0。

如:

Exp(3)=20.086。

Log(N):

返回N的自然对数,N>0,如:

Log(10)=2.3

Int(N):

返回不大于N的最大整数,如:

Int(3.6)=3。

Cint(N):

四舍五入整数。

Cint(3.6)=4。

Rnd(N):

返回0~1之间的随机小数。

注意:

三角函数的自变量以弧度表示。

2.转换函数

lFix(n):

返回n的整数部分,截取小数部分;如:

Fix(3.4)=3。

lAsc(c):

返回字符串C首字符的ASCII码值,如:

Asc(”A”)=65。

lChr(n):

返回ASCII码值为n的字符,Chr(65)=”65”。

lVal(c):

把数字组成的字符串型数据转换称数值型。

Val(”456”)=456。

lStr(n):

把数值n转换成字符型,Str(357)=”357”。

lLcase(c):

把字符串c中大写字母转换为小写字母。

Lcase(”A”)=”a”。

lUcase(c):

把字符串c中小写字母转换为大写字母。

Ucase(”a”)=”A”。

 

3.字符串函数

lTrim(c):

去掉字符串c两端的空格,Trim(”ab”)=”ab”。

lLeft(c,n):

截取C最左边的n个字符,Left(”command,3”)=”com”。

lRight(c,n):

截取c最右边的n个字符,Right(”command,3”)=”and”.

lMid(C,m,n):

截取c中第m个字符开始的n个字符。

Mid(”command”,3,2)=”mm”。

lLen(c):

返回c包含的字符数,汉字空格都算一个字符。

Len(”中”)=1。

lUcase(c):

将c中的小写字母转换成大写字母。

Ucase(”Who”)=”WHO”.

lLcase(c):

将c中的大写字母转换成小写字母。

Lcase(”Who”)=”who”。

4.日期与时间函数

 

lTime[$][()]:

返回系统当前时间;

lDate[$][()]:

返回系统当前日期;

lNow[()]:

返回系统当前日期和时间;

lDay(c/n):

返回数据中当月第几天;

lMonth(c/n):

返回数据中当年第几月;

lWeekDay(c/n):

返回数据当天是星期几。

§3.3基本控制结构

3.1顺序结构

顺序结构就是各语句按出现的先后次序执行。

主要是由一些赋值语句、输入/输出语句等组成。

l。

赋值语句

格式:

变量名=表达式

在VB中,既可以给一个变量赋值,也可以给对象的某一个属性赋值。

lInputBox()函数

格式:

InputBox(提示[,标题][,默认][,x坐标位置][,y坐标位置])

功能:

产生一个对话框,让用户从键盘输入内容,当用户单击“确定”按钮或按回车键时,函数返回输入的值。

PrivateSubCommand1_Click()

r=InputBox("请输入姓名","教师登记表","张三",3000,4000)

Printr

EndSub

其中:

“提示”:

字符串表达式,在对话框中作为信息显示。

“标题”:

字符串表达式,在对话框的标题区显示。

“默认”:

字符串表达式,显示输入框里的默认信息。

“x坐标位置”、“y坐标位置”:

整型表达式,坐标确定对话框左上角在屏幕上的位置,屏幕左上角为坐标原点,单位为twip。

在这五个参数中,只有“提示”是必选的。

注:

函数的返回值为字符串类型,所以如果要对返回值进行算术运算,必须要转换成数值型的。

例如:

PrivateSubCommand1_Click()

r=InputBox("请输入第一个数")

s=InputBox("请输入第二个数")

r=Val(r):

s=Val(s)

x=r+s

Printx

EndSub

3.2选择结构

选择结构,就是对条件进行判断,根据判断结果,选择执行不同的分支。

VB中提供了多种形式的条件语句来实现,我们主要介绍If条件语句和Select

Case语句

lIf条件语句

If条件语句有两种格式:

单行结构和块结构

1.单行结构

格式:

If<条件>Then<语句块1>[Else<语句块2>]

如果Then或Else后面有多条语句,那么各语句之间用“:

”隔开。

2.块结构

格式:

If<条件>Then

<语句块l>

[Else

<语句块2>]

EndIf

Then和Else后面不能有语句,而且最后不要忘了写上EndIf。

这两种结构都比较简单,就不再举具体的例子了。

在实际应用中,我们还经常用的If语句的嵌套,即一个If语句里又包含一个If语句。

举一个简单的例子:

某商场为了促销,采用购物打折的优惠办法,每位顾客一次购物

(1)1000元以上,按九五折优惠

(2)2000元以上,按九折优惠

(3)3000元以上,按八五折优惠

(4)5000元以上,按八折优惠

编写程序,输入购物款数,计算并输出优惠价。

方法一:

PrivateSubCommand1_Click()

DimxAsSingle,yAsSingle

x=val(Text1.Text)

Ifx<1000Then

y=x

Else

Ifx<2000Then

y=0.95*x

Else

Ifx<3000Then

y=0.9*x

Else

Ifx<5000Then

y=0.85*x

Else

y=0.8*x

EndIf

EndIf

EndIf

EndIf

Text2.Text=Str(y)

EndSub

上面的这个程序出现多次If语句嵌

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

当前位置:首页 > PPT模板 > 其它模板

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

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