版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章VisualBasic语言基础
3.1VisualBasic的基本语法3.2基本语句3.3函数习题3.1VisualBasic的基本语法案例1VisualBasic的数据类型
1.学习目标通过本案例的学习,掌握VB语言的常用数据类型,学会定义变量和常量。
2.相关知识
1)数据类型
VB中常用的数据类型如表3.1所示,数据类型声明字符后缀如表3.2所示。表3.1常用数据类型及其范围表3.2数据类型声明字符后缀
2)用户自定义的数据类型用户可以利用Type语句定义自己的数据类型,其语法格式如下:
Type自定义数据类型名元素名1As数据类型1元素名2As数据类型2
…
EndType例如:
Typestudent
numberAsInteger '学号
nameAsString*8
'姓名
scoreAsSingle '成绩
EndType在定义了student类型之后,就可以定义student类型的变量了。例如,定义一个stu的变量:
DimstuAsstudent此语句定义了student类型的变量stu,它包括3个成员。在后面的程序中可以用“变量.元素”的形式来引用各个成员,例如:stu.number,,stu.score。注意:用户自定义的数据类型中的元素可以是字符串,但必须是定长字符串。定长字符串的格式为:
String*常数其中,常数指定长字符串的长度。
3)常量在程序执行过程中数值不改变的量称为常量。常量的命名规则和变量的命名规则一样,具体见后面的变量部分。常量的声明格式如下:
[Public|Private]Const<常量名>[As<数据类型>]=<表达式>说明:
(1)声明语句中的[Public | Private]、[As<数据类型>]为可选项。[As<数据类型>]表示常量的数据类型,若省略,则该常量的类型由所赋的数值确定;<表达式>即常量的值。
(2) Public、Private是可选的,不可用在过程中,只能用在模块的声明段,且Public只能用在标准模块中。使用关键字Public则将一个常量声明成应用程序中所有模块都可以使用的全局常量;使用Private在模块的声明段声明时,声明的常量为模块级常量,使用范围为整个模块中的所有过程。
(3)若该声明语句放在过程内部,则声明的常量称为过程级常量,使用范围仅限于该过程内部。
(4)在一条声明语句中声明多个常量时,用逗号分隔。例如:
Constnumber=200
ConstPIAsSingle=3.14159
ConstsAsString="friend"
4)变量变量是用于在程序执行期间保存数值,并可随时改变数值的量。
(1)变量的命名规则。①变量名必须以字母开头。例如,clock和book3这两个变量名是合法的;而3book是非法的。②变量名只能由字母、数字和下划线组成,中间不能出现空格或小数点等。例如,变量名file_name是合法的,而filename是非法的。③变量名不能和VB的关键字同名。关键字是VB中具有特定含义的词,包括预定义语句(If,For,Loop等)、操作符(And,Mod等)和函数(Int,Sqr等)。④变量名的长度不得超过255个字符。⑤在同一作用域中,变量名不能重复。
(2)变量命名时,应注意以下几点:①最好使用具有明确含义、容易记忆的变量名,即要见名知义。例如,用average表示平均值,student_name表示学生姓名等。②变量名不要太长。因为太长了容易写错,阅读起来也不方便。③变量名不能与符号常量和过程名相同。
VB不区分字母大小写。例如,NAME,name,Name指的是同一变量名。为了方便阅读,每个单词开头的字母最好用大写,如FileEdit。以下标识符是合法的变量名:
a,x,y2,BOOK_2,sum3以下标识符是非法的变量名:
3x 以数字开头
a*b 出现非法字符*
book-1 出现非法字符-减号)
For 使用了VB的关键字
filename 中间有空格
(3)变量声明。声明变量有两种方式,即显式声明和隐式声明。●显式声明(推荐使用)声明格式:Dim | Static | Public | Private<变量名>As<数据类型>语句功能:声明变量并分配存储空间。说明:①Dim | Static | Public | Private四个参数可任选其中之一。②Public语句用于在模块文件(*.bas)的“通用”声明段中声明应用程序级的全局变量,即应用程序中的所有模块都可以访问该变量。但是,在窗体模块中声明的模块级变量,在另一窗体和模块中使用时,需要加上该窗体模块名。③Dim或Private语句用于在窗体或模块的“通用”声明段中声明模块级变量,即该窗体或模块中的所有过程都可以使用的变量。④Dim或Static语句用于在过程内部声明过程级的局部变量,即只能在声明它的过程中使用的变量。使用Static声明的变量为静态变量,它与Dim声明的变量不同之处在于:在执行一个过程结束时,过程中所用到的Static变量的值会保留,下次再调用此过程时,变量的初值是上次调用结束时被保留的值,而Dim声明的变量在过程结束时不保留,每次调用时需要重新初始化。不同作用域变量的声明方式如表3.3所示。表3.3变量的作用域例如:
DimmynameAsString
StaticCountAsInteger
PublicxAsSingle可以在一行中同时声明多个变量,各变量之间用逗号分隔开。例如:
Dima1AsInteger,a2AsDouble,a3AsString注意:语句中每个变量都要指明类型,不给出类型的变量被认为是变体类型。例如:下面的语句声明了一个变体型变量i,一个整型变量j。
Dimi,jAsInteger下面的语句声明了两个整型变量:
DimiAsInteger,jAsInteger
VisualBasic执行到Dim语句时,根据语句中的指定生成一个或几个新变量,并在内存中为其分配一定的空间。当后面命令中再次出现该变量名时,VisualBasic就会在相应的内存单元中读取或设置该变量的值。●隐式声明声明格式:Dim<变量名>(或者不声明变量,而直接使用变量)说明:采用“Dim<变量名>”方式或者无声明语句时,新变量的数据类型为Variant型。VisualBasic根据程序中赋予变量的值来自动调整变量的类型。
(4)强制变量声明。为了避免输入变量时的错误,通常规定每个变量都要经过显式说明才可以使用。这样,VB只要遇到一个未经声明的变量名,就会发出错误警告。要做到这一点,只需在窗体(或模块)的通用声明部分加上一条语句:
OptionExplicit也可以在“工具(Tools)”菜单中选择“选项(Options)”菜单项,然后单击“编辑器”选项卡,选中“要求变量声明”复选框,就可以在任何新模块(例如,新建工程或新建窗体)中自动插入OptionExplicit语句。
3.思考
(1)下列哪个符号不能作为VB中的变量名?
(A) abc (B) x2
(C) 123 (D) book5
(2)下列哪个符号是VB中的合法变量名?
(A) table (B) 6apples
(C) Else (D) a[2]b
(3)定义变量。将下面的文字描述用VB语句写出来。①将x定义为整型变量。②将n和m定义为整型变量。③将sum定义为单精度型变量,将yesno定义为布尔型变量。④将name定义为字符串型变量。⑤将xuehao定义为定长字符串型变量,字符串长度为6。⑥将length和area定义为单精度型变量。案例2VisualBasic的运算符和表达式
1.学习目标通过本案例的学习,掌握VB语言中算术运算符、关系运算符、逻辑运算符和字符运算符的用法,并能正确使用这些运算符写出VB表达式。
2.相关知识
1)算术运算符及算术表达式算术运算符对照表如表3.4所示。表3.4算术运算符对照表
(1)“/”和“\”运算符的区别:浮点除法运算符“/”用来计算两个数或表达式的商,并返回相应的浮点数。例如:3/2的值是1.5。整数除法运算符“\”在运算前把两个运算量四舍五入转换成整数,然后计算两个运算量的商,并返回结果的整数部分。例如:3\2的值是1,10.2\3.7的值是2。
(2)“Mod”运算符:取模运算符“Mod”在运算前把两个运算量四舍五入转换成整数,然后对两个运算量进行除法运算,并返回余数(第一个操作数整除第二个操作数的余数)。例如:
7Mod2 值是1
8Mod2 值是0
6Mod20 值是6
15Mod3.8 值是3
(3)写VB表达式时,要注意以下几点:①表达式中所有符号必须写在同一行上。如分子、分母、下标、指数等都必须写在同一行上。例如,x4要写成x^4,a1-a2要写成a1-a2。②只能使用合法标志符。无法用键盘输入的符号,可以用英文字母或汉语拼音来代替。例如:α+β可写成Alpha+Beta,2πr可写成2*PI*r。其中PI为自定义常量,声明为
ConstPIAsSingle=3.14159③乘法运算符“*”不能省略。例如:b2-4ac要写成b*b-4*a*c。④括号必须成对出现,且只能用小括号()。例如:[(a+b)*c-d]/2要写成((a+b)*c-d)/2。
2)字符运算符及字符表达式字符运算符用于将两个字符型表达式连接生成一个新字符串。其运算符主要有“+”运算符和“&”运算符。
(1)“+”运算符:用于将两个字符串连接生成一个新字符串。例如:
DimsAsString
s="国泰"+"民安"则变量s中最后存放的数据将是字符串“国泰民安”。
(2)“&”运算符:用于将两个并非全是字符型的数据进行强制连接。例如:
DimnAsInteger
Dimstr2AsString
n=40
str2="本班学生总数为:"&n最后,变量str2中的值将是字符串“本班学生总数为:40”。注意:使用运算符“&”时,变量与运算符“&”之间应加一个空格,最好在“&”前后各加一个空格。
3)关系运算符及关系表达式关系运算主要用于比较两个表达式的大小,其运算结果为一逻辑型值,即True或False,见表3.5。表3.5关系运算符对照表
4)逻辑运算符及逻辑表达式逻辑运算经常用来表达一些较复杂的关系,其运算结果是逻辑型值。VisualBasic6.0提供了如表3.6所示的逻辑运算符。表3.6逻辑运算符对照表
VB中常用的逻辑运算符是Not、And和Or,它们用于将多个关系表达式进行逻辑判断,如表3.7所示。例如:数学上表示某个数在某个区域时用表达式20≤x<30,在VB程序中应写成x>=20Andx<30,如果写成20<=x<30或20<=xAndx<30都是错误的。表3.7And、Or、Not运算真值表从表3.7可以看出:
(1) And的运算规则是:当A和B都是True时,结果为True;其他情况时结果均为False。
(2) Or的运算规则是:当A和B都是False时,结果为False;其他情况时结果均为True。
(3) Not的运算规则是:如果A为True,结果为False;如果A为False,结果为True。
5)运算符的优先顺序前面介绍了VisualBasic6.0中常用的运算符,在实际运算过程中,每种运算或者同一种运算内部的不同运算都存在一个运算的先后问题。优先级高的运算符先进行运算,优先级低的运算符后进行运算;同一优先级的运算按从左到右的次序进行运算。在一个表达式中,如果同时有多个运算符存在,则它们的优先顺序由高到低依次为:算术运算符→字符运算符→关系运算符→逻辑运算符算术运算符的优先级顺序由高到低依次为:
^(指数运算)→-(负数)→*,/(乘法,浮点除法)→\(整数除法)→Mod(取模运算)→+,-(加法,减法)其中,“*”,“/”具有相同的优先级;“+”,“-”具有相同的优先级。在关系运算符中,所有的运算符具有相同的优先级。逻辑运算符的优先级顺序由高到低依次为:
Not(非)→And(与)→Or(或)→Xor(异或)→Eqv(同或)→Imp(蕴含)用括号控制运算的优先次序可以使程序清晰易读,而且不易出错。
3.思考
(1)写出下列表达式的值。①(9+3)\2;②8Mod3+3^3/5\2;③"abc"+"123";④2*5>4*3OrNot7>3。
(2)根据给出的条件,写出对应的VB表达式。①x是小于200的非负数;②y能被3整除;③3≤a≤7;④t≤2或t≥9;⑤一元二次方程ax2+bx+c=0有实根的条件为:a不等于0,并且b2-4ac大于等于0。3.2基本语句案例3赋值语句、输入语句InputBox使用举例
1.学习目标用InputBox输入球体的半径,然后计算球体的体积。通过本案例的学习,学会使用赋值语句、输入语句InputBox。
2.相关知识
1)赋值语句语句格式:变量名=表达式对象.属性名=表达式语句功能:先计算出赋值号“=”右端的表达式的值,再赋值给“=”左端的变量或对象的属性。说明:一般一条赋值语句单独放在一行中。如果将多条赋值语句放在同一行中,则语句之间用冒号“:”隔开。例如:
x=2:y=10:z=5以上语句等同于下列3条语句:
x=2
y=10
z=5为了使代码更清晰易读,推荐使用一行一条语句的形式。
2)输入语句语句格式:value=InputBox(<提示信息>[,<标题>][,<默认值>][,<xpos>][,<ypos>])语句功能:产生一个具有提示信息并可供用户输入数据的对话框。返回字符串型数据。参数说明:
(1)提示信息:必选项。显示在输入对话框中的字符串,用于提示用户输入,该字符串最大长度是1024个字符。如果提示信息包含多行,可在各行之间用回车符(chr(13))、换行符(chr(10))的组合(chr(13)&chr(10))来分隔。
(2)标题:可选项。显示在输入框标题栏中的字符串表达式。如果省略该项,则标题栏上显示当前执行的应用程序名。
(3)默认值:可选项。显示在输入对话框文本框内的数据,作为输入默认值。
(4)xpos,ypos:可选项。这两个参数用于指定对话框在屏幕上的位置。xpos指定了输入框的左边与屏幕左边的水平距离;ypos指定了输入框的上边与屏幕上边的水平距离。缺省情况下,对话框会出现在屏幕的中央。注意:InputBox的参数是按一定的顺序排列的,如果省略中间某个参数时,相应的逗号分隔符须保留。例如:输入一个整数,并在文本框Text1中显示输入的整数。例如:输入一个整数,并在文本框Text1中显示输入的整数。程序代码为
PrivateSubForm_Click()
Dimstr2AsString,nAsInteger
str2=InputBox("请输入一个整数:","输入窗口演示")
n=Val(str2)
Text1.Text="你输入的数是:"&n
EndSub运行程序,单击窗体,产生的输入框如图3.1所示。图3.1InputBox函数产生的输入框
3.程序实现
1)界面设计初始界面如图3.2所示。
2)属性设置属性设置如表3.8所示。设置属性后的界面如图3.3所示。图3.2初始界面表3.8属性设置图3.3设置属性后的界面
3)编写代码命令按钮Command1的Click事件代码为
PrivateSubCommand1_Click()
DimrAsSingle,vAsSingle
ConstPI=3.14
r=Val(InputBox("请输入球体半径","球体半径",0))
v=4/3*PI*r^3
Label1.Caption="球体的体积="+Str(v)
EndSub运行程序后,单击命令按钮Command1,则自动出现一个标题为“球体半径”的输入框。如果在输入框中输入数字“10”,则在标签Label1上将显示球体的体积,如图3.4所示。图3.4计算球体的体积案例4输出语句MsgBox使用举例
1.学习目标用文本框输入摄氏温度C,用MsgBox输出华氏温度F。公式为F=9/5*C+32。通过本案例的学习,会使用输出语句MsgBox。
2.相关知识
MsgBox函数或MsgBox语句可以用来显示计算结果或发布信息。语句格式:MsgBox<提示>[,<按钮>][,<标题>]函数格式:value=MsgBox(<提示>[,<按钮>][,<标题>])参数说明:
(1)提示:必选项。显示在消息对话框中的字符串,其最大长度为1024个字符。如果超过该宽度,则多余字符将自动被截掉。如果提示信息包含多行,可在各行之间用回车符(chr(13))、换行符(chr(10))的组合(chr(13)&chr(10))来分隔。
(2)按钮:可选项。若省略该项,则系统默认其值为0。按钮的参数值及其意义如表3.9所示。表3.9按钮参数各组成部分取值及其含义表3.9中的值分为如下四组:第一组参数(0,1,2,3,4,5):指定消息框中命令按钮的数目及形式。第二组参数(16,32,48,64):指定使用的图标样式。第三组参数(0,256,512,768):指定缺省按钮是哪一个。第四组参数(0,4096):指定消息框的强制回应。每一组参数中只能取一个值。“按钮”参数值是由各组取定的一个数字相加而得到的一个整型值,也可以直接使用文字常数。
(3)标题:可选项。在消息框标题栏中显示的标题。如果省略该项,则将当前运行的应用程序名显示在标题栏中。
MsgBox函数的返回值是一整型数,数值与运行时单击的对话框中的命令按钮有关。MsgBox函数返回值及其含义如表3.10所示。表3.10MsgBox函数返回值及其含义在许多情况下,当不需要接受返回值时,可以用MsgBox语句的形式。此时,参数不需加圆括号。例如:利用MsgBox函数产生一个询问对话框,并根据用户的回答作出相应的操作。程序代码为
PrivateSubForm_Click()
DimnAsInteger
n=MsgBox(“确定退出本系统吗?”,33,“演示窗口”)
'33=1+32+0+0
Ifn=vbOKThenEnd
EndSub执行此程序后,结果如图3.5所示。图3.5MsgBox函数产生的消息框
3.程序实现
1)界面设计初始界面如图3.6所示。
2)属性设置属性设置如表3.11所示。设置属性后的界面如图3.7所示。图3.6初始界面表3.11属性设置图3.7设置属性后的界面
3)编写代码命令按钮Command1的Click事件代码为
PrivateSubCommand1_Click()
DimCAsSingle,FAsSingle
Dimstr1AsString
C=Val(Text1.Text)
F=9/5*C+32
str1="摄氏"+Str(C)+"度相当于华氏"+Str(F)+"度"
MsgBoxstr1,,"转换温度"
EndSub运行程序后,先在Text1中输入“36.5”,然后单击命令按钮Command1,则自动出现一个标题为“转换温度”的消息框。运行结果如图3.8所示。图3.8转换温度
4.思考
(1)如果将
str1="摄氏"+Str(C)+"度相当于华氏"+Str(F)+"度"①写成
str1="摄氏Str(C)度相当于华氏Str(F)度" ②则消息框中会输出什么?①式和②式中,哪句输出的是变量C和变量F的值?
(2)如果希望消息框满足如下要求:有“确定”和“取消”按钮,并且有消息图标,第一个按钮是缺省按钮,应用程序强制返回。则应该怎么修改MsgBoxstr1,,"转换温度"?3.3函数案例5函数
1.学习目标通过本案例的学习,掌握常用的数学函数、字符串函数、转换函数等。
2.相关知识
1)内部函数内部函数是由VB系统提供的,每个内部函数都有某个特定的功能,可以在任何程序中直接调用。
(1)数学函数。数学函数用于各种数学运算,其函数的返回值类型为数值型,如表3.12所示。表3.12数学函数及其返回值例如:Abs(-8)的值是8;Sqr(25)的值是5;Sgn(8)的值是1,Sgn(0)的值是0,Sgn(-8)的值是-1;Fix(3.57)的值是3,Fix(-3.57)的值是-3;Int(3.57)的值是3,Int(-3.57)的值是-4;Exp(3)相当于数学中的e3;Log(3)相当于数学中的Ln(3)。
(2)字符串函数。VisualBasic提供了丰富的字符串函数,如表3.13所示。
VisualBasic6.0采用的是UniCode处理方式,在这种处理机制下,英文字符和中文字符均被视为一个字符,其占用的存储空间都为两个字节。例如:Len("World")的值是5;Left("Hello",2)的值是“He”;Right("Something",3)的值是“ing”;Mid("write",2,3)的值是“rit”;String(3,"*")的值是“***”;InStr("abc","ab")的值是1,InStr(1,"pretty","re")的值是2;Ucase("World")的值是“WORLD”;Lcase("World")的值是“world”;Chr(65)的值是字符“A”;Str(65)的值是字符串“65”;Asc("A")的值是65。表3.13字符串函数及其返回值
(3)日期与时间函数。日期与时间函数及其返回值如表3.14所示。例如:Day(#9/28/2001#)的值是28;Month(#9/28/2001#)的值是9;Year(#9/28/2001#)的值是2001。Weekday(#9/28/2001#)的值是6,表示星期五。因为1表示星期日(默认),2表示星期一,3表示星期二,依此类推。表3.14日期与时间函数及其返回值
(4)转换函数。①数值转换成字符串函数。语法格式:Str(x)语句功能:将x的值转换为字符串。说明:当一数字转换成字符串时,总会在前头保留一空格来表示正负。如果x为正,则返回的字符串包含一前导空格,暗示有一正号。例如:使用Str函数将一个数字转换成字符串。当数字转换成字符串时,字符串的第一位一定是空格或是负号。
Dimstr2AsString
str2=Str(67) '返回值为“67”(相当于“+67”)
str2=Str(-35.82) ‘返回值为“-35.82”②字符串转换成数值函数。语法格式:Val(String)语句功能:将字符串表达式String转换成数值。转换时,此函数从字符串表达式左边开始将数字字符转换成相应的数值型,在它不能识别为数字的第一个字符上停止读入字符串。说明:转换时,函数将跳过并去掉空白、制表符和换行符
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025上半年重庆市属事业单位招(选)聘1395人高频重点提升(共500题)附带答案详解
- 2025上半年浙江杭州市第七人民医院招考聘用高层次、紧缺专业人才高频重点提升(共500题)附带答案详解
- 2025上半年江苏省南京市江北新区社会事业局招聘23人历年高频重点提升(共500题)附带答案详解
- 环保节能授权管理制度办法
- 图书馆清洁服务合同范本
- 污水处理技术服务招投标文件
- 建筑智能化招投标市场分析讲座
- 商业中心绿化景观养护承包合同
- 2024年度企业注册资本验资及审计服务合同协议书3篇
- 通信项目经理聘用合同模板
- 学校2024-2025年度工作计划
- (2024年)职业健康培训课件(PPT9)
- 公共经济学智慧树知到期末考试答案2024年
- 国家电网有限公司电网生产技术改造和设备大修项目验收管理规定
- 2023-2024学年宜昌市重点中学化学九年级上册期末达标检测模拟试题(含解析)
- 《零知识证明》课件
- 纯化水注射用水系统的验证课件
- 病房病人烫伤预防
- 物业公司员工管理规章制度范本
- 倍捻机的工艺计算
- 江苏省南通市海安市2023-2024学年六年级上学期期末语文试题
评论
0/150
提交评论