ImageVerifierCode 换一换
你正在下载:

比较.docx

[预览]
格式:DOCX , 页数:20 ,大小:57.69KB ,
资源ID:11726703      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11726703.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(比较.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

比较.docx

1、比较VB中的数组1引例求100个学生的平均成绩及超过平均成绩的人数。如果用一般变量来表示成绩,需要用100个变量,如:mark1、mary2、mark100。若用数组,可以只用一个来表示mark(1 To100)。2基本概念数组:是同类型变量的一个有序的集合。如:A(1 To 100),表示一个包含100个数组元素的名为A的数组。数组元素: 即数组中的变量。用下标表示数组中的各个元素。表示方法:数组名(P1,P2,) 其中P1、P2表示元素在数组中的排列位置,称为“下标”。如:A(3,2)代表二维数组A中第3行第2列上的那个元素。数组维数: 由数组元素中下标的个数决定,一个下标表示一维数组,二

2、个下标表示二维数组。VB中有一维数组、二维数组、最多60维数组。下标: 下标表示顺序号,每个数组有一个唯一的顺序号,下标不能超过数组声明时的上、下界范围。下标可以是整型的常数、变量、表达式,甚至又是一个数组元素。下标的取值范围是:下界 To 上界 ,缺省下界时,系统默认取0。3数组声明数组必须先声明后使用。声明数组就是让系统在内存中分配一个连续的区域,用来存储数组元素。声明内容:数组名、类型、维数、数组大小。一般情况下,数组中各元素类型必须相同,但若数组为Variant时,可包含不同类型的数据。静态数组:声明时确定了大小的数组。动态数组: 声明时没有给定数组大小(省略了括号中的下标),使用时需

3、要用ReDim语句重新指出其大小。使用动态数组的优点是根据用户需要,有效地利用存储空间,它是在程序执行到ReDim语句时才分配存储单元,而静态数组是在程序编译时分配存储单元。静态数组及声明 1一维数组静态一维数组的声明形式: Dim数组名(下标) As类型说明:(1)下标必须为常数,不可以为表达式或变量; (2)下标下界最小为-32768,最大上界为32767;省略下界,其默认值为0,一维数组的大小为:上界-下界+1(3) 如果省略类型,则为变体型例:(1) Dim A(10) As Integer 声明了A是数组名、整型、一维数组、有11个元素,下标的范围是010。 (2) Dim B(-3

4、 To 5) As String*3 声明了B是数组名、字符串型、一维数组、有9个元素,下标的范围是-35,每个元素最多存放3个字符。2多维数组静态多维数组的声明形式: Dim数组名(下标1,下标2) As类型说明:(1)下标个数决定数组的维数,最多60维。 (2)每一维的大小=上界-下界+1;数组的大小=每一维大小的乘积。例:Dim C(-1 To 5, 4) As Long 声明了C是数组名、长整型、二维数组、第一维下标范围为-15,第二维下标的范围是04,占据7x 5个长整型变量的空间。3注意事项(1)在有些语言中,下界一般从1开始,为了便于使用,在VB的窗体层或标准模块层用Option

5、 Base n 语句可重新设定数组的下界,如Option Base 1。 (2) 在数组声明中的下标关系到每一维的大小,是数组说明符,而在程序其他地方出现的下标为数组元素,两者写法相同,但意义不同。 (3) 在数组声明时的下标只能是常数,而在其他地方出现的数组元素的下标可以是变量。动态数组及声明1动态数组的建立与声明建立动态数组的方法是:利用Dim、Private、Public语句声明括号内为空的数组,然后在过程中用ReDim语句指明该数组的大小。语法是: ReDim数组名(下标1,下标2) As类型 其中下标可以是常量,也可以是有了确定值的变量,类型可以省略,若不省略,必须与Dim中的声明语

6、句保持一致。例: Dim D() As Single Sub Form_Load() ReDim D(4,6) End Sub2注意事项(1)在动态数组ReDim语句中的下标可以是常量,也可以是有了确定值的变量; (2)在过程中可以多次使用ReDim来改变数组的大小,也可改变数组的维数。 (3)每次使用ReDim语句都会使原来数组中的值丢失,可以在ReDim语句后加Preserve参数来保留数组中的数据,但使用Preserve只能改变最后一维的大小,前面几维大小不能改变。数组的基本操作1给数组元素赋初值(1) 利用循环结构例:Dim iA(1 To 10) As Integer For i=1

7、 To 10 A(i)=0 Next i(2) 利用Array函数例:Dim a As Variant, b As Variant, i% a = Array (1,2,3,4,5) b = Array (abc,def,67) For i=0 To Ubound (a) Picture1.print a(i); Next i For i=0 To Ubound (b)Picture1.print b(i); Next i2数组的输入(1) 通过InputBox函数输入适合输入少量数据。例:Dim sB(3,4) As singer For i=0 To 3 For j=0 To 4 SB(i

8、,j) =InputBox(输入 & i & j & 的值) Next j Next i(2) 通过文本框控件输入对大批量的数据输入,采用文本框和函数split()join()进行处理,效率更高。3数组的赋值在VB6.0中可以直接将一个数组的值赋值给另一个数组: Dim a(3) as integer, b() as integer A(0)=2: A(1)=5: A(2)=-2: A(3)=2 b=a 在早期的VB中,这需要用循环语句才可以实现: ReDim b(UBound(a) For I=0 to UBound(a) b(I)=a(I) Next i 注意:(1)赋值号两边的数据类型必

9、须一致; (2)如果赋值号左边的是一个动态数组,则赋值时系统自动将动态数组ReDim成右边相同大小的数组; (3)如果赋值号左边的是一个大小固定的数组,则数组赋值出错。4数组的输出用ForNext循环语句输出。5求数组中最大元素和所在下标及各元素之和求数组中最大元素及下标,一般假设第一个元素及下标为最大,然后将该数与数组中的其他元素逐一比较,若有比其大的就替换,同时替换下标。6交换数组中各元素交换的要求是将数组第一个元素与最后一个交换,第二个与倒数第二个交换,依次类推。控件数组1控件数组的概念控件数组是由一组相同类型的控件组成的,它们共用一个控件名,具有相同的数组。控件数组适用于若干个控件执行

10、的操作相似的场合,控件组共享同样的事件过程。控件数组通过索引号(属性中的Index)来标识各控件,第一个下标是0 。如:Text1(0)、Text1(1)、Text1(2)、Text1(3)2控件数组的建立(1)在设计时建立 步骤:1)在窗体上画出某控件,并进行属性设置。 2)选中该控件进行“复制”和“粘贴”操作,系统提示“是否建立控件数组”,选择是即可。多次粘贴就可以创建多个控件元素。 3)进行事件过程的编程。(2)运行时添加控件数组方法:1)在窗体上画出某控件,设置该控件的Index值为0,表示该控件为数组。 2)在编程时通过Load方法添加其余若干个元素,也可以通过Unload删除某个添

11、加的元素。 3)每个添加的控件数组通过Left 和Top属性,确定其在窗体上的位置,并将Visible设置为True。使用示例:建立一个类似国际象棋的棋盘,要求黑白交替,运行时单击某个棋格,会改变颜色并显示其序号。自定义数据类型1. 自定义数据类型的定义是指由若干标准数据类型组成的一种复合类型,也称为记录类型。(1)定义方式:Type 自定义类型名 元素名(下标) As 类型名 元素名(下标)As 类型名 End Type元素名:表示自定义类型中的一个成员 下标(可选):表示是数组, 类型名:为标准类型例:定义一个学生信息的自定义类型: Type studtype No As Integer

12、定义学号 Name As String*10 定义姓名 Sex As String*2 定义性别 Mark(1 TO 4) As Single 定义4门课程的成绩 Total As Single 定义总分 End Type(2)注意事项1)自定义类型一般在标准模块(.bas)中定义,默认是Public2)自定义类型中的元素可以是字符串,但应是定长字符串3)不可把自定义类型名与该类型的变量名混淆4) 注意自定义类型变量与数组的差别:它们都由若干元素组成,前者的元素代表不同性质、不同类型的数据,以元素名表示不同的元素;后者存放的是同种性质、同种类型的数据,以下标表示不同元素。2. 自定义型变量的声

13、明和使用使用形式: Dim 变量名As自定义类型名 例如: Dimstudent As studtype,mystud As studtype 自定义类型中元素的表示方法是:变量名 . 元素名如: student.name student.mark(4)为了简单起见,可以用With End With 语句进行简化。 例: With student .no=99001 .name= .sex= .total=0 for I=1 to 4 .mark(I)=int(rnd*101) 随机产生0 - 100之间的分数 .total=.total+.may(I) next I End With Mys

14、tud=student 同种自定义类型变量可以直接赋值VB.NET中的数组数组是程序中经常要使用到的一种数据类型,Visual Basic .Net中的数组,虽然语法结构等方面保留了和Visual Basic的很多相似之处,但也与Visual Basic存在着很多区别。其最大,也是各位Visual Basic程序员所最不能容忍的区别就是如下二点:1. 在Visual Basic .Net中申明一个数组,其数组元素中的索引值的起点全部都为“0”,而不是以前Visual Basic中的索引值起点一般都为“1”。这种定义方法和Visual Basic .Net的孪生姐妹Visual C非常相似。2.

15、 由于在Visual Basic .Net中数组都有了统一的起点,所以在Visual Basic .Net中定义一个数组,也就不再需要关键字“To”来设定数组的范围。这样在Visual Basic .Net中申明一个数组将会比Visual Basic中要稍微简洁一点。关于数组定义将在后面详细介绍。 申明、初始化数组和访问数组中的元素:在Visual Basic .Net申明一个数组使用的依然是Dim语句,其申明数组和Visual Basic的主要区别在上面内容中已经简单说过了。下面在Visual Basic .Net申明一个长度为“3”的字符串数组,并对之进行初始化的代码:Dim arrStr

16、ing ( 2 ) As String = 星期一,星期二,星期三下面代码是申请一个22的二维字符串数组,并对之进行初始化:Dim arrDate ( 1, 1 ) As String = 星期一, 18号, 星期二, 19号静态数组和动态数组的区别就在于静态数组的长度是固定的,而动态数组的长度是不固定的。上面的申明的二个数组就是静态数组,而下面二段代码的作用就是分别申明一个一维数组和二维数组,并对它们进行初始化:Dim arrString ( ) As String = 星期一,星期二,星期三申明一个动态的一维数组,并初始化Dim arrDate ( , ) As String = 星期一,

17、 18号, 星期二, 19号申明一个动态的二维数组,并初始化对其他数据类型和更多维数的数组,其申明和初始化方法和上面的基本差不多,只需根据数组的维数和数据类型的不同进行相应的修改就可以了。当数组申明和初始化以后,就可以通过元素在数组中对应的索引值来访问,下面二段代码分别是访问上面申明并初始化的一维数组和二维数组中的一个元素:Dim sTemp1 As String = arrString ( 1 )访问arrString数组中的第2个元素Dim sTemp2 As String = arrDate ( 1 , 1 )访问arrDate数组中的第二行、第二列元素重新申明数组:在Visual Ba

18、sic .Net重新申明数组和Visual Basic中基本类似,依然使用的是ReDim语句。在Visual Basic .Net中使用ReDim语句要注意以下三点:1. ReDim语句仅可以在过程级出现。这意味着不可以在类或模块级代码区使用ReDim语句来重新申明数组。2. ReDim语句只是更改已被正式声明的数组的一个或多个维度的大小,但不能更改该数组的维数。3. ReDim语句无法更改数组中元素的数据类型,和Dim语句申明数组的区别在于无法在ReDim语句中初始化重新申明的数组。在使用ReDim重新申明数组时,最为常见的关键字就是“Preserve”。“Preserve”的作用是表明在重

19、新申明数组时,是否要在重新申明的数组中复制原数组中的元素。请比较下面二段代码:代码一:Dim arrString ( 2 ) As String = 星期一,星期二,星期三ReDim Preserve arrString ( 4 )重新申明arrString数组,数组的长度改为5,并且在新数组中复制原数组的元素arrString ( 3 ) = 星期四arrString ( 4 ) = 星期五代码二:Dim arrString ( 2 ) As String = 星期一,星期二,星期三ReDim arrString ( 4 )重新申明arrString数组,数组的长度改为5,并不往新数组中复制

20、原数组的元素arrString ( 0 ) = 星期一arrString ( 1 ) = 星期二arrString ( 2 ) = 星期三arrString ( 3 ) = 星期四arrString ( 4 ) = 星期五通过比较上述二段代码,可见,在第一段代码中由于ReDim中使用了Preserve关键字,所以在重新申明数组时,就在新数组中复制了原数组的元素,这样就只需要对其中的二个元素进行初始化;而第二段由于没有使用Preserve关键字,就没有在新数组中带入原数组中的任何元素,所以对数组的所有元素都进行初始化。通过比较相信您对重新定义数组和“Preserve”关键字的使用有了更深的理解。

21、For Each . Next语句在数组中的使用:For Each . Next语句好像只是为二种数据类型专门度身定做的,其一就是集合,另外一个就是数组了。通过For Each . Next语句,可以十分方便的访问数组中的任一元素。请仔细分析一下下列代码:Dim arrString ( 2 ) As String = 星期一,星期二,星期三Dim Temp As StringFor Each Temp In arrStringIf Temp = 星期三 ThenMsgBox ( 在数组中寻找到星期三字符串)Exit For退出For Each . Next语句End IfNext上面代码的功能

22、是通过For Each . Next语句访问arrString数组中各元素,如果发现有元素为字符串“星期三”,则弹出提示框,并退出循环。同样用For Next语句也能够实现上面同样的功能,只是感觉有点不专业,并且有点繁琐,下面代码是用For Next语句实现上面For Each . Next语句同等功能的代码:Dim i As IntegerFor i = 0 To myString.Length - 1If arrString ( i ) = 星期三 ThenMsgBox ( 在数组中寻找到星期三字符串 )Exit ForEnd IfNext五申明参数为数组的过程或者函数:由于数组为引用类型

23、,所以如果以数组为参数过程和函数在定义时候就要多加以注意,下面代码是在Visual Basic .Net申明一个参数为数组的过程的典型代码,可见在调用数组类型之前多了一个关键字“ByVal”,“ByVal”关键字的作用在于在下面调用的过程中的不能更改数组的数值:Sub DisplayArray ( ByVal myString ( ) As String )End Sub简要介绍System.Array类及其成员:Array类是一个基类,是公共语言运行库中所有数组的基类。它提供了创建、操作、搜索和排序数组的方法。数组中任一个元素就是Array中的一个值。Array的长度是它可包含的元素总数。A

24、rray的秩是Array中的维数。Array中维度的下限是Array 中该维度的起始索引,多维Array的各个维度可以有不同的界限。表01和表02分别是Array类的常用属性和常用方法及其说明:属性说明IsFixedSize获取指示Array是否具有固定大小的值。IsReadOnly获取指示Array是否为只读的值。Length获取Array的所有维度中的元素总数。Rank获取Array的秩(也就是维数)。表01:System.Array类的常用属性及其说明 方法说明BinarySearch使用二进制搜索算法在一维的排序Array中搜索值。Clear将Array中的一系列元素设置为零、fals

25、e或空引用(即:Nothing),具体操作时设定值取决于元素类型。Copy将一个Array的一部分复制到另一个Array中,并根据需要执行强制类型转换和装箱。CopyTo将当前一维Array的所有元素复制到指定的一维Array中(从指定的目标Array索引开始)。GetLength获取Array的指定维度中的元素数。GetLowerBound获取Array中指定维度的下限。GetUpperBound 获取Array的指定维度的上限。GetValue 获取当前Array中指定元素的值。LastIndexOf返回一维Array或部分Array中某个值的最后一个匹配项的索引。Reverse反转一维A

26、rray或部分Array中元素的顺序。SetValue 将当前Array中的指定元素设置为指定值。Sort对一维Array对象中的元素进行排序。表02:System.Array类的常用方法及其说明一个处理数组的具体示例:下面介绍的示例的功能包含了数组的申明、初始化、重新申明、重新初始化、数组中各元素的排序、数组的遍历、查找以及以数组为参数的过程的定义及调用方法等。下面是此示例实现的具体步骤:1. 启动Visual Studio .Net。2. 选择菜单【文件】|【新建】|【项目】后,弹出【新建项目】对话框。3. 将【项目类型】设置为【Visual Basic项目】。4. 将【模板】设置为【Wi

27、ndows应用程序】。5. 在【名称】文本框中输入【数组】。6. 在【位置】的文本框中输入【E:VS.NET项目】,然后单击【确定】按钮,这样在“E:VS.NET项目”目录中就产生了名称为“数组”的文件夹,并在里面创建了名称为【数组】的项目文件。7. 把Visual Studio .Net的当前窗口切换到【Form1.vb(设计)】窗口,并从【工具箱】中的【Windows窗体组件】选项卡中往Form1窗体中拖入下列组件,并执行相应操作:四个Button组件,分别用来创建一个“创建一维数组”、创建“创建二维数组”、实现对“对一维数组排序”和实现“重定义一维数组”。并在这四个Button组件拖入F

28、orm1的设计窗体后,分别双击这四个组件,这样系统会在Form1.vb文件分别产生这四个组件的Click时间对应的处理代码。一个ListBox组件,用来显示创建的一维数组的内容。8. 按照表03中数值来设定设定组件的主要属性:组件类型 组件名称 属性 设置结果Form Form1 Text 数组篇Form1 MaximizeBox FalseForm1MinimizeBox FalseForm1 FormBorderStyle FixedSingleListBox ListBox1 ItemHeight 12ListBox1 Location Point ( 28 , 169 )ListBox1 Size Size ( 246 ,

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1