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

Slides:



Advertisements
Similar presentations
第2章 Visual Basic 6.0编程基础 (第一部分)
Advertisements

課程名稱:程式設計 授課老師:________
課程名稱:程式設計 授課老師:________
第四章 控制结构.
赋值语句与输入、输出语句.
程式語言(I)- Visual Basic 6.0 第 9 章 結構化程式設計
高中信息技术新课程探讨 算法与程序设计教学实践与探讨 江苏省新海高级中学  张丽.
第9章 处理字符串和日期时间 Visual Basic 程序设计教程.
上課囉 職場甘苦談 小資男孩向錢衝 育碁數位科技 呂宗益/副理.
网 络 课 程 马 鞍 学 网 络 山 课 程 大 络 网 Visual Basic程序设计 第 一 讲 最容易接受的编程语言
算法和程序设计 第4课 分支结构的算法设计 •.
第五章 数组.
四 VBScript编程基础.
Visual Basic程序设计.
ASP VBScript 基础知识.
程式語言Visual Basic 變數的可視範圍
VB內建函數與應用.
課程名稱:程式設計 授課老師:________
Visual Basic 6.0 學習範本 第三章 基本資料型態.
第6章 数 组 6.1 一维数组 6.2 控件数组 6.3 二维数组.
第二章 Visual Basic语言基础.
数组 第 6 章.
第5章 数组 Visual Basic程序设计.
Visual Basic程序设计 第七章 数组
第3章 變數、資料型別與運算子.
程式語言 -Visual Basic 變數、常數與資料型態.
过程 第 7 章.
ASP动态网页设计实用教程 主讲教师: 开课单位:.
第12章 VBA编程 虽然Access的交互操作功能非常强大且易于掌握,但是在实际的数据库应用系统中,用户还是希望尽量通过自动操作达到数据库管理的目的。应用程序设计语言在开发中的应用,可以加强对数据管理应用功能的扩展。Office中包含Visual Basic for Application(VBA),VBA具有与Visual.
初识Visual Basic.
算法与程序设计.
第4章 程序控制结构与算法基础.
第4章 基本的控制结构 4.1 顺序结构 4.2 选择结构程序设计 4.3 循环结构 4.4 综合实例 退出.
流程控制、陣列 台南市聖功女子高級中學 毛全良.
计算机程序设计强化复习 Visual Basic 6.0.
程序的基本要素 2018/12/6.
Visual Basic 程序设计 教师:王 杨 电话:
第3章 Visual Basic语言基础 郭清溥.
第3章 變數、資料型別與運算子 3-1 變數與資料型別的基礎 3-2 變數的命名與宣告 3-3 資料型別 3-4 運算式與運算子
3.5 用递归法解决问题 黄学鸿.
第12章 VBA模块设计.
丙級電腦軟設-VB程式設計 資料來源:林文恭研究室 整理:張福生.
新觀念的 VB6 教本 第 6 章 資料型別.
第5章 Visual Basic控制结构 之 常用算法举例
第 8 章 过程.
广州市教育局教学研究室编写的 初中《信息技术》第二册第二章 《程序设计初步》
Visual Basic程序设计.
算法与程序设计 周少品.
VB程序设计语言 主讲教师:王 杨.
VB程序设计语言 主讲教师:王 杨.
第三章 VB语言基础 本章重点和难点 3.1 Visual Basic 程序代码的组织方式 3.2 代码行的书写规则
程式設計 Visual Basic簡介 週次:2 建國技術學院 資管系 饒瑞佶 2003年9月17日.
程式語言(I)- Visual Basic 6.0 第 8 章 模組化程式設計I-副程式與自定函數.
For x = 0 To 9 For y = 0 To 9 z = *x + 10*y …… Next y
江西财经大学信息管理学院 《数据库应用》课程组2007
第2章 VB语言基础 本章要点: 数据类型 常量和变量 运算符表达式 函数.
现代信息技术 微电子技术 计算机技术 传感技术 通信技术 处理、存储信息的技术 传感、采集技术 传递信息的技术
程序基础 2019/4/25.
第二章、第三章错题分析.
計算機概論 跨越講義 第4章 基本視窗程式應用 4-1 程式語言簡介 4-2 結構化VS物件導向程式設計
选择结构设计 第 4 章 程序流程有三种最基本的控制结构,即顺序结构、选择结构和循环结构。
1位选手参加了歌唱比赛,评委们的评分如下:
第八节 算术运算符和算术表达式.
Print方法和函数 2019/5/19.
第5章 数组 5.1 数组概述 5.2 静态数组和动态数组 5.3 数组的基本操作 5.4 控件数组 5.5 数组在自定义数据类型中的应用.
随机数、数组、解析、枚举.
算法与Visual Basic程序基础(二)
信息的加工 Word中查找和替换、自动更正、批注、修订 Excel中公式和函数、排序和筛选、图表的建立和编辑 字符识别OCR.
VB语言基础 一、 常量 1 定义:在程序运行过程中不能发生改变的量 2 分类 整型常量: 整数 不带小数点的数 数值常量
程序调试与错误处理.
Presentation transcript:

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

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

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

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

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

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

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

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

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

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

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

说明: (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)

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

2.3.3 日期表达式 日期表达式是用运算符(+或-)将算术表达式、日期型常量、日期型变量和函数连接起来的式子。 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#

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

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

(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语句来初始化随机数生成器

例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 10 '求个位数 c = b * 10 + a '生成新的数 Print "处理后的数: "; c End Sub 运行程序后单击窗体,输出结果是: 处理后的数:63

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

例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 运行程序后单击窗体,输出结果是: 产生的两个随机数:56 71 和数:127 再次运行程序,单击窗体后输出另一组结果是: 产生的两个随机数:18 37 和数:55

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“

(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) 的结果为 4 Instr(”A12a34A56”, ”A”) 的结果为 1 (4)在函数String中,字符也可以用ASCII代码(附录一)来表示 例如 String(6, 42) 与 String(6, ”*”)作用相同

例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

若用 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

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

例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-1 Print "本月份是:"; c; "年"; d; "月" Print "现在是:"; e; "时"; f; "分" End Sub 运行程序后单击窗体,输出结果如下: 现在距离2005年元旦还有:1184天 2005年元旦是:星期6 本月份是:2001年10月 现在是:16时27分

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

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

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

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不区分应用程序代码字母的大小写 。

(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

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

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