计算机基础与Visual Basic程序设计(第二版)第八章 数组_第1页
计算机基础与Visual Basic程序设计(第二版)第八章 数组_第2页
计算机基础与Visual Basic程序设计(第二版)第八章 数组_第3页
计算机基础与Visual Basic程序设计(第二版)第八章 数组_第4页
计算机基础与Visual Basic程序设计(第二版)第八章 数组_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第八章 数 组 数组定义及引用方法,与数组有关的一些常用算法 本章要求: 重点: 、二维)的定义及其引用, 4. 掌握与数组有关的常用算法,如排序、查找、插入等。 难点: 与数组有关的一些常用算法 数组的概念 在实际应用中 , 常常需要处理相同类型的一批数据 。 例如 , 为了处理 100个员工的工资 , 可以用 S( 1) , S( 2) , , S( 100) 来分别代表每个员工的工资 , 其中 S( 1) 代表第一个员工的工资 , S( 2)代表第二个员工的工资 。 在 把一组相互关系密切的数据放在一起并用一个统一的名字作为标志 , 这就是数组 。 数组中的每一个数据称为数组元素 , 用数组名和该数据在数组中的序号来标识 。 序号又称为下标 , 数组元素又称为下标变量 。 例如 , S( 2) 是一个数组元素 , 其中的 2是下标 。 在使用数组元素时 , 必须把下标放在一对紧跟在数组名之后的括号中 。 S( 3)是一个数组元素 , 而 数组的概念 数组的概念: 数组并不是一种数据类型,而是 一组相同类型数据 的集合。用一个统一的名字( 数组名) 代表逻辑上相关的一批数据,每个元素用 下标变量 来区分;下标变量代表元素在数组中的位置。 其表示形式: A(1), A(10) X(1,1), ,10), X(2,10) Y(0,0,0), Y(1,2,5) 数组名、空间大小 数组元素及类型 下标,上界、下界、越界,缺省下界 数组维数 数组的概念 按数组的大小 ( 元素个数 ) 是否可以改变来分为: 定长数组 、 动态 ( 可变长 ) 数组 。 按元素的数据类型可分为: 数值型数组 、 字符串数组 、 逻辑数组 、 日期型数组 、 变体数组等 、 对象数组 。 按数组的维数可分为: 一维数组 、 二维数组 、 多维数组 数组的定义 1、数组必须“先声明后使用”, 声明一个数组就是声明其 数组名 、 类型 、 维数 和 数组的大小 。 2、数组的维数 ( 即下标的个数 ) 各维下标之间用逗号分开。 在 维数组 、 二维数组 最多可以达到 60维 3、 静态数组: 数组声明时 , 数组的大小固定的数组称为静态数组 。 它指明了数组的 维数 和每一维的 下标范围 , 在使用过程中 , 它的维数和下标范围将不得改变 4、 动态数组: 数组声明时 , 不指明数组的维数和每一维的下标范围 , 仅用一对圆括号表示 , 这样的数组称为 动态数组 。 静态数组的定义 静态数组的声明语法是: 数组名 ( 下界 上界 , ) 据类型 例如: 4) 14个元素的局部数组 。 1 0) 20个元素的模块级数组 。 静态数组的定义 说明: (1) 数组名的命名规则与变量的命名相同 , 但在同一过程中数组名不能和简单变量名同名 , 否则会出错 。 (2) 下标的最大值和最小值分别称为数组的上界和下界 。 数组元素在上 、 下界内是连续的 。 如: (o 20) 定义一个数组名为 A, 下界为 上界为 20的一维数组 , 数据类型为整型 ,共有 26个元素 , 即 A( A( A( A(20)。 (3) 缺省 为 0, 若希望下标从 1开始 , 可在模块的通用部分使用 为 1, 其使用语法格式是: n 参数 或 1 不能出现在过程中 , 并且必须放在数组定义前 。 例如: 1 将数组声明中缺省 下标设为 1 静态数组的定义 ( 4) 如果省略 则数组的类型为变体类型 。 ( 5) 数组中各元素在内存占一片连续的存储空间 。 A(0) A(1) A(2) A(n) . 一维数组在内存中存放的顺序 二维数组则按先行后列的顺序 。 (2, 3) ( 0 , 0 ) S ( 0 , 1 ) S ( 0 , 2 ) S ( 0 , 3 ) S ( 1 , 0 ) S ( 1 , 1 ) S ( 1 , 2 ) S ( 1 , 3 ) S ( 2 , 0 ) S ( 2 , 1 ) S ( 2 , 2 ) S ( 2 , 3 ) 第 0 行 第 1 行 第 2 行 第 0 列 第 1 列 第 2 列 第 3 列 静态数组的定义 (6) 一维数组的元素个数:上界 1;多维数组的元素个数等于每一维元素个数的乘积 。 如: x(1 0,3,1 5) 这是一个三维数组 , 第一维的元素个数为 10, 第二维的元素个数为 4, 第三维的元素个数为 15, 故整个数组的元素个数为:10 4 15 600个元素 。 (7) 关键字 具体内容将在过程与函数一章进行讲解 。 (8) 在数组定义后未赋值前 , 对于数值型数组各元素的初始值为0;字符型数组初始值为空字符串;逻辑型数组初始值为 动态数组的定义 创建动态数组的步骤: ( 1) 用 用数组 )、 模块级数组 ) 或 部数组 )在过程中声明数组。给数组 赋以一个空维数表,这样就将数组声明为动态 数组。 ( 2) 在过程中用 声明的动态数组分配 说明: 若选择 则在对数组重新说明时,将会保留原数组中的元素的内容,并且只允许 句 改变动态数组的最后一维的上限。 如: 1 AS 0,2) 0,)+4) 数组的清除 经过定义的数组将为其分配相应的存储空间,其大小不能改变。为了 重新初始化静态数组的元素 ,或者 释放动态数组的存储空间 ,可以使用 句。 格式: 组名 ,数组名 功能: 重新初始化静态数组的元素 ; 或者 释放动态数组的存储空间。 说明: 当 数组元素清空(即:赋默认值); 当 删除整个数组结构并释放该数组所占用的内存。 数组的清除 0) I=1 0 i)=I ); “” “I=1 0 ); 题: 试验 数组的基本操作 1、数组元素引用 数组的引用通常是指对数组中的元素的引用 。 数组元素的语法格式为: 数组名 (下标 , 下标 ) 其中 , 下标可以是常量 、 变量或表达式 , 但表达式的值必须介于定义数组时指定的下标的下界和上界之间 , 否则将导致 “ 下标越界 ” 的错误 。 例如: A(1)=A(2)+B(1)+7 取数组元素运算 A(i)=B(i) 下标使用变量 B(i+1)=A(i+2) 下标使用表达式 C(3,4)=100 下标使用常量 数组的基本操作 2、给数组元素赋初值 可以使用 循环结构 和 数组赋初值。 ( 1)使用循环结构 如给数组 00)的元素赋初值: i = 1 00 i) = 0 2)使用 数 数用来为数组元素赋值,即把一个数据集读入某个数组, 其语法格式为: = 数组的基本操作 1 声明一个静态的变体变量 ”5,6,7,8) 输出数组的第 4个元素,以及数组的下界和上界 ), 意: 数组变量 不能是具体的数据类型, 只能是变体类型 。 数组的基本操作 3、数组的输入 数组的输入一般可以通过 文本框 输入和 入。 4、数组的赋值 可以将一个已知数组元素的值的数组整体赋值给一个可调数组,并自动确定可调数组的大小。 例如: A(4) B() As A(0)=“王华” : A(1)=“黎明” : A(2)=“万雪” A(3)=“刘芳” : A(4)=夏恬 B =A 将 数组且大小确定为 5。 注意: 两数组的类型必须相同。 5 数组的输出 输出数组中的全部或部分元素,一般使用 循环结构 数组的基本操作 6 、 数组元素的复制 单个数组元素可以像简单变量一样 , 通过对其赋值 , 也可以把它的值赋给其他的变量或数组元素 。 即数组元素之间可以互相复制 , 无论它们是否属于同一个数组或维数是否相同 , 但数组类型必须相同 。 例如: a(4,8) b(6, 6) a(1, 2) = b(1, 1); a(2, 3) = b(2, 4) b(4, 4) =a (1, 2) 与数组有关的函数 1. 但它只能给声明 值后的数组大小由赋值的个数决定。 例如,要将 1,2,3,4,5,6,7 这些值赋值给数组 a,可使用下面的方法赋值。 a() A=,2,3,4,5,6,7) a A=,2,3,4,5,6,7) 与数组有关的函数 2 求数组的上界 )函数、 下界 )函数 )函数和 )函数 分别用来确定数组某一维的上界和下界值 。 使用形式如下: , ) , ) 其中: : 数组变量的名称 , 遵循标准变量命名约定 。 :可选的;一般是整型常量或变量 。 指定返回哪一维的上界 。 1 表示第一维 , 2 表示第二维 , 如此等等 。 如果省略默认是 1。 句与 句类似 , 都是实现循环结构的语句 。 但 句是专用于数组和对象集合的 。 其语法格式是: 员 组 循环体 员 说明: (1) 成员:为一个 是为循环提供的 , 在 句中代表数组中的每个元素 , 数组中有几个元素 , 此成员就重复使用几次 , 循环体就执行几遍 。 (2) 数组:在此之前经过定义的数组 , 用在此处时仅仅是一个数组名 , 没有括号和上下界 。 (3) 句可以对数组元素进行读取 、 查询 、 输出等操作 , 它所重复执行的次数由数组中的元素个数决定 。 例如: 00) x x ; x 此段 00个元素 , 循环体 (将执行 100 次 , 即要输出 100 次 , 但每次 组中的一个元素 , 所以这段代码的功能就是输出 (4) 不能在 因为 控件数组 1、控件数组的概念 一个窗体上可以包含多个 同种类型的控件 ,可以通过创建控件数组的方法使同一类型的控件 共享同一个事件过程 。使用控件数组的最大好处是编写的代码比较简单且易于维护。 控件数组: 是具有相同名称、类型以及事件过程的一组控件。 每一个控件具有一个唯一的索引 ( 。当数组中的一个控件识别某一事件时,它将调用此控件数组的相应事件过程,并把相应索引作为参数传递给事件过程 。 一个控件数组至少应有一个元素 , 在控件数组中可用到的最大索引值为 32767。 同一控件数组中的元素有自己的属性设 置值。 控件数组 2、控件数组的建立 控件数组中每一个元素都是控件,它的定义方式与普通数组不同。可以通过以下两种方法建立控件数组。 方法一:复制已有的控件并将其粘贴到窗体上。 方法二:将窗体上已有的类型相同的多个控件的 控件数组 3、控件数组应用举例 建立了控件数组之后,控件数组中所有控件共享同一事件过程。例如,假定某个控件数组含有 10个标签,则不管单击哪个标签,系统都会调用同一个 于每个标签在程序中的作用不同,系统会将被单击的标签的 事件过程根据不同的 数组的应用 1、求数组中元素的最大最小值及其所在下标 设计思想: 该类问题实际上是完成数组的顺序查找,可以假设第一个元素为最大值,用 ;从数组第二个元素开始,逐个与 到数组的最后一个元素;一旦 时将该元素所对应下标值赋值给 L,最后输出 。 数组的应用 2、数组元素倒置 设计思想: 该类问题实际上将第 1个元素和第 n I 1个元素交互,交互次数为 n2次。 例如: i =1 102 t=A(i) A(i)=A(10) A(10)=t 数组的应用 3、排序问题 数据的排序就是将一批数据由小大到 (升序) 或由大到小 (降序)进行排列。常用的有 选择法、冒泡法。 ( 1)冒泡法排序: 冒泡排序是常用的一种排序方法。假设 序思想为: 第一轮: 从数组的第一项开始,每一项( i)都与下一项( i+1)进行比较。如果下一项的值较小,就将这两项的位置交换,直到最后第 最大的数排列在最后。 第二轮: 从数组的第一项开始,每一项( i)都与下一项( i+1)进行比较。如果下一项的值较小,就将这两项的位置交换,直到最后第 第二大的数排列在倒数第二位。 依此类推, 直到只有第一项与第二项进行比较交换,完成递增法排序。 数组的应用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论