第三章程序设计基础_第1页
第三章程序设计基础_第2页
第三章程序设计基础_第3页
第三章程序设计基础_第4页
第三章程序设计基础_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

Main(){intn,m,l;n=56;m=43;l=m+n;printf(“L=%d\n”,l);}Privatecommand1_click()DimnasintegerDimmasintegerDimlasintegerN=56M=43L=m+nPrint“L=“,lEndsubC程序VB程序第三章程序设计基础第3章程序设计基础(VB数据类型、运算符和表达式)内容要点3.1数据类型3.2常量和变量3.3运算符和表达式3.4常用内部函数第三章程序设计基础3.1数据类型3.1.1基本数据类型VB的数据类型分为基本数据类型和自定义数据类型两种。数据类型类型描述类型说明后缀数据范围所占字节数Integer整型%-32768~327672Long长整型&-2147483648~21474836474Single单精度浮点型!-3.402823E38~-1.401298E-451.401298E-45~3.402823E384Double双精度浮点型#-1.79769313486232E308~-4.9406564584124E3244.9406564584124E324~1.79769313486232E3088Currency货币型@-922337203685477.5808~922337203685477.58078String字符串型$

Byte字节型

0~2551Boolean布尔型

True、False2Date日期型

100年1月1日~9999年12月31日8Object对象型

任何Object4Variant变体型

日期文字必须以一对“#”括起来

必须使用Set语句先对对象引用赋值,其后才能引用对象第三章程序设计基础说明:1、Variant数据类型还包含三种特定值:Empty、Null、Error。2、Variant数据类型是最为灵活的数据类型(类型+值信息)。3、Variant数据类型比其他类型的数据占有更多的内存空间。num=1010name=“张三”age=18score=96.5例:定义四个变量,分别用于保存“张三”的学号、姓名、年龄和成绩(考虑合适的数据类型)。dimNumAsIntegerdimNameAsStringdimAgeAsIntegerdimScoreAsSingle第三章程序设计基础3.1.2自定义数据类型用户可以利用Type语句定义自己的数据类型。其格式如下:Type

数据类型名数据类型元素名As类型名数据类型元素名As类型名

……EndType类似于C语言中的结构体!Type

StudentNumAsIntegerNameAsString*10AgeAsIntegerScoreAsSingleEndTypeDimzhangsanasStudent

Zhangsan.num=1010Z=“张三”Zhangsan.age=18Zhangsan.score=96第三章程序设计基础3.2常量和变量1、常量是指在整个应用程序运行期间值不会发生变化的量。2、变量是指在整个应用程序运行期间值可能发生变化的量。3.2.1常量VB中的常量分为两种,一种是文字常量,一种是符号常量

1、文字常量文字常量也称为字面常量(Literal),它分为字符串、数值、布尔值和日期文字1)字符串常量

字符串常量由字符组成,由双引号括起来的任意字符集合。例如:"petroleumuniversity","¥25.00",……注意,双引号是字符串常量的定界符,不是字符串的一部分。第三章程序设计基础3)日期常量

正确:#2002-10-20#错误:#20021030#4)布尔型常量TRUEFALSE%整型&长整型!单精度浮点数#双精度浮点数@货币型$字符串型例:67%,234#,456&,34@,23.32!,234$(错误)2)数值常量---具体数值数值常量共有四种表示方式,即整型数、长整型数、货币型数和浮点型数。第三章程序设计基础2、符号常量用一些具有一定意义的名字来代替这些不变的数值或字符串,即称为符号常量。例1:ConstPi=3.14159Area=Pi*Radius*Radius’求面积Circumference=2*Pi*Radius’求周长1)常量赋值符号常量声明的语法规则为:Const

ConstantName

[AsType]=value例:ConstNextDateASDATE=#9/6/2002#

‘表示日期

或:ConstNextDate=#9/6/2002#

‘表示日期

第三章程序设计基础说明:1、若要在一行中放置多个常数声明,可用逗号分隔如下:

ConstTemp1=100,Temp2=200,Temp3=3002、在Const声明语句中,等号右边的表达式可以包括其它常量。如:

PublicConstTemp1AsInteger=100PublicConstTemp2AsInteger=2*Temp12)常量的域常量具有一定的使用范围,称为域。在模块内部使用的常量用“Private”关键字来定义,在模块之间公用的常量用“Public”来定义。“过程内”、“模块/窗体级”、“公用的”或“模块/窗体间”

[Public/Private]ConstConstName[Astype]=Expression

第三章程序设计基础例如:PrivateSubCommand1_GotFocus()ConstpiAsInteger=3PrintpiEndSub3PrivateSubCommand1_LostFocus()ConstpiAsDouble=3.1415926PrintpiEndSub3.14159263.2.2变量变量代表数据的一个名称,其内容可随程序的运行而不断变化。其作用是存储临时数据,其值随程序运行而变化。第三章程序设计基础1、变量的类型(与常量类型相对应)

变量类型有数值型变量、字符串变量、布尔变量、日期变量、对象变量和变体变量等几种类型。2、声明变量—变量的定义(变量使用之前必须做的)

例:

DimPutInAsString

putin=“asdfgh”1)显式声明---指在程序中含有如下语句:

Dim【变量名】[Astype]

如果缺省type,默认为Variant类型。变量的命名原则:

1)VB的变量名最多可以有255个字符,首字符必须为英文字母。

2)其后可以接任意字母、数字和下划线的组合。

3)不要使用VB中的保留字及“.”符号。例:VisualBasic

1ABCY2003x.1

printPi+αLY_ZHENGABSREAD$EPSON第三章程序设计基础2)隐式声明程序中不显示地用Dim语句等定义变量,而直接使用变量,给定变量的值。putin=“asdfgh”强制显式声明:

1)在类模块、窗体模块和标准模块的声明段中加入语句:

OptionExplicit

2)在“工具”菜单中选取“选项”,单击“编辑器”选项卡,再复选“要求变量声明”选项。(此种设置必须重新启动VB程序才能生效)

3、变量的作用域

变量的作用域定义了变量的有效作用区间,只有在该有效范围内,变量才能被程序访问。第三章程序设计基础1)局部(Local)变量局部变量在过程内部声明,只有在该过程中的代码才能访问,不能用于应用程序的其他部分。声明方式:局部变量用Dim或Static关键字来声明。例如:DimiAsInteger或StaticiAsInteger

说明:在不同过程中同名的局部变量之间是不会互相影响的。

2)模块/窗体(Module/Form)级变量模块/窗体级变量在模块或窗体声明,在声明它的模块或窗体中的所有过程中可见。

声明模块/窗体级变量用Private关键字。第三章程序设计基础3)公有(Public)变量在模块中声明,在所有项目的任何过程中都可见。声明公有变量用Public关键字。4、变量的生存期(区别于作用域)变量的生存期是指变量在一定的期限内可以维持其数值的周期。Private

SubCommand1_Click()Staticvar1AsIntegerDimvar2AsIntegervar1=var1+1var2=var2+1Text1.Text=var1Text2.Text=var2End

Sub【例4.2】变量的生存期测试。第三章程序设计基础1)声明为Public的变量在整个应用程序的运行期间都有效,而用Dim或Private声明的局部变量,只有在声明的过程存活期间存在,过程结束时,局部变量即消失。当再次调用过程时,该局部变量重新生成并初始化。用Private声明的模块级变量只在模块存活期有效。2)当需要保留局部变量的值时,可将其定义为静态的。采用“Static”关键字来定义静态变量。3)为了使过程中所有的局部变量为静态变量,可在过程的起始处加上Static关键字,例如:StaticSubNumAdd()StaticFunctionCalcular(InputDateAsDouble)AsDouble定义了过程的静态变量之后,过程中的所有局部变量都成为静态局部变量,而不管在过程中它们是如何声明的。第三章程序设计基础3.3运算符和表达式

VB的运算符有算术运算符、连接运算符、关系运算符和逻辑运算符。表达式按其所含运算符和运算对象的不同,可分为算术表达式、关系表达式、逻辑表达式和字符串表达式。4.3.1算术运算符和算术表达式1、算术运算符

+ 加 - 减* 乘 / 除^ 幂运算 - 负号\ 整除 Mod 取模第三章程序设计基础1)浮点数除法/表达式3/2的结果为1.5

2)整数除法\整数除法运算符(\)执行整除运算,其结果为整型值。例如,表达式3\2的结果为1。整除的操作数一般为整型值。当操作数带有小数时,将首先对其四舍五入为整型数,然后进行整除运算。例如,28.72\7.83的结果为3。3)取模运算(同样是四舍五入取整)7Mod4的结果为3.25.68Mod6.99的结果为5。2、算术表达式

算术表达式由算术型常数、变量、函数、算术运算符及圆括号组成。第三章程序设计基础算术运算符的优先级(从高到底)优先级运算符名称运算符说明1括号()

2指数运算符^

3负号运算符_

4乘、除运算符*、/同级运算,运算次序从左到右5整除运算符\

6取模运算符Mod

7加、减运算符+、-同级运算,运算次序从左到右第三章程序设计基础10Mod6/2的运算顺序为:先做6/2,结果为3,然后再做10Mod3,结果为1。在书写算术表达式时,还应注意如下书写规则:(1)将一个数学算式书写为一个算术表达式时,应将数学算式中的所有符号写在同一行上,必要时加圆括号。(2)在一个算术表达式中出现的括号应全部是圆括号,且必须配对使用;(3)在一个算术表达式中,乘号*既不能省略,也不能用·代替。(4)将一个数学算式写成算术表达式时,应将数学算式中的某些符号(比如π、θ、ω等)用VB中认可的其它变量名来代替。例如,应将π改写成pi或其它变量名,θ改写成theta或其它变量名。(-b+Sqr(b*b-4*a*c))/(2*a)第三章程序设计基础3.3.2连接运算符和字符串表达式字符串连接运算符将两个或多个字符串连接起来可以用字符串连接运算符“&”或“+”,生成一个新的字符串。例如,"Visual"&"Basic"+"6.0"的结果为"VisualBasic6.0"。4.3.3关系运算符和关系表达式1、关系运算符VB中的关系运算符有如下六种:=(等于) > (大于)<(小于)<> (不等于)<=(小于等于) >= (大于等于)2、关系表达式用关系运算符连接两个算术表达式所组成的有意义的式子称为关系表达式。例如,"Basic">"BasIC",a-b=0等。第三章程序设计基础3、运算结果关系表达式的运算结果是一个Boolean类型的值,即True和False。VB把任何非零值都认为是“真”,但一般以-1表示“真”,0表示“假”。例如,对于a-b=0,当a=b时,结果为True(-1),否则为False(0)。4、说明1)当对单精度数或双精度数使用比较运算符时,必须特别小心,运算可能会给出非常接近但不相等的结果。例如,1.0/3.0*3.0=1.0,在数学上显然是一个恒等式,但在计算机上执行时可能会给出一个假值(0)。因此,应避免对两个浮点数作“相等”或“不相等”的判别。上式可改为:Abs(1.0/3.0*3.0-1.0)<ε

(Abs是求绝对值函数,ε可取1e-5)只要它们的差小于一个很小的数ε,就认为1.0/3.0*3.0与1.0相等。2)用关系运算符既可以进行数值的比较,也可以进行字符串的比较。(以ASCII码为标准)第三章程序设计基础第三章程序设计基础3.3.4逻辑运算符和逻辑表达式1、逻辑运算符逻辑运算也称布尔运算。VB中的逻辑运算符有如下六种:Not (非) And (与)Or (或) Xor

(异或)Eqv

(等价) Imp (蕴含)1)Not:逻辑非,即对逻辑值“取反”。例如:Not(3<5)‘取反,表达式值为假3)数学上判断x是否在区间[a,b]时,习惯上写成a≤x≤b,但在VisualBasic中不能写成a<=x<=b,应写成x>=aAndx<=b,其中And是下面将要介绍到的逻辑运算符。“ABC”<”BCD”---true“abc”>”abcd”----false第三章程序设计基础2)And:逻辑与。两个表达式的值均为真,则结果为真,如果有任一个表达式值为假,则结果为假。其运算规则如表4.3。表4.3And运算规则表第一操作符第二操作符操作结果TrueTrueTrueTrueFalseFalseFalseTrueFalseFalseFalseFalse第三章程序设计基础第一操作符第二操作符操作结果TrueTrueTrueTrueFalseTrueFalseTrueTrueFalseFalseFalse3)Or:逻辑或。当两个表达式中至少一个为真时,结果为真。第三章程序设计基础4)Xor:逻辑异或。当两个表达式值相反时,结果为真。第一操作符第二操作符操作结果TrueTrueFalseTrueFalseTrueFalseTrueTrueFalseFalseFalse第三章程序设计基础5)Eqv:两个表达式的值相同时,结果为真。第一操作符第二操作符操作结果TrueTrueTrueTrueFalseFalseFalseTrueFalseFalseFalseTrue第三章程序设计基础6)Imp:比较两个表达式。当第一个表达式为假或第二个表达式为真时操作结果为真(规定)。第一操作符第二操作符操作结果TrueTrueTrueTrueFalseFalseFalseTrueTrueFalseFalseTrue第三章程序设计基础逻辑运算符的优先级由高到底如下:Not→And→Or→Xor→Eqv→Imp2、逻辑表达式用逻辑运算符连接两个或多个关系式组成一个逻辑表达式。例如,x>=aAndx<=b就是一个逻辑表达式。3、运算结果逻辑表达式的运算结果也是一个Boolean类型的值,即True和False。VB把任何非零值都认为是“真”,但一般以-1表示“真”,0表示“假”。4.3.5各种运算符的优先级比较优先级运算类型1函数运算2算术运算3关系运算4逻辑运算第三章程序设计基础3.4常用内部函数3.4.1数学函数Int,Fix,Sqr,Abs,Rnd,Sgn,Hex,Oct,Exp,Sin,Cos,Tan,Atn。

3.3.6日期型表达式用于表示日期和时间格式:#……#VB接受许多种日期时间格式

例:下面的Date/Time值全部有效。#3-6-9313:20#

#March27,19931:20am#

#Apr-2-93#

#14April1993#

#12/18/1999#(1)两个日期型数据相减,结果是一个数值型数据(两个日期相差的天数)。例如,#12/20/2002#-#12/10/2002#的结果为数值型数据10。(2)一个表示天数的数值型数据与日期型数据相加、减,结果仍为日期型数据。例如,#12/10/2002#+10的结果为日期型数据#12/20/2002#

第三章程序设计基础1、Int(x)函数用于返回小于或等于x的最大整数。Int(45.67)

结果为45Int(-2.89)

结果为-32、Fix(x)函数此函数的作用与Int函数类似。当x为正数时,无条件地把小数部分舍掉;当x为负数时,结果与Int(x)函数不太一样。Fix(45.67)

结果为45Fix(-2.89)

结果为-23、Abs(x)函数此函数可用来求x的绝对值。

Abs(-4)结果为44、Sqr(x)函数此函数用来求x的平方根。5、Rnd(number)函数此函数用来返回0和1之间的随机数。第三章程序设计基础Randomize语句初始化随机数发生器Randomize例:生成[a,b]范围内的随机整数

Int((b-a+1)*Rnd+a)6、Sgn(x)符号函数

Sgn(3)结果为1Sgn(-6)结果为-1Sgn(0)结果为0第三章程序设计基础7、Hex(x)和Hex$(x)函数此函数的作用:(1)传回x所代表的16进制数。Hex(15)---F(2)Hex(x)返回数值类型,Hex$(x)返回字符串类型。8、Oct(x)和Oct$(x)Oct(15)---17此函数返回8进制数。其功能说明与Hex(x)完全相同。9、Exp(x)函数此函数用来返回以e为底的x幂值。求e3EXP(3)10、Sin(x),Cos(x),Tan(x),Atn(x)分别用于返回x的正弦,余弦,正切,反正切值。第三章程序设计基础函数说明函数说明CCur(表达式)转为Current类型CSng(表达式)转为Single类型CDbl(表达式)转为Double类型CStr(表达式)转为String类型CInt(表达式)转为Integer类型CVar(表达式)转为Varient类型CLng(表达式)转为Long类型

VarType:用来返回变体类型变量所存放数据的数据类型。3.4.2数据类型转换函数第三章程序设计基础类型值类型值Empty0Double5Null1Currency6Integer2Date7Long3String8Single4

3.4.3字符处理函数Chr,Asc,String,Len,Left,Right,Mid,Lcase,Ucase,Ltrim,Rtrim,Trim,Str,Val,InStr,StrComp。第三章程序设计基础1、Chr[$](数值)函数此函数返回ANSI码的对应字符。例:Chr(65)---A例:我们常用以下的表达式组成回车换行符:

Chr(13)+Chr(10)2、Asc(“字符”)函数此函数用来返回字符的ANSI码值。说明:若输入为一字符串,则只返回第一个字符的ASCII码值。例如当x=Asc(“a”)时,x=97;当x=Asc(“ab”)时,x=973、Len(字符串)此函数用于返回字符串的长度。Len(“asdfg”)--5第三章程序设计基础4、String[$](个数,字符)此函数用于重复某一个字符。说明:(1)“个数”用来指定重复的次数。(2)若“字符”为一字符串,则只重复复制第一个字符。例如,当x=String$(5,"a")时,则x="aaaaa“

当x=String$(5,"abc")时,则x="aaaaa“5、Left[$](字符串,字符个数)此函数用于返回“字符串”最左边的长度为“字符个数”的字符串。例如:DimsubstrAsString

substr=Left("VisualBasic",6)

则substr="Visual"第三章程序设计基础6、Right[$](字符串,字符个数)此函数用于返回“字符串”最右边的长度为“字符个数”的字符串。例如:DimsubstrAsStringsubstr=Right(“VisualBasic”,5)则substr=”Basic”7、Mid[$](字符串,起始位置,[字符个数])此函数用于返回一个子字符串。例如:DimsubstrAsStringsubstr=mid(“VisualBasic”,3,3)则substr=”sua”说明:(1)子字符串从“起始位置”开始,以“字符个数”为长度;(2)若省略“字符个数”,则从起始位置到字符串的结尾。第三章程序设计基础8、Lcase(字符串)和Ucase(字符串)Lcase:不论字符串中的字符为大写还是小写,一律输出为

小写。Lcase(“ABCabc”)---”abcabc”Ucase:不论字符串中的字符为大写还是小写,一律输出为

大写。Ucase(“ABCabc”)----”ABCABC”9、Ltrim(字符串)、Rtrim(字符串)、Trim(字符串)Ltrim(字符串):用于去掉字符串中左边的空格。Rtrim(字符串):用于去掉字符串中右边的空格。Trim(字符串):用于去掉字符串中左右两边的空格。10、Str(数值)和Val(字符串)Str(数值):用于将数字转化为字符串。Val(字符串):用于将字符串转化为数值。例如:a=Str(34.56)b=Val(“234.56”)则a=“34.56”,b=234.56第三章程序设计基础11、InStr([起始位置,]“字符串1”,“字符串2”[,比较模式])此函数用来在字符串1中查找字符串2。说明:(1)从字符串1的“起始位置”处开始查找字符串2,如果找到“字符串2”,则返回字符串2在字符串1中的起始位置

温馨提示

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

评论

0/150

提交评论