VB-第4章-VB语言基础.ppt

上传人:小飞机 文档编号:6522587 上传时间:2023-11-08 格式:PPT 页数:93 大小:3.06MB
返回 下载 相关 举报
VB-第4章-VB语言基础.ppt_第1页
第1页 / 共93页
VB-第4章-VB语言基础.ppt_第2页
第2页 / 共93页
VB-第4章-VB语言基础.ppt_第3页
第3页 / 共93页
VB-第4章-VB语言基础.ppt_第4页
第4页 / 共93页
VB-第4章-VB语言基础.ppt_第5页
第5页 / 共93页
点击查看更多>>
资源描述

《VB-第4章-VB语言基础.ppt》由会员分享,可在线阅读,更多相关《VB-第4章-VB语言基础.ppt(93页珍藏版)》请在三一办公上搜索。

1、勤奋,第四章 数据、表达式、简单程序设计,内 容,勤奋,第一节 程序组织、语言规范,4.1 VB程序代码的组织方式,一个VB程序由两部分组成:窗体界面设计程序代码设计,这两部分的关系:程序代码的设计为了将窗体界面上的控件联系在一起。,过程:具有特定书写格式,包含若干可被作为一个整体执行的代码行的一个代码组.,过程:,事件过程:用来相应由用户或系统引发的各种事件的代码行。通用过程:可被共享的代码构成的过程,简单的说就是:共有的和特有的,模块:不同类型的过程代码组织到一起的结构,窗体模块窗体的事件过程窗体和控件的属性及说明存储在窗体文件frm中,模块,标准模块可被多个窗体共享的代码存储在扩展名为b

2、as的文件中创建方法:菜单,类模块(略),VB工程文件.vbp,窗体模块.frm,标准模块.bas,事件过程,通用过程,通用过程,1、语句,语句是构成VB程序的最基本成分一句一行一行多句,行间加“:”,一句多行在行尾加续行标志“_”。Form1.Print 学好VB _&要多学多练 Form1.Hide:Form2.Show,2、书写规范:不区分大小写,保留字第一个字母自动变为大写注释的方法:Rem 或,保留字:一个特定的单词,有特殊的含义,有特定的用法,勤奋,第二节 数据类型,VB的数据类型,数据的分类:数值型和非数值型编程的过程:处理数据的过程,基本数据类型:数值数据类型:包括整型、长整型

3、、单精度浮点型、双精度浮点型和货币型 字符数据类型:包括定长字符串和不定长字符串 其它数据类型:包括字节型、布尔型、日期型和对象类型 变体数据类型,具体数据类型分析,几点说明:,1)未声明时:VB中对没有声明的变量其缺省的数据类型是变体型,可以用来存储各种数据,但所占用的内存比其它类型都多(=16byte)。,2)合理选择为提高运行效率(整型效率较高),或达到一定的运算精确度(浮点型精度较高,但运行较慢),应合理的定义数据类型。,3)理解数值的范围,计算机的空间问题:任何一个量,都有一个大的上限,和小的下限,出了这个范围(比上限还大,比下限还小),就会称为溢出。比如:整型 2个字节 32768

4、32767,4)字符和boolean型,字符型可以包括所有的西文字符和汉字,字符必须用双引号括 起来,如:abc123boolean型数据只有True 和False两个值转换成整型时:True=-1,False=0,将其它类型转换成boolean时:非0数转换为True,0转换为False。,boolean,数值型,常量 在程序运行中不变的,(1)数值型常量 整型数:10、&O10、&H10 注意整型数和长整型数的分界线32767 长整型数:1345678 浮点数:小数形式:1.25,3.1415926535 指数形式:1.25E+5、1.25D+5,(2)字符型常量(065535)“VB程序

5、设计”、“2.5”、“”(3)逻辑型常量(2 byte)True、False,(4)日期/时间型常量(8 byte)mm/dd/yyyy#3/20/2007#3/30/2007 20:30:18am#January 1,1993#,注意:为了与字符串型常量相区分,所以用将日期常量括起来,(5)符号常量 常量在程序中也可以用符号表示 目的是为了 代表常量的符号称为“常量名”常量名的命名规则是:1、不超过255个字符 2、只能由字母、数字和下划线组成并且首字符必须是字母的字符串 3、常量中字母大小通杀(不区分大小写)。,牛刀小试-等级考试真题再现,语句Print“5*20”输出的结果是(),A)”

6、5*20”B)出现错误信息C)5*20D)100,2001年秋季题目,4.3.3 变量,变量名的命名规则首字符必须是字母长度不超过255个字符在作用域内必须唯一作为变量名的字符串内不得包括点号和用于类型说明的字符:%&!不得使用系统保留字(关键字、公共函数名、窗体与控件对象的属性名、方法名等),牛刀小试-等级考试真题再现,下列不正确的变量名是(),A)Form B)CommandC)TextD)Arry,2001年秋季题目,牛刀小试-课后习题,下列哪些()是合法的变量名?多选,A)blnFrag B)_a5bC)lngNumD)Area_TriangleE)User&InputF)5Name,

7、2001年秋季题目,变量的作用域,VB应用程序中进行数据处理离不开变量。变量根据所处的位置或被定义不同,其作用范围也不同。局部变量、模块级变量和全局变量。过程 窗体或模块 工程,变量的说明语句为:Dim As,PublicPrivateStatic,局部变量,在一个过程内部用Dim或Static声明的变量称为局部变量。这种变量只能在本过程中有效。在一个窗体中,不同过程中定义的局部变量可以同名。,比如:金融1班 李明 金融2班 李明其中“金融1班”“金融2班”可以当作两个不同的过程,而同名“李明”认为是不同过程中的局部变量,窗体/模块级变量,窗体/模块级变量可以在一个窗体的不同过程中使用 在窗体

8、模块的声明部分中声明该变量,如果用Private或Dim来声明,则该变量只能在本窗体(或本模块)中有效,在其他窗体或模块中不能引用该变量。,全局变量,全局变量可以被应用程序中任何一个窗体和模块直接访问。使用public声明,作用域总结,牛刀小试-等级考试真题再现,窗体的Name属性为Frm1,在窗体模块通用声明处和过程Sub1中分别用Public K As Integer,Dim K As Integer声明了两个同名变量K,则在过程Sub1中要访问全局变量K,可采用(),A)Frm1.K B)Form.KC)Form1.kD)K,2001年秋季题目,1)初值问题,系统会自动为该变量赋予一个初

9、始值数值型:0字符串:空串逻辑型:False,2)大小写自动转换Dim MyCountry As Stringmycountry=“china”自动转为MyCountry=“china”,3)类型问题,在变量的类型说明语句中,必须对每个需要说明的变量逐个使用As Type说明其类型Dim x As integer如果未说明,则按变体型处理Dim a,b As Integer,4)隐式声明,隐式声明变量:直接使用一个变量,并在该变量名的尾部加上类型说明符来标识该变量的类型。%&!#$比如:k&=1country$=“china”其中k被隐式说明为长整型 country被隐式说明为字符串型,5)字

10、符串问题,字符串的类型为string,既可是定长,也可是变长,如何区分?缺省为变长也可以设置为定长Dim As String*size,6)定长字符串标准模块中的定长字符串变量可以说明为public、private、dim。但是;在窗体和类模块中,则必须为private或dim,不能为public。,牛刀小试-等级考试真题再现,假设变量BOOL是一个布尔型变量,则下列赋值语句中,正确的是(),A)BOOL=TRUE B)BOOL=.TRUE.C)BOOL=#TRUE#D)BOOL=True,2007年春季题目,牛刀小试-等级考试真题再现,有变量定义语句Dim a As Integer,变量a的

11、类型和初值是(),A)Integer,0 B)Variant,空值C)String,”D)Long,0.0,1999年秋季题目,牛刀小试-等级考试真题再现,在程序中分别将变量Inta、Bl、St、D定义为整型、布尔型、字符串型和日期型,下列赋值语句在执行时会出错的是(),A)Inta=4.6 B)Bl=#True#C)St=5&123.5 D)D=#10/05/10#,2002年秋季题目,牛刀小试-等级考试真题再现,可以在()中,使用语句Public PubStr As String*20定义一个定长字符串。,A)窗体 B)标准模块C)类模块 D)三种均可,2001年秋季题目,勤奋,第四节 运

12、算符、表达式,1.算术运算符,包括:(乘方)、-(负号)、/*、(整除)MOD、+-,+、&举例:ia=3表达式:(-5)2+5 Mod 3,5+10 mod 10 9/3+22?结果是:1022 结果为49/3 结果为310 3 结果为310 mod 3 结果为 15+1+4结果为10,+与&,A B A+B A&B“123”“3”“1233”“1233”“123”3 126“1233”123 3 126“1233”“123a”3 出错“123a3”,+:两者都为字符串,为相连;其余为相加&:相连,注意事项:,注意:若操作数为字符型,按ASCII码比较 汉字字符西文字符,包括:,=,=,Is

13、,2.关系运算符,口诀:逐个比较;遇大则大;长大短小;完全相同,才是相等,总结关系运算的规则如下:,(3)数值型与可转换为数值型的数据比较,如:29“189”,按数值比较,结果为False。(4)数值型与不能转换成数值型的字符型比较,如:77 sdcd,不能比较,系统出错。,(1)当两个操作式均为数值型,按数值大小比较。(2)字符串比较,则按字符的ASCII码值从左到右一一比较,直到出现不同的字符为止.。例:ABCDE ABRA 结果为 False,3.逻辑运算符,包括:Not、And、Or、Xor,AND:逻辑与,两边的值均为真时,结果为真;否则为假OR:逻辑或,两边的值至少有一个真,结果为

14、真;否则为假NOT:逻辑反.只有一个参数XOR:逻辑异或,两边的值不同时,结果为真;否则为假否则为真,写出逻辑表达式:选拔优秀生的条件:三门功课英语(C1)、数学(C2)、计算机(C3),总分至少265分,或C2、C3分别大于90分且C1不低于80分。,C1+C2+C3=265 OR(C180 and C290 and C390),清华大学研究生复试分数线:总分315,前两门50,后两门80,应该如何写呢?,牛刀小试-等级考试真题再现,描述、中有一个小于的逻辑表达式是()。,)XZ And YZ)XZ Or YZ)XZ Xor YZ)XYZ,2003年春季题目,1.几大类比较,2.算术运算符,

15、3.比较运算符,4.逻辑运算符,算术、连接、比较、逻辑,,-,(*/),MOD,(+-),同一级,Not、And、Or、Xor、,运算规则,(1)运算符不能相邻。例a+*b是错误的。,表达式的书写中需注意的问题,(2)乘号不能省略。例x 乘以y 应写成:x*y,(3)括号必须成对出现,均使用圆括号。,(4)表达式从左到右在同一基准并排书写,不能出现上下标,(5)要注意各种运算符的优先级别,为保持运算顺序,在写表达式时需要适当添加括号(),若用到库函数必须按库函数要求书写。,(b-sqr(b*b-4*a*c)/(2*a),(a+b)/(a-b),勤奋,第五节 赋值语句,1、赋值语句,赋值语句是任

16、何程序设计中最基本的语句,赋值语句都是顺序执行的。,X=“This is a flower”Number%=72Label1.caption=“filename is”Text1.Font.Size=12Y=(a+b)/2,使用说明,(1)当表达式为数值型而与变量精度不同时,强制转换成左边变量的精度;,(2)当表达式是数字字符串,左边变量是数值类型,自动转换成数值类型再赋值,但当表达式中有非数字字符或空串,则出错。,(3)任何非字符类型赋值给字符类型,自动转换为字符类型,(4)当逻辑型赋值给数值型时,True转换为-1,False转换为0;反之,非0转换为True,0转换为False;,字符型

17、,数值型,逻辑型,“123”“123abc”*,随意,True:-1False:0,非0:True0:False,“True”False”其余,错,赋值语句使用说明,牛刀小试-等级考试真题再现,假设变量Lng为长整形变量,下面不能正常执行的语句是(),A)Lng=16384*2-%B)Lng=4*0.5*16384C)Lng=1902-指数运算的结果是#D)Lng=32768*2,2005年秋季题目,牛刀小试-等级考试真题再现,针对语句If I=1 Then J=1,下列说法正确的是()。,A)I=1和J=1均为赋值语句B)I=1和J=1均为关系表达式C)I=1为关系表达式,J=1为赋值语句D

18、)I=1为赋值语句,J=1为关系表达式,2003年秋季题目,牛刀小试-等级考试真题再现,下列语句运行时系统给出错误提示的是()。,)Print-32000-769)Print“1E2+8)Print“AB”&128)Print 3=2=4,2004年春季题目,n=1Print n 1,普通的赋值语句n=1=2Print n false,先1和2比较,为false,然后赋给nn=-1=-1Print n true,先-1和-1比较,为true,然后赋给n以下均为比较运算,没有赋值语句了,n的值始终为true,不再变化了Print 1=2=3 false,先1和2比较,为false,false和3

19、比较时先转为0Print 1=1=-1 true,先1和1比较,为true;true转为-1,和-1比较Print n=1 false,n此时为true,和1比较,为falsePrint n=-1 true,n此时为true,和-1比较,为truePrint n=1=2 false,n先和1比较,为false,再和2比较,为falsePrint n=-1=True true,n此时为true,先和-1比较,为truePrint n=False=0 true,n为true,和false比较,为false,和0比较,为true,VB中的秘密,dim a as integer,b as intege

20、r,c as integer,d as integer a=6.5 b=5.5 c=5.51 d=5.49Print aPrint bPrint cPrint d,VB中.5的问题,朝着向它最近的偶数变化,运行结果?,勤奋,第五节 常用公共函数,公共函数,公共函数:由系统提供,可在任何VB程序中随时使用的程序段。,字符型,数值型,逻辑型,“123”“123abc”*,随意,True:-1False:0,非0:True0:False,“True”False”其余,错,赋值语句使用说明,1.数学函数,绝对值:Abs(N)e为底的指数:Exp(N)自然对数:Log(N),产生随机数:Rnd(N)符号

21、函数:Sgn(N)平方根:Sqr(N)三角函数Sin(N)、Cos(N)、Tan(N):其中的N必须是弧度值,|-3|-Abs(-3)e2-Exp(2)ln(10)-Log(10)Rnd 产生一个01之间的一个小数 求2.4的符号-Sgn(2.4)(返回1)求16的平方根-Sqr(16)Sin(30o)-Sin(3.14/6),2.字符串函数,求字串长度:Len(C)取子串:Left(C,N)Right(C,N)Mid(C,n1,n2)查找子串:InStr(N1,C1,C2),Left(“计算机基础”,2)Right(“计算机基础”,2)Mid(“计算机基础”,2,4),Len(“VB程序设计

22、”),InStr(4,”abdbcdef”,”d”),Str=”AB CDE”LTrim(str)、RTrim(str)、Trim(str),String(6,”A”),Space(10),大写:Ucase(x)小写:Lcase(x)去掉首或尾空格:LTrim(C)、RTrim(C)、Trim(C)生成字串:string(n,”字符”)生成空格串:space(n),练习,a=“中国矿业大学徐海学院”b=“cumtxhc”c=“xuhaixueyuan“Print len(a),len(b)Print left(a,2);mid(a,7,2);right(a,2)Print ucase(b);l

23、case(ucase(a)Print cPrint ltrim(c)Print rtrim(c);1Print instr(1,a,”学”)Print instr(1,b,”x”)Print String(20,”中”)Print space(20);1,用上面的a和b设法生成下面的输出,(space)3(space)3中国矿业学院矿业大学cumt徐海学院XHC徐海学院(space),牛刀小试-等级考试真题再现,下列表达式中,运算结果与函数Mid(s,i,i)的返回值相同的是(),A)left(s,i)&right(s,len(s)-i)B)left(right(s,len(s)-i+1),i

24、)C)left(right(s,i),len(s)-i+1)D)left(s,len(s)-i)&right(s,i),2007年春季题目,牛刀小试-等级考试真题再现,可以把变长字符串S中的第一个“ABC”子串,替换成“1234”的语句是(),A)S=Left(s,InStr(S,ABC)&1234&Right(S,Len(S)-InStr(S,ABC)-2)B)Mid(S,InStr(S,ABC),3)=1234“C)Mid(S,InStr(S,ABC),4)=1234“D)S=Left(s,InStr(S,ABC)-1)&1234&Right(S,Len(S)-InStr(S,ABC)-2

25、),2007年春季题目,字符转换成ASCII码:Asc(C)ASCII码转换成字符:Chr(N)转换成小写字母:Lcase(C)转换成大写字母:Ucase(C),3.转换函数,Asc(“B”)-66 Chr(97)-“a”LCase(Abc)-”abc”UCase(Abc)-ABC”Str(234)-”234”Val(”234”)-234Val(“123ab”)-123,Fix(3.5)Cint(3.5)Int(3.5),-,3 4 3,-3-4-4,Str(x):将数值数据x转换成字符串(含符号位)Str(5)CStr(x):将x转换成字符串(对于正数,不含符号位)CStr(5),有何区别呢

26、?,牛刀小试-等级考试真题再现,函数CInt(-3.5),Int(-3,5),Fix(-3,5)的值分别是(),A)-3,-4,-3 B)-4,-4,-3 C)-3,-4,-4 D)-4,-3,-3,2005年秋季题目,牛刀小试-等级考试真题再现,对正实数X 的第四位小数四舍五入的VB表达式是()。,A)0.001*Int(x+0.005)B)0.001*(1000*x+0.5)C)0.001*Int(1000*x+5)D)0.001*Int(1000*(x+0.0005),2004年春季题目,4.日期函数,获取系统当前日期:Date 获取系统当前时间:Time 获取系统当前日期和时间:Now

27、,获取指定日期年、月、日的值:Year(D)、Month(D)、Day(D)获取指定日期是一个星期的第几天:Weekday(D,n),如:Print date,Print Time$,Print Now,Print Year(Now),Month(Now),Day(Now),Print Weekday(Now,2),日期时间格式符:,数值格式符:0:显示一数字,若此位置没有数字则补0#:显示一数字,若此位置没有数字则不显示,-+$():原样打出,Format(表达式,格式字符串),如:Print Format(12.345,+000.00)Print Format(12000.345,“#,#

28、.#),如:Format(Now,”yyyy-mm-dd”),注意:Format函数仅用于控制数据的外部输出格式,不会改变数据在计算机内部的存储形式,5.格式输出函数,勤奋,第六节InputBox与MsgBox,1、InputBox函数,语法:x=InputBox(prompt,title,default,xpos,ypos,helpfile,context)其中,prompt是提示的字符串,这个参数是必须的。title是对话框的标题,是可选的。default是文本框里的缺省值,也是可选的。xpos,ypos决定输入框的位置。helpfile,context用于显示与该框相关的帮助屏幕。返回值

29、 x 将是用户在文本框里输入的数据,x是一个字符串类型的值。如果用户按了Cancel钮,则 x 将为空字符串。,InputBox(请输入你的学号:,程序示例,230001),2、MsgBox函数,Action=MsgBox(prompt,button,title,helpfile,context),button=c1+c2+c3+c4c1:0,1,2,3,4,5(用来定义按钮)c2:16,32,48,64(用来定义信息图标)c3:0,256,512(用来定义按钮的缺省值)C4:0,4096(应用程序模式、系统模式),课后习题,第61页16题:Z=InputBox(,),课后习题,第61页17题

30、:Z=MsgBox(,),勤奋,第四章 总结,数据、表达式与简单程序设计,1.下面所列四组数据中,全部是正确的VB常数是A.32768,1.34D2,ABCDE,&O1767B.3276,123.56,1.2E-2,#True#C.&HABCE,02-03-2002,False,D-3D.ABCDE,#02-02-2002#,E-2,练 习,2.运行下面程序,单击命令按钮Command1,则窗口上显示的结果是。Private Sub Command1_Click()Dim A As Integer,B As Boolean,C As Integer,D As Integer A=20/3:B=

31、True:C=B:D=A+C Print A,D,A=A+CEnd SubA.7 6 False B.6.6 5.6 False C.7 6 A=6 D.7 8 A=8,练 习,A,3.表示命题“A是一个带小数的正数,且 B是一个带小数的负数”的逻辑表达式是。4.在窗体模块的通用声明处有如下语句,会产生错误的语句是 _(1)Const A As Integer=25(2)Public St As String*8(3)Redim B(3)As Integer(4)Dim Const X As Integer=10 A.(1)(2)B.(1)(3)C.(1)(2)(3)D.(2)(3)(4),D

32、.(2)(3)(4),AO And AInt(A)And BInt(B),练 习,5.下列表达式中,值为True的是_。A、Ucase(ABCD=abcd)B、14/23Left(ABCD,2)D、Not(Sqr(4)-3=-2),练 习,C,6.下面表达式的值为真的是_。Mid(Visual Basic,1,12)=Right(Programming Language Visual Basic,12)B.ABCRGabcde”C.Int(134.69)=Cint(134.69)D.78.9/32.77-4.98,练 习,A,7、“ABC123”&”666xy”的运算结果是A)666xyB)A

33、BC666123xyC)“ABC123666xy”D)”666xyABC123”,C,练 习,8、表达式”12”+”34”的值是表达式”12”&”34”的值是表达式12+34的值是表达式“12”+34的值是,练 习,9、设A=2,B=3,C=4,D=5,布尔表达式AB And C=D Or 3*AD的值是True,练习,10、表达式2*32+2*8/4+32的值是31,11、逻辑表达式Not“a”b”And 93的值是True,练习,12、15.52的结果是8 13、19.5 Mod 2*2 的运算结果是0,14、设A=7,B=4,C=6,,则表达式 A Mod 3+B3/C5的值为A1 B2 C3 D出错C3,练 习,15、窗体上放置了三个文本框,若在text1中输入456,在text2中输入78,在程序中执行了语句text3.texttext1.texttext2.text后,则在text3中显示_A)534 B)45678 C)溢出 D)语法错误,B,本章作业,第15、1517题在教材完成,1,第6、8、10、11作为作业。,2,课后习题,勤奋,第四章 VB语言基础,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号