第2章 VB语言基础 本章要点: 数据类型 常量和变量 运算符表达式 函数.

Slides:



Advertisements
Similar presentations
Visual Basic 程序设计 第四讲.
Advertisements

第2章 Visual Basic 6.0编程基础 (第一部分)
課程名稱:程式設計 授課老師:________
課程名稱:程式設計 授課老師:________
程式語言(I)- Visual Basic 6.0 第 9 章 結構化程式設計
第9章 处理字符串和日期时间 Visual Basic 程序设计教程.
网 络 课 程 马 鞍 学 网 络 山 课 程 大 络 网 Visual Basic程序设计 第 一 讲 最容易接受的编程语言
算法和程序设计 第4课 分支结构的算法设计 •.
第 二 课 程序组成、基本数据类型、表达式 我们以上一章练习题为例说明Pascal程序的结构形式:
第五章 数组.
四 VBScript编程基础.
第三章 VB基本语言 3.1编程基础 3.2数据类型 3.3 变量与常量 3.4 运算符和表达式 3.5 内部函数 3.6 基本语句 3.7数组.
Visual Basic程序设计.
ASP VBScript 基础知识.
程式語言Visual Basic 變數的可視範圍
2.1 基本資料型別 2.2 變數 2.3 運算式與運算子 2.4 輸出與輸入資料 2.5 資料型別轉換 2.6 實例
VB內建函數與應用.
第2章 Fortran程序设计基础.
課程名稱:程式設計 授課老師:________
Visual Basic 6.0 學習範本 第三章 基本資料型態.
第6章 数 组 6.1 一维数组 6.2 控件数组 6.3 二维数组.
第二章 Visual Basic语言基础.
第二章 C# 基础知识.
数组 第 6 章.
第5章 数组 Visual Basic程序设计.
Visual Basic程序设计 第七章 数组
第3章 變數、資料型別與運算子.
程式語言 -Visual Basic 變數、常數與資料型態.
1 巨集 2 資料型態 3 物件、屬性、方法與事件 4 陳述式與副函式 5 其他注意事項 6 範例
Visual Foxpro程序设计 第三章 VisualFoxpro中的数据 123.
Visual Basic程序设计 第八章 过程 -子程序和函数
过程 第 7 章.
ASP动态网页设计实用教程 主讲教师: 开课单位:.
第12章 VBA编程 虽然Access的交互操作功能非常强大且易于掌握,但是在实际的数据库应用系统中,用户还是希望尽量通过自动操作达到数据库管理的目的。应用程序设计语言在开发中的应用,可以加强对数据管理应用功能的扩展。Office中包含Visual Basic for Application(VBA),VBA具有与Visual.
第十一讲 VB常用标准控件(2).
初识Visual Basic.
算法与程序设计.
第4章 程序控制结构与算法基础.
流程控制、陣列 台南市聖功女子高級中學 毛全良.
计算机程序设计强化复习 Visual Basic 6.0.
程序的基本要素 2018/12/6.
Visual Basic 程序设计 教师:王 杨 电话:
第3章 Visual Basic语言基础 郭清溥.
第3章 變數、資料型別與運算子 3-1 變數與資料型別的基礎 3-2 變數的命名與宣告 3-3 資料型別 3-4 運算式與運算子
第12章 VBA模块设计.
丙級電腦軟設-VB程式設計 資料來源:林文恭研究室 整理:張福生.
新觀念的 VB6 教本 第 6 章 資料型別.
第 8 章 过程.
广州市教育局教学研究室编写的 初中《信息技术》第二册第二章 《程序设计初步》
Visual Basic程序设计.
算法与程序设计 周少品.
第三章 VB语言基础 本章重点和难点 3.1 Visual Basic 程序代码的组织方式 3.2 代码行的书写规则
程式設計 Visual Basic簡介 週次:2 建國技術學院 資管系 饒瑞佶 2003年9月17日.
程序设计基础 第 2 章 学习程序设计的基本方法: 多练 模仿.
程式語言(I)- Visual Basic 6.0 第 8 章 模組化程式設計I-副程式與自定函數.
江西财经大学信息管理学院 《数据库应用》课程组2007
程序基础 2019/4/25.
第二章、第三章错题分析.
計算機概論 跨越講義 第4章 基本視窗程式應用 4-1 程式語言簡介 4-2 結構化VS物件導向程式設計
第6章 運算式與運算子 [算術與多功能計算機]
选择结构设计 第 4 章 程序流程有三种最基本的控制结构,即顺序结构、选择结构和循环结构。
VB 2005資料型別與運算子.
1位选手参加了歌唱比赛,评委们的评分如下:
第5章 数组 5.1 数组概述 5.2 静态数组和动态数组 5.3 数组的基本操作 5.4 控件数组 5.5 数组在自定义数据类型中的应用.
随机数、数组、解析、枚举.
變數、資料型態、運算子.
算法与Visual Basic程序基础(二)
信息的加工 Word中查找和替换、自动更正、批注、修订 Excel中公式和函数、排序和筛选、图表的建立和编辑 字符识别OCR.
VB语言基础 一、 常量 1 定义:在程序运行过程中不能发生改变的量 2 分类 整型常量: 整数 不带小数点的数 数值常量
第4章 数据查询.
Presentation transcript:

第2章 VB语言基础 本章要点: 数据类型 常量和变量 运算符表达式 函数

2.1 数据类型 用户自定义的数据类型 基本数据类型 分为 基本数据类型: 字符型 数值型 布尔型 日期型 对象型 可变类型

1 字符型数据(String) 由双引号""括起来的一串符号 例: "abc" "ABC" "计算机" "12.34" "3+2" ""(空串) (1)定长字符串:在程序执行过程中长度始终保持不变的字符串,字符长度不超过65535。 (2)变长字符串:长度不固定的字符串,随着对字符串变量赋予新的值,其长度可增可减。

2 数值型数据 Integer(整型) Long(长整型) Single(单精度浮点型) Double(双精度浮点型)

(1) 整型(Integer) 以2个字节存储 十进制表示: 由+ -号,0~9 组成 范围: -32768~32767 八进制表示: 以&O开头,由 0~7组成 范围: &O0 ~&O177777 十六进制表示: 以&H开头,由 0~9,A~F组成 范围: &H0 ~&HFFFF 例: -325 0 56 +100 &O456 &O36 &H1AC &H38 &H2

(2) 长整型(Long) 以4个字节存储 十进制表示: 由+ -号,0~9 组成 范围: -2147483648~+2147483647 八进制表示: 以&O开头,以&结束 范围: &O0& ~&O37777777777& 十六进制表示: 以&H开头,以&结束 范围: &H0& ~&HFFFFFFFF& 例: 453466 -34568 +1000000 &O456& &O36& &H1AC& &H38& &H2&

(3) 单精度浮点型(Single) 以4个字节存储,可以精确到7位十进制数 例: 3.234E+2 表示3.234102 -28E9 表示-28109 4.56E-17 表示4.5610-17 (4) 双精度浮点型(Double) 以8个字节存储,可以精确到16位十进制数 3.234D+2 表示3.234102 -28D9 表示-28109 4.56D-17 表示4.5610-17

3 货币类型(Currency) 4. 字节型(Byte) 以8个字节存储,用于表示定点数,其小数点左边有15位数字,右边有4位数字。 用一个字节存储数据,其取值范围为0~255。

5 布尔型数据(Boolean) 用于表示某个条件的成立或不成立。 只有True和False两个值

6 日期型数据(Date) 用于表示日期和时间 格式: #……# VB接受许多种日期时间格式 例: 下面的 Date/Time 值全部有效。 #3-6-93 13:20# #March 27,1993 1:20am# #Apr-2-93# #14 April 1993# #12/18/1999#

7 通用类型(Variant) 也称变体类型,是一种通用的、可变的数据类型,它可以表示上述任何一种数据类型。 对象型数据(Object) 以4个字节存储,用于引用程序中的对象。

2.1.2 用户自定义类型 是用户自己定义的类型,这种类型可以包含多个基本类型。使用Type语句定义。 Type语句格式: [Private|Public] Type <用户自定义类型名> <元素名>[(下标)] As <类型> … End Type

说明: 1)<用户自定义类型名>、<元素名>应遵循标识符的命名规则。<类型>可以是Visual Basic系统提供的基本数据类型或已声明的用户自定义类型。缺省[Private|Public]选项时,默认是Public。 2)用户自定义类型必须在窗体模块或标准模块的通用声明段进行声明。在窗体模块中定义用户自定义类型时必须使用Private关键字。 3)如果用户自定义类型的元素为数组,则需要使用<下标>参数。 4)在使用用户自定义类型前,必须先声明用户自定义类型的变量。

例:定义一个Students数据类型,该类型中的每一个数又包含了学生的系、班级、姓名、年龄信息。定义格式为: Private Type Students Dept As String * 20 ' 系 ClassNo As String * 10 ' 班级 Name As String ' 姓名 Age As Integer ' 年龄 End Type

2.2 常量和变量 2.2.1 常量:指在程序运行期间其值不发生变化的量。 两种形式: 直接常量;符号常量 1 直接常量 2.2 常量和变量 2.2.1 常量:指在程序运行期间其值不发生变化的量。 两种形式: 直接常量;符号常量 1 直接常量 例: "欢迎使用Visual Basic" 字符串常量 12345 数值型常量 True 布尔型常量 #11/10/2001# 日期型常量 2 符号常量 格式: Const <常量名> [As <类型>]=<表达式>

例: Const Pi = 3.14159 Const Max As Integer = 9 Const BirthDate = #1/1/01# Const MyString = "friend" ' 用逗号分隔多个常量声明 Const Pi = 3.14, Max = 9, MyStr="Hello" ' 用先前定义过的常量定义新常量 使用: 在程序中引用 如: AREA=Pi*R^2 在程序中不可修改 如: Pi=3.14

2.2.2 变量 1. 什么是变量? 一个有名称的内存单元称为变量。 … 5 A 程序执行期间,用变量临时存储数值。 变量的值可以发生变化。 每个变量都有名称和数据类型。

2. 变量的命名遵循标识符的命名规则,即 第一个字符必须是字母 长度不超过255个字符 不可以包含小数点或者内嵌的类型声明字符 不能使用关键字 不能与过程名或符号常量同名 例: Student1 MyName intMax strName 不区分大小写;变量名应便于识别、记忆

3. 变量的声明 (1) 显式声明 格式: Dim|Private|Public| Static <变量名> [As <类型>] 说明: Dim: 在窗体模块、标准模块或过程中声明变量。 Private: 在窗体模块或标准模块中声明变量,使变量仅在该模块中有效。 Public: 在标准模块中声明全局变量,使变量在整个应用程序中有效。 Static: 在过程中定义静态变量,即使该过程结束,也仍然保留变量的值。

例: Dim Sum As Long Dim Address As String Dim No As String * 8 Private b As Integer Dim Num, Total As Integer ' Num为可变类型 Public Average As Single Static A As Long (2) 隐式声明 可变类型。易出错、浪费空间 (3) 强制显式声明 在模块的声明段中使用语句: Option Explicit 如果设置: 工具→选项→编辑器→要求变量声明 则在后续模块中自动插入Option Explicit

例: Static的作用。 设在窗体中放置按钮C1 Private Sub C1_Click() Static a As Integer a = a + 10 Print a End Sub Private Sub C1_Click() Dim a As Integer a = a + 10 Print a End Sub 运行时,多次单击命令按钮C1, 比较以上两个事件过程的执行效果

2.3 运算符表达式 操作数: 常量、变量、函数、对象 运算符: 圆括号 算术运算符(算术表达式) 字符串运算符(字符串表达式) 2.3 运算符表达式 操作数: 常量、变量、函数、对象 运算符: 圆括号 算术运算符(算术表达式) 字符串运算符(字符串表达式) 关系运算符(关系表达式) 布尔运算符(布尔表达式)

1 算术运算符与算术表达式 书 写: 一条线、无[ ] 、无{ } 优先级 运算符 运算 示例 1 ^ 乘方 3^2 2 - 取负 -9 3 1 算术运算符与算术表达式 优先级 运算符 运算 示例 1 ^ 乘方 3^2 2 - 取负 -9 3 * 乘法 3*5 / 浮点除法 10/3 4 \ 整数除法 5 Mod 取模 10 mod 3 6 + 加法 2+3 减法 2-3 书 写: 一条线、无[ ] 、无{ }

1. 乘方运算 例: 10^2 10的平方,结果为100 10^(-2) 10的平方的倒数,结果为0.01 2. 整数除法 例: 10\4 结果为2 25.68\6.99 先四舍五入再整除,结果为3 3. 取模运算 例: 10 Mod 4 结果为2 25.68 Mod 6.99 先四舍五入再求余数,结果为5 11 Mod – 4 结果为3 -11 Mod 5 结果为-1 -11 Mod -3 结果为-2 结果符号同第一个操作数

2 字符串运算符 字符串运算符有两个: & + &:自动将两侧的操作数作为字符进行连接 2 字符串运算符 字符串运算符有两个: & + &:自动将两侧的操作数作为字符进行连接 例: "Hello" & " World" 结果为"Hello World" "Check" & 123 结果为"Check123" 123 & 456 结果为"123456" "123" & 456 结果为"123456" +:仅当两侧操作数都为字符串时才做字符串连接 123 + 456 结果为579 "123" + 456 结果为579 "123" + "456" 结果为"123456" "Check" + 123 错误

3 关系运算符 1. 关系运算符(比较运算符) <(小于) <=(小于或等于) >(大于) >=(大于或等于) 3 关系运算符 1. 关系运算符(比较运算符) <(小于) <=(小于或等于) >(大于) >=(大于或等于) =(等于) <>(不等于) 2. 关系表达式: <表达式1> <比较运算符> <表达式2> 例:X > Y+Z A >= 5 StudName <> "Shelly"

3. 运算规则 数值比较 按数值大小 字符串比较 根据当前的比较方式从左开始逐个比较,按其ASCII码值进行比较 。 典型的二进制排序顺序如下: " "<"0"<"1"<……<"9" <"A"<"B"<…… < "Z" <"a"<"b"<……<"z" 日期数据比较 将日期看成“yyyymmdd”的8位整数,按数值大小比较。

数值型与可以转换为数值型的数据比较 按数值大小 汉字字符按区位顺序比较。

4. 比较结果: True False 例: 45 < 35 结果为 False 45 = 45 结果为True 4 <> 3 结果为True "abc" > "cdf" 结果为False "for" < "fortran" 结果为True

4 逻辑运算符 1. 逻辑运算符: Not And Or 2. 逻辑表达式: 4 逻辑运算符 1. 逻辑运算符: Not And Or 2. 逻辑表达式: <关系表达式1> <布尔运算符> <关系表达式2> 3. 优先级: Not→And→Or 例: A = 10: B = 8: C = 6。 Not (A > B) 结果为 False Not (B > A) 结果为True A > B And B > C 结果为True B > A And B > C 结果为False A > B Or B > C 结果为True B > A Or B > C 结果为True A < B Or B= C 结果为False

5 表达式的运算顺序 ( ) →函数运算→算术运算→关系运算→布尔运算 例:设a=3,b=5,c=-1,d=7,求以下表达式的值。 5 表达式的运算顺序 ( ) →函数运算→算术运算→关系运算→布尔运算 例:设a=3,b=5,c=-1,d=7,求以下表达式的值。 a + b > c + d And a >= 5 Or Not c > 0 Or d < 0 ①8 ②6 ④False ⑤ False ⑥False ③True ⑦True ⑧ False ⑨ True ⑩True

2.4 函数 内部函数 函数分类 用户自定义函数 函数形式: 函数名[(<参数表>)] 参数:常量、变量或表达式。 2.4 函数 函数分类 内部函数 用户自定义函数 函数形式: 函数名[(<参数表>)] 参数:常量、变量或表达式。 若有多个参数,参数之间以逗号分隔。 函数值:也叫“返回值” 函数的使用: 函数在表达式中被调用。

1 数学函数 例: (1)fix(x)舍去x的小数部分 Fix(45.67) 结果为45 Fix(-2.89) 结果为-2 1 数学函数 例: (1)fix(x)舍去x的小数部分 Fix(45.67) 结果为45 Fix(-2.89) 结果为-2 (2)int(x)取不大于x的最大整数 Int(45.67) 结果为45 Int(-2.89) 结果为-3 (3)abs(x)求x的绝对值 Abs(-4) 结果为4

(4)log(x)求以e为底x为指数的值 Log(10) 结果为2.30258509299405 (5)sgn(x)求x的符号代码,x为正数时函数值为1,x为0时函数值为0,x为负数时函数值为-1 Sgn(3) 结果为1 Sgn(-6) 结果为-1 Sgn(0) 结果为0

2 日期和时间函数 返回系统的日期和时间、或返回指定日期和时间的一部分。 Now:返回系统日期和时间。 Date:返回系统日期。 Time:返回系统时间。 Day(d):返回参数d中指定的日期是月份中的第几天。 WeekDay(d):返回参数d中指定的日期是星期几。 Month(d):返回参数d中指定日期的月份。 Year(d):返回年份。

Hour(d):返回小时(0~23)。 Minute(d):返回分钟(0~59)。 Second(d):返回秒(0~59)。 Timer:返回从午夜开始到现在经过的秒数。

3 字符串函数 例: (1)ltrim(字符串)删除字符串左端空格字符 LTrim("∪∪∪ABC") 结果为"ABC" 3 字符串函数 例: (1)ltrim(字符串)删除字符串左端空格字符 LTrim("∪∪∪ABC") 结果为"ABC" 表示空格 (2)rtrim(字符串)删除字符串右端空格字符 RTrim("ABC∪∪∪") 结果为"ABC" (3)trim(字符串)删除字符串两端空格字符 Trim("∪∪∪ABC∪∪∪") 结果为"ABC" (4)left(字符串,n)截取字符串左端n个字符 Left("ABCDE",2) 结果为"AB" (5)right(字符串,n)截取字符串右端n个字符 Right("ABCDE",2) 结果为"DE" (6)mid(字符串,m,n)截取字符串中间从m个字符起的n个字符 Mid("ABCDE",2,3) 结果为"BCD" Mid("ABCDE",2,6) 结果为"BCDE"

(7)len(字符串)返回字符串中所包含的字符个数 Len("ABCDE") 结果为5 (8)string(n,字符串)生成n个字符串首字母 String(3,"ABC") 结果为"AAA" String(3,65) 结果为“AAA” (9)instr(字符串1,字符串2)字符串2首字母在字符串1中的位置 InStr("ABCDECDE","DE") 结果为4 InStr(5,"ABCDECDE","DE") 结果为7 (10)ucase(字符串)把字符串中的字母转换为大写字母 UCase("Abc") 结果为"ABC" (11)lcase(字符串)把字符串中的字母转换为小写字母 LCase("ABc") 结果为"abc"

4 转换函数 例: (1)asc(字符串)求字符串中首字符的ASCII码 Asc("A") 结果为65 Asc("ABC") 结果为65 4 转换函数 例: (1)asc(字符串)求字符串中首字符的ASCII码 Asc("A") 结果为65 Asc("ABC") 结果为65 (2)chr(表达式)求以表达式值为ASCII码的对应字符 Chr(65) 结果为"A" (3)str(数值表达式)把数值表达式的值转换为对应的字符串 Str(123) 结果为"∪123" Str(-123) 结果为"-123"

(4)val(字符串)把字符串中的数字转换为对应的数值 Val("123AB") 结果为123 Val(".123AB") 结果为.123 Val("a123AB") 结果为0 Val("12E2ABC") 结果为1200

(1)hex(x)十进制转换为对应的十六进制 Hex(27) 结果为"1B" Hex(45.7) 结果为"2E" (2)oct(x)十进制转换为对应的八进制 Oct(27) 结果为"33" Oct(45.7) 结果为"56" (3)cint(数值表达式)把数值表达式的值转换为整型,小数四舍五入 CInt(5.3) 结果为5 CInt(-5.7) 结果为-6 CInt(32766.6) 结果为32767 CInt(32767.8) 溢出错误 CInt(0.5) 结果为0

(4)clng(数值表达式)把数值表达式值转换为长整型,小数四舍五入 (5)csng(数值表达式)把数值表达式值转换为单精度型 CSng(123.56789) 结果为123.5679 (6)cdbl(数值表达式)把数值表达式的值转换为双精度型 CDbl(123.56789) 结果为123.56789

(7)ccur(数值表达式)把数值表达式值转换为货币型,小数四舍五入 CBool(5.8 * 4) 结果为True CBool(-5.8) 结果为True CBool(0) 结果为False CBool("12") 结果为True CBool("0") 结果为False CBool("abc") 出错

5 格式输出函数 例: Format(123.45, "0000.000") 结果为"0123.450" Format(123.45, "0.0") 结果为"123.5" Format(123.45, "####.###") 结果为"123.45" Format(123.45, "#.#") 结果为"123.5" Format(0.123, ".##") 结果为".12" Format(0.123, "0.##") 结果为"0.12" Format("HELLO", "<") 结果为"hello" Format("This is it", ">") 结果为"THIS IS IT" 注: 经Format函数格式化后的结果为字符串类型 例: Format(123) + Format(456) 结果为"123456" 区别: Str(123) + Str(456) 结果为"∪123∪456"

6 随机函数 1. 随机函数 Rnd[(x)] 产生[0,1)之间的单精度随机数。 x<0: 每次使用x作为随机数种子得到相同的结果。 6 随机函数 1. 随机函数 Rnd[(x)] 产生[0,1)之间的单精度随机数。 x<0: 每次使用x作为随机数种子得到相同的结果。 x>0: 以上一个随机数作种子,产生序列中的下一个随机数。 x=0: 产生与最近生成的随机数相同的数。 省略x: 同x>0 2. Randomize语句 初始化随机数发生器,格式: Randomize[n] n:种子,省略时以系统时间作为种子

生成[a,b] 范围内的随机整数 Int(( b-a+1) *Rnd +a) 例:生成[1,99]之间的随机整数的表达式为: Int(99*Rnd+1) 例:生成(1,99)之间的随机整数的表达式为: Int(97*Rnd+2)

本章小结 1. 数据类型 字符类型、数值类型、布尔类型、日期类型 2. 常量变量 直接常量、符号常量、变量 3. 运算符表达式 算术运算、关系运算、逻辑运算 4. 函数 数学函数、字符串函数、转换函数、日期函数和随机函数