数组及其应用.pptx
《数组及其应用.pptx》由会员分享,可在线阅读,更多相关《数组及其应用.pptx(46页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 输入10个数,输出它们的平均值及大于平均值的那些数?引例:输入 A当 NAve Then Print A1 IF A2Ave Then Print A2 IF A3Ave Then Print A3 IF A4Ave Then Print A4 .实际程序是不能这样写 第3页/共46页 引例:思考:如果能使用Ai (i=1,2,.10)的形式?使用循环来写程序 VB中表示下标变量就是通过定义数组来实现的。第4页/共46页4.1 概 述 数组的概念:数组并不是一种数据类型,而是一组相同类型数据的集合。用一个统一的名字(数组名)代表逻辑上相关的一批数据,每个元素用下标变量来区分;下标变量代表元素
2、在数组中的位置。VB中数组的表示形式:A(1),A(10)一维数组 X(1,1),X(2,10)二维数组 Y(0,0,0),Y(1,2,5)三维数组 第4章 数 组及其应用第5页/共46页Visual Basic中的数组分类:按数组的大小(元素个数)是否可以改变来分为:定长数组、动态(可变长)数组。按元素的数据类型可分为:数值型数组、字符串数组、逻辑数组、日期型数组、变体数组等、对象数组。按数组的维数可分为:一维数组、二维数组、多维数组。4.1 概 述 第6页/共46页一维数组形式:Dim 数组名(to)As 或:Dim 数组名(to)例:Dim a(1 to 10)As Integer 声明
3、了a数组有10个元素1是下标的下界10是下标的上界数组元数的数据类型与上面声明等价形式:Dim a%(1 to 10)4.2 一维数组一维数组4.2.1 一维数组的声明 第7页/共46页说明:1数组名的命名规则与变量的命名相同。2数组的元素个数:上界-下界+1。3缺省为0,若希望下标从1开始,可在模块的通用部分使用Option Base语句将设为1。其使用格式是:Option Base 0|1 后面的参数只能取 0 或 1 例如:Option Base 1 将数组声明中缺省下标设为 1 4.2.1 一维数组的声明4和不能使用变量,必须是常量,常量可以是直接常量、符号常量,一般是整型常量。第8页
4、/共46页4.如果省略As子句,则数组的类型为变体类型。6数组中各元素在内存占一片连续的存储空间。4.2.1 一维数组的声明Dim N As IntegerN=Val(InputBox(“Enter N=?”)Dim A(N)As Integer A(0)A(1)A(2)A(n).一维数组在内存中存放的顺序第9页/共46页使用形式:数组名(下标)其中:下标可以是整型变量、常量或表达式。例如:设有下面的数组定义:Dim A(10)As Integer,B(10)As Integer 则下面的语句都是正确的。A(1)=A(2)+B(1)+5 取数组元素运算 A(i)=B(i)下标使用变量 B(i+
5、1)=A(i+2)下标使用表达式第五章 数 组 4.2.2 一维数组元素的引用第10页/共46页1.可通过循环给数组元素的初值可通过循环给数组元素的初值 For i=1 To 10 A数组的每个元素值为数组的每个元素值为1 A(i)=1 Next i 2.数组的输入数组的输入 输入输入10个数,并存入到数组个数,并存入到数组A中中For i=1 To 10 A(i)=Val(InputBox(“输入输入A(”&i&“)的值的值”)Next i第五章 数 组 4.2.3 4.2.3 一维数组的基本操作第11页/共46页3.求数组中最大元素及所在下标 Dim Max As Integer,iMax
6、 As Integer Max=A(1):iMax=1 For i=2 To 10 If A(i)Max Then Max=A(i)iMax=i End If Next i Print A(&iMax&)=;A(iMax)第五章 数 组 4.2.3 4.2.3 一维数组的基本操作第12页/共46页4.将数组元素倒置For i=1 To 102 t=A(i)A(i)=A(10-i+1)A(10-i+1)=tNext I(演示)4.2.3 4.2.3 一维数组的基本操作第13页/共46页一、统计问题 例例4.1 编程求某班60个学生某门课程考试的平均成绩及高于平均成绩的学生人数。(课后练习)4.2
7、.4 一维数组的应用第14页/共46页 二、排序问题二、排序问题 数据的排序就是将一批数据由小大到数据的排序就是将一批数据由小大到(升序)(升序)或由大或由大到小到小(降序)(降序)进行排列。常用的有进行排列。常用的有选择法、冒泡法。选择法、冒泡法。1选择法排序选择法排序753468 91算法 (升序)(设有n个数,存放在数组A(1).A(n)中)1)第1遍:从中选出最小的数,与第 1个数交换位置;(演示)第五章 数 组 4.2.4 一维数组的应用数据排序第15页/共46页 2)第2遍:除第1 个数外,其余n-1个数中选最小的数,与第2个数交换位置;(演示)753468 91 71 3)依次类
8、推,选择了n-1次后,这个数列已按升序排列。第五章 数 组 4.2.4 一维数组的应用数据排序第16页/共46页 选择法排序算法的流程图:第五章 数 组 4.2.4 一维数组的应用数据排序第17页/共46页For i=1 To n-1For i=1 To n-1 p=i p=i For j=i+1 To n For j=i+1 To n If a(p)a(j)Then p=j If a(p)a(j)Then p=j Next j Next j t=a(i):a(i)=a(p):a(p)=t t=a(i):a(i)=a(p):a(p)=tNext iNext i选择法排序(升序)的VB程序:思考
9、:如果按降序排,程序如何修改?第五章 数 组 4.2.4 一维数组的应用数据排序第18页/共46页 例例4.3 用随机函数产生50个10100的随机整数,并按由小到大的顺序打印出来。(略)第五章 数 组 4.2.4 一维数组的应用数据排序第19页/共46页2冒泡法排序(升序)算法:(将相邻两个数比较,大数交换到后面)1)第 1 趟:将每相邻两个数比较,大数交换到后面,经n-1次两两相邻比较后,最大的数已交换到最后一个位置。演示 4.2.4 一维数组的应用数据排序2)第 2 趟:将前n-1个数(最大的数已在最后)按上法比较,经n-2次两两相邻比较后得次大的数;3)依次类推,n个数共进行n-1趟比
10、较,在第j趟中要进行n-j次两两比较。第20页/共46页冒泡法排序算法的流程图:第五章 数 组 4.2.4 一维数组的应用数据排序第21页/共46页For i=1 To n-1For i=1 To n-1 For j=1 To n-i For j=1 To n-i If a(j)a(j+1)Then If a(j)a(j+1)Then t=a(j)t=a(j):a(j)=a(j+1)a(j)=a(j+1):a(j+1)=ta(j+1)=t End if End if Next j Next jNext iNext i冒泡法排序(升序)程序:第五章 数 组 4.2.4 一维数组的应用数据排序第2
11、2页/共46页3、两种排序方法的比较结论:选择法排序比冒泡法排序算法优问题:两种排序方法那一种好?第五章 数 组 4.2.4 一维数组的应用数据排序第23页/共46页4.3 二维数组及多维数组 4.3.1 二维数组的声明二维数组的声明声明格式如下:Dim 数组名(to,to)As 其中的参数与一维数组完全相同。例如:Dim a(2,3)As Single 二维数组在内存的存放顺序是“先行后列”。例如数组a的各元素在内存中的存放顺序是:a(0,0)a(0,1)a(0,2)a(0,3)a(1,0)a(1,1)a(1,2)a(1,3)a(2,0)(2,1)a(2,2)a(2,3)第24页/共46页4
12、.3.2 二维数组的引用 引用形式:数组名(下标1,下标2)例如:a(1,2)=10 a(i+2,j)a(2,3)*2 在程序中常常通过二重循环来操作使用二维数组元素。4.3.3 二维数组的基本操作 1.二维数组数据的输入二维数组数据的输入 2.求最大元素及其所在的行和列求最大元素及其所在的行和列 3.计算两矩阵相乘计算两矩阵相乘 4.矩阵的转置矩阵的转置 4.3 二维数组及多维数组 第25页/共46页1.二维数组数据的输入二维数组数据的输入 Const N=4,M=5Dim a(1 to N,1 to M)As Integer,i%,j%1.给二维数组a输入数据的程序段如下:For i=1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数组 及其 应用
限制150内