第三章 Visual Basic语言基础.

Slides:



Advertisements
Similar presentations
第3章 VB语言基础 本章主要内容: ● 基本数据类型 ● 常量、变量 ● 表达式 ● 常用内部函数.
Advertisements

第2章 Visual Basic 6.0编程基础 (第一部分)
Visual Basic程序设计 第三章 常量与变量
高中信息技术新课程探讨 算法与程序设计教学实践与探讨 江苏省新海高级中学  张丽.
程式語言Visual Basic 變數的可視範圍
VB內建函數與應用.
第三章 C语言基础 学习目标: 熟练掌握:C语言的基本数据类型、运算符及表达式 掌握:常见的输入、输出函数使用方法;
課程名稱:程式設計 授課老師:________
Visual Basic 6.0 學習範本 第三章 基本資料型態.
第二章 Visual Basic语言基础.
程式語言 -Visual Basic 變數、常數與資料型態.
Visual Basic程序设计 第八章 过程 -子程序和函数
算法与程序设计.
Visual Basic程序设计基础 教师: 丁 鹏 联系电话:
走进编程 程序的顺序结构(二).
辅导课程六.
Visual Basic 程序设计 教师:王 杨 电话:
第3章 Visual Basic语言基础 郭清溥.
Visual Basic程序设计基础 教师:夏学梅 电话:
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
第五讲 四则运算计算器(一) 精品教程《C#程序设计与应用(第2版)清华大学出版社 谭恒松 主编
新觀念的 VB6 教本 第 6 章 資料型別.
Visual Basic 程序设计 第3章 BASIC 语言基础
1.2 MATLAB变量表达式与数据格式 MATLAB变量与表达式 MATLAB的数据显示格式
Visual Basic程序设计.
C语言程序设计基础 刘新国.
第二章 Java语言基础.
算法与程序设计 周少品.
第三章 VB语言基础 本章重点和难点 3.1 Visual Basic 程序代码的组织方式 3.2 代码行的书写规则
程序设计基础 第 2 章 学习程序设计的基本方法: 多练 模仿.
第一章 函数与极限.
C语言程序设计 主讲教师:陆幼利.
第2章 VB语言基础 本章要点: 数据类型 常量和变量 运算符表达式 函数.
Visual Basic 程序设计教程.
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
学习目标 1、什么是字符集 2、字符集四个级别 3、如何选择字符集.
计算机网络与网页制作 Chapter 07:Dreamweaver CS5入门
<编程达人入门课程> 本节内容 内存的使用 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
C语言程序设计 第一章 数据类型, 运算符与表达式 第二章 顺序程序设计 第三章 选择结构程序设计 第四章 循环控制 第五章 数组.
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
第4章 Excel电子表格制作软件 4.4 函数(一).
实验三 16位算术逻辑运算实验 不带进位控制的算术运算 置AR=1: 设置开关CN 1 不带进位 0 带进位运算;
第九节 赋值运算符和赋值表达式.
3.16 枚举算法及其程序实现 ——数组的作用.
第4课时 绝对值.
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
ASP.NET实用教程 清华大学出版社 第4章 C#编程语言 教学目标 教学重点 教学过程 2019年5月5日.
2.6 字符型数据 一、 字符常量 1、字符常量的定义 用一对单引号括起来的单个字符,称为字符常量。 例如,‘A’、‘1’、‘+’等。
C程序设计 实验二 数据类型、运算符和表达式 第6讲
本节内容 C语言的汇编表示 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第二章 Java基本语法 讲师:复凡.
Chap 6 数据类型和表达式 6.1 数据的存储和基本数据类型 6.2 常量和变量 6.3 数据的输入和输出 6.4 类型转换
3.13 选择结构程序设计初步.
复习 标签(label)、文本框(text)控件 按钮:点击事件
第三章 VB语言基础 3.1 数据类型 3.2 常量与变量 3.3 运算符与表达式 3.4 常用内部函数 本章目录.
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
基本知识 数据类型、变量、常量、运算符.
数据表示 第 2 讲.
第8章 创建与使用图块 将一个或多个单一的实体对象整合为一个对象,这个对象就是图块。图块中的各实体可以具有各自的图层、线性、颜色等特征。在应用时,图块作为一个独立的、完整的对象进行操作,可以根据需要按一定比例和角度将图块插入到需要的位置。 2019/6/30.
第三节 数量积 向量积 混合积 一、向量的数量积 二、向量的向量积 三、向量的混合积 四、小结 思考题.
算法与Visual Basic程序基础(二)
鸡兔同笼(续) ——选择结构.
第二章 数据类型与表达式 丘志杰 电子科技大学 计算机学院 软件学院.
数的简单处理 ——顺序结构、变量、数据类型、运算符
VB语言基础 一、 常量 1 定义:在程序运行过程中不能发生改变的量 2 分类 整型常量: 整数 不带小数点的数 数值常量
3.9算法及VB初步3 ——以“鸡兔同笼”为例.
VFP的基本数据运算(一).
顺序结构程序设计 ——关于“字符串”和数值.
第二章 简单数据类型 §2.1 数据类型概述 §2.2 变量和常量 §2.3 简单数据类型 §2.4 简单数据类型的相互转换
学习目标 1、什么是列类型 2、列类型之数值类型.
Presentation transcript:

第三章 Visual Basic语言基础

教学要求 了解过程和模块的概念 掌握程序书写规范和程序注释方法 掌握各种数据的定义、使用及表示范围 掌握各种运算符和表达式的使用 掌握常用的标准函数 2

教学内容 3.1 VB程序代码的组织结构 3.2 代码行的书写规则 3.3 VB的数据类型 3.4 运算符与表达式 3.5 VB公共函数 3

3.1 VB程序代码的组织结构 VB程序是由界面和程序代码两部分组成,而程序代码又是由说明部分和过程两部分组成的,要编写控制程序执行的代码,必须先了解过程这个概念。 4

3.1.1 过程 所谓过程,就是由Sub开头,End Sub结尾的,包含若干条语句的有特定书写格式的代码组合。 3.1.1 过程 所谓过程,就是由Sub开头,End Sub结尾的,包含若干条语句的有特定书写格式的代码组合。 根据过程执行的方式,可分为事件过程和通用过程两类。 5

事件过程 定义:由事件驱动而执行的,用于响应用户或系统引发的事件的代码过程。如窗体的Load过程、命令按钮的Click过程等。 特点:缺省情况下,事件过程是Private的,即仅在所属的窗体范围内有效。 存储:事件过程是存储在窗体模块文件中,扩展名为 .frm 注意:事件过程的过程名及参数是系统定义好的,其参数不得随意改变。 6

通用过程: 定义:可以被多个窗体和过程调用执行的代码过程。 特点:缺省情况下,通用过程是Public的,即可被所有窗体共享,但也可以定义成Private。 存储: 在窗体中定义的通用过程直接存储在窗体模块文件中; 在标准模块中定义的通用过程是存储在扩展名为.Bas的标准模块文件中。 注意:通用过程的过程名及参数由用户自行定义。 7

3.1.2 模块 模块是组织过程代码的一种结构。VB提供了三种类型的模块:窗体模块、标准模块和类模块。 窗体模块:和每个窗体相对应的模块,包含窗体及其中所有控件的属性设置、相关说明和所有事件过程。 标准模块:存放为多个窗体所共享的通用过程的独立代码模块,不属于任何一个窗体,主要在大型应用程序中使用,保存在扩展名为.Bas的文件中。 类模块:存放开发者自行创建的类的属性、方法等。 8

VB应用程序 窗体文件 标准模块文件 声明部分 事件过程 通用过程 全局声明部分 模块声明部分 类模块文件 9

3.2 VB程序的书写规范和程序注释 一、语句 VB程序的最基本的成分 格式:<语句定义符> [语句体] 按行书写; 一个语句可通过续行符号“ _”(一个空格加一个下划线)分成多行写; 多个语句也可以通过分行符号“:”(冒号)写在一行上。 语句定义符规定语句的功能,语句体提供语句要说明的具体内容 10

二、书写规范 三、程序注释语句 字母无大小写区分 一行代码输入完毕,按回车键进入下一行 一般采取阶梯型书写格式,使程序可读性好,便于查找错误(严格执行) 代码中除了中文字外,所有的符号都必须在英文状态下输入 三、程序注释语句 [格式一]:Rem <注释字符> [格式二]:’ <注释字符> [说明]:给程序加注释,增强程序的可读性,该语句为非执行语句。 11

3.3 VB数据类型 3.3.1 数据类型 3.3.2 常量 3.3.3 变量 12

3.3.1 数据类型 取值范围见P43表3-1 存放无小数的整数 存放有小数的实数 Long : 长整型数, 4个Byte Integer: 整型数, 2个Byte Long : 长整型数, 4个Byte Single : 单精度数, 4个Byte 7位有效位 Double : 双精度数, 8个Byte 15位有效位 Currency: 货币型, 8个Byte 精度高,15个整数和4个小数 Byte : Byte型数, 1个Byte (一般存储二进制信息) Boolean: 逻辑型, 2个Byte True 或False String : 字符串型,分为定长和不定长两种 Date : 日期型, 8个Byte Object : 对象型, 4个Byte 保存对某对象的引用(内存地址) Variant : 变体型, 16个Byte 存放无小数的整数 存放有小数的实数 13

3.3.2 常量( Constant ) 1、 数值常量 指在程序运行过程中值保持不变的量,分为直接常量和符号常量两种。 由正负号、数字和小数点组成,正数的正号可以省略 科学计数法 格式:<尾数>e/d<指数> 说明:幂为10,e为单精度,d为双精度 八进制和十六进制常量 表示无符号整数 八进制:&O 十六进制:&H 95 12,-3,32767 174567,-456789 1.5,-7.891,1e6,2.33455e-3 3.1415926535,1.2d4 &O137,&H127 14

2、字符常量 用双引号将一串字符括起来,构成字符常量 字符长度:字符串中字符的个数,不包括双引号 字符串的长度最多可达65535个 注意区别空格串和空串 输入双引号必须用“”” 字符串常量区分大小写,如字符串"A"和字符串"a"是两个不同的常量 字符串比较:从字符串的左端开始,一一对应比较至不同的字符,字符的ASCII码值大的字符串大,ASCII码值小的字符串小。 “A”_65,”a”_97 如:“欢迎进入VB”,“Visual Basic”, “123”,“A” 15

3、逻辑常量 4、日期时间型常量 只有两个取值,True和False 无界定符 Vb中通常用0表示False,其他数值均表示True 即可以表示日期,也可以表示时间 一般表示形式是mm/dd/yy, hh:mm:ss 用#作为界定符 例:#1/2/1999# #1999-1-2# #Jan 2,1999# #January 2,1999# #12:00:00 AM# #12:00:00 PM# #8:20:20 PM# #2:00:00 PM#都合法 16

符号常量 符号常量 是指以符号形式,即常量名来标识的常量 若一个常量在程序中使用频率较高,可以将其定义为一个符号常量,如圆周率 常量名长度不超过255个字符,由字母开头,只能包含字母、数字和下划线,且不区分大小写 符号常量必须先说明后使用 intige 17

符号常量 说明语句格式: [Public|Private] Const <常量名> [As Type]=<表达式> 在模块通用声明中,Public和Private用于定义常量的使用范围,缺省为Private(窗体模块级) 在窗体模块中不能用Public定义全局符号常量 表达式中不能包括函数,可使用除IS外所有算术和逻辑运算符,也可以使用其他常量 例:Const pi as Single=3.14159 Private Const ch=“CPU” Public Const x as Integer=3*5 ’在标准模块中定义全局级常量,但若出现在窗体的通用声明中则出错。 注意 符号常量定义后,在程序中只能读不能修改。 如: ch=“CMOS” ‘错误 18

3.3.3 变量(Variable) -在程序运行时,其值可以改变的数据。 -例:Dim X As Integer 2666 (变量值) 19

一、变量名的命名规则 必须以字母开头 不超过255个字符 在作用域内必须唯一 字符串内不得包含点号和用于隐性类型说明的符号 不得使用系统保留字(如End Private Sub ) 注意:在代码编辑器中,若定义的变量名不合法,则有出错提示,且变量名显示为红色. 20

二、变量的作用域与变量说明语句 1.变量的作用域 局部变量:在过程中说明的变量,只在该过程中有效; 窗体/模块变量:在模块中说明的Private变量,在该窗体或模块中有效; 全局变量:在模块中说明的Public变量,在整个应用程序中有效。 21

2.变量说明语句 - 过程级变量(局部变量)——在过程中声明 Dim|Static <变量名> [As <类型>] - 模块级变量——在模块的“通用”中“声明” Private|Dim <变量名> [As <类型>] - 全局变量——在模块的“通用”中“声明” Public <变量名> [As <类型>] 例:Dim a1 As Integer Public strName As String Private dtBirthday ‘变体型 22

几点注意 隐式说明——类型声明符,见P47,表3-4 变量初值:当一个变量说明之后,系统自动为其赋一个初始值。 变量的赋值——赋值语句 例: k&=1 Country$=“China” 变量初值:当一个变量说明之后,系统自动为其赋一个初始值。 数值型数据的初值为0; 字符型数据的初值为空串“”; 逻辑型数据的初值为False; 日期型数据的初值为1899-12-30,0:00:00 变量的赋值——赋值语句 [形式] 变量名=表达式 例: a=1:b=2:x=a+b ‘x的值为3 23

几点注意 注意:不能在窗体模块中定义全局定长字符串. 一条语句声明多个变量 Private|Dim|Static|Public <变量名> [As <类型>],<变量名> [As <类型>]… 例:Dim x,y,z as Integer,s as string ’x和y是变体型,z是整型,s是字符串型 字符串的定长说明: Private|Dim|Static|Public <变量名> As String *<长度> 例:Dim Number As String*7 注意:不能在窗体模块中定义全局定长字符串. 24

模块1 Public iA As Integer 全局变量 窗体级变量 窗体1 窗体级变量 窗体2 Public ib as string Dim b1 As String Private b2 As Integer 过程1 Dim x As Single 过程 3 Dim sum As Single 局部变量 模块1的IA为全局变量,在整个程序范围内有效, b1为窗体级模块,作用域为窗体一,在模块2中的b2为模块级变量,作用域为模块2,过程1可以访问变量x,b1,iA 局部变量 Static y% 过程2 过程4 Dim x As String

练 习 判断以下定义的各变量的数据类型 Dim a As Integer,b &,c As Integer 练 习 判断以下定义的各变量的数据类型 Dim a As Integer,b &,c As Integer Dim a%,b%,c As Integer Dim a ,b,c As Integer 26

三、强制显式说明语句 注意:为养成良好的变成习惯,在我们今后的程序中,都要求对使用的变量进行说明. 格式:Option Explicit 功能:要求每一个变量都必须经过显式说明才能使用,否则产生出错信息。 强制显式说明的好处: 一个变量如果不定义,会被当作变体类型来进行处理,从占据的内存空间看,势必会造成浪费; 变量定义之后,若输入变量名正确,系统会自动按定义时的格式转换输入的变量名,否则提示输入错误。 注意:为养成良好的变成习惯,在我们今后的程序中,都要求对使用的变量进行说明. 27

Option Explicit语句应在模块的通用说明部分输入; 系统能够自动产生Option Explicit语句,设置如下: 执行“工具”菜单的“选项” 在“选项”对话框中选取“编辑器”标签 选中“要求变量声明”项 单击“确定”按钮返回 此后系统会在新建的下一个工程中自动在代码窗口产生强制说明语句 28

3.4 运算符与表达式 3.4.1 算术运算符与算术表达式 3.4.2 关系运算符与关系表达式 3.4.3 逻辑运算符与逻辑表达式 3.4 运算符与表达式 3.4.1 算术运算符与算术表达式 3.4.2 关系运算符与关系表达式 3.4.3 逻辑运算符与逻辑表达式 3.4.4 运算规则 29

3.4.1 算术运算符与算术表达式 算术运算符 乘方(^)、加(+)、减(-)、乘(*)、除(/)、整除(\)、取余(Mod)、字符串连接(&) 优先级:^ -(单目减) *和/ \ Mod +和 - & 举例: 13+3 ‘16 13*3 ‘39 13/3 ‘4.33333333333333 13\3 ‘4 13 mod 3 ‘1 “13” & “3” ‘133 “a” & “b” ‘ab #1/2/2001#+1 ’1/3/2001 &前后必须留有空格 30

3.4.1 算术运算符与算术表达式 算术表达式:将常量、变量、函数等用算术运算符连接起来的式子 说明:括号的优先级大于任何运算符 例: 表达式为:(-b+Sqr(b^2-4*a*c))/(2*a) 注意: 括号要一一对应,分子分母部分应该用括号括起来,只能使用小括号 乘法要用乘号分隔,除法写在同一行 31

3.4.2 关系运算符与关系表达式 关系运算符 小于(<)、小于等于(<=)、大于(>)、大于等于(>=)、不等于(<>)、等于(=)、比较对象的引用变量( Is) 关系表达式:将常量、变量、函数或算术等其他表达式用关系运算符连接起来的式子 如果关系运算符的两端是表达式,则先计算表达式的值,然后进行比较 关系运算符两端必须是同类变量、表达式,否则出错 关系表达式的结果必然是逻辑值 例:a<=32 b^2-4*a*c>0 “ABC” >“ACB” ’结果为false #1/1/2000#<#1/2/2000# ’结果为True 32

3.4.3 逻辑运算符与逻辑表达式 逻辑运算符 非(Not)、与(And)、或(Or)、异或(Xor) 逻辑表达式:将逻辑量用逻辑运算符连接起来的式子 如果逻辑运算符的两端是关系表达式,则先计算关系表达式的值,然后进行逻辑运算 逻辑表达式的操作数是逻辑值,结果是逻辑值 例: 判断 0<x<10 的逻辑表达式为: x>0 And x<10 判断点(X,Y)是否位于第一象限的单位圆内的表达式为: X>0 And Y>0 And X*X+Y*Y <1 33

3.4.4 各种运算的优先级 运算符的优先级: 先算术运算,再关系运算,最后逻辑运算 遵循某类运算符内的优先次序 可以用()改变运算的优先顺序,注意,表达式中无[ ]、{ },()可嵌套,但必须成对出现 表达式的写法:注意与代数表达式的区别 ±、×、÷、≤、≥、≠ 都不合法 表达式的运算溢出: 例: Dim x As Integer x = 19000 + 19000 表达式计算的数据类型转换: 例: “20” + 46 ’结果为66,将“20”转换为20 “ab” + 46 ‘出错 200 + True ’结果为199,将True转换为-1 13 & 2=132 34

练 习 a=11: b=6: c=4: x=false 写出此表达式的值: (b+c)>a or c<b and x 练 习 a=11: b=6: c=4: x=false 写出此表达式的值: (b+c)>a or c<b and x true 00111101 00101101 10111101 10101101 为了检验和掌握表达式(包括标准函数)的使用 在窗体的Click事件中加入Print语句,执行时查看运行结果。 打开“视图”“立即窗口”,用Print 或?来检验执行结果 35

3.5 Visual Basic 公共函数 公共函数:VB已预先定义好的完成某特定功能的程序段——通过过程,编程者可直接调用。 -函数名 -参数 -函数的返回值 36

3.5.1 算术函数 Sqr(x):返回X的平方根,X非负,返回值为Double型 。 3.5.1 算术函数 Sqr(x):返回X的平方根,X非负,返回值为Double型 。 Log(x):返回X的自然对数,即Ln(x) ,X>0。 Exp(x):返回ex。 Abs(x):返回X的绝对值。 Sgn(x):判断X的符号: Sin(x)、 Cos(x)、 Tan(x)、 Atn(x):分别返回X(单位为弧度)的正弦余弦、正切和反正切函数值,返回值为Double型 Rnd(x):返回一个(0,1)之间的Single类型随机数。X决定产生随机数的结果,具体情况请查阅Help。Randomize语句可帮助产生真正意义上的随机数。 37

3.5.2 字符函数 X=“Visual Basic” Len(x):返回字符串x中字符的个数。 3.5.2 字符函数 Len(x):返回字符串x中字符的个数。 Left(x,n):返回从字符串x的左边开始的n个字符形成的子串。 Right(x,n):返回从字符串x的右边的n个字符形成的子串。 Mid(x,n1,n2):返回从字符串x的第n1个字符开始的n2个字符。 Ucase(x) 将x中小写字母转换成大写字 Lcase(x):将x中大写字母转换成小写字母 Ltrim(x)、 Rtrim(x) 、 Trim(x) :分别去掉x左边的所有空 格、右边的所有空格和两边的所有空格。 Instr(n,x,y):返回y在x从第n位开始出现的位置,不存在返回0 String(n,y):返回由n个字符y组成的字符串,若y是一个字符 串,则取其第一个字符。 Space(n):返回由n个空格组成的字符串。 X=“Visual Basic” 38

3.5.3 转换函数 Str(x):将数值型数据x转换成相应的字符串,保留正数符号位 3.5.3 转换函数 Str(x):将数值型数据x转换成相应的字符串,保留正数符号位 CStr(x):将x转换成字符串,如X为数值型,不保留正数符号位 Val(x):将字符串X最左端开始的数字字符串转换成数值。遇到不能转换的字符为止。若字符串无法被转换时,返回0。 Val(-16.6those) ’结果为-16.6 Chr(x):返回以x为ASCII码值的字符。 Chr(97)为“a”,Chr(65)为“A”, Chr(13)为回车符 Asc(x):返回字符x的编码值。 Fix(x)、Int(x):当X≥0时,都返回X的整数部分而删除小数, 当X<0时, Int 返回小于等于x的最大整数。 Fix 返回大于等于X的最小整数。 Int(-5.1) ‘-6 fix(-5.1) ‘-5 39

3.5.4 日期函数 思考题:求系统日期的年份? Date:返回系统日期。 Time:返回系统时间。 Now:返回系统日期和时间。 3.5.4 日期函数 Date:返回系统日期。 Time:返回系统时间。 Now:返回系统日期和时间。 Year(x):返回x的年份。 Month(x):返回x的月份。 Day(x):返回x的日期。 Weekday(x,[c]):返回x的星期号。 思考题:求系统日期的年份? ? Year(date) 2005 40

3.5.5格式化函数Format$ [功能]:将数值、日期和时间按指定格式输出。 [格式]:format (<算术表达式>,fmt$) fmt$用于格式输出的字符串;省略,则类似于CStr函数 [格式控制字符]: 数位控制符: #、0 标点控制符: . 、 , 指数输出控制符: E+、E- 符号控制符: %、$、-、+ 格式化函数Format仅用于控制数据的外部输出格式,不会改变数据在计算机内部的存储形式 +、—在所要显示的数值前强加一个正号或负号 41

举例 设x=123456.78, Print Format(x,”0000000000.0000”) 结果:0012345678.7800 Print Format(x,"############") 结果为: 123457 ‘x的位数少于控制字符串的位数,自动在前后补空格 Print Format(x,"###,###,###.#") 结果为: 123,456.8 ‘增加千分位分隔符和小数点,使 x四舍五入到一位小数 Print Format(x,“########%”) 结果为: 12345678% ‘以百分比的形式表示,x乘100后再加上百分号 Print Format$(x,"0.00E+00") 结果为: 1.23E+05 ‘用指数形式表示数值 42

练 习 1.写出表达式 2.求表达式的值 (1)XY都是正整数或都是负整数 (2) (1)str(32.345)=cstr(32.345) (2)“14” & 32 X=fix(x) and y=fix(y) and x*y>0 (X+sqr(x^2+1))^(1/3) false 1432 43