《c语言程序设计课件第03章.ppt》由会员分享,可在线阅读,更多相关《c语言程序设计课件第03章.ppt(42页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第3章 Visual Basic语言基础本章要点:3.1 数据类型3.1.1基本数据类型基本数据类型1.数值型数据(数值型数据(Numeric)(1)整型数。)整型数。整数(整数(Integer):以):以2个字节(个字节(16位)位)长整数(长整数(Long):):4字节(字节(32位)表示位)表示(2)浮点数。它由)浮点数。它由3部分组成:符号、指部分组成:符号、指数和尾数。数和尾数。例如,364&。(3)字节型()字节型(Byte)。表示无符号的整型,)。表示无符号的整型,范围为范围为0255,主要用于存储二进制数。,主要用于存储二进制数。(4)货币型()货币型(Currency)。数据
2、的小数位)。数据的小数位固定为固定为4位,专门用来表示货币数量。它存储位,专门用来表示货币数量。它存储时要占用时要占用8个字节。其表示形式是在数字后面个字节。其表示形式是在数字后面加加符号。符号。3.1 数据类型例如,213.342.字符型(字符型(String)数据)数据字符串是一个字符序列,在字符串是一个字符序列,在VisualBasic中字符中字符串是放在双引号内的若干个字符。串是放在双引号内的若干个字符。下面的代码定义了下面的代码定义了3个字符型变量:个字符型变量:DimUserNameAsStringDimTeacherNameAsStringDimSchoolNameAsStrin
3、g3.1 数据类型3.日期型(日期型(Date)数据)数据4.逻辑型(逻辑型(Boolean)数据)数据取值只有取值只有“True”和和“False”2种。种。3.1 数据类型#07/13/2006#或或#07-13-2006#表示表示2006年年7月月13日日#January15,2006#表示表示2006年年1月月15日日5.变体型(变体型(Variant)数据)数据变体型数据可以表示任何类型的数据,也就是说变体型数据可以表示任何类型的数据,也就是说这种变体型数据的类型是可变的。这种变体型数据的类型是可变的。6.对象型(对象型(Object)数据)数据可用来表示应用程序中的对象,可以用可用
4、来表示应用程序中的对象,可以用Set语句语句来指定一个被声明为来指定一个被声明为Object的变量,去引用应用的变量,去引用应用程序中的任何实际对象,例如:程序中的任何实际对象,例如:3.1 数据类型DimTempAsObjectSetTemp=Form13.1.2用户自定义类型用户自定义类型使用使用“Type”语句来定义。方法是:语句来定义。方法是:Type自定义类型名自定义类型名元素名元素名As数据类型数据类型元素名元素名As数据类型数据类型元素名元素名As数据类型数据类型EndType3.1 数据类型【例例3-1】定义一个有关学生地址的自定义类定义一个有关学生地址的自定义类型。型。Typ
5、eAddressStreetAsStringZipCodeAsStringPhoneAsStringEndType3.1 数据类型这个地址数据这个地址数据里包括里包括3个属个属性:即街区、性:即街区、邮政编码和电邮政编码和电话。话。3.2 变量和常量3.2.1变量变量变量的名字要满足以下规则:变量的名字要满足以下规则:变量名只能由字母、汉字、数字和下划线组成,变量名只能由字母、汉字、数字和下划线组成,且必须以字母或汉字开头;且必须以字母或汉字开头;变量名的长度不得超过变量名的长度不得超过255个字符;个字符;命名变量名尽量做到命名变量名尽量做到“见名知义见名知义”,且在作用域,且在作用域内必须
6、是唯一的;内必须是唯一的;在同一个范围内必须是唯一的。范围就是可以引在同一个范围内必须是唯一的。范围就是可以引用变量的变化域,如一个过程、一个窗体等;用变量的变化域,如一个过程、一个窗体等;变量的名字要满足以下规则:变量的名字要满足以下规则:不能将不能将VisualBasic的保留字作为变量名使用;的保留字作为变量名使用;字符之间必须并排书写,不能出现上下标;字符之间必须并排书写,不能出现上下标;变量名中间不能有空格或(英文)句号;变量名中间不能有空格或(英文)句号;可以用表示变量类型的字符(如可以用表示变量类型的字符(如%、#、!、&)作为变量名的最后一个字符;)作为变量名的最后一个字符;在
7、变量名中,大小写字母是等价的,例如在同一在变量名中,大小写字母是等价的,例如在同一个程序中,变量名个程序中,变量名HELLO、Hello、hello表示相表示相同的变量。同的变量。3.2 变量和常量1.变量的声明变量的声明(1)用类型说明符来标识变量类型)用类型说明符来标识变量类型把类型说明符放在变量名的尾部,可以标识不同把类型说明符放在变量名的尾部,可以标识不同的变量类型。其中的变量类型。其中$表示字符串型,表示字符串型,%表示整型,表示整型,&表示长整型,表示长整型,!表示单精度型,表示单精度型,#表示双精度型,表示双精度型,表示货币型。表示货币型。3.2 变量和常量例如:abc%,Hel
8、lo!,OK01&(2)在定义变量时指定变量类型)在定义变量时指定变量类型用用Dim语句来声明变量语句来声明变量Dim语句声明变量格式如下:语句声明变量格式如下:Dim变量名变量名(下标)(下标)As数据类型数据类型用用Static语句声明变量语句声明变量Static用于在过程中定义静态变量及数组,这种用于在过程中定义静态变量及数组,这种变量类型每当过程被调用时,变量值会被保留。变量类型每当过程被调用时,变量值会被保留。用用Static语句声明变量的格式如下:语句声明变量的格式如下:Static变量名变量名(下标)(下标)As数据类型数据类型3.2 变量和常量用用Public语句声明变量语句声
9、明变量Public语句声明变量格式如下:语句声明变量格式如下:Public变量名变量名(下标)(下标)As数据类型数据类型用用Private语句声明变量语句声明变量Private用来在模块的声明部分声明模块级变量,因此,用来在模块的声明部分声明模块级变量,因此,用它声明的变量被称为模块级局部变量。这类变量只用它声明的变量被称为模块级局部变量。这类变量只能在声明它的模块中使用。能在声明它的模块中使用。隐式声明隐式声明VB中允许变量不经过声明就直接使用,这种称为隐式声中允许变量不经过声明就直接使用,这种称为隐式声明,所有隐式声明的变量都是变体型。明,所有隐式声明的变量都是变体型。3.2 变量和常量
10、2.命名建议命名建议(1)使用大小写混合的名称,这样做的好处是每)使用大小写混合的名称,这样做的好处是每次用户写好一行代码后,就可以知道是否打错了次用户写好一行代码后,就可以知道是否打错了名称。名称。(2)在变量名称里包含作用范围前缀。比如有的)在变量名称里包含作用范围前缀。比如有的人习惯用所有开头为人习惯用所有开头为A_表示一个全程变量,表示一个全程变量,M_表示在模块中使用的变量,而不加前缀的是局部表示在模块中使用的变量,而不加前缀的是局部变量。变量。(3)在变量名称里包含变量类型后缀。特别是针)在变量名称里包含变量类型后缀。特别是针对全程变量,带有指定变量类型的后缀将节省大对全程变量,带
11、有指定变量类型的后缀将节省大量的调试时间。量的调试时间。3.2 变量和常量3.2.2常量常量1.直接常量直接常量直接常量指在程序中直接给出值的数据,如:直接常量指在程序中直接给出值的数据,如:123、123.45、1.234E2、123D3分别表示整型、分别表示整型、单精度浮点型(小数形式)、单精度浮点型(指单精度浮点型(小数形式)、单精度浮点型(指数形式)、双精度浮点型。数形式)、双精度浮点型。八进制常数:在数值前加八进制常数:在数值前加&O,如,如&O345。十六进制常数:在数值前加十六进制常数:在数值前加&H,如,如&H345。3.2 变量和常量2.用户声明的符号常量用户声明的符号常量在
12、应用程序中,用户可根据需要创建自己的符号常在应用程序中,用户可根据需要创建自己的符号常数。用户定义常数用数。用户定义常数用Const来声明,语句格式为来声明,语句格式为Const符号常量名符号常量名As类型类型=常数表达式常数表达式,或或:Const符号常量名符号常量名类型符号类型符号=常数表达式常数表达式3.2 变量和常量例如:ConstPIAsDouble=3.1415926535等价于ConstPI#=3.14159265353.系统提供的常量系统提供的常量除了直接常量和用户定义的常量外,在除了直接常量和用户定义的常量外,在VB中,中,还提供了系统定义的常量。系统定义的常量位于还提供了系
13、统定义的常量。系统定义的常量位于对象库中,在对象浏览器中的对象库中,在对象浏览器中的VisualBasic(VB)和)和VisualBasicforAplication(VBA)等对象库中列出了)等对象库中列出了VB的常量。的常量。这些常量可以与应用程序的对象、方法、属性一这些常量可以与应用程序的对象、方法、属性一起使用。起使用。3.2 变量和常量单击放大3.2 变量和常量3.3 运算符和表达式3.3.1算术运算符算术运算符运算符运算符含义含义示例示例结果结果指数运算,求某次方指数运算,求某次方329-负负号号-3-3*乘乘3*3*327/除除10/33.33333333333333整除整除1
14、033Mod取模取模10Mod31+加加10+313-减减3-10-73.3.2逻辑运算符逻辑运算符3.3 运算符和表达式运算符运算符含含义义说明说明示例示例结果结果Not取取反反当当操操作作数数为为假假时时,结结果果为为真真NotFTNotTFAnd与与两两个个操操作作数数均均为为真真时时,结结果才果才为为真真TAndTTFAndFFTAndFFFAndTFOr或或两两个个操操作作数数中中有有一一个个为为真真时时,结结果果为为真真TOrTTFOrFFTOrFTFOrTTXor异异或或两两个个操操作作数数不不相相同同,结结果果才才为为真,否真,否则为则为假假TXorFTTXorTF3.3.3关
15、系运算符关系运算符3.3 运算符和表达式运算符运算符含义含义示例示例结果结果=等于等于CDEFG=CDRFalse大于大于CDEFGABRTrue=大于等于大于等于ab=我我们们False小于小于266False=小于等于小于等于26=6True不等于不等于cdeCDETrueLike字符串匹配字符串匹配ABCDEFGLike*CD*TrueIs对对象引用比象引用比较较3.3.4运算符的优先级运算符的优先级在一个表达式中进行多个运算时,每一部在一个表达式中进行多个运算时,每一部分都会按预先确定的顺序进行计算求解,分都会按预先确定的顺序进行计算求解,这个顺序被称为运算符优先级。括号可改这个顺序被
16、称为运算符优先级。括号可改变优先级的顺序,强制优先处理表达式的变优先级的顺序,强制优先处理表达式的某部分。括号内的操作总是比括号外的操某部分。括号内的操作总是比括号外的操作先被执行。但是在括号内,仍保持正常作先被执行。但是在括号内,仍保持正常的运算符优先级。的运算符优先级。3.3 运算符和表达式当表达式有多种运算符时,先处理算术运算当表达式有多种运算符时,先处理算术运算符,接着处理关系运算符,然后再处理逻辑符,接着处理关系运算符,然后再处理逻辑运算符。所有关系运算符有相同的优先级,运算符。所有关系运算符有相同的优先级,即按它们出现的顺序从左到右进行处理。即按它们出现的顺序从左到右进行处理。当乘
17、法和除法同时出现在表达式中时,按照当乘法和除法同时出现在表达式中时,按照从左到右出现的顺序处理每个运算符。同样,从左到右出现的顺序处理每个运算符。同样,当加法和减法同时出现在表达式中时,也按当加法和减法同时出现在表达式中时,也按照从左到右出现的顺序处理每个运算符。照从左到右出现的顺序处理每个运算符。3.3 运算符和表达式3.3.5表达式表达式(1)表达式的书写规则)表达式的书写规则乘号不能省略。乘号不能省略。括号必须成对出现,均使用圆括号,可以嵌套,但必括号必须成对出现,均使用圆括号,可以嵌套,但必须配对。须配对。表达式从左到右顺序书写。表达式从左到右顺序书写。3.3 运算符和表达式例如:sq
18、r(6*m+n)-a)/(m*n)3(2)不同数据类型的转换)不同数据类型的转换操作数的数据类型应该符合要求,不同的数据应操作数的数据类型应该符合要求,不同的数据应该转换成同一类型。在算术运算中,如果操作数该转换成同一类型。在算术运算中,如果操作数的数据精度不同,的数据精度不同,VB规定运算结果采用精度较高规定运算结果采用精度较高的数据类型。的数据类型。3.3 运算符和表达式注意:注意:对于存在多种运算符的表达式,可增加圆括号改变优先级或使表达式更清晰。3.4 常用内部函数3.4.1数学函数数学函数函数名函数名功能功能示例示例结果结果Sqr(Num)求平方根求平方根Sqr(16)4Log(Nu
19、m)求自然求自然对对数,数,Num0Log(30)3.4Exp(Num)求以求以e为为底的底的幂值幂值,即求,即求eNumExp(4)54.598Abs(Num)求求Num的的绝对值绝对值Abs(-4.5)4.5Hex(Num)求求Num的十六的十六进进制数,返回的是字符型制数,返回的是字符型值值Hex(30)1EOct(Num)求求Num的八的八进进制数,返回的是字符型制数,返回的是字符型值值Oct(20)24Sgn(Num)求求Num的的符符号号,当当Num0,返返回回1;Num=0,返返回回0;Num0,返回返回-1Sgn(15)1函数名函数名功能功能示例示例结果结果Rnd(Num)产产
20、生生一一个个在在(0,1)区区间间均均匀匀分分布布的的随随机机数数,每每次次的的值值都都不不同同;若若Num=0,则则给给出出的的是是上上一一次次本本函函数数产产生生的的随随机数机数Rnd(Num)01之之间间的数的数Sin(Num)求求Num的正弦的正弦值值,Num的的单单位是弧度位是弧度Sin(0)0Cos(Num)求求Num的余弦的余弦值值,Num的的单单位是弧度位是弧度Cos(0)1Tan(Num)求求Num的正切的正切值值,Num的的单单位是弧度位是弧度Tan(1)1.56Atn(Num)求求Num的的反反正正切切值值,Num的的单单位位是是弧弧度,函数返回弧度度,函数返回弧度值值A
21、tn(1)0.793.4 常用内部函数3.4.2字符串函数字符串函数3.4 常用内部函数函数名示例结果Len(String)Len(你好MN)4LenB(String)LenB(你好MN)8Left(String,n)Left(MneijgSd,3)MneRight(String,n)Right(MneijgSd,3)gSdMid(String,n1,n2)Mid(MneijgSd,2,3)neiUcase(String)Ucase(MneijgSd)MNEIJGSD续表函数名示例结果Lcase(String)Lcase(MneijgSd)mneijgsdLtrim(String)Ltrim(
22、ABC)ABCRtrim(String)RTrim(ABC)ABCTrim(String)Trim(ABC)ABCInstr(String,字符,M)Instr(QWER,E)3String(n,字符)String(3,cdef)cccSpace(n)Space(3)Replace(C,C1,C2,N1,N2)Replace(ABCASAA,A,12,2,2)BC12SStrReverse(C)StrReverse(abcd)dcba3.4 常用内部函数3.4.3日期与时间函数日期与时间函数3.4 常用内部函数函数名示例结果Date()Date()Time()Time()10:15:37Now
23、Now-9-610:16:02Month(C)Month()9Year(C)Year()Day(C)Day()6MonthName(N)MonthName(9)九月WeekDay()WeekDay()4WeekDayName(N)WeekDayName(4)星期三3.4.4格式输出函数格式输出函数格式输出函数格式输出函数Format可以用于制定数值型、日期可以用于制定数值型、日期或时间型和字符串表达式的输出格式。它的语法或时间型和字符串表达式的输出格式。它的语法为:为:x=Format(expression,fmt)3.4 常用内部函数Format(3,0.000)输出3.000Format(
24、2345,$#,#0)输出$2,345Format(5.1,0%)输出510%3.4.5类型转换函数类型转换函数3.4 常用内部函数函数名函数名功能功能示例示例结果结果Chr(x)返回以返回以x为为ASCII码码的字符的字符Chr(97)aAsc(x)给给出字符出字符x的的ASCII码值码值,十,十进进制数制数Asc(A)65Cint(x)将数将数值值型数据型数据x的小数部分四舍五入取整的小数部分四舍五入取整Cint(6.5)7Str(x)将数将数值值数据数据x转换转换成字符串成字符串Str(678.4)678.4Val(x)将字符串将字符串x中的数字中的数字转换转换成数成数值值Val(45m
25、n)45Int(x)取小于等于取小于等于x的最大整数的最大整数Int(-8.4)-9Int(8.4)8Fix(x)将数将数值值型数据型数据x的小数部分舍去的小数部分舍去Fix(-8.5)-8函数名功能示例结果CByte(x)将0255之间的数值转换成字节型CByte(202)202CDate(x)将有效的日期字符串转换成日期CDate(#,9,23#)CCur(x)将数值数据x转换成货币型CCur(97.5)97.5Round(x,N)在保留N位小数的情况下四舍五入取整Round(8.86,1)8.9CStr(x)将x转换成字符串型CStr(34)34CVar(x)将数值型数据x转换成变体型C
26、Var(34)+B23BCSng(x)将数值数据x转换成单精度型CSng(15.5994883)15.59949CDbl(x)将数值数据x转换成双精度型CDbl(15.5994883)15.59948833.4 常用内部函数3.4.6InputBox函数与函数与MsgBox函数函数(1)InputBox函数函数InputBox函数的语法格式如下:函数的语法格式如下:x=InputBox(prompt,title,default,xpos,ypos,helpfile,context)3.4 常用内部函数prompt必需的。作为对话框消息出现的字符串表达式。prompt的最大长度大约是1024个字
27、符,由所用字符的宽度决定。如果prompt包含多个行,则可在各行之间用回车符Chr(13)、换行符Chr(10)或回车换行符的组合Chr(13)&Chr(10)来分隔。title可选的。显示对话框标题栏中的字符串表达式。如果省略title,则把应用程序名放入标题栏中。default可选的。显示文本框中的字符串表达式,在没有其他输入时作为缺省值。如果省略default,则文本框为空。xpos可选的。数值表达式,成对出现,指定对话框的左边与屏幕左边的水平距离。如果省略xpos,则对话框会在水平方向居中。ypos可选的。数值表达式,成对出现,指定对话框的上边与屏幕上边的距离。如果省略ypos,则对话
28、框被放置在屏幕垂直方向距下边大约三分之一的位置。helpfile可选的。字符串表达式,识别帮助文件,用该文件为对话框提供上下文相关的帮助。如果已提供helpfile,则也必须提供context。context可选的。数值表达式,由帮助文件的作者指定给某个帮助主题的帮助上下文编号。如果已提供context,则也必须要提供helpfile。【例例3-2】设计一程序,由用户输入圆的半设计一程序,由用户输入圆的半径,计算并输出圆的周长和面积。径,计算并输出圆的周长和面积。界面设计界面设计3.4 常用内部函数编写事件过程编写事件过程添加添加“计算计算”按钮的单击事件如下:按钮的单击事件如下:Privat
29、eSubcmdJs_Click()Dimr!,l!,s!r=InputBox(请输入圆的半径:请输入圆的半径:)l=2*3.14159*rs=3.14159*r2txtBj.Text=rtxtZc.Text=l txtMj.Text=sEndSub3.4 常用内部函数添加添加“退出退出”按钮的单击事件如下:按钮的单击事件如下:PrivateSubcmdTc_Click()EndEndSub程序运行程序运行3.4 常用内部函数(2)MsgBox函数函数MsgBox函数的语法格式如下:函数的语法格式如下:Action=MsgBox(prompt,buttons,title,helpfile,con
30、text)MsgBox函数的语法有以下参数:函数的语法有以下参数:prompt作为消息显示在对话框中的字符串表达作为消息显示在对话框中的字符串表达式。式。prompt的最大长度大约是的最大长度大约是1024个字符,这个字符,这取决于所使用的字符的宽度。如果取决于所使用的字符的宽度。如果prompt中包中包含多个行,则可在各行之间用回车符含多个行,则可在各行之间用回车符(Chr(13)、换行符换行符(Chr(10)或回车换行符的组合或回车换行符的组合(Chr(13)&Chr(10)分隔各行。分隔各行。3.4 常用内部函数buttons数值表达式,是表示指定显示按钮的数值表达式,是表示指定显示按钮
31、的数目和类型、使用的图标样式,默认按钮的数目和类型、使用的图标样式,默认按钮的标识以及消息框样式的数值的总和。如果省标识以及消息框样式的数值的总和。如果省略,则略,则buttons的默认值为的默认值为0。title显示在对话框标题栏中的字符串表达式。显示在对话框标题栏中的字符串表达式。如果省略如果省略title,则将应用程序的名称显示在,则将应用程序的名称显示在标题栏中。标题栏中。3.4 常用内部函数helpfile字符串表达式,用于标识为对话框提字符串表达式,用于标识为对话框提供上下文相关帮助的帮助文件。如果已提供供上下文相关帮助的帮助文件。如果已提供helpfile,则必须提供,则必须提供context。context数值表达式,用于标识由帮助文件的数值表达式,用于标识由帮助文件的作者指定给某个帮助主题的上下文编号。如作者指定给某个帮助主题的上下文编号。如果已提供果已提供context,则必须提供,则必须提供helpfile。3.4 常用内部函数本章内容结束,谢谢观看