数组的声明与使用课件_第1页
数组的声明与使用课件_第2页
数组的声明与使用课件_第3页
数组的声明与使用课件_第4页
数组的声明与使用课件_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

6.1数组的声明与使用6.2数组应用6.3控件数组本章要求返回目录第六章数组(Array)6.1数组的声明与使用6.2数组应用6.3控件数1本章要求:掌握数组的概念;理解排序的三种常用方法;掌握控件数组的应用方法;返回章首下一页第六章数组本章要求:返回章首下一页第六章数组26.1数组的声明与使用6.1.1静态数组的声明静态数组是指在声明时已经确定了该数组中具有多少个元素.[格式]:Dim|Private|Public|Static数组变量名(下标)[As类型][说明]:(1).<数组变量名>的命名规则同简单变量一样。(2).<下标>决定了数组的维数和元素的个数。数组分为静态数组和动态数组。上一页返回章首下一页6.1数组的声明与使用6.1.1静态数组的声明数组分为静3例如:Dimcj(1to80)AsSingle‘定义了单精度类型一维数组,上界为80,下界为1,共有80个元素.Publicstudentname(100)AsString‘定义了字符类型一维数组,上界为100,下界为0,共有101个元素.Dimmark(1to10,10)‘定义了可变类型二维数组,一维下界为1,上界为10;二维下界为0,上界为10.共有10*11=110个元素.上一页返回章首下一页例如:Publicstudentname(100)As4二维数组LArray(3,4)的下标排列如下:

一个声明语句可以同时定义几个数组:Dimmark(1to100)AsInteger,LArray(3,4)AsLong一维数组mark的下标排列如下:上一页返回章首下一页二维数组LArray(3,4)的下标排列如下:一个声明语句56.1.2数组的赋值及引用1.数组的赋值:可以用赋值语句、Inputbox函数或文本框给数组元素赋值。由于数组元素很多,一般都伴随着循环语句的使用。[格式]OptionBase0|1[说明]该语句必须在窗体级或标准模块级使用,0或1表示下界。如: OptionBase1 Dima(4,5),b(0to4,0to5)上一页返回章首下一页6.1.2数组的赋值及引用[格式]OptionBase62.数组的引用:引用数组时要指明数组名及下标,下标可以是常量、变量、或数值表达式。但要注意,引用下标的取值范围不能超过所定义数组的上、下界,否则将出现“下标越界”的错误信息。注意:在数组声明中的下标说明了数组的大小;而在程序其他过程中引用的数组下标表示数组中的一个元素。两者写法形式相同,但意义不同。上一页返回章首下一页2.数组的引用:引用数组时要指明数组名及下标,注意:在数组声76.1.3与数组有关的函数1.Lbound和Ubound函数Lbound|Ubound(数组名[,数组维序号])[功能]Lbound函数返回数组某维的下界值,Ubound函数返回数组某维的上界值,其数据类型是long。数据维序号用1,2,3…表示,缺省取1。上一页返回章首下一页6.1.3与数组有关的函数1.Lbound和Ubou82.Array函数[格式]Array([数据1[,数据2[,数据3]….]])[功能]将数据1,数据2….分别赋给一个可变类型的简单变量或动态数组中,用它可方便的给一维数组各元素赋值,但不能给二维以上的数组赋值。注意:(1).用Array对数组各元素赋值,声明的数组必须是可变类型的简单变量或动态数组;(2).数组的下界默认为0,除非用OptionBase语句说明,上界由Array函数括号内的数据的个数决定,也可以通过函数Ubound获得。上一页返回章首下一页2.Array函数上一页返回章首下一页93.IsArray函数[格式]IsArray(变量名)[功能]测试变量名是否为一个数组。若是数组,函数值为True,否则为False[例6-1]Array和IsArray两函数的使用上一页返回章首下一页3.IsArray函数上一页返回章首下一页106.1.4动态数组与数组重定义1.动态数组的声明动态数组是指在声明时未给出数组的大小,既不指明上界、又不指明下界的数组。当要使用它时,随时用ReDim语句重新指出数组大小。[格式]Dim|Private|Public|Static数组变量名()[As类型][说明]动态数组的声明除了大小和维数为空外,其他格式与静态数组一样。上一页返回章首下一页6.1.4动态数组与数组重定义1.动态数组的声明上一页返11[格式]

ReDim[Preserve]数组变量名(下标)[As类型][功能]用于为动态数组重新分配存储空间[说明]

(1).可以对同一个动态数组多次使用ReDim重新定义其大小。(2).Preserve可选项只能用在改变最后一维的上界时,保留数组中原来的数据,否则原数据丢失。<下标>可以使用常量、变量或表达式。(3).不能对已定义的固定数组重新定义.(4).ReDim语句只能在过程中使用,不能用在窗体和模块级。(5).ReDim不能改变动态数组的数据类型。2.数组重声明

上一页返回章首下一页[格式]ReDim[Preserve]数组变量名(下标)123.数组元素的初始化

一旦声明了数组,系统自动对每个元素的值进行初始化,即默认初值。数组元素的初值取决于数据类型。[格式]Erase数组名1[,数组名2][,数组名3]…[说明]对指定的固定大小的数组进行初始化;对指定的动态数组释放所占的内存空间,在下次引用该动态数组之前,必须用ReDim语句重新定义。上一页返回章首下一页3.数组元素的初始化[格式]Erase数组名1[,数组名13[例6-2]

在VB6.0中,提供了数组对数组直接赋值,但在使用时应注意:被赋值的数组必须声明为Variant类型的动态数组,否则会出错。[例6-3]

求Fibonacci数列:1,1,2,3,5,8,13,21,…,该数列满足下列规律:F1=1,F2=1,…FN=FN-1+FN-2要求输入项数,在窗体上输出数列的各项,并要求每行输出4个数。上一页返回章首下一页[例6-2]在VB6.0中,提供了数组对数组直接赋值,但146.1.5ForEach…Next语句[格式]ForEach循环变量In数组名 循环体 [Exitfor] …… Next循环变量上一页返回章首下一页6.1.5ForEach…Next语句上一页返回章首下156.2数组应用6.2.1排序将n个数存入数组a(1)~a(n)Fori=1ton-1Forj=i+1tona(j)<a(i)TRUEFALSEa(i)与a(j)交换输出排序后的a(1)~a(n)1.比较交换排序法:上一页返回章首下一页6.2数组应用6.2.1排序将n个数存入数组a(1)162.选择交换排序法:将n个数存入数组a(1)~a(n)Fori=1ton-1P=iForj=i+1tona(j)<a(p)TRUEFALSEP=ja(i)与a(p)交换输出排序后的a(1)~a(n)上一页返回章首下一页2.选择交换排序法:将n个数存入数组a(1)~a(n)176.3控件数组

控件数组是由一组相同名称、相同类型的控件组成。这些控件的大多数属性相同,并接受同一事件。控件数组元素都有一个唯一的索引号Index与其对应,假如一个控件数组有5个元素,则index值为0-4,程序根据index值判断用户给哪个控件元素施加了“事件”,进而决定程序的进程。上一页返回章首下一页6.3控件数组控件数组是由一组相同名称、相186.3.1创建控件数组1.在创建界面时建立控件数组方法一:在窗体上先从工具箱中添加一个控件然后用“复制”,“粘贴”命令。

方法二:将窗体上多个相同控件的Name属性值设置为相同。上一页返回章首下一页6.3.1创建控件数组方法二:将窗体上多个相同控件的Na192.用命令添加、删除控件数组的元素[格式]load控件数组(index)Unload控件数组(index)[说明]

1).每个添加的元素必须通过left和top属性确定其位置,Visible=True。2).load只能添加已有控件数组的元素,不能创建控件数组。3).Unload只能删除用load添加的元素,不能删除设计时创建的元素。上一页返回章首下一页2.用命令添加、删除控件数组的元素上一页返回章首下一页206.3.2控件数组应用举例[例6-8]

设计一个简易计算器,要求能够进行整数的加、减、乘、除运算,并能将十进制转换为二进制、八进制、十六进制,还能进行开平方运算。[例6-9]

用load添加控件数组元素的应用上一页返回章首下一页6.3.2控件数组应用举例[例6-9]用load添加控21选择题:1.Dimsum(10)asinteger声明了有——个元素的数组9B.10C.11D.122.Dimarrb(3to5,-2to2)所定义的数组的元素个数是——20B.12C.15D.24上一页返回章首下一页选择题:上一页返回章首下一页223.

OptionBase1PrivateSubForm_Click()Dima(4,3)AsIntegerPrintUbound(a,2)EndSub显示的结果是————A.2B.3C.4D.5上一页返回章首下一页3.上一页返回章首下一页234.关于Redim语句,说法正确的是——Redim语句可以在过程外出现Redim语句可以对已定义的固定数组重声明可以对同一个动态数组多次使用Redim重新定义其大小一般情况下,Redim语句可以改变动态数组的数据类型上一页返回章首下一页4.关于Redim语句,说法正确的是——上一页返回章首下一245.OptionBase1Dima(0to5)AsInteger,b(10)AsInteger不会出现下标越界的是——A.Printa(0)B.Printa(6)C.Printb(0)D.Printb(11)上一页返回章首下一页5.上一页返回章首下一页256.OptionBase1PrivateSubForm_Click()Dima,bA=Array(10,20,30):b=a(2)EndSubb的值为——A.10B.20C.30D.31上一页返回章首下一页上一页返回章首下一页267.区分控件数组中不同元素的属性是——NameB.IndexC.CaptionD.Height8.关于Unload语句,说法不正确的是—Unload可以将窗体从内存中卸载Unload可以删除用Load添加的控件元素Unload可以删除控件数组Unload可以在运行时添加控件数组上一页返回章首下一页7.区分控件数组中不同元素的属性是——上一页返回章首下一页279.运行Load命令可以添加指定控件数组的元素,不能复制的属性是——topB.WidthC.visibleD.Enabled10.将相同类型的一组控件的——属性设为相同,则产生控件数组。ATextB.IndexC.CaptionD.Name上一页返回章首下一章9.运行Load命令可以添加指定控件数组的元素,不能复制的属286.1数组的声明与使用6.2数组应用6.3控件数组本章要求返回目录第六章数组(Array)6.1数组的声明与使用6.2数组应用6.3控件数29本章要求:掌握数组的概念;理解排序的三种常用方法;掌握控件数组的应用方法;返回章首下一页第六章数组本章要求:返回章首下一页第六章数组306.1数组的声明与使用6.1.1静态数组的声明静态数组是指在声明时已经确定了该数组中具有多少个元素.[格式]:Dim|Private|Public|Static数组变量名(下标)[As类型][说明]:(1).<数组变量名>的命名规则同简单变量一样。(2).<下标>决定了数组的维数和元素的个数。数组分为静态数组和动态数组。上一页返回章首下一页6.1数组的声明与使用6.1.1静态数组的声明数组分为静31例如:Dimcj(1to80)AsSingle‘定义了单精度类型一维数组,上界为80,下界为1,共有80个元素.Publicstudentname(100)AsString‘定义了字符类型一维数组,上界为100,下界为0,共有101个元素.Dimmark(1to10,10)‘定义了可变类型二维数组,一维下界为1,上界为10;二维下界为0,上界为10.共有10*11=110个元素.上一页返回章首下一页例如:Publicstudentname(100)As32二维数组LArray(3,4)的下标排列如下:

一个声明语句可以同时定义几个数组:Dimmark(1to100)AsInteger,LArray(3,4)AsLong一维数组mark的下标排列如下:上一页返回章首下一页二维数组LArray(3,4)的下标排列如下:一个声明语句336.1.2数组的赋值及引用1.数组的赋值:可以用赋值语句、Inputbox函数或文本框给数组元素赋值。由于数组元素很多,一般都伴随着循环语句的使用。[格式]OptionBase0|1[说明]该语句必须在窗体级或标准模块级使用,0或1表示下界。如: OptionBase1 Dima(4,5),b(0to4,0to5)上一页返回章首下一页6.1.2数组的赋值及引用[格式]OptionBase342.数组的引用:引用数组时要指明数组名及下标,下标可以是常量、变量、或数值表达式。但要注意,引用下标的取值范围不能超过所定义数组的上、下界,否则将出现“下标越界”的错误信息。注意:在数组声明中的下标说明了数组的大小;而在程序其他过程中引用的数组下标表示数组中的一个元素。两者写法形式相同,但意义不同。上一页返回章首下一页2.数组的引用:引用数组时要指明数组名及下标,注意:在数组声356.1.3与数组有关的函数1.Lbound和Ubound函数Lbound|Ubound(数组名[,数组维序号])[功能]Lbound函数返回数组某维的下界值,Ubound函数返回数组某维的上界值,其数据类型是long。数据维序号用1,2,3…表示,缺省取1。上一页返回章首下一页6.1.3与数组有关的函数1.Lbound和Ubou362.Array函数[格式]Array([数据1[,数据2[,数据3]….]])[功能]将数据1,数据2….分别赋给一个可变类型的简单变量或动态数组中,用它可方便的给一维数组各元素赋值,但不能给二维以上的数组赋值。注意:(1).用Array对数组各元素赋值,声明的数组必须是可变类型的简单变量或动态数组;(2).数组的下界默认为0,除非用OptionBase语句说明,上界由Array函数括号内的数据的个数决定,也可以通过函数Ubound获得。上一页返回章首下一页2.Array函数上一页返回章首下一页373.IsArray函数[格式]IsArray(变量名)[功能]测试变量名是否为一个数组。若是数组,函数值为True,否则为False[例6-1]Array和IsArray两函数的使用上一页返回章首下一页3.IsArray函数上一页返回章首下一页386.1.4动态数组与数组重定义1.动态数组的声明动态数组是指在声明时未给出数组的大小,既不指明上界、又不指明下界的数组。当要使用它时,随时用ReDim语句重新指出数组大小。[格式]Dim|Private|Public|Static数组变量名()[As类型][说明]动态数组的声明除了大小和维数为空外,其他格式与静态数组一样。上一页返回章首下一页6.1.4动态数组与数组重定义1.动态数组的声明上一页返39[格式]

ReDim[Preserve]数组变量名(下标)[As类型][功能]用于为动态数组重新分配存储空间[说明]

(1).可以对同一个动态数组多次使用ReDim重新定义其大小。(2).Preserve可选项只能用在改变最后一维的上界时,保留数组中原来的数据,否则原数据丢失。<下标>可以使用常量、变量或表达式。(3).不能对已定义的固定数组重新定义.(4).ReDim语句只能在过程中使用,不能用在窗体和模块级。(5).ReDim不能改变动态数组的数据类型。2.数组重声明

上一页返回章首下一页[格式]ReDim[Preserve]数组变量名(下标)403.数组元素的初始化

一旦声明了数组,系统自动对每个元素的值进行初始化,即默认初值。数组元素的初值取决于数据类型。[格式]Erase数组名1[,数组名2][,数组名3]…[说明]对指定的固定大小的数组进行初始化;对指定的动态数组释放所占的内存空间,在下次引用该动态数组之前,必须用ReDim语句重新定义。上一页返回章首下一页3.数组元素的初始化[格式]Erase数组名1[,数组名41[例6-2]

在VB6.0中,提供了数组对数组直接赋值,但在使用时应注意:被赋值的数组必须声明为Variant类型的动态数组,否则会出错。[例6-3]

求Fibonacci数列:1,1,2,3,5,8,13,21,…,该数列满足下列规律:F1=1,F2=1,…FN=FN-1+FN-2要求输入项数,在窗体上输出数列的各项,并要求每行输出4个数。上一页返回章首下一页[例6-2]在VB6.0中,提供了数组对数组直接赋值,但426.1.5ForEach…Next语句[格式]ForEach循环变量In数组名 循环体 [Exitfor] …… Next循环变量上一页返回章首下一页6.1.5ForEach…Next语句上一页返回章首下436.2数组应用6.2.1排序将n个数存入数组a(1)~a(n)Fori=1ton-1Forj=i+1tona(j)<a(i)TRUEFALSEa(i)与a(j)交换输出排序后的a(1)~a(n)1.比较交换排序法:上一页返回章首下一页6.2数组应用6.2.1排序将n个数存入数组a(1)442.选择交换排序法:将n个数存入数组a(1)~a(n)Fori=1ton-1P=iForj=i+1tona(j)<a(p)TRUEFALSEP=ja(i)与a(p)交换输出排序后的a(1)~a(n)上一页返回章首下一页2.选择交换排序法:将n个数存入数组a(1)~a(n)456.3控件数组

控件数组是由一组相同名称、相同类型的控件组成。这些控件的大多数属性相同,并接受同一事件。控件数组元素都有一个唯一的索引号Index与其对应,假如一个控件数组有5个元素,则index值为0-4,程序根据index值判断用户给哪个控件元素施加了“事件”,进而决定程序的进程。上一页返回章首下一页6.3控件数组控件数组是由一组相同名称、相466.3.1创建控件数组1.在创建界面时建立控件数组方法一:在窗体上先从工具箱中添加一个控件然后用“复制”,“粘贴”命令。

方法二:将窗体上多个相同控件的Name属性值设置为相同。上一页返回章首下一页6.3.1创建控件数组方法二:将窗体上多个相同控件的Na472.用命令添加、删除控件数组的元素[格式]load控件数组(index)Unload控件数组(index)[说明]

1).每个添加的元素必须通过left和top属性确定其位置,Visible=True。2).load只能添加已有控件数组的元素,不能创建控件数组。3).Unload只能删除用load添加的元素,不能删除设计时创建的元素。上一页返回章首下一页2.用命令添加、删除控件数组的元素上一页返回章首下一页486.3.2控件数组应用举例[例6-8]

设计一个简易计算器,要求能够进行整数的加、减、乘、除运算,并能将十进制转换为二进制、八进制、十六进制,还能进行开平方运算。[例6-9]

用load添加控件数组元素的应用上一页返回章首下一页6.3.2控件数组应用举例[例6-9]用load添加控49选择题:1.Dimsum(10)asinteger声明了有——个元素的数组9B.10C.11D.122.Dimarrb(3to5,-2to2)所定义的数组的元素个数是——20B.12C.15D.24上一页返回章首下一页选择题:上一页返回章首下一页503.

OptionBase1

温馨提示

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

评论

0/150

提交评论