32
Visual Basic 程程程程 程 3 程 BASIC 程程程程 程程程程 程程程

Visual Basic 程序设计 第 3 章 BASIC 语言基础

  • Upload
    cicily

  • View
    147

  • Download
    8

Embed Size (px)

DESCRIPTION

Visual Basic 程序设计 第 3 章 BASIC 语言基础. 信息学院 魏洪涛. 主要内容. 基本数据类型:数值型、字符型、日期型、布尔型、变体型 常量与变量及其定义 不同数据类型的运算 表达式 内置函数. 基本数据类型. 均指二进制的位,尾数和指数都含 1 位符号位。 尾数在(- 1 , 1 )之间。. 基本数据类型 ( 续 ). 常量. 直接常量 数值常量,如 : 3.12 , -5 , 1.3E-8 日期时间常量,如: #10/12/2002 10:30# 字符串常量,如: "I'm fine" , "99.9" - PowerPoint PPT Presentation

Citation preview

Page 1: Visual Basic  程序设计 第 3 章  BASIC  语言基础

Visual Basic 程序设计

第 3 章 BASIC 语言基础

信息学院 魏洪涛

Page 2: Visual Basic  程序设计 第 3 章  BASIC  语言基础

Visual Basic

程序设计

主要内容 基本数据类型:数值型、字符型、日期型、

布尔型、变体型 常量与变量及其定义 不同数据类型的运算 表达式 内置函数

Page 3: Visual Basic  程序设计 第 3 章  BASIC  语言基础

Visual Basic

程序设计

基本数据类型类型 名称 ,声明

符 字节数 范围

整型 Integer ,% 2 -32768 (-215) ~ 32767

长整型 Long , & 4 -231 ~ 231-1

单精度 Single , ! 4 尾数 24 位 , 指数 8 位 *

双精度 Double , # 8 尾数 53 位 , 指数 11 位 *

字符型 String , $ 定长用 String*n (n- 长度 )

货币型 Currency , @ 8 在 ±2 63×10 - 4 之间

* 均指二进制的位,尾数和指数都含 1 位符号位。* 尾数在(- 1, 1)之间。

Page 4: Visual Basic  程序设计 第 3 章  BASIC  语言基础

Visual Basic

程序设计

基本数据类型 ( 续 )类型 声明类型 字节数 范围

布尔型 Boolean 2 True (-1) 或 False (0)

日期型 Date 8 公元 100.1.1 ~ 9999.12.31

字节型 Byte 1 0 ~ 255

定长字符型

String * n 2 * n注:赋值时不足时用空格补,超长时截尾

变体型 Variant ( 可省 )

任何类型数据

对象型 Object 4 任何对象引用 ( 指针 )

Page 5: Visual Basic  程序设计 第 3 章  BASIC  语言基础

Visual Basic

程序设计

常量直接常量 数值常量,如 : 3.12 , -5 , 1.3E-8 日期时间常量,如: #10/12/2002 10:30# 字符串常量,如: "I'm fine" , "99.9" 逻辑常量: True , False 用符号表示的 VB 常量,如:

vbCrLf 回车换行 chr(13) & chr(10)vbYesNo =4 ,在消息框 msgbox 中显示

Yes 和 No 按钮

Page 6: Visual Basic  程序设计 第 3 章  BASIC  语言基础

Visual Basic

程序设计

常量符号常量分 VB 已定义的符号常量和自定

义符号常量。VB 常量,如:

vbCrLf 回车换行 chr(13) & chr(10)vbYesNo =4 ,在消息框 msgbox 中显示

Yes 和 No 按钮好处:便于记忆,便于程序阅读查阅定义:在对象管理器中

Page 7: Visual Basic  程序设计 第 3 章  BASIC  语言基础

Visual Basic

程序设计

自定义符号常量-声明

声明常量的好处 :

便于识别(使用有意义的符号,如 P

I ) 便于修改(只需修

改定义部分) 减少差错:避免输

入错误,便于查错

例:

Const PI=3.1415926

Const VB as string _

= “Visual Basic“

Public Const conMax=99

Const PI2=PI*2

Const T911= #2001-9-11#

[Public|Private] Const [as < 类型 >] < 常量名 >=< 常量表达式>

Page 8: Visual Basic  程序设计 第 3 章  BASIC  语言基础

Visual Basic

程序设计

枚举类型-定义符号常量集合 语法[Public|Private] Enum 类型名 < 成员名 > [= 常量表达式 ]

< 成员名 > [= 常量表达式 ]

……

End Enum 如果没有常量表达式,则第

一个成员等于 0 ,后一个成员等于前一个成员加 1 。

常量表达式为 Long 类型 类型定义后,可以用在变量

声明语句中

例如:Enum Season

Spring =1

Summer

Fall

Winter

End Enum

结果: Season 是个符号常量集合,其中包含 4 个符号常量:Spring = 1 , Summer = 2

Fall = 3 , Winter = 4

使用: Dim jd As Season

在对象浏览器中观察自定义的类型

Page 9: Visual Basic  程序设计 第 3 章  BASIC  语言基础

Visual Basic

程序设计

变量及其命名规则 变量分内存变量和属性变量。 属性变量即对象的属性,其名称与类型是确定不

变的,例如 Caption 属性,其变量名是对象名 .Caption ,而其类型为 String 。

一般变量即指内存变量,其名称与类型是由程序员定义的。

变量名不能以数字开始,不能用 VB 的保留字 变量名只能由字母、数字和下划线组成 变量名可以使用中文,但较少见。

Page 10: Visual Basic  程序设计 第 3 章  BASIC  语言基础

Visual Basic

程序设计

变量的声明 变量的声明语句:

Dim|Public|Static < 变量名 > [as < 类型 >] 显式声明语句: Option Explicit

该语句强制变量必须先声明才能使用 例 : Dim x As Double

Dim i As Integer, j As Single, s As String

或 : Dim i%, j!, s$

注意:如声明 Dim x,y As Single

则 x 为 Variant 型(变体型), y 才是 Single 型

Page 11: Visual Basic  程序设计 第 3 章  BASIC  语言基础

Visual Basic

程序设计

表达式 常量、变量、函数用运算符连接而成 单独一个常量,或变量,或函数都可以

看作是一个表达式 运算结果称为表达式的值,该值的数据

类型即为表达式的类型。

Page 12: Visual Basic  程序设计 第 3 章  BASIC  语言基础

Visual Basic

程序设计

运算符 数值运算: + - * / (加减乘除) \ ( 整除 ) , 如 : 10\3= 3

mod ( 求余数 ), 如 : 12 mod 5 = 2

^ ( 幂 ), 如 : 3^4 =81 ( 34) 比较运算 : < <= = >= > <> 连接运算 : & ( 或 +) 逻辑运算 : not and or xor equ imp VB 内置函数

Page 13: Visual Basic  程序设计 第 3 章  BASIC  语言基础

Visual Basic

程序设计

数值运算 算术运算: + - * / (加减乘除) 整除: \ 如 11\3 ,结果为 3

求余数: mod 如 14 mod 5 ,结果为 4

幂运算: ^ 如 3^4 即 34 ,结果为 81

注意:整除( \ )和模运算符( mod )两侧遇小数点时,先四舍五入,再运算。如 :10.5\3.5=11\4=27.2 mod 3.5=7 mod 4=3

Page 14: Visual Basic  程序设计 第 3 章  BASIC  语言基础

Visual Basic

程序设计

数值运算的精度 数值表达式的运算结果一般为 Double 或 L

ong 类型。但如果含 Single 类型的变量或常量,则可能降低其运算精度。

数值常量也可以使用类型后缀 (%,&,!, # ) ,从而改变其参加运算的表达式的运算精度。例如:? 1/3 输出 .333333333333333? 1/3! 输出 .3333333

其中 3! 表示单精度常数 3 ,不是 3 的阶乘!

Page 15: Visual Basic  程序设计 第 3 章  BASIC  语言基础

Visual Basic

程序设计

日期型数据的运算 日期型数据可以加减天数(可含小数),结果仍

为日期型。例如: #2005-9-25# - 10

两个日期型数据之差为两个日期之间相隔的天数。例如: #2005-9-25# - #1986-5-20#

日期型数据可以看作一个数值型数据,即该日期与 #1899-12-30 00:00# 之间相差的天数,其中的整数部分为日期,小数部分为时间。该数值称为日期的 “系列数”。例如,用单精度数显示 #1900-1-1 6:00# :? Csng(#1900-1-1 6:00#) 输出 : 2.25

Page 16: Visual Basic  程序设计 第 3 章  BASIC  语言基础

Visual Basic

程序设计

比较运算 运算 : < <= = >= > <>

比较结果为 True 或 False 双字符运算符( <= 、 >= 和 <> )两字符之间不能

有空格,也不能写成 =< 、 => 、 > < 字符型数据按其内码( Unicode )大小比较

Unicode : 2 字节无符号整数,国际通用码。 ASCII 码表中的符号,码值不变,位长 16 。

注意:对浮点(单精度、双精度)数不要进行 =(等于)比较,如

?1/3 显示 .333333333333333?1/3= .333333333333333 显示 False

Page 17: Visual Basic  程序设计 第 3 章  BASIC  语言基础

Visual Basic

程序设计

字符串的连接运算字符串的连接运算: & ( 推荐使用)

或: + ( 尽量不用)例如:1. “安徽“ & “ 合肥“ = “安徽合肥“2. 在文本框 Text1 和 Text2 中分别输入

3 和 4 ,则表达式 Text1.Text+Text2.Text 的值为“ 34” 而不是 7 。这是因为 Text 属

性的类型是字符型,而不是数值型。

Page 18: Visual Basic  程序设计 第 3 章  BASIC  语言基础

Visual Basic

程序设计

逻辑运算A B Not A A And B

A Or B A Xor B A Equ B A Imp B

F F T F F F T T

F T T F T T F T

T F F F T T F F

T T F T T F T T

注: 1. A 、 B均为逻辑表达式。如果是数值,则其值非零时看作 True ,值为零时看作 False 。例如:表达式 4>3 And 5>4 的值为 True

2. F - False , T - True

Page 19: Visual Basic  程序设计 第 3 章  BASIC  语言基础

Visual Basic

程序设计

按位运算A B not A A and B A or B A xor B

0 0 1 0 0 0

0 1 1 0 1 1

1 0 0 0 1 1

1 1 0 1 1 0

例: A 1010 not A 0101 A or B 1110

B 1100 A and B 1000 A xor B 0110

Page 20: Visual Basic  程序设计 第 3 章  BASIC  语言基础

Visual Basic

程序设计

运算的优先级

算术运算^ → - (负)→ * / →

\ → mod →+ - (加减)

连接运算 &

比较运算 < <= = > >= 均同级

逻辑运算 not→and→or → xor→equ→imp

Page 21: Visual Basic  程序设计 第 3 章  BASIC  语言基础

Visual Basic

程序设计

例表达式 值 表达式 值

5+3^2 20\7

2*3=6 and 5>2*2

#8/1/2008# +7

“6=“ & “1+2+3“

Len(“Let’s go!”)

8=5 or not 3>2

“abc”>”ABC”

Int(7.65432) 8 mod 3

14

True

6=1+2+3

False

7

2

2008-8-8

9

True

2

Page 22: Visual Basic  程序设计 第 3 章  BASIC  语言基础

Visual Basic

程序设计

VB 内置函数 VB 内置函数是可以直接使用的函数 内置函数是调用内部子程序后 返回的

结果,称为函数的值。此值的类型称为函数的类型。

不同的函数有不同的参数,要注意每种函数所带参数的个数和类型。

函数可以直接放在表达式中,为数据处理带来很大方便。

Page 23: Visual Basic  程序设计 第 3 章  BASIC  语言基础

Visual Basic

程序设计

数学函数 三角函数 : 用弧度

Cos(x), Sin(x), Tan(x), Atn(x) 单位:弧度sin2 35° 表示为 sin(35*3.1416/180)^2

对数 :Log(x), 指数 :Exp(x) ( 以 e 为底 ) 平方根 : Sqr(x) 绝对值 : Abs(x) | x-y | 表示为 : abs(x-y) 取整 : Int(x) 取≤ x 的最大整数

Fix(x) 取 x 的整数部分

符号函数 Sgn : Sgn(x)=

VB 内置函数

{-1 当 x < 00 当 x = 01 当 x > 0

Page 24: Visual Basic  程序设计 第 3 章  BASIC  语言基础

Visual Basic

程序设计

数学函数的应用实例1. ∵ Tan(π/4)=1

π∴ = 4*Atn(1) = 3.14159265358979可用于定义常量:Const PI= 4*Atn(1)

2. e = exp(1) = 2.71828182845905

π = 4 * Atn(1)

e = Exp(1)

Page 25: Visual Basic  程序设计 第 3 章  BASIC  语言基础

Visual Basic

程序设计

随机函数 (伪)随机函数 Rnd : 产生 0~ 1 之间

的 1 个随机数, 0 < Rnd < 1 随机函数在测试、模拟、游戏等程序中有 广泛应用。例如,要产生一个1~ 6 之间的随机整数,可以用表达式:

Int(Rnd*6)+1 Randomize 语句:产生随机数的种子,

从而改变随机数序列。

VB 内置函数

Page 26: Visual Basic  程序设计 第 3 章  BASIC  语言基础

Visual Basic

程序设计

日期时间函数 不带参数:

日期函数 Date 和 Date$ 取系统日期 时间函数 Time 和 Time$ 取系统时间 日期和时间函数 Now 取系统日期和时间当天已过时间总秒数 Timer

带参数(日期型表达式): Year , Month , Day 分出年月日 Weekday 算出星期几 Hour , Minute , Second 分出时分秒

VB 内置函数

Page 27: Visual Basic  程序设计 第 3 章  BASIC  语言基础

Visual Basic

程序设计

字符串函数( 1 )

取子字符串 : Left 函数:取左边 n 个字符,如

Left(“Basic”,3)=“Bas” Right 函数:取右边 n 个字符,如

Right(“Basic”,2)=“ic” Mid 函数:取中间 n 个字符,如 :

Mid(“Basic”,2,3)=“asi” , Mid(“Basic”,2)=“asic”

取长度(字符数)函数 Len ,如 Len(“Go!”)=3

VB 内置函数

Page 28: Visual Basic  程序设计 第 3 章  BASIC  语言基础

Visual Basic

程序设计

字符串函数( 2 ) 求子串位置 InStr ,如

InStr(“Welcome” ,” come”) = 4

转换函数: 求值 Val ,取前面可作数值的字串转换,如

val(“1.23mm”)=1.23而 val(“1.23e2abc”)=1.23e2=123

数值转字符 Str : Str(12.3)=“12.3”代码→字符 Chr :例如 Chr$(65)=“A” 字符→代码 Asc : 例如 Asc(“A”)=65

注:中文 VB 使用双字节的 Unicode码

VB 内置函数

Page 29: Visual Basic  程序设计 第 3 章  BASIC  语言基础

Visual Basic

程序设计

字符串函数( 3 ) 空格函数 Space(n) ,返回 n 个空格 字符重复函数 String(n,c) ,返回 n 个

字串 c 的第一个字符大小写转换函数: Lcase(s) 转换为小写 Ucase(s) 转换为大写

VB 内置函数

Page 30: Visual Basic  程序设计 第 3 章  BASIC  语言基础

Visual Basic

程序设计

转换函数和判断函数转换函数 Cint , CLng , CSng , CStr ,…

注意其命名法: C+ < 类型缩写 >判断函数

IsNumeric( 表达式 ) 判是否数值,布尔型 IsEmpty( 变量 ) 判是否空值,布尔型 IIf(条件,值 1 ,值 2)Typename( 表达式)返回表达式的类型名 IsDate ( 表达式)判是否日期,布尔型

VB 内置函数

Page 31: Visual Basic  程序设计 第 3 章  BASIC  语言基础

Visual Basic

程序设计

格式转换函数 函数格式:

Format(< 表达式 >,< 格式字串 >)功能:将表达式的值按指定格式进行转

换。 例:

Format(1.2,”00.000”) =” 01.200”Format(Date,”yy.m.d”) =” 05.3.8”

VB 内置函数

Page 32: Visual Basic  程序设计 第 3 章  BASIC  语言基础

Visual Basic

程序设计

语句的书写格式 一般情况下,每行一条语句 一行多条语句之间用冒号 ( : ) 作分隔符,如

a=1 : b=2 : c=3 长语句分多行书写是,可在换行前加续行符

(下划线 _ ),例如:MsgBox “Sum Of 1 , 2 , 3 ,…, 100 is “ _

& vbcrlf & x , vbInformation 注释部分以单引号 ( ‘ ) 开头,止换行