52
第第第 VB 第第第第

第二章 VB 语言基础

  • Upload
    adelle

  • View
    94

  • Download
    8

Embed Size (px)

DESCRIPTION

第二章 VB 语言基础. 本章要点. 本章将介绍 Visual Basic 程序设计基础之程序书写规则,数据类型、常量、变量、运算符和表达式、以及常用的内部函数;这些内容以及后续章节的流程控制语句、数组及字符串都是编写程序代码的基础,对于初学者比较难于理解,必须认真学习。. 本章主要内容. 2.1 程序书写规则. 2.2 VB 的数据类型. 2.3 常量和变量. 2.4 运算符和表达式. 2.5 常用内部函数. 2.1 编码规则. 2.1 编码规则. 1 、在 VB 代码中,字母不区分大小写. - PowerPoint PPT Presentation

Citation preview

Page 1: 第二章 VB 语言基础

第二章VB 语言基础

Page 2: 第二章 VB 语言基础

本章将介绍 Visual Basic 程序设计基础之程序书写规则,数据类型、常量、变量、运算符和表达式、以及常用的内部函数;这些内容以及后续章节的流程控制语句、数组及字符串都是编写程序代码的基础,对于初学者比较难于理解,必须认真学习。

本章要点

Page 3: 第二章 VB 语言基础

2.1 程序书写规则2.2 VB 的数据类型2.3 常量和变量2.4 运算符和表达式2.5 常用内部函数

本章主要内容

Page 4: 第二章 VB 语言基础

VB 对用户程序代码中关键字的首字母总被转换成大写字母,其余字母一律转换为小写字母。提高了程序的可读性。 VB 将关键字中每个单词的首字母自动转换成大写字母。 对于用户自定义的变量名、过程名、函数名, VB以第一次定义的为准,以后输入的自动转换成首次的形式。

1 、在 VB 代码中,字母不区分大小写2.1 编码规则2.1 编码规则

Page 5: 第二章 VB 语言基础

2 、语句书写自由 VB 在同一行上可以书写一条语句或多条语句。如果多条语句写在一行上,语句间用冒号“:”隔开。例如:Form1.Width=300 : Form1.Caption= " 您好 "为了方便阅读,最好一行写一条语句。

一条语句如果在一行内写不下, VB 允许将单行语句分若干行书写,在行后加入续行符(一个空格后面跟一个下划线“ _” 。)将长语句分成多行。 Addresses = “ 天津市河北工业大学” & _ “ 现代化教学中心”原则上,续行符应加在运算符的前后,续行符不应将变量名和属性名分隔在两行上。

3 、续行的使用

Page 6: 第二章 VB 语言基础

注释可以和语句在同一行,并写在语句的后面,也可占据一整行。例如:ˊ 这是从屏幕左边ˊ 开始的注释。Text1.Text = “Hi!” ˊ 在文本框中放欢迎词。

4 、在 VB 中使用注释

注释有三种情况: 用 Rem 开头引导注释行。 用撇号“ˊ”开始引导语句后的注释。 使用“设置 / 取消注释块”命令将若干语句行或文字设置 / 取消为注释块。注意 : 在同一行内,续行符之后不能加注释。

Page 7: 第二章 VB 语言基础

5 .使用不同数制 十进制 八进制 十六进制 9 &O11 &H9 15 &O17 &HF 16 &O20 &H10 20 &O24 &H14 255 &O377 &HFF

数制 主要数制: 十进制数,是 VB 中的默认数制辅助数制: 八进制数( &O )和十六进制数( &H ), 个别情况使用,如屏幕和颜色的设置。

Page 8: 第二章 VB 语言基础

功能:用来标记变量名、函数名和类型名构成元素: A ~ Z 、 a ~ z 、 0 ~ 9 或下划线 _ 。形式:以字母或下划线开始,后跟字母、数字或下划线组成的字符串(中间不许有空格)。注意:标识符不能分行书写。

6 、 VB 中的标识符

例如:以下是 Visual Basic 6.0 中合法的标识符Dim MyString As String Const Pi=3.1415926535897932 Public Function getValue () As Integer

Page 9: 第二章 VB 语言基础

Visual Basic 提供了许多基本数据类型,如: Integer( 整型 ), String (字符型) , Boolean (逻辑型) , Currency (货币型)等,每种数据类型占用一定的内存,允许存储一定范围的值。

2.2 数据类型2.2 数据类型

Page 10: 第二章 VB 语言基础

数据类型

标准类型

自定义数据类型

数值型( numeric )

日期型( Date )逻辑型( Boolean )字符型( String )对象型( Object )变体型( Variant )

整型( Integer )长整型( Long )

货币型( Curency )字节型( Byte )

浮点型 单精度( Single )双精度( Double )

Page 11: 第二章 VB 语言基础

⑴ 数值( Numerice )数据类型有整型( Interger ) (%) 长整型( Long ) (&) 单精度型( Single ) (!) 双精度型( Double ) (#) 货币型( Currency ) (@) 字节型( Byte ) ($) ① 整型( Interger )和长整型( Long )用于保存整数 可以是正整数、负整数或者 0 。 整型数用两个字节存储,表示数的范围为: -32768 ~ +32767 长整型数用 4 个字节存储,表示数的范围为: -2147483648 ~+2147483647例如: 123% 、 -123% 、 +123% 均表示整数,而 123.0 就不是整数。123& 、 1234567& 均表示长整数。 123,456 则是非法数。

1 、标准数据类型1 、标准数据类型

Page 12: 第二章 VB 语言基础

② 单精度型( Single ) 用来表示带有小数部分的实数4 个字节存储。单精度浮点数最多有 7 位有效数字,单精度浮点数有多种表示形式: ±n.n ( 小数形式 ) ±n!( 整数加单精度类型符 ) ±nE±m( 指数形式 ) ±n.nE ±m ( 指数形式 ) 例如:123.45 、 0.12345E+3 、 123.45 !都是同值的单精度数。如果某个数的有效数字位数超过 7 位,当把它赋给一个单精度变量时,超出的部分会自动四舍五入。例如:把 213456.2567 赋给单精度变量 aa ,在内存中 aa 的值为 213456.3 。 ③ 双精度型( Double )用 8 个字节存储。科学记数法格式 : ±aD±c 或 ±ad±c例如 314.159265358979D-2 表示 3.14159265358979 。双精度浮点数最多可有 15 位有效数字。

Page 13: 第二章 VB 语言基础

④ 货币型( Currency )是一种专门为处理货币而设计的数据类型,是一种特殊的小数。 保留小数点右边 4 位和小数点左边 15 位。 用 8 个字节存储 如果变量已定义为货币型,且赋值的小数点后超过 4 位,那么超过的部分自动四舍五入。 例如,将 3.12125 赋给货币型变量 aa ,在内存中 aa 的实际值是 3.1213 。 ⑤ 字节型( Byte )用来存储二进制数。 如果变量包含二进制数,则将它声明为 Byte 数据类型。Byte 是从 0-255 的无符号类型,不能表示负数。

Page 14: 第二章 VB 语言基础

⑵ 日期( Data )数据类型 用 8 个字节的浮点数存储,表示从公元 100 年 1 月 1 日到公元 9999 年 12 月 31 日的日期,时间范围则从 0 点 0 分0 秒到 23 点 59 分 59 秒即 0 : 00 : 00 ~ 23 : 59 : 59 。表示方法有两种:一种是以“ #” 括起来的字面上被认为是日期和时间的字符;另一种是以数字序列表示。例如: #03/10/2000# 、 #2000-03-10# 、 #March 1 , 2000# 、 #2000-3-15 13 : 30 : 15# 。 以数字序列表示时,小数点左边的数字代表日期 (Date) ,小数点右边的数字代表时间( Time )。其中, 0 为午夜 0点、 0.5 为中午 12 点;负数代表 1899 年 12 月 31 日之前的日期和时间。

Page 15: 第二章 VB 语言基础

⑶ 逻辑( Boolean )数据类型 逻辑数据类型用于逻辑判断 , 只有两个值:真 (True) 、假 ( False) 若变量的值是 “ true/false” 、“ yes/no” 、“ on/off” 信息,则可将它声明为 Boolean 类型。 缺省值: False 逻辑数据转换成整型数据时,真 转换为 -1 ,假转换为 0 ; 其他类型数据转换为逻辑数据时,非 0 数转换为 真, 0 转换为 假。

Page 16: 第二章 VB 语言基础

⑷ 字符( String )数据类型 是一组由计算机字符组成的序列,每个字符都以 ASCII 编码表示。用一个字节表示。在 VB 中,字符串要用双引号括起来。 例如:“ Visual Basic” 、“中国天津”、“ 123.456” 有两种字符串:变长字符串和定长字符串。变长字符串的最大长度为 231-1 个字符;定长字符串的最大长度为 65535 个字符 。

Page 17: 第二章 VB 语言基础

⑸ 对象( Object )数据类型 用 4 个字节来存储,该 32 位地址可以引用应用程序中的对象。⑹ 变体( Variant )数据类型 变体型数据是一种可以随时改变数据类型的数据。如:Dim SomeValue As Variant ˊ 定义 SomeValue 为变体型变量SomeValue = “17” ˊSomeValue 包含 “ 17” (双字符的串)SomeValue = SomeValue - 15 ˊ 现在 SomeValue 包含数值 2SomeValue = "U" & SomeValueˊ 现在 SomeValue 包含 "U2" (双字符的串)

Page 18: 第二章 VB 语言基础

形式: Type 自定义类型名 元素名 [( 下标 )] As 类型名 [ 元素名 [( 下标 )] As 类型名 ] End Type其中:元素名 表示自定义类型中的一个成员 下 标 表示该成员是一个数组 类型名 该成员的标准数据类型例如 : 定义班级中学生的基本情况的数据类型如下:

Type Students ˊ 声名 Students 是自定义类型名 Name As String * 8 ˊName 是 Students 类型中的成员之一 Age As Integer ˊAge 是 Students 类型中的成员之一 ddress As String * 2 ˊAddress 是 Students 类型中的成员之一 End Type

2 、自定义类型2 、自定义类型

Page 19: 第二章 VB 语言基础

声明变量: Dim Student1 As Students要表示 Student1 变量中的某个元素,可使用下列方式:变量名 . 元素名例如: Student1.Name=" 李萍 "Student1.Age=19使用自定义类型应注意的问题: 自定义类型必须在标准模块( .Bas )中定义,默认是 Public 。 自定义类型中的元素类型是字符串型时,该字符串必须是定长字符串。 要分清自定义类型名和具有该类型的变量名。前者表示的是一种数据类型,如同 Integer 、 Single 等一样;后者是一个具有某种类型的变量, VB 根据变量的类型分配必要的存储空间。

VB 中标准数据类型表见课本 P27-28 页

Page 20: 第二章 VB 语言基础

常量 普通常量 符号常量

数值常量字符串常量逻辑常量日期常量

2.3.1 常量在程序运行过程中,其值始终保持不变的量称为常量

1 、普通常量:⑴ 数值常量:字节型、整型、长整型、定点及浮点常量。 字节型、整型、长整型都是整型常量,例如: 50 、 480085 、 -123 、 &O123 、 &H14 等。 定点常数是带小数点的正数或负数,如: 3.12436 、 123.123 、 -0.456 等。

2.3 常量和变量2.3 常量和变量

Page 21: 第二章 VB 语言基础

浮点常数又分为单精度浮点常数和双精度浮点常数,他们都由尾符、尾数、指数符号和指数四部分组成,其中尾符代表了浮点数的正负,指数是整数。例如: -3.7856E-2 、 78D3 所表示的值分别为 -0.037856和 78000 。 ⑵ 字符串常量:是用双引号括起来的一串字符,每个字符占用一个字节,如果是汉字,占用两个字节,但在 VB 中汉字被认为是一个字符。“abcd” ˊ 长度为 4 的字符串 “VB5.0 中文版” ˊ长度为 8 的字符串 ⑶ 逻辑常量:逻辑真 True 、 逻辑假 False ⑷ 日期常量#January 1 , 2000# 、 #5/12/98# 、 #1999-6-30# 、 #99-9-10 8 : 30 : 00# 都是正确的日期常量。

Page 22: 第二章 VB 语言基础

功能:设置符号常量为表达式的值。举例:下面的语句分别定义了四个符号常量。 Const NAME As String =“LiLin” ’ 定义 NAME 是符号常量,其值是字符串“ LiLin” Const NUM As Integer= 4450 ’ 定义 NUM 是符号常量,其值是整型数 4450

const 符号常量名 [As 类型 ]= 表达式 [ ,符号常量名 = 表达式 ]

2 .符号常量(用户声明常量) 用户声明常量是用一个符号名来代替数值或字符串,称为符号常量。 命名规则:符号名必须是以字母开头,由字母、数字、下 划线组成的长度不大于 255 的字符串。格式:

Page 23: 第二章 VB 语言基础

Const Pi=3.14159 ’ 定义 PI 是符号常量,其值是单精度数 3.14159 Const MAX As Integer=&O155 ’ 定义 MAX 是符号常量,其值是八进制数 155 使用符号常量的规则: 符号常量不能修改,也不能对符号常量赋新值。 符号常量名不能是 Visual Basic 中的保留字,如 Case 、 EndDo 、 If 等。 符号常量名必须以字母开头。通常,为了区别于其他变量, 符号常量用大写字母表示。 符号常量应先定义后使用,在整个模块中只需定义一次。 由于 VB 应用程序的结构层次分全局级、窗口级和模块级, 相应地一个符号常量也有不同的作用域。

Page 24: 第二章 VB 语言基础

1 变量和变量名变量是指在程序运行期间其值可以变化的量。命名规则: 变量名必须以字母 A ~ Z (或 a ~ z )开头。 构成变量名的字符串由英文字母、数字、下划线符号组成。 变量名中间不允许有空格。 Visual Basic 的保留字不能作为变量名。 在 Visual Basic 语言中,变量名不区分大小写。如 ABC 、abc 、 aBc 都认为是一个相同的变量名。为了便于区分,一般变量名首字母用大写字母,其余用小写字母表示,而符号常量全部用大写字母表示。

2.3.2 变量

Page 25: 第二章 VB 语言基础

2 变量的声明及类型⑴ 用 Dim 关键字声明变量 格式: Dim 变量名 [As 类型 ] 其中: [As 类型 ] 可选项。省略时,变量类型默认为变体类型。 用途:在模块过程中或窗体级的通用过程中定义变量。 例子: Dim Age As Integer ‘ 定义 Age 为整型变量 Dim StrTemp As String ‘ 定义 StrTemp 为不定长字符型变量 Dim StrName As String * 10 ‘ 定义 StrName 为定长字符变量 Dim Number As Single, Count As Single ‘ 定义 Number 和 Count 都是单精度变量 Dim Number , Count As Single ‘ 定义 Number 为变体变量, Count 为单精度变量 从上面的例子可知: ★ 字符串变量有定长和不定长两种形式; ★ 在一个 Dim 语句中定义多个变量时类型声明不能共用。

Page 26: 第二章 VB 语言基础

⑵ 用 Static 关键字声明变量 格式: Static 变量名 As 类型名 用途:在过程中定义静态变量和静态数组。 说明:该变量的值在函数或过程执行结束后能保存下来, 所以,下一次执行时,该值不再初始化。 例子: Private Sub form_Click () Dim A1 As Integer Static A2 As Integer A1=A1+1

A2=A2+1 End Sub 该过程中 A1 和 A2 定义为不同类型的整型变量。 A1 的值每调用一次过程就自动加 1 ,过程调用一结束,其值就变为 0 。 A

2 的值每调用一次过程也自动加 1 ,过程调用结束时, A2 的值等于调用该过程的次数。

Page 27: 第二章 VB 语言基础

⑶ Public 关键字声明变量用途:在全局模块中使用,定义的变量是全局变量,作用域 为整个应用程序。声明的方式: ★ 单击“工程”菜单上的“添加模块”选项,添加一个新模块文件或打开现有的模块文件。 ★ 用 Public 语句定义变量,格式为: Public 变量名 As 类型名例子: Public PI As Single Public AA As Integer

Page 28: 第二章 VB 语言基础

⑷ 用类型说明符直接声明变量 格式:变量名 + 类型说明符 类型说明符放有:% 表示整型 & 表示长整型! 表示单精度型 # 表示双精度型@ 表示货币型 $ 表示字符型例如: Name $ ˊ定义字符型变量 Price ! ˊ定义单精度型变量 Age% ˊ 定义整型变量⑸ 隐式声明变量在 VB 中,对未进行声明就直接使用的变量叫做隐式声明,其类型为 Variant 类型。应避免使用。

Page 29: 第二章 VB 语言基础

① 局部变量—— ☆ 用 Dim 语句定义,只能在本过程中使用,其他过程不可访问。☆ 随过程的调用分配存储单元,进行变量的初始化,一旦过程结束,变量的内容自动消失,并释放所占用的存储单元。☆ 不同的过程中可使用相同的变量名。 ② 窗体 / 模块级变量——☆ 用 Dim 语句或 Private 语句,在“通用声明”段中定义。放在一个窗体 / 模块的任何过程外,可被本窗体 / 模块的任何过程访问。 ③ 全局变量☆ 用 Public 语句声明,在“通用声明”段中定义,放在标准模块的任何过程或函数外,可被应用程序的任何过程或函数访问。☆ 其值在整个应用程序中始终不会消失和重新初始化,只有在整个程序结束时,才会释放。

3 变量的作用域

Page 30: 第二章 VB 语言基础

☆ 用 Static 语句定义的局部变量,在程序运行过程中该类变量的值可保留。☆ 每次调用过程时,用 Static 定义的静态变量保持原来的值,而用 Dim 定义的变量要重新初始化。

声明变量时作用域的规则: 在窗体、模块中声明的变量是模块级的,对整个模块都有效。 在过程内用 Dim 语句声明的变量只在过程内有效。 用 Public 语句声明的变量是程序级的,在整个程序中起作用。 用 Static 语句声明的变量是静态变量,即使在过程结束后也一直保存着, VB 在任何时候都不会去初始化静态变量。

4 静态变量

Page 31: 第二章 VB 语言基础

运算符是代表 Visual Basic 某种运算功能的符号。Visual Basic 程序会按运算符的含义和运算规则执行实际的运算操作。 Visual Basic 中的运算符包括: 算术运算符、关系运算符、逻辑运算符和字符串运算符。

2.4 运算符和表达式

由常量、变量、运算符、函数和圆括号按一定的规则组成的式子称之为表达式。表达式运算后有一个结果,结果的类型由数据和运算符共同决定。表达式的书写规则:☆ 乘号不能省略。例如, x 乘以 y 应写成 x*y☆ 括号必须成对出现,均使用圆括号;☆ 表达式从左到右在同一基准上书写,无高低大小之分。

2.4 运算符和表达式

Page 32: 第二章 VB 语言基础

1 算术运算符运算符 功能 优先级 运算符 功能 优先级

∧ 指数 1 \ 整除 4- 负号 2 Mod 取余 5 乘 3 + 加 6/ 除 3 - 减 6

功能: 对诸如整型数、长整型数、单精度浮点数、双精度浮点数及货币型数进行操作。

1 算术运算符

Page 33: 第二章 VB 语言基础

说明: ☆ 算术运算符中,除负号“ -” 是单目运算符外,其余都是双目运算符。 ☆ +、-、×的概念和代数中的概念相同。 ☆ 除法运算有两种:/ — 一般除法,运算结果一般为单精度数。操作数有一个为双精度数时,结果为双精度数。如: 7#/3=2.33333333333\ — 整除,整数除法,结果为整数。如: 7\3=2 ☆ Mod 运算符是求两数相除后的余数。例如:23 Mod 7 ‘ 结果为 28.6 Mod 3 ‘ 结果为 0 11.4 Mod 5.2 ‘ 结果为 1 ☆ 算术运算符两边的操作数应为数值型。若是数字字符或逻辑型,则自动转换为数值型再运算。

先按四舍五入的原则对小数点后部分进行处理,然后运算

Page 34: 第二章 VB 语言基础

2 关系运算符运算符 功 能 例 子 结 果> 大于 "1234">"129" False

>= 大于等于 "ab c">="abc" False

< 小于 34<67 True

<= 小于等于 "23"<="3" True

= 等于 150=150 True

<> 不等于 "xyz"<>"XYZ" True

功能:对两个操作数进行大小比较,若关系成立,返回 True ,否则返回 False.

2 关系运算符

Page 35: 第二章 VB 语言基础

说明: ☆ 关系运算符是双目运算符,操作数可以是数值型或字符型。 ☆ VB 中 True 用 -1 表示; False 用 0 表示。 ☆ 如果两个操作数是数值型,则按其大小比较;如果两个操作数是字符型,则按字符的 ASCII 值从左到右一一比较。 ☆ 汉字字符大于西文字符。 ☆ 关系运算符中的等于“ = ” 是判断两边的值是否相等。3 逻辑运算符

运算符及功能:Not — 逻辑非,当操作数为假时,结果为真。Not F 为 TNot T 为 F

3 逻辑运算符

Page 36: 第二章 VB 语言基础

And — 逻辑与,两个操作数都为真时结果为真逻辑数 A 逻辑数 B 结果 T

T T TT F FF T FF F F

Or — 逻辑或,两个操作数只要有一个为真,结果就为真。逻辑数 A 逻辑数 B 结果 T

T T TT F TF T TF F F

Not — 逻辑非,返回操作数的相反逻辑值逻辑数 A 结果 T

T F

F T

Page 37: 第二章 VB 语言基础

Xor — 逻辑异或,两个操作数不同时,结果为真,否则为假。逻辑数 A 逻辑数 B 结果 T

T T FT F TF T TF F F

Eqv — 逻辑等,两个操作数相同时,结果为真。逻辑数 A 逻辑数 B 结果 T

T T TT F FF T FF F T

Imp — 蕴含,第一个操作数为真,第二个操作数为假时,结果为假,其余真。逻辑数 A 逻辑数 B 结果 T

T T T

T F F

F T T

F F T

Page 38: 第二章 VB 语言基础

说明:☆ 逻辑运算符中最常用的是 Not 、 And 、 Or ,其中 And 、 Or 用于将多个关系表达式进行逻辑判断。若有多个条件,And 必须全部条件都为真才为真;而 Or 只要有一个条件为真则为真。如:某单位选拔年轻干部,条件为:年龄小于等于 35岁、职称为高级工程师、政治面目为中共党员。表示为:年龄 <=35 And 职称 =“ 高级工程师” And 政治面目 =“ 中共党员”若表示为:年龄 <=35 Or 职称 =“ 高级工程师” Or 政治面目 =“ 中共党员”表示三个条件只要有一个成立即可。☆ 如果逻辑运算符对数值进行运算,则进行数字的二进制逐位操作。如: 12 And 7 表示对 1100 ( 12 )与 0111( 7 )进行逐位与操作。

1 1 0 0 0 1 1 1

———— 0 1 0 0

Page 39: 第二章 VB 语言基础

这种特殊运算符用途如下:① And 运算用来屏蔽某些位。如键盘事件中判断是否按了 shift 、 ctrl 、 alt 键。例如: cl = cl And 7 ‘仅保留 cl 中的最后三位,其余位置 零。这里的“ =” 是赋值号。② Or 运算用来把某些位置 1 。例如: cl=cl Or 7 ‘ 把 cl 中的最后三位置 1 ,其余位保持原 值不变。③ 对一个数连续进行两次 Xor操作,可恢复原值。如设计动画时,用 Xor 模式可恢复原来的背景。

Page 40: 第二章 VB 语言基础

4 字符运算符运算符: & 或 +功能: & — 连接符两边的操作数不管是字符还是数值型,进行操作前,系统先将操作数转换成字符型,然后再连接。+ — 两个操作数应均为字符型,若均为数值型,则进行算术加运算;若一个为数字字符,另一个为数值型,则自动将数字字符转换为数值,然后进行算术加运算;若一个为非数字字符型,另一个为数值型,则出错。例如: “12000”+12345 结果为“ 24345” 进行的加运算 “12000”+“12345” 结果为“ 1200012345” 两个字符串连接 “12000”&”12345” 结果为“ 1200012345” “abcde” & 12345 结果为“ abcde12345” 说明: 在字符串变量后使用“ &” 运算符,变量和运算符之间应加一个空格。因为“ &” 既是字符串连接符,也是长整形类型符,当变量名和符号“ &” 连在一起时, VB 把它作为类型符号处理,这时报错。

4 字符运算符

Page 41: 第二章 VB 语言基础

5 不同数据类型的转换 在算术运算中,如果操作数采用不同的数据精度,则 VB 规定,运算结果的数据类型采用精度高的数据类型。 Integer < Long < Single < Double <Currency 整型 < 长整型 < 单精度 < 双精度 < 货币型

6 运算符的优先级算术运算符 > 字符运算符> 关系运算符> 逻辑运算符

运算符和数据类型举例例 : 关系运算符例子。 例 : 字符数据例子。

6 运算符的优先级

Page 42: 第二章 VB 语言基础

内部函数数学函数转换函数字符串函数日期函数约定:N — 数值表达式 C — 字符表达式 D — 日期表达式 $ — 函数名后有该字符,表示返回值为字符串

2.5 常用内部函数2.5 常用内部函数

Page 43: 第二章 VB 语言基础

1 数学函数

说明: ☆ 在三角函数中,以弧度表示; sqr 的自变量不能是负数 ☆ Log 和 Exp 是一对互为反函数,即 Log(Exp(N)),Exp(Log(N))结果还是原来各自变量的值。

函数名 含 义 示 例 结 果Abs(N)Atn(N)Cos(N)Exp(N)Int(N)Log(N)Rnd[(N)]Sin(N)Sgn(N)Sqr(N)Tan(N)

取绝对值反正切函数余弦函数e 为底的指数函数,即 ex

取整数部分以 e 为底的自然对数产生随机数正弦函数符号函数平方根正切函数

Abs(-3.5)Atn(1.0)Cos(0)Exp(3)Int(4.3)Log(10)RndSin(0)Sgn(-3.5)Sqr(9)Tan(0)

3.5.785398163397448120.08642.302585092994050-1 之间的数0-130

1 数学函数

Page 44: 第二章 VB 语言基础

例:随机函数的使用

☆ Rnd 函数返回小于 1 ,大于等于 0 的单精度随机数。 VB用于产生随机数的公式取决于称为种子( seed )的初始值。默认情况下,每次运行一个应用程序, VB 提供一相同的种子,即 Rnd产生相同序列的随机数。为了每次运行时,产生不同序列的随机数,可执行 Randomize 语句,格式如下:Randomize [number]用 number 将 Rnd 函数的随机数生成器初始化,该随机数生成器给 number 一个新的种子值。如果省略 number ,则用系统计时器返回的值作为新的种子。例子:① 将数学表达式 写成 VB 表达式 x*x+abs(y)+exp(3)+sin(3.14*30/180)-sqr(x*y)② 要产生 30 ~ 50 之间的随机数(包括 30 和 50 )int(Rnd*21+30)

x2+|y|+e3+sin30o-xy

Page 45: 第二章 VB 语言基础

以下为非基本数学函数的列表,皆可由基本数学函数导出:(正割) Sec(X) = 1 / Cos(X)

(余割) Cosec(X) = 1 / Sin(X)

(余切) Cotan(X) = 1 / Tan(X)

(反正弦) Arcsin(X) = Atn(X / Sqr(-X * X + 1))

(反余弦) Arccos(X) = Atn(-X / Sqr(-X * X + 1)) + 2 * Atn(1)

(反正割) Arcsec(X) = Atn(X / Sqr(X * X - 1)) + Sgn((X) - 1) * (2 * Atn(1))

(反余割) Arccosec(X) = Atn(X / Sqr(X * X - 1)) + (Sgn(X) - 1) * (2 * Atn(1))

(反余切) Arccotan(X) = Atn(X) + 2 * Atn(1)

(双曲正弦) HSin(X) = (Exp(X) - Exp(-X)) / 2

(双曲余弦) HCos(X) = (Exp(X) + Exp(-X)) / 2

导出函数

Page 46: 第二章 VB 语言基础

导出函数(续)(双曲正切) HTan(X) = (Exp(X) - Exp(-X)) / (Exp(X) + Exp(-X))

(双曲正割) HSec(X) = 2 / (Exp(X) + Exp(-X))

(双曲余割) HCosec(X) = 2 / (Exp(X) - Exp(-X))

(双曲余切) HCotan(X) = (Exp(X) + Exp(-X)) / (Exp(X) - Exp(-X))

(反双曲正弦) HArcsin(X) = Log(X + Sqr(X * X + 1))

(反双曲余弦) HArccos(X) = Log(X + Sqr(X * X - 1))

(反双曲正切) HArctan(X) = Log((1 + X) / (1 - X)) / 2

(反双曲正割) HArcsec(X) = Log((Sqr(-X * X + 1) + 1) / X)

(双曲余割) HArccosec(X) = Log((Sgn(X) * Sqr(X * X + 1) + 1) / X)

(反双曲余切) HArccotan(X) = Log((X + 1) / (X - 1)) / 2

以 N 为底的对数 LogN(X) = Log(X) / Log(N)

Page 47: 第二章 VB 语言基础

2.5.2 日期和时间函数1 .取得系统的日期和时间函数 格式: Date(),Time(),Now() 功能:提取计算机系统的当前日期或者时间。 说明: Date()返回系统日期, Time()返回系统时间,而Now() 则将时间日期一并返回。 示例:Print Date返回: 2004-2-14 Print Time返回: 20:38:38 Pinrt Now返回: 2004-2-14 20:38:58

2.5.2 日期和时间函数

Page 48: 第二章 VB 语言基础

2 .获得时间日期的分量 格式: Year(D),Month(D),Day(D),WeekDay(D) ; Hour(D),Minute(D),Second(D)功能:提取时间日期中的年月日周几和时分秒。说明:年月日时分秒不用说, WeekDay()返回的是指定日期是星期中的第几天,周日 =1 ,周一 =2 ,…周六 =7 。3.DateAdd 函数格式: DateAdd(增减单位,增减量,要增减的日期变量 )功能:对要增减的日期变量按日期形式做增减。要增减的时间日期单位格式见下表:格式 yyyy q m y d w ww h n s含义 年 季 月 年的第几天 日 周几 星期 时 分 秒

Page 49: 第二章 VB 语言基础

例如: DateAdd(“ww”,2,#2/14/2000#)表示在指定的日期上加 2周,函数的结果为 #2/28/2000# 。4. DateDiff 函数 格式: DateDiff( 间隔单位,日期 1 ,日期 2) 功能:两个指定的日期按日期形式求相差的日期。 例子:计算现在离 2006 年 6 月 30 日还有多少天。

DateDiff(“d”,Now,#2006/6/30#)5. DatePart 函数 格式: DatePart( 间隔单位,日期, [FDW],[FWY]) 功能:返回已知时间日期的一个分量。 例子:算一下 2050 年 2 月 1 日是星期几。

DatePart(“w”,#2050/2/1#)

格式 yyyy q m y d w ww h n s含义 年 季 月 年的第几天 日 周几 星期 时 分 秒

Page 50: 第二章 VB 语言基础

3 Shell 函数 在 VB 中,不但可以调用内部函数,还可以调用各种应用程序。这就是说,凡是能在 DOS 或 Windows 下运行的应用程序,都可以在 VB 中调用。它是通过 Shell 函数来实现的。 Shell 函数的格式如下:

Shell(pathname[,windowstyle])例:打开计算器程序。Dim RetVal RetVal = Shell("C:\WINDOWS\CALC.EXE", 1) 第二个参数指定为 1 指程序具有焦点并且是正常大小窗口,其它见下页。

3 Shell 函数

Page 51: 第二章 VB 语言基础

常量 值 描述vbHide 0 窗口被隐藏,且焦点会移到隐式窗口。VbNormalFocus 1 窗口具有焦点,且会还原到它原来的大小和位置。VbMinimizedFocus 2 窗口会以一个具有焦点的图标来显示。VbMaximizedFocus 3 窗口是一个具有焦点的最大化窗口。VbNormalNoFocus 4 窗口会被还原到最近使用的大小和位置,而当前活动的窗口仍然保持活动。VbMinimizedNoFocus 6 窗口会以一个图标来显示。而当前活动的的窗口仍然保持活动。

Page 52: 第二章 VB 语言基础

第二次上机实验教程第 4 章 实验二 将实例 1-8 分别运行 , 加深对 VB 中数据类型、运算符、表达式和函数等基本概念的理解。

课本 39 页 1,2,3,4 题作业 & 实验题