静态数组及其声明10_第1页
静态数组及其声明10_第2页
静态数组及其声明10_第3页
静态数组及其声明10_第4页
静态数组及其声明10_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

第五章数组

数组定义及引用方法,与数组有关的一些常用算法本章要求:重点:1.掌握数组的概念

2.掌握数组(一、二维)的定义及其引用,

3.掌握控件数组的建立及使用。

4.掌握与数组有关的常用算法,如排序、查找、插入等。难点:与数组有关的一些常用算法输入10个数,输出它们的平均值及大于平均值的那些数?

引例:输入A当N<=10N=N+1打印AveS=0:N=1S=S+AAve=S/10DimN%,S!,A!,Ave!(%为integer,!为single)ForN=1to10A=Val(InputBox(“EnterANumber”))S=S+ANextNAve=S/10PrintAve

输入10个数,输出它们的平均值及大于平均值的那些数。

引例:如果使用:A1,A2,A3,A4,A5,A6,A7,A8,A9,A10DimN%,S!,Ave!,A1!,A2!….,A10!‘实际程序是不能这样写

A1=Val(InputBox(“EnterA1Number”))A2=Val(InputBox(“EnterA2Number”))A3=Val(InputBox(“EnterA3Number”))A4=Val(InputBox(“EnterA4Number”))A5=Val(InputBox(“EnterA5Number”))A6=Val(InputBox(“EnterA6Number”))

引例:A7=Val(InputBox(“EnterA7Number”))A8=Val(InputBox(“EnterA8Number”))A9=Val(InputBox(“EnterA9Number”))A10=Val(InputBox(“EnterA10Number”))S=A1+A2+A3+A4+A5+A6+A7+A8+A9+A10Ave=S/10IFA1>AveThenPrintA1IFA2>AveThenPrintA2IFA3>AveThenPrintA3IFA4>AveThenPrintA4………..‘实际程序是不能这样写

引例:思考:

如果能使用Ai(i=1,2,…..10)的形式?使用循环来写程序

VB中表示下标变量就是通过定义数组来实现的。5.1概述

数组的概念:数组并不是一种数据类型,而是一组相同类型数据的集合。用一个统一的名字(数组名)代表逻辑上相关的一批数据,每个元素用下标变量来区分;下标变量代表元素在数组中的位置。VB中数组的表示形式:

A(1),A(10)‘一维数组

X(1,1),X(2,10)‘二维数组

Y(0,0,0),Y(1,2,5)‘三维数组

第五章数组VisualBasic中的数组分类:按数组的大小(元素个数)是否可以改变来分为:定长数组、动态(可变长)数组。按元素的数据类型可分为:

数值型数组、字符串数组、逻辑数组(boolean)、日期型数组、变体数组等(variant)、

对象数组(object)。按数组的维数可分为:

一维数组、二维数组、多维数组。5.1概述

一维数组形式:

Dim数组名([<下界>to]<上界>)[As<数据类型>]或:

Dim数组名[<数据类型符>]([<下界>to]<上界>)例:Dima(1to10)AsInteger‘声明了a数组有10个元素1是下标的下界10是下标的上界数组元数的数据类型与上面声明等价形式:

Dima%(1to10)

5.2.1一维数组的声明说明:

1.数组名的命名规则与变量的命名相同。

2.数组的元素个数:上界-下界+1。

3.缺省<下界>为0,若希望下标从1开始,可在模块的通用部分使用OptionBase语句将设为1。其使用格式是:

OptionBase0|1‘后面的参数只能取0或1

例如:

OptionBase1‘将数组声明中缺省<下界>下标设为1

5.2.1一维数组的声明4.<下界>和<上界>不能使用变量,必须是常量,常量可以是直接常量、符号常量,一般是整型常量。5.如果省略As子句,则数组的类型为变体类型。6.数组中各元素在内存占一片连续的存储空间。

5.2.1一维数组的声明DimNAsIntegerN=Val(InputBox(“EnterN=?”))DimA(N)AsInteger×A(0)A(1)A(2)A(n)….

一维数组在内存中存放的顺序使用形式:

数组名(下标)

其中:下标可以是整型变量、常量或表达式。例如:设有下面的数组定义:

DimA(10)AsInteger

,B(10)AsInteger

则下面的语句都是正确的。

A(1)=A(2)+B(1)+5'取数组元素运算

A(i)=B(i)'下标使用变量

B(i+1)=A(i+2)'下标使用表达式第五章数组5.2.2一维数组元素的引用1.可通过循环给数组元素的初值

Fori=1To10 ‘A数组的每个元素值为1 A(i)=1Nexti

2.数组的输入第五章数组

5.2.3一维数组的基本操作3.求数组中最大元素及所在下标第五章数组

5.2.3一维数组的基本操作4.将数组元素倒置5.2.3一维数组的基本操作

数据的排序就是将一批数据由小到大(升序)或由大到小(降序)进行排列。常用的有选择法、冒泡法。

1.选择法排序75346891算法(升序)(设有n个数,存放在数组A(1)…..A(n)中)

1)第1遍:从中选出最小的数,与第1个数交换位置;

(演示)第五章数组

5.2.4一维数组应用举例——数据排序2)第2遍:除第1个数外,其余n-1个数中选最小的数,与第2个数交换位置;(演示)75346891713)依次类推,选择了n-1次后,这个数列已按升序排列。第五章数组5.2.4一维数组应用举例——数据排序

选择法排序算法的流程图:第五章数组5.2.4一维数组应用举例——数据排序选择法排序(升序)的VB程序:思考:如果按降序排,程序如何修改?第五章数组

5.2.4一维数组应用举例——数据排序2.冒泡法排序(升序)

算法:(将相邻两个数比较,大数交换到后面)1)第1趟:将每相邻两个数比较,大数交换到后面,经n-1次两两相邻比较后,最大的数已交换到最后一个位置。

5.2.4一维数组应用举例——数据排序2)第2趟:将前n-1个数(最大的数已在最后)按上法比较,经n-2次两两相邻比较后得次大的数;

3)依次类推,n个数共进行n-1趟比较,在第j趟中要进行n-j次两两比较。冒泡法排序算法的流程图:第五章数组

5.2.4一维数组应用举例——数据排序冒泡法排序(升序)程序:第五章数组

5.2.4一维数组应用举例——数据排序5.3二维数组及多维数组5.3.1二维数组的声明声明格式如下:Dim数组名([<下界>]to<上界>,[<下界>to]<上界>)[As<数据类型>]其中的参数与一维数组完全相同。例如:Dima(2,3)AsSingle

二维数组在内存的存放顺序是“先行后列”。例如数组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)5.3.2二维数组的引用引用形式:

数组名(下标1,下标2)例如:

a(1,2)=10a(i+2,j)=a(2,3)*2在程序中常常通过二重循环来操作使用二维数组元素。

5.3.3二维数组的基本操作二维数组数据的输入2.求最大元素及其所在的行和列3.计算两矩阵相乘4.矩阵的转置5.3二维数组及多维数组二维数组数据的输入ConstN=4,M=5,L=6Dima(1toN,1toM)AsInteger,i%,j%,k%1.给二维数组a输入数据的程序段如下:5.3二维数组及多维数组2.求最大元素及其所在的行和列用变量max存放最大值,row,col存放最大值所在行列号

5.3二维

温馨提示

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

评论

0/150

提交评论