《程序代码基础》PPT课件_第1页
《程序代码基础》PPT课件_第2页
《程序代码基础》PPT课件_第3页
《程序代码基础》PPT课件_第4页
《程序代码基础》PPT课件_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第四章程序代码基础,语法基础,数据类型常量变量运算符,3.1数据类型,本章目录,数据类型(1),一用于保存数字的几种数字类型Interger%16位整型215-1Long&32位整型231-1Single!32位单精度浮点,小数Double#64位双精度浮点,小数Currency货币类型;64位精确定点(整数15位小数4位)Byte8位字节型,例如1:DimaAsIntegera=5aim_1=-193例如2:,DimcAsIntegerPrivateSubForm_Click()c=5PrintcEndSub,数据类型(2),二用于进行逻辑判断的Boolean类型16位,取值只有True和False,默认为false从其它数据类型转换为Boolean时0转成False,其它值为True从Boolean转换为其它数据类型时False转成0,True为-1例如:command1.visible=true,数据类型(3),三用于保存字符串的String类型双引号括起变长String,最多231个字符如:DimtempAsstring定长String,最多216,不足字符以空格填充如:DimtempAsstring*100表示声明了100个字符的字符串,数据类型(4),四用于保存日期的Date类型64位,识别多种日期格式,除汉字日期以外如:DimbirthdayAsDatebirthday=#12/5/78#birthday=#1990-12-512:00:00AM#birthday=#January1,1993#取值范围为:100年1月1日9999年12月31日,数据类型(5),五用于保存对象引用的Object类型32位,保存对对象的引用(地址),只能用Set语句赋值六.万能的Variant类型(变体型)Dimtemp几种特殊取值:Empty值:在赋值前,Variant型变量具有该值。Null值:空值,用于数据库,表示未知、尚未赋值的数据。不同于0、零长度字符串。Error值:指出运行中的错误状态。,数据类型(6),七自定义数据类型Type自定义类型名元素名As数据类型元素名As数据类型元素名As数据类型.EndType类似于C语言中的结构类型,如:TypeStudentIDaslongNameasstring*10EndTypeDimStu1AsStudentStu1.ID=100102Stu1.Name=“zhang”,数据类型(7),如:PublicEnumColorsWhiteRedGreenEndEnumDimtempAsColorsTemp=Green,Private|PublicEnum自定义类型名元素名As数据类型EndType,八自定义枚举类型,Public|PrivateConst常量名=表达式如:ConstconPi=3.1415926,有两类常量:用户自定义常量系统常量(以VB开头),比如回车换行符vbCrlf、vbRed、vbCancel等等,常量,变量名称如何声明使用变量的作用域,变量,合法变量名以中英文字符开头,可以包含英文字母、中文、数字、下划线;不能是系统已有的关键字,如Date、if、End;不能超过255个字符;在同一作用范围区域中必须唯一,比如同一个事件过程中不能有两个同名的变量。例如:cmd1txt_6错误:1cmd3%3f,变量的命名,Public|Private|StaticDim变量名As类型如:*局部变量DimtempAsInterger(模块声明段中或在过程中;在模块声明段中,与private同,在过程中,只有过程有效)*模块级变量PublictempAsInterger整个工程有效(模块声明段中)PrivatetempAsInterger当前窗体有效*静态变量StatictempAsInterger退出过程不释放,*隐式声明就是不声明而直接就使用一个变量*显式声明比隐式声明更安全,OptionExplicit语句强制要求变量进行显式声明(或通过菜单的选项对话框设定),变量的声明,我们会强制要求先声明后使用,即显式声明。原因:变量不声明而直接使用,这些未声明的变量都是Variant类型,当需要指明数据为具体类型形式时需要额外的处理,也缺乏必要的类型检测;在使用已有变量时可能会错误地拼写了该变量,而系统会认为它是隐式声明的另一个变量,而检查不出错误;反之若采用显式声明方式,系统强制所有变量必须先声明,在编译时一旦发现使用了未经声明的变量名(如写错),就会报告错误。在每个文件代码的通用段(首行)增加一条设置语句:OptionExplicitDimMyVar声明变量。MyInt=10未声明变量产生错误。MyVar=10声明变量不产生错误。,严格要求变量声明,变量的简易声明方式,VB还提供了一种简易的声明方式,只要变量名后带有某个特定符号,就代表该变量是某种数据类型,如DimStudentName$数据类型声明字符:Integer%Long&Single!Double#String$,变量的作用域,全局变量:定义在BAS模块中,使用public关键字,工程中所有文件所有过程共享如在common.bas中:PublicstuNoAsLong模块级变量:定义在BAS模块、窗体或类模块中,使用Private或Dim关键字,整个模块内共享如在frmMain.frm中:DimstuNoasLong局部变量:定义在一个过程内部,仅限该过程使用例如:实验1例题,赋值运算符,frmMain.Width=300给对象属性赋值(数值)frmTest.Caption=“Hello”给对象属性赋值(字符串)temp=temp+1给普通变量赋值flag1=true给普通变量赋值(布尔)orderDate=#2002-12-20#给普通变量赋值(日期)DimaAsFormSeta=NewForm1给对象变量赋值VB在进行赋值运算时,会自动进行类型转换,注释语句,以下循环计算总成绩,VB中进行运算,一、算术运算+加法-减法*乘法/浮点数除法整数除法指数如temp=32MOD求余数例题:30-True结果是31,逻辑量True转为数值-1,False转为数值0False+10+4结果是145+10mod109/3+22结果:10,二、连接运算&强制两个表达式作字符串连接两旁的操作数可任意,转换成字符型后再连接+两旁的操作数应均为字符型;1)数值型:则进行算术加运算2)一个为数字字符,另一个为数值,自动将数字字符转换为数值后进行算术加3)一个为非数字字符,另一个为数值型,出错有些情况下,用“&”比用“+”可能更安全。例如:设A$=“Mouse”,B$=“Trap”执行语句:C$=A$+B$后C$的值为”MouseTrap”。,VB中进行运算,&和+运算符的比较,PrivateSubCommand1_Click()Dims$DimaAsIntegers=12345a=67Text1.Text=a+sText2.Text=a&sEndSub,VB中进行运算,三、关系运算符关系运算符也称比较运算符,用来对两个表达式的值进行比较,比较的结果是一个逻辑值,即真(True)或假(False)。操作数可以是数值型、字符型。=,=,比较运算符的应用结果,Dims1,s2asstringPrivateSubCommand1_Click()s1=abcds2=12345Text1.Text=s1s2EndSubtrue,VB中进行运算,四、逻辑运算符用逻辑运算符将关系表达式或逻辑值连接起来的式子就是逻辑表达式,也称布尔表达式。逻辑运算的值是一个逻辑值“真”或“假”。Not逻辑非;And逻辑与;Or逻辑或;Xor逻辑异或;Eqv逻辑等于;Imp逻辑蕴含,逻辑运算符运算结果比较,VB中进行运算,五、表达式1.组成变量、常量、函数、运算符和圆括号2.书写规则运算符不能相邻例a+-b是错误的乘号不能省略例x乘以y应写成:x*y括号必须成对出现(均使用圆括号)表达式从左到右在同一基准上书写,无高低、大小3.不同数据类型的转换运算结果的数据类型向精度高的数据类型靠Integer=字符运算符关系运算符逻辑运算,表达式书写举例,a*b*c*d/e/f/g或a*b*c*d/(e*f*g),例逻辑表达式书写,选拔优秀生的条件为:年龄(Age)小于19岁,三门课总分(Total)高于285分,其中有一门为100分,如果其表达式写为:Age285And(Mark1=100OrMark2=100OrMark3=100)如果取消括号有何问题?请读者考虑。,sin(45*3.14/180)+(exp(10)+log(10)/sqr(x+y+1),本章目录,练习题:,使用立即窗口(DebugWindow)显示下列表达式的值(设x=5,y=15,z=3)(1)xmodz+x2y+z6(2)x2-y*23*zandz3x2false(3)(ymod10)*10+y1051,常用内部函数,1、数学函数2、字符串函数3、转换函数4、其他函数,1数学函数,数学函数主要用来完成数学运算,常用的有以下几个:(1)Sin(x):返回X的正弦值,X的单位为弧度。(2)Cos(x):返回X的余弦值,X的单位为弧度。(3)Tan(x):返回X的正切值,X的单位为弧度。(4)Atan(x):返回X的反正切值,返回值单位为弧度。(5)Log(x):返回X的自然对数。(6)Exp(x):返回以e为底的X的指数值。(7)Sqrt(x):返回参数X的平方根值。(8)Abs(x):返回X的绝对值。,(9)Hex(x):以字符串形式返回X的十六进制值。(10)Oct(x):以字符串形式返回X的八进制值。(11)Rnd():产生一个介于01之间的单精度随机数。每次运行时,要产生不同序列的随机数,先执行Randomize语句。产生ab的之间的随机整数:Int(Rnd*(b-a+1)+a)(12)Int(x):去掉小数部分,返回整数。(13)Fix(x):该函数和Int(x)类似,去掉小数部分,返回整数。负数int需进位。正数int和fix相同,2字符串函数,(1)InStr(起始位置,字符串1,字符串2,比较类型):根据比较类型模式确定字符串2在字符串1中第一次出现的位置。(2)LTrim(字符串):去掉字符串左边的空白部分。(3)Rtrim(字符串):去掉字符串右边的空白部分。,(5)Trim(字符串):去掉字符串的左右空格,若为Null时,返回Null。(6)Left(字符串,个数):取出字符串左边指定个数的字符,若个数大于或等于字符串长度,全取。(7)Right(字符串,个数):取出字符串右边指定个数的字符,若个数大于或等于字符串长度,全取。(8)Mid(字符串,起始位置,个数):取字符串由起始位置开始的指定个数的字符。,(9)Len(字符串或字符变量):计算字符长度,若字符串为空时,返回Null。(10)Ucase(字符串):将字符串的小写字母转换为大写字母,其他字符不变。(11)Lcase(字符串):将字符串中的大写字母转换为小写字母。,(12)Space(个数):返回指定个数的空字符串。(13)String(个数,字符):返回包含重复字符的字符串,长度由“个数”指定。(14)StrComp(字符串1,字符串2,比较类型):按比较类型比较两个字符串,返回值为:相等时为0;小于时为1;大于时为1。(15)StrReverse(字符串):将给定字符串逆序输出。若为空串,返回空串,若为Null,则会出错。,字符串函数,本章目录,字符串函数,本章目录,3转换函数,转换函数一般用来实现不同类型数据之间的转换。VisualBasic提供的常用转换函数有以下几个。(1)Str(数值表达式):把数值转换为字符串。(2)Val(字符串):把字符串转换为数字数值,忽略字符串中的非数字字符。,转换函数,本章目录,4其他函数,(1)Date:取当前系统日期。(2)Time:取当前系统时间。(3)Hour:返回023之间的整数,表示一天之中的某一钟点。(4)Day:返回131之间的整数,表示一个月中的某一日。(5)Month:返回当前的月份。(6)Year:返回当前年份。,日期函数,例计算从当前日期到2007年6月30日有多少天?表达式为:DateDiff(d,Now,#6/30/2007#),本章目录,Shell函数,Shell函数可调用各种应用程序。格式如下:Shell(命令字符串,窗口类型)命令字符串为要执行的应用程序名(包括路径),必须是可执行文件(.com、.exe、.bat)。窗口类型表示执行应用程序的窗口状态,04,6的整型数值,1表示正常窗口状态。函数调用成功返回一个任务标识ID,不成功,则返回0。,例i=Shell(calc.exe),本章目录,程序结构和编码规则,本章目录,编码规则,(1)VB代码不区分字母的大小写关键字首字母自动转换成大写,其余字母转换成小写。用户自定义的变量、过程名,以第一次定义的为准,以后输入的自动向首次定义的形式转换。(2)语句书写自由一行上可书写多句语句(用冒号分隔),一行最多255个字符。单行语句可分若干行书写,在本行后加入续行符(空格和下划线)。,本章目录,综合应用,例4.1模仿字处理软件中字符串替换功能。设计思路:利用Shell函数调用winword.exe执行Word程序实现

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论