《Visual Basic语言程序设计教程》-第5章 Visual Basic.ppt_第1页
《Visual Basic语言程序设计教程》-第5章 Visual Basic.ppt_第2页
《Visual Basic语言程序设计教程》-第5章 Visual Basic.ppt_第3页
《Visual Basic语言程序设计教程》-第5章 Visual Basic.ppt_第4页
《Visual Basic语言程序设计教程》-第5章 Visual Basic.ppt_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

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

文档简介

1 第5章VisualBasic语法基础 本章的学习要点基本数据类型和用户定义的数据类型常量和变量常用内部函数算术运算符 关系运算符与逻辑运算符以及表达式的运算优先级 2 数据是计算机处理的对象 也是运算产生的结果 为了便于处理各式各样的数据 高级语言会将数据进行类型划分 即根据数据的用途不同将其定义为不同的数据类型 定义数据的类型后 既可以确定数据占用的存储空间 又可以确定数据的处理范围 VisualBasic6 0中将数据类型分为基本数据类型和用户自定义数据类型 5 1数据类型 3 5 1数据类型 一 基本数据类型基本数据类型是系统定义好的标准数据类型 可以直接使用 基本数据类型可分为6类 数值型 日期型 逻辑型 字符型 对象型和变体型 其中数值型数据又包括 整型 长整型 单精度型 双精度型 货币型和字节型 4 基本数据类型 数值型 5 基本数据类型 整数 长整数 整型 单精度型 双精度型 实型 货币型 字节型 数值型 6 基本数据类型 数值型整型是不带小数点的数据 和数学中整数的含义类似 只是整型数据取值范围在 32768 32767之间 存放在计算机中用2个字节 即16位 来表示 类型符为 即在数据尾加上 就表示此数据为整型数据 长整型和整型数据类似 都表示整数 但所能表示的数据范围比整型大 取值范围为 2147483648 2147483647 长整型数据在计算机中用4个字节表示 类型符为 例如 2 表示2以整型数据存储 例如 5 表示5为长整型数据存储 7 基本数据类型 数值型单精度型带小数点的实数 在计算机中用4个字节来存储 有效数字为7位 通常单精度型数据以指数形式表示 指数部分用E或e表示 双精度型带小数点的实数 有效数字为15或16位 在计算机内用8个字节存储 比单精度型数据精度更高 双精度型数据也以指数形式表示 指数部分用D或d表示 例如 3 6e 5表示数学中的3 6 105 7 45E 6表示7 45 10 6 例如 55 87d 5表示数学中的55 87 105 7 45D 6表示7 45 10 6 8 基本数据类型 数值型货币型是为了计算货币而设置的定点实数或整数 它的精度要求比较高 在计算机中用8个字节存储 类型符为 字节型是范围在0 255之间的无符号的整数 在计算机中仅用一个字节表示 因此称为字节型数据 例如 23 5 表示23 5以货币型数据存储 9 基本数据类型 日期型表示在公元100年1月1日 9999年12月31日之间的日期和时间数据 日期型数据用 括起来标识 逻辑型逻辑型数据也称为布尔型数据 用来表示逻辑判断的结果 它只有真 True 和假 False 两种取值情况 例如 7 25 2006 表示2006年7月25日 数值型数据 逻辑型数据 数据转换 数值型数据 逻辑型数据 0 False 非0 True 0 False 1 True 10 基本数据类型 字符型用双引号括起来的一串字符 字符型数据可以有两种 定长字符串和变长字符串 定义变长字符串时 其后加上 和数字 表示该字符串的长度为该数字表示的字节数 例 DimaAsString 6 表示定义变量a是一个含6个字符的定长字符串数据 对象型对象型数据主要用于定义应用程序中定义的对象的类型 11 基本数据类型 变体型变体型数据可以表示任何一种数据类型 其大小由所赋予的数据类型决定 说明 1 不同类型的数据 所占的存储空间不一样 2 数据的类型可在数据之后加上一个类型符来表示 例如 413 86 104 67 等 例如 dimaAsVariant 定义a为变体型数据a 123 a为整形数据a visualbasic a为字符型数据 12 用户自定义数据类型 用户自定义数据类型是根据用户需要在已存在的基本数据类型基础上组合而形成的新的数据类型 格式 Private Public Type用户自定义类型名元素名1As数据类型元素名2As数据类型 EndType 元素名为自定义数据类型中的一个成员 类型类型为上述基本类型或自定义数据类型 13 用户自定义数据类型 例如 一个学生的信息可以定义为用户自定义的数据类型 根据需要 可以定义一个包括学生的学号 字符型数据 姓名 字符型数据 出生日期 日期型数据 等新的自定义数据类型以方便使用 PrivateTypeStudentSNoAsString 10SNameAsString 10SBirthAsDataEndType 14 5 2常量和变量 在VisualBasic中 标识符是程序员为变量 常量 数据类型 过程 函数 类等定义的名字 标识符的命名规则 1 标识符必须以字母开头 可以由字母 数字或下划线组成 2 标识符的长度不能超过255个字符 控件 窗体 类和模块的名字不能超过40个字符 3 自定义的标识符不能和VB中的运算符 语句 函数和过程名等关键字同名 同时也不能与系统已有的方法和属性同名 4 保证标识符在同一范围内是惟一的 15 5 2常量和变量 常量常量也称为常数 VisualBasic中 用常量表示在整个程序中事先设置的 不会改变数值的数据 常量分为 常量的数据类型可以是任何一种数据类型 直接常量 符号常量 16 5 2常量和变量 常量直接常量直接常量是在程序中直接给出的数值 字符 日期等具体的数据值 按照数据类型分类 可以将直接常量分为以下几类 字节型 整型和长整型常量 单精度和双精度浮点型常量 逻辑型常量 字符型常量 直接常量 日期型常量 字符型常量的引号必须是西文双引号 17 5 2常量和变量 常量符号常量符号常量是用一个标识符代表一个直接常量 用这个标识符作为常量名 用户自定义的符号常量 定义格式 系统内部定义常量 用户自定义的符号常量 符号常量 Const符号常量名 As数据类型 常量表达式 ConstPi 3 141592653589AsSingerConstDa 1 1 68 ConstMAsInteger 45 D tea asString 18 5 2常量和变量 变量变量是在程序执行过程中 其值能够改变的量 变量名的命名遵循标识符的命名规则 在变量使用之前需要对变量所描述数据的数据类型进行声明 在变量使用之前提前声明变量称为显式声明 没提前声明而直接使用则称之为隐式声明 显式声明 Dim Public Private Static 变量名1 As类型1 变量名2 As类型2 DimaAsIntegerDimc 19 5 2常量和变量 变量隐性声明如果没有声明就直接使用 VisualBasic会自动根据数据值对其规定数据类型 后缀法声明在VisualBasic中 对有些数据类型的变量 允许直接在变量名后面加上数据类型符 即后缀 指定该变量的数据类型 X 35 X为Integer类型Y VisualBasic6 0编程 Y为String类型 xa 变量xa是整型数据xb 变量xb是货币型数据xc 变量xc是字符型数据 20 5 2常量和变量 强制显式声明变量语句VisualBasic虽然不要求必须对变量进行声明 但是不声明变量经常会出现很多错误 所以一般编程者希望在运行程序之前由系统编译器帮助检查程序中是否有未显式声明的变量 如果希望这样做 可以在通用声明部分用强制显式声明语句 格式 这个语句所实现的功能也可以通过VisualBasic系统的选项功能来设置 打开 工具 选项 菜单项 在 编辑器 选项卡下 选中 要求变量声明 同样可以达到这样的功能 OptionExplicit 选择 21 5 3运算符和表达式 运算是对数据进行加工的过程 描述不同运算的符号称为运算符 参与运算的数据称为操作数 在VB中 运算符有算术运算符 字符串运算符 关系运算符 逻辑运算符 表达式用来表示某个求值规则 可以由关键字 运算符 常量 变量 函数 对象和配对的圆括号以合适的形式组合而成 每个表达式都有一个惟一的值作为表达式的值 根据运算符的不同 可以将表达式分为算术表达式 字符串表达式 关系表达式 逻辑表达式 22 5 3 1算术运算符及其表达式 算术运算符是专用来进行数学计算的运算符 VisualBasic提供的算术运算符共有7个 除负号为单目运算符外 其余的都为双目运算符 即需要两个操作数完成的运算 23 5 3 1算术运算符及其表达式 算术表达式是由算术运算符连接操作数构成的表达式 其运算结果是数值 由于一个表达式中可能出现多种算术运算符 所以计算的时候要按照优先级来进行运算 优先级越高的越先计算 圆括号可以改变优先级 括号内的优先级最高 算术运算符的操作数可以是数值型 数字字符型或逻辑型 计算时数字字符型和逻辑型数据自动转换为数值型后再参与运算 逻辑型 数字字符型 数值型 运算 24 注意 的运算规则和数学里面的运算规则一样 计算时按照 先乘除 后加减 的规则计算 整除运算的运算规则是先计算两个整数的商 再丢弃商值的小数部分 若参加运算的除数或被除数不是整数 则按照四舍五入的方法先进行取整 然后再按照整除运算的规则计算结果 例如8 3的结果是2 5 8 3的结果是2 25 注意 aMODb的值为a整除b后的余数 如果参加计算的数据是小数 先对它们进行四舍五入取整 然后再完成求模运算 如果参加运算的有负数 用绝对值参加取模运算 运算结果的符号和a的符号一致 例如 5 6MOD3的结果是0 5MOD3的结果是 2 也可以对日期型数据进行计算 用来计算日期之间的关系 如 12 19 1999 11 16 1999 的结果为33 表示1999年12月19日到1999年11月16日之间有33天 11 16 1999 33的结果为 12 19 1999 表示从1999年11月16日后推33天是1999年12月19日 26 5 3 1算术运算符及其表达式 例1 若有如下程序 分别声明变量a b分别赋值为2和3 在窗体的单击事件中测试各种算术运算的结果 PrivateSubForm Click a 2 b 3Printa b a bPrinta b aModbPrinta b a bPrinta bEndSub 两行语句一行书写 27 编写的窗体单击事件过程代码如下 PrivateSubForm Click DimxAsInteger aAsIntegerDimbAsInteger cAsIntegerx 36a x 10 求十位数b xMod10 求个位数c b 10 a 生成新的数Print 处理后的数 cEndSub 例2 给定一个两位正整数 如36 交换个位数和十位数的位置 并将处理后的结果显示在窗体上 运行程序后单击窗体 输出结果是 处理后的数 63 5 3 1算术运算符及其表达式 28 将数学公式转换为VB表达式 程序中写为 Sqr a b sin 30 3 14 180 x1 2 1 y 3 2 29 5 3 2字符串运算符及其表达式 字符串运算符的作用是实现字符串的连接 也称连接运算符 字符串运算符有 和 当参加运算的操作数都是字符型数据时 两运算符的作用和结果相同 都是将两个字符串连接起来 组成一个新的字符串 当连接运算的操作数并非都为字符串的时候 两个连接运算符的结果有所差别 连接符在任何时候都做字符串连接操作 如果操作数有非字符串数据 先将其转换为对应的字符串数据 再进行连接操作 xyz 123 结果为新字符串 xyz123 xyz 123 结果为新字符串 xyz123 123 xyz 结果为新字符串 123xyz 123 456 结果为新字符串 123456 123 xyz 结果为新字符串 123xyz 30 5 3 2字符串运算符及其表达式 当 连接符作为运算符时 若其中一个字符串为数字字符型数据 另一个为数值型数据时 先将数字字符型变为数值型 再实现算术加法运算 若两个都为数值型数据 则直接按照算术运算符实现加法运算 若其中一个为数值型数据 另外一个为非数字字符型数据 系统则会提示出错 123 45 结果为数据168123 45 结果为数据168 VisualBasic编程 45 程序会提示出错 为了避免 做连接运算时与加法运算混淆 一般都使用 作为连接符号使用 但使用 连接符时必须在 的前面和后面各增加一个空格避免出错 这是因为符号 的另一个含义是长整型的类型符 如果变量与符号 接在一起 VB系统先把它作为类型定义符处理 因而会出现语法错误 31 例如 100 123 结果为223 100 123 结果为 100123 Abc 123 出错 100 123 结果为 100123 100 123 结果为 100123 Abc 123 结果为 Abc123 Abc 123 结果为 Abc123 想一想 5 3 2字符串运算符及其表达式 32 例3编写一个简单的加法程序 用两个文本框存放被加数和加数 另外一个文本框存放结果 单击 计算 按钮将计算结果显示在结果框中 单击 算式 按钮将整个算式完整显示在算式的标签中 5 3 2字符串运算符及其表达式 33 PrivateSubCommand1 Click Dims1AsInteger s2AsInteger s3AsIntegers1 Val Text1 Text s2 Val Text2 Text s3 s1 s2Text3 Text s3EndSub PrivateSubCommand2 Click Label3 Caption Label3 Caption Text1 Text Text2 Text Text3 TextEndSub 5 3 2字符串运算符及其表达式 34 练习 Privatesubform click a 武汉 b 科技大学 printa bprinta bc 123printc 4 c 4 printc 4 c 4 d 123 printd 4 d 4 printd 4 d 4 Endsub 想一想 35 5 3 3关系运算符及其表达式 关系运算符也称为比较运算符 用来比较两个操作数之间的大小关系 操作数可以是数值型数据 字符 串 型数据 日期型数据等 但不能是逻辑型数据 若为逻辑型数据则需要根据逻辑型数据向数值型数据转换的规则转换后再进行运算 关系运算的结果是逻辑值 即运算的结果只有True和False两种 数值型数据 字符型数据 日期型数据 逻辑型数据 数值型数据 运算 36 5 3 3关系运算符及其表达式 37 5 3 3关系运算符及其表达式 数值型数据在进行比较的时候 直接比较其值大小 例如 5 3的结果为True 日期型数据比较大小时 VB会把日期型数据看成一个yyyymmdd的8位整数 按照数值比较其大小 例如 1999 5 6 2003 6 13 的结果为False 字符型数据比较大小时 若为单个字符 比较其ASCII码值 若为字符串时 依次从左边第一个字符开始比较 直到发现一个不相同的为止 由第一个不相同的字符的大小的关系代表字符串的大小 若字符串长度不相等 短字符串尾部可以补空格比较 常见的字符值由对应的ASCII码表中的顺序决定 常见字符ASCII码大小关系如下 例如 sab aab 的结果为True abc ABC 的结果为False 空格 0 1 9 A B Y Z a b y z 任何汉字 38 关系运算的规则如下 1 当两个操作数均为数值型 按数值大小比较 2 字符串比较 则按字符的ASCII码值从左到右一一比较 直到出现不同的字符为止 例 ABCDE ABRA 结果为False 5 3 3关系运算符 39 10 3 20 5 3 3关系运算符及其表达式 逻辑值不能参加运算 如果比较中出现逻辑值 先将逻辑值转换为对应的数值型数据再进行比较 例如 10 3 20的结果先计算10 3的结果为False 然后将False转换为数值0 将结果再和20比较 结果为True False 0 True 40 5 3 3关系运算符及其表达式 数值型数据与数字字符型数据比较时 将字符型数据转换为对应的数值型数据进行计算 如 29 189 按数值比较 结果为False 数值型与不能转换成数值型的字符型比较 如 77 sdcd 不能比较 系统将提示出错 关系运算没有优先级 也可以认为具有相同的优先级 所以计算的时候按照从左到右的顺序进行计算 41 例 Privatesubform click print3 2and32and33or2 3Print10 3 20Endsub 想一想 42 练习 Privatesubform click a 1 b 2 c 3Printa 5 b 3Print VisualBasic bEndsub 想一想 43 5 3 4逻辑运算符及其表达式 逻辑运算符亦称为布尔运算符 用来对逻辑型数据进行各种逻辑运算 它的操作数经常是关系表达式或逻辑型数据 其结果也仍然是逻辑型数据 即True或False 44 5 3 4逻辑运算符及其表达式 逻辑运算的结果比较复杂 运算规则如表下 45 5 3 4逻辑运算符及其表达式 计算逻辑表达式时 如果存在关系表达式 关系表达式的优先级高 先运算关系表达式 再运算逻辑表达式 如 4 5And5 10AndX 20 46 例 Privatesubform click print3 2and32and33or2 3Print10 3 20Endsub 想一想 47 5 3 5运算符优先级 每种同类型的运算符都有内部的运算符优先级 一个表达式中可以包括不同的运算符和函数 当各种算符出现在同一个表达式中时 也应该按照不同类型运算符的优先级进行运算 各种运算符的优先级如下 数值运算符 字符串运算符 关系运算符 逻辑运算符可以用括号改变优先顺序 使得括号内的运算优先级高于括号外的运算 对于多重括号 总是由内到外强制表达式的某些部分优先运行 括号内的运算总是最优先计算 48 VisualBasic表达式的书写规则 1 每个符号占一个位置 必须在同一基准并排书写所有符号都不能出现在上标 下标 如 23应该写成2 3 x1要写成x1 2 数学表达式中省略的乘号必须要写上 如数学表达式2x的VB算术表达式是2 x 否则含义就不同了 3 所有的括号都应该用 括号必须配对 不能出现 或者 4 数学中的有些符号不能出现在VB中 如 等 49 5 4常用内部函数 调用VB提供的内部函数的方法有两种 第一种方法 函数名 参数列表 第二种方法 函数名说明 1 使用库函数要注意参数的个数及其参数的数据类型 2 要注意函数的定义域 自变量或参数的取值范围 例如 sqr x 要求x 0 3 注意函数的值域 例如 exp 23773 的值就超出实数在计算机中表示的范围 50 数学函数 在三角函数中的自变量是以弧度为单位 如 sin300 将30度转换为弧度sin 3 14159 180 30 51 数学函数 Abs 1 正数 1Abs 5 负数 5 Exp 1 e1 e 2 718281828 Exp 5 e 5 6 73794699908547E 03 52 数学函数 符号函数Sgn返回值有三种 Sgn 3 1 参数为负数 Sgn 0 0Sgn 3 1 参数为正数 只有非负数才有平方根 可以是实数 Sqr 9 Sqr 9 56 53 数学函数 Fix 10 4 10Fix 5 6 5 Int 50 6 50Int 50 6 51 当x 0时就直接舍去小数若x 0则舍去小数位后再减1 54 随机数函数 直接使用Rnd函数每次得到的序列都是一样的 在使用中有时希望每次都得到不同的序列 那么就可以使用Randomize随机数种子生成器语句 使用在Rnd函数之前 这样可以使得Rnd函数产生的随机数为不同的序列 55 随机数函数 在实际使用中可能需要的随机数要扩大范围或者限制在特定范围内 若要得到0 50间 不包括50 的随机数 直接可以用得到的随机数乘以50 扩大随机数范围 即 Rnd 50 若要产生1 100的随机整数 Int Rnd 100 1Int 4 Rnd 1 可以产生1 4之间 含1和4 的随机整数 Rnd函数返回0 1 包括0和不包括1 之间的数 Rnd通常与Int函数配合使用 若要生成 a b 区间范围内的随机整数 可以用公式Int b a 1 Rnd a 56 使用Rnd函数之前 先用Randomize语句来初始化随机数生成器例通过随机函数产生2个两位正整数 求这2个数之和并显示出来 随机数函数 57 编写的窗体单击事件过程代码如下 PrivateSubForm Click DimaAsInteger bAsInteger cAsIntegerRandomize 初始化随机数生成器a Int 90 Rnd 10 产生 10 99 区间内的随机整数b Int 90 Rnd 10 c a b 求两数之和Print 产生的两个随机数 a bPrint 和数 cEndSub 随机数函数 58 字符串函数 Ltrim abcd abcd Rtrim abcd abcd Trim abcd abcd 说明 如果返回是字符型 则函数后有 字符 59 字符串函数 Left World 2 结果 Right World 2 结果 Mid World 2 3 结果 Wo Wo ld ld orl orl 60 字符串函数 Len name 结果 4 String 3 s 的结果为 sss String 3 sab 的结果同样为 sss Space 6 的结果为 61 字符串函数 Instr 4 xxpxxpXp p UCase HowAreYou HOWAREYOU LCase HowAreYou howareyou 从第4位开始 x p 第6位 结果为6 62 练习 s1 ABCDEFGH s2 Left s1 2 s3 Right s1 3 s4 Mid s1 3 2 Prints2 s3 s4s1 VisualBasic i Len s1 PrintInStr ABCDEF BC PrintInStr 2 ABCDEF BC PrintInStr 4 ABCDEF BC Str1 Hello s1 UCase Str1 s2 LCase Str1 Str1 Space 2 Prints1 s2 Str1 10 想一想 63 练习 100mod3100 3 20 ABC abc DateInt 45 235 Fix 45 235 Len howareyou Left visualbasic 6 153False当前系统日期 464512visual 64 转换函数 ASCII码转换函数 Asc China 结果 67 大写字母C的ASC 码值为67 Chr 100 结果 d 小写字母d的ASC 码值为100 65 转换函数 直接转换函数 Str 323 1 结果 323 1 正数无符号 转换成空格Str 323 1 结果 323 1 负数的符号直接转换 无空格N1 Val 1 234 N1的值是1 234数值转换N2 Val 1 34ASD45 N2的值是1 34字母后忽略N3 Val 12ASD N3的值是 12字母后忽略N4 Val ASD123 N4的值是0字母开头为0N5 Val HFFFF N4的值是 1可以识别八 十六进制N6 Val 1 2e2 N6的值为120单精度型数据 66 日期和时间函数 67 说明 1 日期和时间函数使用相对简单 若无参数 则返回系统的时间或日期 若有参数 确定其参数均为日期型的数据 即可操作 2 函数的参数可为任何日期型数据 包括函数的结果 例如 Year Now 返回当前日期的年份 Day 7 25 2006 结果为25 3 WeekDay函数的结果是将周日认为是一个星期的开始 即 周日对应的返回值为1 依次类推 日期和时间函数 68 PrivateSubForm Click x 1 1 2008 a x Dateb Weekday x c Year Date d Month Date e Hour Time f M

温馨提示

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

最新文档

评论

0/150

提交评论