中文Visual Basic 6.0实用教程——结构化程序设计 教学课件 ppt 作者 沈大林 杨旭 关点 杜金 第5章

上传人:E**** 文档编号:89371475 上传时间:2019-05-24 格式:PPT 页数:29 大小:439.50KB
返回 下载 相关 举报
中文Visual Basic 6.0实用教程——结构化程序设计 教学课件 ppt 作者  沈大林 杨旭 关点 杜金 第5章_第1页
第1页 / 共29页
中文Visual Basic 6.0实用教程——结构化程序设计 教学课件 ppt 作者  沈大林 杨旭 关点 杜金 第5章_第2页
第2页 / 共29页
中文Visual Basic 6.0实用教程——结构化程序设计 教学课件 ppt 作者  沈大林 杨旭 关点 杜金 第5章_第3页
第3页 / 共29页
中文Visual Basic 6.0实用教程——结构化程序设计 教学课件 ppt 作者  沈大林 杨旭 关点 杜金 第5章_第4页
第4页 / 共29页
中文Visual Basic 6.0实用教程——结构化程序设计 教学课件 ppt 作者  沈大林 杨旭 关点 杜金 第5章_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《中文Visual Basic 6.0实用教程——结构化程序设计 教学课件 ppt 作者 沈大林 杨旭 关点 杜金 第5章》由会员分享,可在线阅读,更多相关《中文Visual Basic 6.0实用教程——结构化程序设计 教学课件 ppt 作者 沈大林 杨旭 关点 杜金 第5章(29页珍藏版)》请在金锄头文库上搜索。

1、第5章 数组和数据结构基础,本章要点 5.1 选 举 程 序 5.2 改变二维数组 5.3 线性表的插入和删除 5.4 数据的排序 习题 5,5.1 选 举 程 序,5.1.1 数组和数组元素 1数组 在实际应用中,经常需要处理一批相互有联系、有一定顺序、同一类型和具有相同性质的数据(例如:某单位若干职工的工资,各候选人的选票数等)。通常把这样的数据或变量叫数组。数组是一组具有相同数据结构的元素组成的数据集合。构成数组的各个数据或变量叫数组元素。数组在Visual Basic程序设计中相当重要,它可以使程序设计得更有条理和更简单。 2数组元素 组成数组的元素统称为数组元素。若干职工的工资构成一

2、个数组,每个职工的工资叫数组元素;所有候选人的选票数据构成一个数组,每一个候选人的选票数就是一个数组元素。数组用一个统一的名称来标识这些元素,这个名称就是数组名。数组中,对数组元素的区分用数组下标来实现,数组下标的个数称为数组的维数。有了数组,就可以用同一个变量名来表示一系列的数据,并用一个序号(下标)来表示同一数组中的不同数组元素。例如:数组N有11个数组元素,则可表示为N(0),N(1),N(10),它由数组名称和括号内的下标组成,下标可以是常量、变量和数值型表达式。因此,数组元素也叫下标变量。,5.1 选 举 程 序,3下标变量和简单变量之间的区别 下标变量和简单变量之间的重要区别就是简

3、单变量是没有序的,数组中的数组元素是有排列顺序的。使用循环语句,使下标变量的下标不断变化,即可获取数组中的所有变量,采用这种方法,可以很方便地给下标变量赋值和使用下标变量的数据。例如:100个职工的工资进行总金额统计,如果使用简单变量,需要使用100个变量(F1,F2,F3,F100)来分别表示各职工工资,则总金额为F=F1+F2+F3+F100。如果使用数组,只需要一个有100个数组元素的数组F,它有100个下标变量F(1),F(2),F(3),F(100),使用循环语句,可以很容易地给它们赋值和进行累加。再例如,对100个候选人选票进行统计,如果使用简单变量,程序会很复杂;如果使用数组,程

4、序会变得非常简单。,5.1 选 举 程 序,5.1.2 定义常规数组 在Visual Basic中,根据数组占用内存的方式,可以将数组分为常规数组和动态数组两种类型。常规数组是数组元素个数不可改变的数组,动态数组是数组元素个数可以改变的数组。数组的下标变量一定要在定义了数组后才可以使用。 1创建常规数组 常规数组是大小固定的数组,也就是说常规数组中包含的数组元素的个数不变,它总是保持同样的大小,占有的存储空间也保持不变。 创建常规数组也叫定义数组或说明数组。定义数组语句的格式及功能如下。 【格式】Dim 数组名 (维数定义)As 数据类型 【功能】创建常规数组,它的名称由“数组名”给出,维数由

5、“维数定义”,数据类型由“数据类型”给出。数组名的命名与变量的命名方法一样。可同时定义多个不同维数的数组。 【说明】 维数定义:下标变量中的下标个数称为数组的维数,当它被省略时是创建了一个无下标的空数组。维数定义的格式如下:,5.1 选 举 程 序, 数据类型:用来定义数组下标变量的数据类型,可以定义所有数据类型。当它省略后,则相当于定义了一个变体(Variant)数据类型。 Dim语句本身不具备再定义功能,即不能直接使用Dim语句对已经定义了的数组进行再定义。Dim 能够定义说明数组,分配数组存储空间。数组元素在未经赋值前, 数值型数组元素值为零,字符型数组的元素值为空字符串。 例如:Dim

6、 Data(20) As Integer 语句定义了一个名称为Data的整型数组,它有21个元素:Data(0),Data(1),Data(20); Dim Number(5 To 20) As Double语句定义了一个名称为Number的双精度型数组,它有16个元素:Number(5),Number(6),Number(20); Dim M(2,3 To 5) As Integer 语句定义了一个名称为M的二维整型数组,它有33个元素:M(0,3)、M(0,4)、M(0,5)、M(1,3)、M(1,4)、M(1,5)、M(2,3)、M(2,4)、M(2,5)。 可以在一个数组中包含其他已经

7、定义过的数组,被包含的数组类型一般应与该数组类型一样,但如果是变体型数组除外。 使用Option Base n语句可以重新设定数组的下界,其中n为0或正整数,表示数组下界的数值。 使用下标变量时,可以完全像使用简单变量那样进行赋值和读取,下标变量的下标可以是常量、变量和数值型表达式(长整型数据)。,5.1 选 举 程 序,2创建动态数组 对于动态数组,只有在程序的执行过程中才给数组开辟存储空间,在程序未运行时,动态数组不占用内存,可以将这部分存储空间移作他用。当不需要动态数组时,还可以用Erase语句删除它,收回分配给它的存储空间,还可以用Redim(或Dim)语句再次分配存储空间。动态数组是

8、用变量作为下标定维的数组,在程序运行的过程中完成数组的定义,动态数组可以在任何时候改变大小。 【格式】ReDim Preserve 数组名 (维数定义)As 数据类型 【功能】创建动态数组。 【说明】 创建动态数组时,上界和下界可以是常量和变量(有确定值)。 可使用ReDim语句多次改变数组的数组元素个数和维数,但不能改变它的数据类型。 如果重新定义数组,则会删除它原有数组元素中的数据,并将数值型数组元素全部赋0,将字符型数组元素全部赋空串。如果要想在数组重定义后不删除原有数据,应在定义数组时增加Preserve关键字,但是使用Preserve关键字后,只能改变最后一维的上界,不可以改变数组的

9、维数。,5.2 改变二维数组,5.2.1 For Each Next循环语句和数组函数 1For Each Next循环语句 For Each Next循环语句与For Next循环语句类似,它是对数组中的每一个数组元素重复执行同一组语句序列。如果不知道一个数组中有多少个数组元素,使用For Each Next语句是非常方便的。 【格式】For Each 变量 In 数组 循环体语句序列 Next 变量 【功能】变量每取数组中的一个元素,都重复执行关键字For Each和Next之间的循环语句序列。在循环语句序列中可以使用“Exit For”语句。,5.2 改变二维数组,2数组函数 (1)Ar

10、ray函数 【格式】Array(元素列表) 【功能】将元素列表中的数据赋给一个Variant型数组的数组元素。 【说明】元素列表由各种类型数据组成,这些数据用逗号分隔。如果元素列表中不包含任何元素,则该函数创建一个元素个数为0的空数组。没有被声明为数组的Variant型变量也可以表示数组。除了定长字符串以及用户自定义类型数据之外,Variant变量可以表示任何类型的数组。例如: Dim N1,N2 定义了两个Variant型变量N1和N2 N1=Array(“A“,“B“,“C“,“D“,“E“,“1“,“100“) 将一个数组赋给变量N1 N2=N1(6) 将数组N1的第7个元素(下标从0开

11、始)的值赋给变量N2,5.2 改变二维数组,(2)下界函数(Lbound) 【格式】Lbound(数组名,维数) 【功能】求数组指定维数的最小下标。函数值为Long型数据。 【说明】“数组名”参数为数组变量名。维数是可选参数,可以是任何有效的数值表达式,表示求哪一维的下界。1表示第一维,2表示第二维,依此类推。如果省略该参数,则默认为1。 例如:声明数组N,即Dim N(100,10 To 100,1 To 10),则LBound(N,1)=0,LBound(N,2)=10,LBound(N,3)=1。 (3)上界函数(Ubound) 【格式】UBound(数组名,维数) 【功能】求数组指定维

12、数的最大下标。函数值为Long型数据。 例如:声明了数组N,即Dim N(20,1 To 10),则UBound(N,1)=20,UBound(N,2)=10。通常将UBound函数与LBound函数一起使用,以确定一个数组的大小。 例如: ReDim N(30) As Double 定义了一个有31个数组元素的整型动态数组N ReDim Preserve N(Ubound(N)+10) 利用Ubound函数将动态数组N的上界加10,5.2 改变二维数组,(4)IsArray函数 【格式】IsArray(变量名) 【功能】判断一个变量是否为数组变量。函数值为Boolean型。 【说明】如果参数

13、是数组变量,则该函数的值为True,否则为False。 例如:声明了Dim N1(10) As Long : Dim L Integer,则IsArray(N1)= False, IsArray(N1)=True。,5.3 线性表的插入和删除,5.3.1 数据结构的基础知识 1什么是数据结构 早期的计算机主要用于解决数值计算问题,例如,计算函数值、解不定方程式、解代数方程和求一元多次方程的解等。随着计算机应用的不断发展,计算机的应用领域除了用于科学计算外,还更大范围地应用于数据处理和数据管理等非数值计算工作,如文献检索、金融管理、商业系统数据处理、计算机辅助设计和制造以及图像模式识别等。因此,

14、计算机的加工处理对象除了纯粹的数值外,更多的是字符、表格、图像、音频及视频等信息编码的具有一定结构的数据,解决非数值性问题越来越引起人们的关注。 这类问题重点在于数据处理,即对数据集合中的各元素以各种方式进行运算,如插入、删除、查找和更新等。针对这些处理对象,要编写高质量的程序,就必须研究如何有效地组织数据和处理数据,根据问题的要求及数据元素之间的特性,来确定相应的算法和存储结构等,这些正是数据结构要研究的内容。 计算机是通过执行人们所编制的程序来完成预定任务的。从广义上说,计算机按照程序所描述的算法对某种结构的数据进行加工处理。因此,有人给程序下了一个定义,“程序=算法+数据结构”。,5.3

15、 线性表的插入和删除,对于许多非数值问题,通常是无法用数学方程来描述的,这些问题所求的不是某个数值,而是某种检索的结果,某种排列的状态,某种转换后的形式,某种设计的表示等,这些问题的数学模型是通过一种数据结构来描述数据以及数据之间的相互关系。下面通过一个“用计算机处理电话号码查询”问题来了解数据结构。 该问题是要求用户输入姓名,如果存储有该人的电话号码,则会给出对应输入姓名的电话号码;否则,显示没有该人电话号码的信息。有两种方法可以选择,一是按照用户在电信局中申请的电话号码的顺序建立电话号码表,存储到计算机中,如表5-3-1所示。这种情况下,由于电话号码没有任何规律,查找时只能从第一个号码开始

16、逐一进行。二是根据每个用户姓名的第一个拼音字母,按照26个英文字母的顺序进行排列,如表5-3-2所示。这种情况下,根据姓名的第一个字母就可以迅速地进行查找,从而大大减少了查找所需的时间。,5.3 线性表的插入和删除,在这个例子中,为了提高查找效率,必须了解待处理对象之间的关系,以及如何存储和表示这些数据。表5-3-1和表5-3-2就是为了解此问题而建立的不同的数学模型,在表5-3-2中,各对象(姓名)之间存在一种有效的最简单的线性关系,即按姓名顺序排列,这类数学模型可称为线性表数据结构。 这个例子中的问题是一个非数值计算问题,不能用数学方程描述这类问题,而是使用了表这个数据结构来进行描述。 在数据处理领域中,数据类型比较复杂,而且数据元素之间具有各种特定的联系,因此,了解数据

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号