Presentation is loading. Please wait.

Presentation is loading. Please wait.

程序设计基础 第 2 章 学习程序设计的基本方法: 多练 模仿.

Similar presentations


Presentation on theme: "程序设计基础 第 2 章 学习程序设计的基本方法: 多练 模仿."— Presentation transcript:

1 程序设计基础 2 学习程序设计的基本方法: 多练 模仿

2 第2章 程序设计基础 本章主要内容 数据类型 程序中的大部分实际工作是采用程序代码来处理的 常量与变量 表达式 常用内部函数
任何一个程序设计语言都有一套严格的编程规定 本章主要内容 数据类型 常量与变量 表达式 常用内部函数 程序代码编写规则

3 2.1 数据类型 数值型 数据类型 字符型 数据是程序处理的对象。为了更好地处理各种各样的数据,VB定义了多种数据类型 逻辑型 日期型
数据类型 字符型 逻辑型 日期型 对象型 变体型 整数: 整型/长整型 字节型 浮点型: 单/双精度 货币型

4 1. 整型(Integer)和长整型(Long) 不带小数部分的数,表示正整数、负整数和零 整型数: ~ 长整型数: ~ 字节型(Byte) 字节型数可以表示无符号的整数 ~ 单精度型(Single)和双精度型(Double) 浮点数。表示带有小数部分的数 表示数的范围大,但有误差。 如超出某个表示范围,则用科学记数法 例如:4.53E8(4.53×108),8.173E-14,3.14D 货币型(Currency) 专门为处理货币而设计的数据类型 它可最多保留小数点右边4位和小数点左边15位

5 5. 字符型(String) 用双引号括起来的一串字符。 例如,“Canton”、”1+2=
5. 字符型(String) 用双引号括起来的一串字符。 例如,“Canton”、”1+2=?”、”Good└┘Morning”等 “″”称为起止界限符。 字符串长度。分变长字符串(长度不固定)和定长字符串(长度固定) 在VB中,把汉字作为一个字符来处理。  逻辑型(Boolean) 逻辑型又称布尔型,其数据只有True(真)和False(假)两个值 日期型(Date) 表示日期和时间 用两个“#”符号把日期和时间的值括起来 如:#08/20/2001#、# #

6 8. 对象型(Object) 对象型数据可用来表示应用程序中的对象 9
8. 对象型(Object) 对象型数据可用来表示应用程序中的对象 变体型(Variant) 变体型数据是一种可变的数据类型,可以存放任何类型的数据 当指定变量为Variant变量时,VB会自动完成必要的转换 在程序中不特别说明时,VB会自动将该变量默认为Variant型变量。  例:Temp=“22” ’字符串 Temp=Temp ’数值 Temp=#01/01/2002# ’日期

7 说明: (1) 不同类型的数据,所占的存储空间不一样。 (2) 数据的类型可在数据之后加上一个类型符来表示,例如,413&,86. ,104
说明: (1) 不同类型的数据,所占的存储空间不一样。 (2) 数据的类型可在数据之后加上一个类型符来表示,例如,413&,86!,104.67#等。

8 2.2 常量与变量 2.2.1 常量 两种形式的常量:一般常量和符号常量 1. 一般常量
常量 在程序运行期间其值始终保持不变的量 两种形式的常量:一般常量和符号常量 1. 一般常量 在程序代码中直接给出的数据。例如:123,-263, “Visual Basic” , “12.57 ”等 2. 符号常量 符号常量是在程序中用符号表示的常量。 格式: [Public|Private] Const 常量名 [As 数据类型]=表达式 例如: Const PI= As Single

9 2.2.2 变量 应遵守一些规则: (1)变量名必须以字母开头; (2)只能由字母、数字和下划线组成。不能含有小数点、空格等字符;
变量 变量是在程序运行期间其值可以发生变化的量 1. 变量的命名规则 应遵守一些规则: (1)变量名必须以字母开头; (2)只能由字母、数字和下划线组成。不能含有小数点、空格等字符; (3)字符个数不得超过255个; (4)不能使用VB的关键字(如语句名、函数名等)。例如,Print、Sub、End等; (5) 不区分变量名中字母的大小写

10 2. 变量的声明 变量的声明就是向程序说明要使用的变量 有以下2种方法(显式声明与隐式声明)
(1) 声明变量(显式声明) 用Dim、Public、Private或Static语句来声明变量 例如:Dim sum As Integer ′把sum定义为整型变量 (2)隐式声明 不加说明就直接使用变量,此时默认的变量类型为变体类型(Variant) 也允许使用类型符来声明变量的类型,如Num%,Sum!

11 2.3 表达式 五类表达式:算术表达式、字符串表达式、日期表达式、关系表达式和逻辑表达式
2.3.1 算术表达式 算术表达式也称数值表达式,是用算术运算符把数值型常量、变量、函数连接起来的式子 表达式的运算结果是一个数值 VB有8种算术运算符(表2.2) 运算符优先级 ^(乘方) → -(求负) → */ → \ → Mod → 同级左到右

12 说明: (1)/和\的区别:1/2=0.5,1\2=0 (2)Mod用来求整型数除法的余数。 例如:9 Mod 7 结果为 2
(3)在表达式中乘号不能省略,如a*b不能写成ab(或a·b) (4)括号不分大、中、小,一律采用圆括号。可以嵌套使用 例如,x[x(x+1)+1] → x*(x*(x+1)+1)

13 2.3.2 字符串表达式 字符串表达式是采用连接符将两个字符串常量、字符串变量、字符串函数连接起来的式子。
连接符有两个:&和 其作用都是将两个字符串连接起来,运算结果是一个字符串。 例如: ”计算机” & ”网络” 的结果是: ”计算机网络”  ”123” + ”45” 的结果是: ”12345” 123 & ”ABC” 的结果是: ”123ABC”

14 2.3.3 日期表达式 日期表达式是用运算符(+或-)将算术表达式、日期型常量、日期型变量和函数连接起来的式子。
日期表达式 日期表达式是用运算符(+或-)将算术表达式、日期型常量、日期型变量和函数连接起来的式子。 有以下3种运算方式: (1)两个日期型数据相减,其结果是一个数值型数据(相差的天数)。 例如:#8/8/2001# - #6/3/2001# 的结果为:66 (2)日期型数据加上天数,其结果为一个日期型数据。 例如:#12/1/2000#+31 的结果为:#01/01/2001# (3)日期型数据减去天数,其结果为一个日期型数据。 例如:#12/1/2000#-32 的结果为:#10/30/2000#

15 2.4 常用内部函数 内部函数是由VB系统提供的,每个内部函数完成某个特定的功能。在程序中使用函数称为调用函数
2.4 常用内部函数 内部函数是由VB系统提供的,每个内部函数完成某个特定的功能。在程序中使用函数称为调用函数 函数调用的一般格式为: 函数名(参数1,参数2,…) 参数(也称自变量)放在圆括号内,若有多个参数,以逗号分隔。 函数调用后,一般都有一个确定的函数值,即返回值。 例如:y=Sqr(289) Sqr是内部函数名,289为参数,运行时该语句调用内部函数Sqr来求289的平方根,其计算结果由系统返回给变量y  VB的内部函数大体上分为四大类:数学函数,字符串函数,日期与时间函数和转换函数。

16 2.4.1 数学函数 VB中备有各种计算算术函数的子程序,在程序中要使用某个函数时,只要调用该函数就行了。
数学函数 VB中备有各种计算算术函数的子程序,在程序中要使用某个函数时,只要调用该函数就行了。 使用数学函数的几点说明: (1) 三角函数的自变量单位是弧度 如Sin47°应写成 Sin(47* /180)。 (2) 函数Int是求小于或等于x的最大整数。 例如 Int(2)=2, Int(-2.5)= 当x≥0时就直接舍去小数,若x<0则舍去小数位后再减1  利用Int函数可以对数据进行四舍五入。例如,对一个正数x舍去小数位时进行四舍五入,可采用如下式子: Int(x+0.5) 当x=9.4时,Int( )=9 当x=9.5时,Int( )=10

17 (3)随机函数可以模拟自然界中各种随机现象,它所产生的随机数,可以提供给各种运算或试验使用
Rnd通常与Int函数配合使用 生成[a, b]区间范围内的随机整数,可以采用 Int((b-a+1)*Rnd + a) 例如 Int(4*Rnd+1)可以产生1~4之间(含1和4)的随机整数。可以是1,2,3或4,这由VB运行时随机给定 使用Rnd函数之前,先用Randomize语句来初始化随机数生成器

18 例2.1 给定一个两位正整数(如36),交换个位数和十位数的位置,把处理后的数显示在窗体上
例2.1 给定一个两位正整数(如36),交换个位数和十位数的位置,把处理后的数显示在窗体上 编写的窗体单击事件过程代码如下: Private Sub Form_Click() Dim x As Integer, a As Integer Dim b As Integer, c As Integer x = 36 a = Int(x / 10) '求十位数 b = x Mod '求个位数 c = b * 10 + a '生成新的数 Print "处理后的数: "; c End Sub 运行程序后单击窗体,输出结果是: 处理后的数:63

19 把上述程序改为以下形式,效果是否一样? Private Sub Form_Click()
Dim x As Integer, a As Integer Dim b As Integer, c As Integer x = 36 a = x \ '求十位数 b = x – 10 * a '求个位数 c = b * 10 + a Print "处理后的数: "; c End Sub 想一想 通常,解决某个问题的程序方法有多种,我们应该从中选择较优的一种方法。

20 例2.2 通过随机函数产生2个两位正整数,求这2个数
例2.2 通过随机函数产生2个两位正整数,求这2个数 之和并显示出来 编写的窗体单击事件过程代码如下: Private Sub Form_Click() Dim a As Integer, b As Integer, c As Integer Randomize '初始化随机数生成器 a = Int(90 * Rnd + 10) '产生[10,99]区间内的随机整数 b = Int(90 * Rnd + 10) c = a + b '求两数之和 Print "产生的两个随机数: "; a, b Print "和数: "; c End Sub 运行程序后单击窗体,输出结果是: 产生的两个随机数:  和数:127 再次运行程序,单击窗体后输出另一组结果是: 产生的两个随机数: 和数:55

21 2.4.2 字符串函数 字符串函数用于进行字符串处理 使用字符串函数的几点说明: (1)函数Mid(“ABCDEG”,3,2)的结果为”CD” 若省略n,则得到的是从P开始的往后所有字符,如 Mid(“ABCDE”,2) 的结果为 “BCDE”  (2)插入字符串语句Mid,该语句格式如下: Mid(字符串, p[,n]) = 子字符串 用“子字符串”替换“字符串”中从P开始的与“子字符串”等长的一串字符。 例如,假设S=“ABCDE“,执行语句Mid(S,3)=“99“后,S的值为“AB99E“

22 (4)在函数String中,字符也可以用ASCII代码(附录一)来表示
(3)在函数Instr中,f和k均为可选参数,f表示开始搜索的位置(默认值为1),k表示比较方式,若k为0(默认),表示区分大小写;若k为1,则不分大小写。 格式: Instr(f, 字符串1,字符串2,k) 例如 Instr(3, ”A12a34A56”, ”A”) 的结果为 7 Instr(3, ”A12a34A56”, ”A”, 1) 的结果为 Instr(”A12a34A56”, ”A”) 的结果为 1 (4)在函数String中,字符也可以用ASCII代码(附录一)来表示 例如 String(6, 42) 与 String(6, ”*”)作用相同

23 例2.3 使用字符串函数示例 先从字符串a中找出某个指定字符(本例为空格),再以此字符为界拆分成两个字符串。编写的窗体单击过程代码如下:
Private Sub Form_Click() Dim a As String, b As String, c As String, n As Integer a = "Visual└┘FoxPro"  '└┘表示空格 n = InStr(a, "└┘")  '查找空格位置 b = Left(a, n - 1)    '取左边部分 c = Mid(a, n + 1)     '取右边部分 Print b    '显示左边部分 Print c     '显示右边部分 End Sub 程序运行后单击窗体,输出结果是: Visual FoxPro

24 若用 Right函数来代替 Mid函数, 应如何改动?
Private Sub Form_Click() Dim a As String, b As String, c As String, n As Integer a = "Visual└┘FoxPro"  '└┘表示空格 n = InStr(a, "└┘")  '查找空格位置 b = Left(a, n - 1)    '取左边部分 c = Right( ____, ____ ) '取右边部分 Print b    '显示左边部分 Print c     '显示右边部分 End Sub 程序运行后单击窗体,输出结果是: Visual FoxPro 想一想 答案:a, Len(a)-n

25 2.4.3 日期与时间函数 日期/时间函数用于进行日期和时间处理 说明: 函数Weekday返回值1~7,依次表示星期日到星期六。

26 例2.4 使用日期/时间函数示例 (留给学生分析)
例2.4 使用日期/时间函数示例 (留给学生分析) Private Sub Form_Click() x = #1/1/2005# a = x - Date b = Weekday(x) c = Year(Date) d = Month(Date) e = Hour(Time) f = Minute(Time) Print "现在距离2005年元旦还有: "; a; "天" Print "2005年元旦是:星期"; b Print "本月份是:"; c; "年"; d; "月" Print "现在是:"; e; "时"; f; "分" End Sub 运行程序后单击窗体,输出结果如下: 现在距离2005年元旦还有:1184天 年元旦是:星期 本月份是:2001年10月 现在是:16时27分

27 2.4.4 类型转换函数 转换函数用于数据类型的转换 说明:Val函数将数字字符串转换为数值型数字时,会自动将字符串中的空格去掉,并依据字符串中排列在前面的数值常量来定值,例如: Val("A12") 的值为 0 Val("12A12") 的值为 12 Val("1.2e2") 的值为 120 例2.4 使用转换函数的示例(留给学生分析) Private Sub Form_Click() x = "123" y = a = Chr(Asc(x) + 5) b = Str(Val(x) + 5) c = Val(Str(y) + "5") Print a,b, c End Sub 运行程序后单击窗体,输出结果如下:

28 2.5 程序代码编写规则 2.5.1 语句及语法 VB中的程序语句是执行具体操作的指令。 简单的语句只有一个关键字。示例: End
由VB关键字、属性、表达式以及VB可识别符号的组合 例如,下列两个语句: Print a – 2 * b ↑ ↑ 关键字 表达式 Text1.Text ═ “VB程序设计” ↑ ↑ ↑ ↑ 对象名 属性名 赋值号 表达式 简单的语句只有一个关键字。示例: End

29 建立程序语句时必须遵守的构建规则称为语法。
统一约定符号如下: [] 方括号,可选项 {} 多项中选一项 | (竖线)用来分隔多个选择项(选其中之一项) ,… 表示同类项目的重复出现

30 2.5.2 代码书写规则 (3)不区分大小写字母 VB不区分应用程序代码字母的大小写 。
在编写程序代码时,要遵守一定的规则。不能超越其规定来自由发挥。 (1) 一行写多条语句。冒号分隔 Sum=Sum+x : Count=Count+1 (2) 一条语句写成多行 使用续行符(一个空格后面跟随一个下划线“_”),将长语句分成多行。例如: Print Text1.Text & Text2.Text & Text4.Text &└┘_ & Left(Text3.Text,3) (3)不区分大小写字母 VB不区分应用程序代码字母的大小写 。

31 (4) 各关键字之间,关键字和变量名、常量名、过程名之间一定要有空格分隔。
示例: Private└┘ Sub└┘ Form_Click() (5)使用缩进 在编写程序代码时,可以使用缩进来反映代码的逻辑结构和嵌套关系。例如: Private Sub Form_Click() x=4 If x<1 Then Print "x<1" Else Print "x>=1" End If End Sub

32 (6)严格按照VB规定的格式和符号编写程序。
许多程序错误都是由此而起!!!! 例如: If a<5 Then x=10 Print "x="; x 不能写成 If a〈 5 Then x=10 Print “x=”;x 全角符号 全角符号

33 2.5.3 结构化程序的基本结构 VB支持结构化的程序设计方法
其程序结构清晰,可读性好,也易于查错和修改 结构化程序设计方法有三种基本控制结构: 顺序结构、选择结构和循环结构 具有单入口,单出口的特点 (a) (b) (c) 顺序结构 选择结构 循环结构 A B L E


Download ppt "程序设计基础 第 2 章 学习程序设计的基本方法: 多练 模仿."

Similar presentations


Ads by Google