1 / 46

第2章 程序设计基础

第2章 程序设计基础. 2.1 如何学习 Visual Basic 2.2 数据类型 2.4 常量 2.5 变量 2.6 Print 语句、赋值语句 2.7 运算符、表达式、常用内部函数. 2.1 如何学习 Visual Basic. 1 .语言规则要熟记 学习 Visual Basic 首先要做到熟记 Visual Basic 语言的规则。. 2.1 如何学习 Visual Basic. 2.编程实验对能力提高最重要

von
Télécharger la présentation

第2章 程序设计基础

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第2章 程序设计基础 • 2.1 如何学习Visual Basic • 2.2 数据类型 • 2.4 常量 • 2.5 变量 • 2.6 Print语句、赋值语句 • 2.7 运算符、表达式、常用内部函数

  2. 2.1 如何学习Visual Basic • 1.语言规则要熟记 • 学习Visual Basic首先要做到熟记Visual Basic语言的规则。

  3. 2.1 如何学习Visual Basic • 2.编程实验对能力提高最重要 • 在学习的各个不同的阶段,编程练习可以采取下列不同方式:(1) 开始以模仿为主。 (2) 理解熟记常用算法、方法、属性。 (3) 尝试设计自己的选题。 (4) 严格按照规定的格式书写程序。

  4. 类 型 名 称 字节数 取值范围和有效位数 整 型 Integer 2 精确表示-32768~32767范围内的整数 长整型 Long 4 精确表示-2147483648~2147483647范围内的整数 单精度浮点型 Single 4 -3.402823×1038~-1.401298×10-45 1.401298×10-45~3.402823×1038 7位有效位数 双精度浮点型 Double 8 -1.79769313486232×10308 ~ -4.94065645841247×10-324 4.94065645841247×10-324 ~ 1.79769313486232×10308 15位有效位数 字节型 Byte 1 0~255 变长字符串 String 每个字符占1个字节,每个字符串最多可存放约20亿个字符 定长字符串 String*size size是小于65535的无符号整常数,为字符串长度 逻辑型 Boolean 2 True或False 2.2.1 数据类型 表2-1 Visual Basic 6.0的常用数据类型

  5. 类 型 名 称 字节数 取值范围和有效位数 货币型 Currency 8 -922337203685477.5808~922337203685477.5807 日期型 Date 8 100.1.1~9999.12.31 对象型 Object 4 任何对象的引用 变体型 Variant 若存放数值类型数据,占16个字节,最大可达Double的范围; 若存放字符串类型数据,字符串长度与变长字符串相同 2.2.1 数据类型 • 表中,“名称”用以标识变量的类型,“字节数”表示该类型数据所占内存空间大小。 表2-2 Visual Basic 6.0的其他数据类型

  6. 2.2.2 数值类型数据的存储格式 • Visual Basic中的字节型数、整型数、长整型数、单精度浮点数、双精度浮点数、货币型数,统称为数值型数据。 • 1.Byte类型 • Visual Basic用1个字节(8个2进制位),该类型数据的最大值为255。 • 2.Integer类型 • Visual Basic用2个字节(16个2进制位)存储Integer类型的数据,首位为符号位(正数为0、负数为1),因此其最大值为即32767。

  7. 2.2.2 数值类型数据的存储格式 • 3.Long类型 • Visual Basic用4个字节(32个2进制位)存储Integer类型的数据,首位为符号位(正数为0、负数为1),因此其最大值为大约为21.47亿。 • 4.Single类型 • Single(单精度浮点)类型数据,占用4个字节的存储空间。 • Single数据的有效位数总可以达到7位。

  8. 2.2.2 数值类型数据的存储格式 • 5.Double类型 • Double(双精度浮点)类型数据用8个字节表示:有效位数为15位。 • 此外,还有Currency(货币)类型数据,它支持15位整数和4位小数,适用于货币计算。

  9. 2.4 常量 • 常量是直接写在程序中的数据,常量的类型由它们的书写格式决定。 • 1.数值常量 • (1) 可以用所学算术、数学中的惯常写法书写数值常量。 • (2) 浮点数还可以用指数形式表示。 • 3.14159e0 0.314159E1 0.0314159e2 314.159e-2 • (3) 数值类型数据取值在其有效范围之外,会出现“溢出”(Overflow)错误。 • (4) Visual Basic中的常量一般采用十进制数,但有时也使用十六进制数(数值前加前缀&h)或八进制数(数值前加前缀&o)。

  10. 2. 4 常量 • 2.字符串常量 • 字符串常量是用双引号括起来的一串字符,格式为:"h1h2h3...hn"。每个字符占1个字节。 • 3.逻辑常量 • 逻辑常量只有两个值:真(True)和假(False)。当把数值常量转换为Boolean时,0为False,非0值为True。 • 4.日期常量 • 日期常量用两个“#”把表示日期和时间的值置于其间,如:#08/18/2001#、#08/18/2001 08:10:38 AM#,等等。

  11. 2. 4 常量 • 5.符号常量 • 符号常量的定义格式为: Const <符号常量名> = <常量> • 例 Const pi = 3.1416

  12. 2.5 变量 • 常量的类型由书写格式决定,而变量的类型由类型声明决定。 • 1.变量的命名规则 • 变量名由首字符为英文字母、不超过255个字符的字母、数字、下划线符组成。 • 2.变量命名的几点说明 • (1) 不能使用Visual Basic的关键字作为变量名。 • (2) 变量名不能与过程名或符号常量名相同。 • (3) Visual Basic不区分变量名的大小写。 • (4) 变量取名尽量做到“见名知义” 。

  13. 2.5 变量 • 3.变量声明 • 用Dim语句可以强制声明变量类型: DIM <变量名> [AS <数据类型>][,<变量名> [AS <数据类型>]...] • Dim yb As Byte, yc As Byte, nk As Integer • 不可以将语句“Dim m As Integer, n As Integer”写作“Dim m, n As Integer”。

  14. 2.5 变量 • 例 变量的作用域及应用。 • Option Explicit • Dim ss as String • Private Sub Form_Load() • ss = "欢迎使用VB6.0" • End Sub • Private Sub Form_Click() • Print ss • End Sub

  15. 2.5 变量 • 如果将程序修改如下,看看结果如何? • Private Sub Form_Load() • Dim ss as String • ss = "欢迎使用VB6.0" • End Sub • Private Sub Form_Click() • Print ss • End Sub

  16. 2.5 变量 • 4.变量的初始值 • 在程序中声明了变量以后,Visual Basic自动将数值类型的变量赋初值0,变长字符串被初始化为零长度的字符串(""),定长字符串则用空格填充,而逻辑型的变量初始化为False。

  17. 2.6.1 语句、命令的语法描述规则 • 为便于解释语句、方法和函数,本书在各语句、方法和函数的语法格式和功能说明中采用统一的符号约定。 • DIM <变量名> [AS <数据类型>][,<变量名> [AS <数据类型>]...] • 各语法描述符号及它们的含义如下: • (1)“< >”为必选参数项,尖括号中的中文提示说明,必须由使用者根据问题的需要提供具体的参数。如果缺少必选参数,则发生语法错误。 • (2) “[ ]”为可选参数项,方括号中的项目由使用者根据具体问题决定选与不选。如省略,则为缺省值。 • (3) “{ }”和“|”,包含多中取一的各项,竖线分隔多个选择项,必须选择其中之一。 • (4) “…”表示同类项目的重复出现。 • 特别要注意在书写具体的命令时,不能出现这些语法描述符号。

  18. 2.6.2 Print语句 • Print语句格式为: • [<对象名称>.] Print [<输出项>[[{,|;}][<输出项>]]...] • <对象名称>可以是窗体/图片框或屏幕。

  19. 2.6.2 Print语句 • 例 Print语句的输出格式及应用。 • Private Sub Form_Click() • Print "123456789012345678901234567890“ • print • Print 123, 4 + 5 • Print "123", "4+5" • Print 1 + 2; 456 • Print "1+2"; "456" • Print 1; 2, -4; "78" • Print • Print 12, 88, • Print 6, 7 • Print 5, 6; • Print 7, 8 • End Sub 图2-1 例的输出结果

  20. 2.6.2 Print语句 • 从该例的输出结果可知: • (1) 无论是分段格式还是紧凑格式,数值数据输出后都会尾随一个空格,输出正数时正号不显示、前面还需输出一个空格。 • (2) 字符串数据原样显示引号内的内容,逻辑类型数据直接输出True或False。

  21. 2.6.3 赋值语句 • 格式:<变量名>=<表达式> 或 • <控件名>.<属性名>=<表达式> • 说明: • (1) 为数值变量赋值时,表达式的值不得超过数值变量的数值范围,否则显示错误信息。 • (2) 值为浮点类型的表达式四舍五入后向整型变量赋值。 • (3) 任何类型表达式都可以向字符串变量赋值。 • (4) 赋值号不是数学中的等号。

  22. 2.6.3 赋值语句 • 例 编写一个实现两个变量值交换的程序。 • 我们可以把两个变量A、B设想成分别装有牛奶和咖啡的两只杯子,现在要把牛奶倒到咖啡杯里,而将咖啡倒到牛奶杯里。可以这样来做:另取一只杯子(同类型变量)C,将A中的牛奶倒入杯子C,再将B中的咖啡倒入杯子A,最后将杯子C中的牛奶倒入杯子B。 • 程序如下: • Private Sub Form_Click() • Dim a as Integer, b as Integer, c as Integer • a=5: b=8 • Print a,b '显示交换前的值 • c=a: a=b: b=c '交换 • Print a,b '显示交换后的值 • End Sub • 显然,将交换的过程写作“a=b: b=a”是错误的。

  23. 运算符 名 称 实 例 ^ 乘 方 2^3值为8,-2^3值为-8 * 乘 法 5*8 / 除 法 7/2,计算结果为3.5 \ 整 除 7\2值为3,12.58\3.45值为4(两边先四舍五入再运算) Mod 求余数 7 mod 2值为1,12.58 Mod 3.45值为1(两边先四舍五入再运算) + 加 法 1+2 - 减法、取负 5-8, -3 2.7.1 算术运算符与算术表达式 • 1.算术运算符 • 如表2-3所示,Visual Basic共有7个算术运算符,除了负号是单目运算符,其他都是双目运算符。 表2-3 算术运算符

  24. 2.7.1 算术运算符与算术表达式 • 2.算术运算符的优先级 • 算术运算符之间的运算优先级从高到低如下所示。 • (指数运算 ^)→(取负 -)→(乘 *、除 /)→(整除 \)→(求余Mod)→(加 +、减 -) • 其中,整除和求余运算中,如果其两边的任一个操作数为实型(Single、Double),则Visual Basic自动将其四舍五入、再用四舍五入后的值作整除或求余运算。 • 乘、除为同级运算符,加、减为同级运算符,同级运算从左向右进行。在表达式中加括号,可以改变表达式的求值顺序。

  25. 2.7.1 算术运算符与算术表达式 • 3.算术表达式 • 书写Visual Basic的算术表达式,应注意与数学表达式在写法上的区别。例如: • (1) 不能漏写运算符,如3xy应写作3*x*y。 • (2) Visual Basic算术表达式中使用的括号都是圆括号。 • 例 由下列数学式写出相应的Visual Basic算术表达式。 • 写作:1/(1+1/(1+x)) • 写作:(-a^(b^c)+b^0.5)*(a-b)^-0.5

  26. 2.7.2 字符串运算符与字符串表达式 • 字符串运算符有两个:“+”和“&”,均为双目运算符,用于连接两边的字符串表达式。 • "ABCD" & "efg" , 计算后所得表达式的值为"ABCDefg" • “杭州” & “西湖” ,计算后所得表达式的值为"杭州西湖" • 字符串连接符“&”具有自动将非字符串类型的数据转换成字符串后再进行连接的功能,而“+”则不能。 • 如:"xyz" & 123 ,计算后所得表达式的值为"xyz123“ • "xyz" + 123 ,出现类型不匹配错误

  27. 2.7.3 关系运算符与关系表达式 • 关系运算符也称为比较运算符,包括 <、<=、>、>=、=、<> 6种,用于比较两边的表达式是否满足条件,运算结果为True或False。

  28. 运算符 名 称 实例说明 And 与 8 Mod 2=0 And 8 Mod 3=0,值为False。 Or 或 8 Mod 2=0 Or 8 Mod 3=0,值为真(True)。 Not 非 Not 1>0,值为False,由真变假;Not 1<0,值为True,由假变真 2.7.4 逻辑运算符与逻辑表达式 • 常用的逻辑运算符有3种,如表2-4所示。 • 逻辑运算符的优先级是:先Not,次And,后Or。 表2-4 逻辑运算符

  29. 2.7.4 逻辑运算符与逻辑表达式 • 例 由下列条件写出相应的Visual Basic逻辑表达式。 • 条件“-3<x<3”写作逻辑表达式为:-3<x and x<3 • 判断整型变量k是正的奇数的逻辑表达式为:k>0 and k mod 2=1

  30. 2.7.5 运算符的优先顺序 • 算术运算符 • 字符串运算符 • 关系运算符 • 逻辑运算符

  31. 2.7.6 常用内部函数 • 1.数学函数 • 下列函数的参数均为数值类型。 • (1) 三角函数:Sin(x)、Cos(x)、Tan(x),反正切函数Atan(x) ◆以上函数分别返回正弦值、余弦值、正切值和反正切值。 ◆Visual Basic没有余切函数,求x弧度的余切值可以表示为1/Tan(x)。 ◆函数Sin、Cos、Tan的自变量必须是弧度,如数学式sin30º,写作Visual Basic的表达式为Sin(30*3.1416/180)。

  32. 2.7.6 常用内部函数 • (2) Abs(x):返回x的绝对值。 • (3) Exp(x):返回e的指定次幂,即ex。 • (4) Log(x):返回x的自然对数。 • (5) Sgn(x):符号函数,当x>0时,Sgn(x)的值为1;当x=0时,Sgn(x)的值为0;当x<0时,Sgn(x)的值为-1。 • (6) Sqr(x):返回x的平方根,如Sqr(16)的值为4,Sqr(1.44)的值为1.2。 • (7) Int(x):返回不大于x的最大整数,如Int(7.8)值为7,Int(-7.8)值为-8。 • (8) Fix(x):返回x的整数部分,如Fix(7.8)值为7,Fix(-7.8)值为-7。

  33. 2.7.6 常用内部函数 • 2.字符串函数 • (1) Ltrim(x):返回删除字符串x前导空格符后的字符串。 • 如Ltrim(" abc")的计算结果为字符串"abc"。 • Rtrim(x):返回删除字符串x尾随空格符后的字符串。 • 如Rtrim("abc ")的计算结果为字符串"abc"。 • Trim(x):返回删除字符串x前导和尾随空格符后的字符串。 • 如Trim(" abc ")的计算结果为字符串"abc"。 • (2) Left(x,n):返回字符串x前n个字符所组成的字符串。 • Right(x,n):返回字符串x后n个字符所组成的字符串。 • Mid(x,m,n):返回字符串x从第m个字符起的n个字符所组成的字符串。

  34. 2.7.6 常用内部函数 • (3) Len(x):返回字符串x的长度,如果x不是字符串,则返回x所占存储空间的字节数。 • 如函数Len("abcdefg")的返回值为7,而函数Len(k%)的返回值为2。 • (4) Lcase(x)和Ucase(x):分别返回以小写字母、大写字母组成的字符串。 • (5) Space(n):返回由n个空格字符组成的字符串。 • (6) Instr(x,y):字符串查找函数,返回字符串y在字符串x中首次出现的位置。如果y不是x的子串,即y没有出现在x中,则返回值为0。 • 如字符串a已赋值"abcd efg cd_xy",则函数Instr(a,"cd")的计算结果为3。

  35. 2.7.6 常用内部函数 • 3.日期和时间函数 • (1) Date:返回系统当前日期。 • (2) Time:返回系统当前时间。 • (3) Now:返回系统当前日期、时间。 • (4) Minute(Now)、Minute(Time):返回系统当前时间“hh:mm:ss”中的mm(分)值。 • (5) Second(Now)、Second(Time):返回系统当前时间“hh:mm:ss”中的ss(秒)值。 • 4.转换函数 • (1) Str(x):返回把数值型数据x转换为字符型后的字符串。 • (2) Val(x):把一个数字字符串x转换为相应的数值。 • (3) Chr(x):返回以Ascii值为x的字符,如Chr(65)返回"A"。 • (4) Asc(x):返回字符串x首字符所对应的ASCII值,是函数Chr的逆运算。如Asc("ABcde")返回数值65。

  36. 2.7.6 常用内部函数 • 5.随机数语句和函数 • (1) Randomize语句:该语句的作用是初始化Visual Basic的随机函数发生器(为其赋初值)。 • (2) Rnd函数:产生0~1之间的随机数。[0,1) • 一般地,要得到[a,b]之间的随机整数,可用公式“Int(Rnd*(b-a+1))+a”。

  37. 2.7.6 常用内部函数 • 6.与Print方法有关的函数 • (1) Tab(n):将输出项定位到从第n列开始显示输出,Tab函数与输出项之间用分号隔开。 • 如执行语句Print Tab(10); 123,则在当前输出行的第10列起输出123。 • (2) Spc(n):输出n个空格。 • 如执行语句“Print "abc"; Spc(3); "def"”后输出:abc def

  38. 2.7.6 常用内部函数 • 例 由下列条件写出相应的Visual Basic表达式。 • 求变量x之绝对值的平方根,算术表达式为:Sqr(Abs(x)) • 判断变量k的整数部分是否为两位数的逻辑表达式为:Int(Abs(k))>9 And Int(Abs(k))<100 • 数学式写作算术表达式为:Sqr(s*(s-a)*(s-b)*(s-c)) • 将大于0的单精度变量k四舍五入至小数点后两位的表达式为:Int(k*100+0.5)/100 • 数学式cos25º+ctg32º写作算术表达式为:cos(25*3.14159/180)+1/Tan(32*3.14159/180) • 数学式e12.6·loge3-8.6写作算术表达式为:exp(12.6)*log(3)-8.6 • 数学式(ex-log10y)·cos35º写作算术表达式为: • (exp(x)-log(y)/log(10))*cos(3.14159*35/180) • N是大于0的整数,求N的位数的表达式为:Len(Str(N))-1

  39. 2.7.6 InputBox函数和MsgBox函数 • 1.InputBox函数 • InputBox函数也称为输入对话框,返回用户在对话框中输入的信息。格式: <变量名>=InputBox([<提示信息>][,[<对话框标题>][,<默认值>]] • 其中: • (1) <提示信息> 指定在对话框中出现的文本信息。 • (2) <对话框标题> 指定对话框的标题信息。 • (3) <默认值> 可以指定文本框中显示的默认信息。 • 系统默认用该函数输入的数据为字符串类型。

  40. 2.7.6 InputBox函数和MsgBox函数 图2-2“数据输入”对话框

  41. 2.7.6 InputBox函数和MsgBox函数 • 2.MsgBox函数 • MsgBox函数也称为消息对话框,用户单击按钮后返回一个整数以标明单击了哪个按钮。格式: [<变量名>] = MsgBox([<提示信息>][,[<对话框类型>][,<对话框标题>]]) • 其中: • (1) <提示信息> 指定在对话框中出现的文本信息。 • (2) <对话框类型> 指定对话框中出现的按钮和图标样式。 • (3) <对话框标题> 指定对话框的标题信息。

  42. 值 Visual Basic常量 Visual Basic常量 按钮样式 图标样式 0 16 vbOKOnly VbCritical “确定”按钮 停止图标 32 1 vbOKCancle VbQuestion “确定”和“取消”按钮 问号(?)图标 2 48 vbAbortRetryIgnore vbExclamation “终止”、“重试”和“忽略”按钮 感叹号(!)图标 64 vbInformation 消息图标 3 vbYesNoCancle “是”、“否”和“取消”按钮 4 vbYesNo “是”和“否”按钮 5 vbRetryCancle “重试”和“取消”按钮 2.7.6 InputBox函数和MsgBox函数 表2-7 按钮样式 表2-8 图标样式

  43. Visual Basic常量 说 明 0 vbDefaultButton1 第一按钮为默认按钮 256 vbDefaultButton2 第二按钮为默认按钮 512 vbDefaultButton3 第三按钮为默认按钮 2.7.6 InputBox函数和MsgBox函数 表2-9 默认按钮 如,执行语句“n=MsgBox("请确认输入的数据是否正确!",3+32+0,"数据检查")”后,则弹出如图2-3所示的对话框。 参数“3+32+0”中:按钮样式为3,在对话框中显示“是”、“否”和“取消”按钮;图标样式为32、显示问号;默认按钮为0,将第1按钮“是(Y)”作为默认按钮。 图2-3 消息对话框

  44. 返回值 按 钮 返回值 按 钮 1 “确定”按钮 5 “忽略”按钮 2 “取消”按钮 6 “是”按钮 3 “终止”按钮 7 “否”按钮 4 “重试”按钮 2.7.6 InputBox函数和MsgBox函数 • 命令中的参数“3+32+0”就是“35”,Visual Basic会自动分解为合适的参数组合,如此写法只是为了阅读程序方便,直观地看出按钮样式、图标样式以及缺省按钮。 • (4) 函数MsgBox对用户在消息对话框中所单击的不同按钮,将返回产生1个不同的数值,其对应关系如表2-8所示。 表2-10 单击消息对话框中不同按钮导致的不同返回值

  45. 2.7.6 InputBox函数和MsgBox函数 • 应根据函数MsgBox的不同返回值编程,实现编程者的设计意图。 • 如下列程序段中的MsgBox函数,显示的对话框有“确定”、“取消”两个按钮(由按钮样式1决定),图标样式为问号(由图标样式32决定),默认按钮为第一按钮“确定”(由默认按钮0决定)。 • n=MsgBox("是否终止运行!",1+32,"") • If n=1 Then End • 如果用户要求终止运行,按了“确定”按钮,则函数返回值为1(见表2-8)。此后,判断n值是否为1来决定是否终止程序运行。

  46. 小结 • 本章首先介绍了Visual Basic的基本数据类型、不同类型常量的书写方式及不同类型变量的声明语句,目的是为了在程序设计时,根据所要解决问题的实际需要,选择合适的数据类型、书写常量和定义变量。然后介绍了Visual Basic的算术、关系、逻辑运算符和常用Visual Basic内部函数,读者应熟记这些运算符及其优先级、内部函数的书写形式和用法,以便能正确书写Visual Basic表达式。

More Related