您好,欢迎访问三七文档
XuzhouMedicalCollegeInstituteofMedicalInformation第3章VisualBasic程序设计基础本章学习目标要求VisualBasic系统中的数据类型。常量、变量的声明。常用的系统内部函数。运算符和表达式。利用Print方法实现数据输出。与Print方法有关的函数、方法及格式输出。利用InputBox函数实现数据输入。MsgBox函数的应用。字体的设定。3.1工作场景导入【工作场景】数学上,一元二次方程的基本形式为:02cbxax如果042acb,方程有两个实根;如果042acb,方程有一个根;如果042acb,方程没有实根。3.1工作场景导入【引导问题】(1)如何通过设置属性值来建立如图所示的界面?(2)如何在程序设计中声明变量?(3)如何在程序设计中判断方程有没有解,怎样写判断表达式?(4)如何利用程序计算方程的解?3.2数据类型在不同的应用程序中,可能使用到不同的数据类型,不同的数据类型体现了数据结构的不同特点。VisualBasic为用户提供了多种数据类型,并允许用户定义自己所需的类型。3.2.1基本数据类型基本数据类型主要有字符串数据和数值型数据,此外还提供了字节、货币、对象、日期、布尔和变体数据类型。1.字符串型字符串(String)也称字符串型数据,它是由标准ASCII字符和扩展ASCII字符组成的。字符型数据必须用英文半角的双引号扩起来。例如:你好!sheisagoodstudent.13579VisualBasic中的字符串包括如下两种:变长字符串和定长字符串3.2.1基本数据类型2.数值型VisualBasic的数值型数据分为整型数和浮点型数两大类。1)整型数整型数包括两种,整数(Integer):整数以两个字节(16位)的二进制码表示和参与运算,其取值范围为-32768~+32767;长整型(Long)是以四个字节(32位)的二进制码表示和参与运算3.2.1基本数据类型2)浮点型数浮点数也分为两种即单精度数(Single)和双精度数(Double)。它由3部分组成:符号、指数及尾数。在用科学计数法表示时,单精度数和双精度数的指数分别用E和D来表示。例如:123.45E+3,表示单精度数123.45乘以10的3次幂;123.4567D+3,表示双精度数123.4567乘以10的3次幂。其中123.45或123.4567是尾数部分,而E+3、D+3则是指数部分。3.2.1基本数据类型单精度数和双精度数的区别是:(1)单精度数(Single):1个单精度数占4个字节内存,有效数字精确到7位十进制数。(2)双精度数(Double):1个双精度数占8个字节内存,有效数字精确到15位或16位十进制数3.2.1基本数据类型3.货币型(Currency)货币型数据是专门用来表示货币数量的数据类型。其特点是小数点后的有效数位是确定的,固定为4位。计算的结果将小数点后4位以下的数字舍去。该数据类型的数据占用8个字节的内存4.字节型(Byte)字节实际上是一种数值类型,以1个字节的无符号二进制数存储,其取值范围为0~255。3.2.1基本数据类型5.对象型(Object)对象型数据用来表示图形、OLE对象或其它对象,占用4个字节内存。6.布尔型(Boolean)布尔型数据,又称“逻辑型”数据,是经常用到的一种数据类型,占用两个字节的内存。其取值仅有两种,即True(真)、False(假)。把数值型数据转换为布尔型数据时,0会转换为False,其它非0值转换为True。反之,当把逻辑型数据转换为数值型时,False转换为0,True转换为-13.2.1基本数据类型7.日期型(Date)日期型数据表示由年、月、日组成的日期信息或由时、分、秒组成的时间信息。日期型数据占用8个字节内存。日期型数据的书写格式为:mm/dd/yyyy或mm-dd-yyyy,或是可以辨认的文本日期日期数据必须用#号将数据括起来。例如:#12/26/2004#、#10:58:30#等都是合法的日期型数据。8.变体(Variant)可以表示任何值,包括数值、字符串、日期时间等。3.2.2用户定义的数据类型程序设计者可以使用Type语句声明自定义的数据类型。自定义的数据类型是由已存在的数据类型组合而成。其具体的定义格式为:Type数据类型名成员名1As类型名成员名2As类型名...成员名nAs类型名EndType例如:TypeStudentNumAsLongNameAsString*10SexAsString*5ScoreAsSingleEndType3.2.2用户定义的数据类型TypeStudentNumAsLongNameAsString*10SexAsString*5ScoreAsSingleEndType8/28/2019143.2.2用户定义的数据类型下面的事件过程使用了自定义类型Student声明了一个变量、并给它的每个成员赋值。PrivateSubCommand1_Click()DimintavsAsIntegerDimfirstAsStudentfirst.Num=12738434first.Name=张三first.Sex=男first.Score=90.4EndSub3.2.3枚举类型枚举类型主要用于取值情况只有若干种并且数值之间关系相对固定的数据。枚举类型数据用Enum语句开头,其定义的格式为:[Public|Private]Enum类型名称成员名1[=常数表达式]成员名2[=常数表达式]...成员名n[=常数表达式]EndEnum例如:PublicEnumWeekDaysSundayMondayTuesdayWednesdayThursdayFridaySaturdayEndEnum这里定义了一个枚举类型WeekDays,它包括7个成员,都省略了“常数表达式”,因此常数Sunday的值为0,常数Monday的值为1,等等。PrivateSubForm_Click()DimMydayAsWeekDaysForMyday=SundayToSaturdayPrintMydayNextMydayEndSub以上的事件的含义是:当单击窗口,屏幕上打印出0、1、2、3...。3.3常量和变量在程序中,不同类型的数据既可以以常量形式出现,也可以以变量形式出现。常量在程序执行过程中值是不变的,相反变量的值是可变的。3.3.1常量常量(常数)是指在程序运行过程中其值保持不变的数据,包括直接常量和符号常量。1.直接常量直接常量包括数值常量、字符串常量、日期常量和布尔常量。1)数值常量。数值常量包括以下4种:(1)整型数(2)长整型数(3)货币型常量(4)浮点数3.3.1常量2)字符串常量字符串常量由任何ASCII字符组成,但不包括双引号和回车符。表示字符串常量时,必须用双引号括起来。当用户需要特别指明一个常量属于哪种类型时,可以在常数的后面加上类型说明符。%整型。&长整型。!单精度。#双精度。@货币型。$字符串。例如:32.76#为双精度型,而32.76@为货币型。3.3.1常量3)日期常量日期常量是由一对#号括起来的字符串。例如#12/18/2004#。4)布尔常量布尔常量也称为逻辑常量,它只有True(真)和False(假)两个值。3.3.1常量符号常量符号常量是用符号来表示的常量。它分为系统常量和用户自定义常量两种。(1)系统常量是VisualBasic系统内部定义和使用的常量。例如:VbRed等。(2)用户自定义常量用Const语句可以给常量分配名字、值和类型等。格式如下:[Public|Private]Const常量名[As数据类型]=表达式其中Const前面的关键字表示常量是全局或是私有的,在缺省情况下常数是私有的;Constpi=3.1415926PrivateConstCityName=BeijingPublicConstMummaxAsInteger=23453.3.2变量所谓的变量也可以指一个有名称的内存位置。变量包括变量名、类型以及存储类别等。1.变量的命名规则变量是一个名字,给变量命名时应遵循以下规则。(1)由字母开头,由字母、数字、下划线组成。(2)中间不能有空格,最后一个字符可以是类型说明符。(3)长度不超过255个字符。(4)不能使用系统保留字或类型说明符。(5)不区分字母大小写,即ABC与abc同名,视为同一个变量名。以下是一些非法的标识符的例子:4yz'x–z'xy.t'If'Print$'不允许关键字不允许出现减号不允许出现小数点数字开头不允许关键字3.3.2变量2.变量的类型与定义定义变量时需要指定其类型。Declare变量名As类型这里的Declare可以是Dim、Static、Private、Public(1)Dim用于声明局部或模块级变量,这种变量只能在声明它的过程或模块中使用,不能跨过程或模块使用,并且在过程真正执行时才分配内存空间,该过程执行完毕,释放空间,变量值不会被保存。这种情况所声名的变量多用于过程、标准模块、窗体模块定义变量或数组等。例如:Dimint1AsIntegerDimstr1AsStringDimstr2AsString*10也可以用一个Dim定义多个变量,例如:Dimstr1AsString,totalAsDouble‘定义str1为字符串变量,total为双精度变量Dimint3,int4AsInteger‘定义int3为变体类型,int4为整型变量3.3.2变量(2)Static声明静态局部变量,只在声明它的过程中使用。所谓静态变量,是指当过程运行结束后,其值继续保留的变量。其特点是:程序运行期间均有效,并且过程执行结束后,只要程序没有结束,该变量的值仍然有效,该变量所占空间不被释放。静态变量主要用于需要用它作为累计情况,或每次的数值需要保留的情况。例如:Subtest()StaticnumAsIntegernum=num+1EndSub3.3.2变量(3)Private用于在窗体模块或标准模块中声明模块级变量,不能声明局部变量,不能跨模块使用。(书上有误)(4)Public用于在窗体模块或标准模块中声明全局变量,它适合于该模块以及其它模块内的所有过程,即在整个程序内都有效.一般在标准模块中定义的全局变量或数组。如果在窗体模块中声明全局变量,在其他模块中使用该变量时,变量名前加定义它的窗体模块的名称。例如在Form1窗体的通用声明部分定义了全局变量APublicAasinteger在Form2中使用全局变量AB=Form1.A+8变量作用域区别作用范围作用范围定义方法定义位置局部变量当前过程Dim|Static在过程内窗体/模块变量当前窗体或模块中的所有过程Private|Dim在窗体或模块的声明部分全局变量工程内的所有过程Public在窗体或模块的声明部分3.3.3变体类型变量一个变量未加定义而直接使用,VisualBasic即把它看成变体类型的变量。变体类型的变量不是无类型的变量,而是类型可以自由转换的变量。变体变量的类型随着所赋值的改变而变化,并能自动转化为相应的类型DimVar1AsVariant或者DimVar1Var1=刘玲Varl=100变量类型初值变量类型初值数值型0字符型空字符串布尔型False对象型nothing变体型空1、定义一个变量后,系统自动为该变量赋予一个初值:几点说明:例如:DimxAsInteger,yAsBoolean那么x的初值为0,y的初值为False2、变量声明时,可以用类型声明符来代替“As数据类型”,类型声明符与变量名之间不能有空格。例如:Dima%,b&,c!,d#,e@,s$等价于语句:DimaAsInteger,bAsLong,cAs
本文标题:第3章程序设计基础
链接地址:https://www.777doc.com/doc-599401 .html