VB语言数组专题专题培训课件.ppt
《VB语言数组专题专题培训课件.ppt》由会员分享,可在线阅读,更多相关《VB语言数组专题专题培训课件.ppt(61页珍藏版)》请在咨信网上搜索。
1、VBVB语言数组专题语言数组专题第第5章章 数数 组组一个人一个人一个人一个人N N N N门课的成绩怎样存储和处理?门课的成绩怎样存储和处理?门课的成绩怎样存储和处理?门课的成绩怎样存储和处理?一个班一个班一个班一个班N N N N门课的成绩怎样存储和处理?门课的成绩怎样存储和处理?门课的成绩怎样存储和处理?门课的成绩怎样存储和处理?.这些数据的特点:具有相同的数据类型。这些数据的特点:具有相同的数据类型。这些数据的特点:具有相同的数据类型。这些数据的特点:具有相同的数据类型。为了方便地使用这些数据,为了方便地使用这些数据,为了方便地使用这些数据,为了方便地使用这些数据,VBVBVBVB语言
2、提供了一种语言提供了一种语言提供了一种语言提供了一种构造数据类型:数组构造数据类型:数组例如:存储学生成绩用实型数组例如:存储学生成绩用实型数组例如:存储学生成绩用实型数组例如:存储学生成绩用实型数组 score score score score(1 to 5 1 to 5 1 to 5 1 to 5)其中:其中:其中:其中:scorescorescorescore是是是是数组名数组名。该数组可以存放该数组可以存放该数组可以存放该数组可以存放5 5 5 5个成绩,分别用下标变量表示:个成绩,分别用下标变量表示:个成绩,分别用下标变量表示:个成绩,分别用下标变量表示:score(1),scor
3、e(5)score(1),score(5)score(1),score(5)score(1),score(5)。2 5.1数组的概念及其声明数组的概念及其声明5.1.1数组与数组元素数组与数组元素 1.数组概念数组概念 数组就是一组数组就是一组相同类型数据相同类型数据的集合,这一组数的集合,这一组数中的每一个组成元素就叫做中的每一个组成元素就叫做数组元素数组元素。用一个统一的名字(用一个统一的名字(数组名数组名)代表逻辑上相关的一)代表逻辑上相关的一批数据,每个元素用批数据,每个元素用下标变量下标变量来区分;下标变量代来区分;下标变量代表元素在数组中的位置。表元素在数组中的位置。例如:例如:d
4、im mark(1 to 100)As Integer 第一个学生成绩用第一个学生成绩用mark(1)来表示,其值为来表示,其值为95 第二个学生成绩用第二个学生成绩用mark(2)来表示,其值为来表示,其值为8032.数组的命名数组的命名 命名规则和简单变量的命名规则相同。例如:用命名规则和简单变量的命名规则相同。例如:用 mark 来代表来代表100个学生的成绩个学生的成绩 3.数组维数数组维数数组中下标的个数称为数组的维数数组中下标的个数称为数组的维数一维数组:例如一维数组:例如mark(100)二维数组:有两个下标二维数组:有两个下标例如例如:x(2,3)二维数组相当于一个矩阵二维数组
5、相当于一个矩阵三维数组:有三个下标,例如:三维数组:有三个下标,例如:m(3,4,5)5.1.1数组与数组元素数组与数组元素44.数组元素数组元素5.1.1数组与数组元素数组与数组元素如何确定如何确定100个学生和这个数据组中的各个成绩对应关系呢个学生和这个数据组中的各个成绩对应关系呢?给数组中的数据编号,也就是顺序号,从而出现了数组中给数组中的数据编号,也就是顺序号,从而出现了数组中的下标变量,所以的下标变量,所以数组元素也称为下标变量数组元素也称为下标变量.数组元素表示数组元素表示为:为:()例如:例如:mark(1)、mark(99)例如例如:c(2,3)表示数组表示数组c中第中第2行第
6、行第3列的那个元素列的那个元素对于数组中下标的使用说明:对于数组中下标的使用说明:对于数组中下标的使用说明:对于数组中下标的使用说明:(1 1)下标放在数组名后的)下标放在数组名后的)下标放在数组名后的)下标放在数组名后的括号括号括号括号内内内内mark1mark1,mark2mark2,mark(1),mark(1)55.1.1数组与数组元素(2 2)下标可以是常量、变量或者表达式)下标可以是常量、变量或者表达式)下标可以是常量、变量或者表达式)下标可以是常量、变量或者表达式mark(1)=60mark(1)=60for i=2 to 100for i=2 to 100 mark(mark(
7、i i)=)=cintcint(inputbox(“(inputbox(“输入输入输入输入”)”)next inext imark(mark(i+1i+1)=0)=0(3 3)下标反映的是数据在数组中的位置,应该为整)下标反映的是数据在数组中的位置,应该为整)下标反映的是数据在数组中的位置,应该为整)下标反映的是数据在数组中的位置,应该为整数,如为非整数,要四舍五入取整数,如为非整数,要四舍五入取整数,如为非整数,要四舍五入取整数,如为非整数,要四舍五入取整例如例如例如例如x(3.6)x(3.6)取整后为取整后为取整后为取整后为x(4)x(4)6 5.数组的类型数组的类型 Visual Bas
8、ic中的数组,按不同的方式可分为以下几类:中的数组,按不同的方式可分为以下几类:v 按数组的大小(元素个数)是否可以改变来分为:按数组的大小(元素个数)是否可以改变来分为:定定长长数数组组、动动态态(可可变变长长)数数组组,也也称称为为静静态态数数组组或或动动 态数组。态数组。5.1.1数组与数组元素v 按元素的数据类型可分为:数值型数组、字符串数组、按元素的数据类型可分为:数值型数组、字符串数组、日期型数组、变体数组等。日期型数组、变体数组等。v 按数组的维数可分为:一维数组、二维数组、多维数组。按数组的维数可分为:一维数组、二维数组、多维数组。v 对象数组:菜单对象数组、控件数组对象数组:
9、菜单对象数组、控件数组。75.2 静态数组静态数组 静态数组是指固定大小的数组,类型、维数静态数组是指固定大小的数组,类型、维数和大小将不得改变。和大小将不得改变。5.2.1 5.2.1 静态数组及声明静态数组及声明语法语法语法语法:Dim Dim 数组名数组名(下标下标1,下标下标2)As 类型类型下界下界 to 上界上界维数:几个下标为几维数组,最多维数:几个下标为几维数组,最多维数:几个下标为几维数组,最多维数:几个下标为几维数组,最多6060维维维维例:例:例:例:Dim mark(1 to 100)As IntegerDim mark(1 to 100)As Integer Dim
10、c(0 to3,0 to 4)Dim c(0 to3,0 to 4)As IntegerAs Integer8每一维大小每一维大小:上界下界上界下界+1数组大小数组大小数组大小数组大小:每一维大小的乘积每一维大小的乘积每一维大小的乘积每一维大小的乘积Dim lArray(0 To 3,0 To 4)As Long共有共有共有共有 45 45个元素个元素个元素个元素下标下标下标下标:下界下界下界下界 To To 上界,下界可以省略上界,下界可以省略上界,下界可以省略上界,下界可以省略,当缺省时,当缺省时,当缺省时,当缺省时,下标的下界由下标的下界由下标的下界由下标的下界由Option Base
11、nOption Base n语句控制语句控制语句控制语句控制,给出的上下界给出的上下界给出的上下界给出的上下界必须为常数。必须为常数。(1)(1)如果在数组声明的时候,没有给出下标下界,则下如果在数组声明的时候,没有给出下标下界,则下如果在数组声明的时候,没有给出下标下界,则下如果在数组声明的时候,没有给出下标下界,则下界由界由界由界由Option Base Option Base 语句控制语句控制语句控制语句控制,默认值为默认值为默认值为默认值为0 0。例如:例如:例如:例如:Dim b(2,4,3)Dim b(2,4,3)5.2.1 5.2.1 静态数组及声明静态数组及声明Option B
12、ase 1Option Base 1Dim a(2,0 to 4,3)Dim a(2,0 to 4,3)9Dim lArray(0 To 3,0 To 4)As Long 等价于:Dim lArray(3,4)As Long 5.2.1 5.2.1 静态数组及声明静态数组及声明(2)(2)考虑:下面对数组的声明是否正确?考虑:下面对数组的声明是否正确?考虑:下面对数组的声明是否正确?考虑:下面对数组的声明是否正确?n=Inputbox(“n=Inputbox(“输入输入输入输入n”n”)Dim x(n)As Single Dim x(n)As Single 错误的声错误的声明,下标明,下标是变
13、量是变量105.2.1 5.2.1 静态数组及声明静态数组及声明(3)(3)例如:考虑两个例如:考虑两个例如:考虑两个例如:考虑两个x(10)x(10)的区别?的区别?的区别?的区别?Dim x(10)As Integer Dim x(10)As Integer x(10)=100 x(10)=100 声明了声明了x数组有数组有11个元素个元素 对对x(10)这个数组元素赋值这个数组元素赋值在数组声明中的下标说明了数组的整体在数组声明中的下标说明了数组的整体,即每一维即每一维的大小的大小;而在程序其他地方出现的下标表示数组中而在程序其他地方出现的下标表示数组中的一个元素。两者写法形式相同,但意
14、义不同。的一个元素。两者写法形式相同,但意义不同。声明数组:声明数组:声明数组:声明数组:声明了数组的名、维数、大小、声明了数组的名、维数、大小、类型类型,并且对数组进行并且对数组进行初始化初始化11补充补充 与数组操作有关的几个函数与数组操作有关的几个函数1.Array函数函数2.(1)Array函数可方便地对数组整体赋值,但它只能给函数可方便地对数组整体赋值,但它只能给声明声明Variant的变量或仅由括号括起的动态数组赋值。的变量或仅由括号括起的动态数组赋值。=Array()(2)数组的下界由数组的下界由option base控制语句决定,上界由控制语句决定,上界由Array函数括号内的
15、参数个数决定,也可通过函数函数括号内的参数个数决定,也可通过函数Ubound获得获得例如,要将例如,要将1,2,3,4,5,6,7 这些值赋值给数组这些值赋值给数组a,可使用下面,可使用下面的方法赋值。的方法赋值。Dim a()a=array(1,2,3,4,5,6,7)Dim a a=array(1,2,3,4,5,6,7)12 2.求数组的上界求数组的上界Ubound()函数、函数、下界下界 Lbound()函数函数 作用:分别用来确定数组某一维的上界和下界值。作用:分别用来确定数组某一维的上界和下界值。使用形式如下:使用形式如下:UBound(,)LBound(,)补充补充 与数组操作有
16、关的几个函数与数组操作有关的几个函数Dim score(3,4)as integerUBound(score,2)其中:其中:必需的,遵循标准变量命名约定。:必需的,遵循标准变量命名约定。:可选的;一般是整型常量或变量。指定返回哪一:可选的;一般是整型常量或变量。指定返回哪一维的上界。维的上界。1 表示第一维,表示第一维,2 表示第二维,如此等等。表示第二维,如此等等。如果省略默认是如果省略默认是1。4LBound(score,2)0135.2.2 数组的引用数组的引用 使用数组就是对数组元素进行操作,对数组元使用数组就是对数组元素进行操作,对数组元素的操作类似于对简单变量的操作。素的操作类似
17、于对简单变量的操作。引用数组元素需要注意的问题:引用数组元素需要注意的问题:引用数组元素的方法:在数组名后的括号中指引用数组元素的方法:在数组名后的括号中指明下标明下标例如例如a(5),b(3,4)a(5),b(3,4)引用数组元素时,数组名、数组类型必须与数组引用数组元素时,数组名、数组类型必须与数组声明时一致声明时一致 引用数组元素时,下标值应在数组声明时所指定引用数组元素时,下标值应在数组声明时所指定的范围内的范围内 在同一过程中,数组与简单变量不能同名在同一过程中,数组与简单变量不能同名141.1.数组元素的输入(赋初值)数组元素的输入(赋初值)(1)赋值语句赋值语句 Dim iA(1
18、 To 10)As String iA(1)=“张三张三”:iA(2)=“李四李四”再如再如:for i=1 to 10 a(i)=int(Rnd*90)+10 循环加赋值循环加赋值 next i (2)在运行时通过)在运行时通过 inputbox函数输入函数输入for i=1 to 10 a(i)=inputbox(“请输入请输入”)next i 15(3)用循环用循环 For i =1 To 10 a(i)=0 Next i 1.1.数组元素的输入(赋初值)数组元素的输入(赋初值)(4)Array函数函数 Dim ib()用用array函数给动态数组赋值时不能指定数组类型函数给动态数组赋值
19、时不能指定数组类型 ib=Array(abc,def,67)For i=0 To UBound(ib)form1.Print ib(i);Next i161.1.数组元素的输入(赋初值)数组元素的输入(赋初值)一维数组一维数组在输入时可用在输入时可用一重循环一重循环,二维数组二维数组要用要用二重循环二重循环,多维数组多维数组用用多重循环多重循环。在在VB中,中,数据按行存储数据按行存储,所以一般将数组第一维的循环,所以一般将数组第一维的循环变量放在外重循环中变量放在外重循环中例例5.1 求数组中的最小元素及下标求数组中的最小元素及下标要求:要求:创建一个包含创建一个包含10个元素的数组,从键盘
20、输入个元素的数组,从键盘输入10个个数,找出其中最小的数,并且输出最小数的下标。数,找出其中最小的数,并且输出最小数的下标。数据分析数据分析:除了声明包含除了声明包含 10个元素的数组外个元素的数组外,还应该声明几还应该声明几个变量个变量,分别是什么类型分别是什么类型?求最大值最小值算法分析求最大值最小值算法分析:?17Private Sub Form_Click()Dim a(1 To 10)As Integer Dim min As Integer,p As IntegerFor i=1 To 10 a(i)=Val(InputBox(请输入一个数请输入一个数,输入数输入数,0)Next
21、imin=a(1):p=1For i=2 To 10 If a(i)选择法选择法外重循环变量外重循环变量i:比较的趟数比较的趟数,n个数需要个数需要n-1趟比较趟比较,n从从1变化变化到到n-1内重循环内重循环j:每一趟比较的次数每一趟比较的次数,j从从i+1变化到变化到n23输入输入n个数据给个数据给a(1)到到 a(n)For i=1 to n-1For j=i+1 to na(j)a(i)YN打印输出打印输出a(1)到到a(n)交换交换a(i)和和a(j)这个算法能这个算法能化简吗化简吗24输入输入n个数据给个数据给a(1)到到 a(n)For i=1 to n-1imin=iFor j
22、=i+1 to na(j)选择法改进选择法改进25例例53 由计算机产生由计算机产生10个个0100之间的随机整数,使用之间的随机整数,使用选择法排序,将这些数按递增的顺序排列。选择法排序,将这些数按递增的顺序排列。(纠正课本错纠正课本错误误)Dim a(1 To 10)As IntegerFor i=1 To 10 a(i)=Int(Rnd*100)+1 Print a(i);Next iFor i=1 To imin=i For j=To 10 If a(j)冒泡排序冒泡排序(1)比较第一个数与第二个数,若为逆序)比较第一个数与第二个数,若为逆序a(0)a(1),则交,则交换;然后比较第二
23、个数与第三个数;依次类推,直至第换;然后比较第二个数与第三个数;依次类推,直至第n-1个个数和第数和第n个数比较为止个数比较为止第一趟冒泡排序第一趟冒泡排序,结果,结果最大的最大的数数被安置在被安置在最后一个元素最后一个元素位置上位置上(2)对前)对前n-1个数进行第二趟冒泡排序,结果使个数进行第二趟冒泡排序,结果使次大次大的数被的数被安置第安置第n-1个元素位置个元素位置(3)重复上述过程,共经过)重复上述过程,共经过n-1趟冒泡排序后,排序结束趟冒泡排序后,排序结束272冒泡排序冒泡排序从上述过程可以看到:从上述过程可以看到:从上述过程可以看到:从上述过程可以看到:N N N N个数要比较
24、个数要比较个数要比较个数要比较N-1N-1N-1N-1趟,而趟,而趟,而趟,而在第在第在第在第i i i i趟比较中,要进行趟比较中,要进行趟比较中,要进行趟比较中,要进行N-iN-iN-iN-i次两两比较。次两两比较。次两两比较。次两两比较。28冒泡法排序(升序)的冒泡法排序(升序)的VB程序:程序:2冒泡排序冒泡排序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 temp=a(j)temp=a(j)a(j)=a(j+1)a(j)=a(j+1)a(j+
25、1)=temp a(j+1)=temp End if End if Next j Next jNext iNext i293.二维数组的应用Dim StuScore(1 to 10,1 to 5)定义定义105的二维数组的二维数组可以使用可以使用For循环嵌套处理多维数组循环嵌套处理多维数组.二维数组中的元素的存储顺序是二维数组中的元素的存储顺序是按行存储按行存储的,的,因此因此外循环对应行的变化,内循环对应列的变化外循环对应行的变化,内循环对应列的变化比较合适比较合适。30例例5.4 设定一个设定一个5行行5列的矩阵,首先给这个矩阵赋列的矩阵,首先给这个矩阵赋值,其值为对应的行坐标和列坐标之
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB 语言 数组 专题 培训 课件
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。