




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、(推荐)visualbasic程序设计课程电子教案第5章数组第五章第五章 数数 组组本章要求:本章要求: 1.1.掌握数组的概念掌握数组的概念 2.2.掌握数组(一、二维)的定义及其引用,掌握数组(一、二维)的定义及其引用, 3.3.掌握控件数组的建立及使用。掌握控件数组的建立及使用。 本章本章重点:重点: 数组定义及引用方法,与数组有关的一些常用算法数组定义及引用方法,与数组有关的一些常用算法本章本章难点:难点:与数组有关的一些常用算法与数组有关的一些常用算法 输入输入1010个数,输出它们的平均值及大于平个数,输出它们的平均值及大于平均值的那些数?均值的那些数?输入 a当 nave the
2、n print a1 if a1ave then print a1 if a2ave then print a2 if a2ave then print a2 if a3ave then print a3 if a3ave then print a3 if a4ave then print a4 if a4ave then print a4 . . 实际程序是不能这样写实际程序是不能这样写 思考:思考: 如果能使用如果能使用a ai i ( i=1,2,.10 ) ( i=1,2,.10 ) 的形式?的形式? 使用循环来写程序使用循环来写程序 vbvb中表示下标变量就是通过定义数组来实现的。中
3、表示下标变量就是通过定义数组来实现的。5.1 5.1 一维数组一维数组 数组的概念:数组的概念:数组并不是一种数据类型,而数组并不是一种数据类型,而是是一组相同类型数据一组相同类型数据的集合。用一个统一的名字的集合。用一个统一的名字(数组名)数组名)代表逻辑上相关的一批数据,每个元素代表逻辑上相关的一批数据,每个元素用用下标变量下标变量来区分;下标变量代表元素在数组中的来区分;下标变量代表元素在数组中的位置位置。vbvb中数组的表示形式:中数组的表示形式: a(1), a(10) a(1), a(10) 一维数组一维数组 x(1,1), x(2,10) x(1,1), x(2,10) 二维数组
4、二维数组 y(0,0,0), y(1,2,5) y(0,0,0), y(1,2,5) 三维数组三维数组5.1 5.1 一维数组一维数组visual basicvisual basic中的数组分类:中的数组分类:按数组的大小(元素个数)是否可以改变来分为:按数组的大小(元素个数)是否可以改变来分为: 定长数组、动态(可变长)数组定长数组、动态(可变长)数组。按元素的数据类型可分为:按元素的数据类型可分为: 数值型数组、字符串数组、逻辑数组、数值型数组、字符串数组、逻辑数组、 日期型数组、变体数组等、对象数组。日期型数组、变体数组等、对象数组。按数组的维数可分为:按数组的维数可分为: 一维数组、二
5、维数组、多维数组。一维数组、二维数组、多维数组。5.1 5.1 一维数组一维数组 dim dim 数组名数组名(toto)as )as 或:或: dim dim 数组名数组名(toto)例:例:dim a(1 to 10) as integer dim a(1 to 10) as integer 声明了声明了a a数组有数组有1010个元个元素素与上面声明等价形式:与上面声明等价形式: dim a%(1 to 10) dim a%(1 to 10) 1是下标的下界是下标的下界10是下标的上界是下标的上界数组元数的数据类型数组元数的数据类型5.1 5.1 一维数组一维数组2. 2. 数组的声明数
6、组的声明 说明:说明: 1 1数组名的命名规则与变量的命名相同。数组名的命名规则与变量的命名相同。 2 2数组的元素个数:数组的元素个数:上界上界- -下界下界+1+1。 3 3缺省缺省 为为0 0,若希望下标从,若希望下标从1 1开始,可在模块的通用开始,可在模块的通用部分使用部分使用option baseoption base语句将设为语句将设为1 1。其使用格式是:。其使用格式是: option base 0|1 option base 0|1 后面的参数只能取后面的参数只能取 0 0 或或 1 1 例如:例如: option base 1 option base 1 将数组声明中缺省将
7、数组声明中缺省 下标设为下标设为 1 15.1 5.1 一维数组一维数组4. .数组中所有元素都有相同的数据类型。如果类型不同数组中所有元素都有相同的数据类型。如果类型不同, , 则声明时必须将其数据类型定义为则声明时必须将其数据类型定义为variantvariant。5 参数参数indexindex的个数决定数组的维数。各参数间用逗号的个数决定数组的维数。各参数间用逗号分隔。参数可以是简单的数值表达式分隔。参数可以是简单的数值表达式 例如,例如,aa(4)aa(4)也可以是由关键字也可以是由关键字toto组成的表达式组成的表达式例如,例如,sdsd(1 to 101 to 10)5.1 5.
8、1 一维数组一维数组 数组名数组名( (下标下标) ) 3. 3. 数组元素的引用数组元素的引用 例如,定义一个数组,并分别给每一元素赋值。例如,定义一个数组,并分别给每一元素赋值。dim s1 (9) as stringdim s1 (9) as string,i as integeri as integerfor i=0 to 9for i=0 to 9s1 (i)=inputboxs1 (i)=inputbox( 请输入任何一个字符:请输入任何一个字符: )next inext i5.1 5.1 一维数组一维数组5.2 5.2 多维数组多维数组 1. 1. 多维数组的声明多维数组的声明定
9、义多维数组的格式如下:定义多维数组的格式如下:dim dim 数组名数组名( to to , to to ,) as ) as 例如:例如: dim a(5,5,5) as integer dim a(5,5,5) as integer 声明声明a a是三维数组是三维数组 dim b(2,6,10,5) as integer dim b(2,6,10,5) as integer 声明声明b b是四维数组是四维数组 2. 2. 多维数组元素的引用多维数组元素的引用多维数组元素的引用:多维数组元素的引用:数组名(下标数组名(下标1 1,下标,下标22,下标,下标33)例如例如 声明一个字符数组,并
10、给数组中声明一个字符数组,并给数组中 每一个元素赋值。每一个元素赋值。 dim array(3,3) as stringdim array(3,3) as stringdim row,col as integerdim row,col as integerfor row=0 to 3for row=0 to 3 for col=0 to 3 for col=0 to 3 array(row,col)=inputbox( array(row,col)=inputbox( 请输入一个字符请输入一个字符 ) ) next col next colnext rownext row5.2 5.2 多维数
11、组多维数组 5.35.3动态数组动态数组 动态数组:在声明时未给出数组的大小。在程序执行时分动态数组:在声明时未给出数组的大小。在程序执行时分配存储空间。配存储空间。5.3.1 5.3.1 动态数组的建立及使用动态数组的建立及使用 建立动态数组包括声明和大小说明两步:建立动态数组包括声明和大小说明两步: 1 1在使用在使用dimdim、privateprivate或或publicpublic语句声明括号内为空的语句声明括号内为空的数组。数组。 格式:格式:dim | private|public dim | private|public 数组名()数组名()as as 数据类型数据类型 例:例
12、:dim a() as integerdim a() as integer 2 2在过程中用在过程中用redimredim语句指明该数组的大小。语句指明该数组的大小。 格式:格式:redim preserve redim preserve 数组名(下标数组名(下标11,下标,下标22) preservepreserve参数:保留数组中原来的数据参数:保留数组中原来的数据 5.35.3动态数组动态数组 说明:说明: (1 1)redimredim语句是一个可执行语句,只能出现在过程中,语句是一个可执行语句,只能出现在过程中,并且可以多次使用,改变数组的维数和大小。并且可以多次使用,改变数组的维数
13、和大小。 (2 2)定长数组声时中的下标只能是常量,而动态数组)定长数组声时中的下标只能是常量,而动态数组redim redim 语句中的下标是常量,也可以是有了确定值的变量。语句中的下标是常量,也可以是有了确定值的变量。 (3) preserve(3) preserve为可选的关键字,当改变原有数组最末维为可选的关键字,当改变原有数组最末维的大小时,使用此关键字可以保持数组中原来的数据。的大小时,使用此关键字可以保持数组中原来的数据。例:例:redim a(10) redim a(10) redim preserve a(20) redim preserve a(20)5.35.3动态数组动
14、态数组 (4 4)在过程中可以多次使用)在过程中可以多次使用redimredim来改变数组的大小,也来改变数组的大小,也可改变数组的维数。可改变数组的维数。 例:例:redim x(10)redim x(10) redim x(20) redim x(20) x(20) = 30 x(20) = 30 print x(20) print x(20) redim x(20, 5) redim x(20, 5) x(20, 5) = 10 x(20, 5) = 10 print x(20, 5) print x(20, 5) 5.45.4使用数组程序举例使用数组程序举例 【例【例5.15.1】 数
15、组数组address(100,1)address(100,1)保存着保存着101101个学生的姓名及其家个学生的姓名及其家庭住址,要求随意输入一个姓名,能够输出其对应的家庭住址。庭住址,要求随意输入一个姓名,能够输出其对应的家庭住址。dim name as string,address(100,1) as stringdim name as string,address(100,1) as stringdim i as integerdim i as integername=inputbox(name=inputbox( 请输入查询的姓名请输入查询的姓名: , , 数据输入数据输入 ) )fo
16、r i=0 to 100for i=0 to 100 if address(i,0)=name then if address(i,0)=name then msgbox name+ msgbox name+ 的家庭住址是的家庭住址是: + address(i,1)+ address(i,1) end if end ifnext inext iend subend sub5.45.4使用数组程序举例使用数组程序举例 【例【例5.25.2】输入两个数】输入两个数a a和和b b,根据不同的运算符(,根据不同的运算符(+ +,- -,* *,/ /)进)进 行运算。行运算。 5.45.4使用数组程
17、序举例使用数组程序举例 代码如下:代码如下:private sub command1_click(index as integer)private sub command1_click(index as integer)dim a as single, b as single, c as singledim a as single, b as single, c as single a= val(text1.text) a= val(text1.text) b= val(text2.text) b= val(text2.text)select case indexselect case ind
18、ex case 0 case 0 加加 c = a + bc = a + b label3.caption = label3.caption = 结果:结果:a+b= + str(c)a+b= + str(c) case 1 case 1 减减 c = a - bc = a - b label3.caption = label3.caption = 结果:结果:a-b= + str(c)a-b= + str(c)case 2 case 2 乘乘 c = a c = a * * b b label3.caption = label3.caption = 结果:结果:a a* *b= + str(
19、c)b= + str(c) case 3 case 3 除除 if b = 0 thenif b = 0 then msgbox msgbox 除数不能为除数不能为0!, 48, 0!, 48, 提示提示 exit sub exit sub end if end if c = a / b c = a / b label3.caption = label3.caption = 结果:结果:a/b= + str(c)a/b= + str(c) end select end selectend subend sub5.45.4使用数组程序举例使用数组程序举例 【例【例5.35.3】设计一程序,要求能
20、够动态完成窗体的建立】设计一程序,要求能够动态完成窗体的建立。 操作步骤如下操作步骤如下 : 将标签控件的名称属性设为将标签控件的名称属性设为labelslabels,indexindex属性设置属性设置 为为0 0,alignmentalignment属性设置为属性设置为1 1(右对齐)。(右对齐)。 将文本框控件的名称属性设为将文本框控件的名称属性设为textboxestextboxes,indexindex属性属性 设置为设置为0 0。 将两控件的将两控件的visiblevisible属性设置为属性设置为falsefalse。 在窗体中绘制一命令按钮,名称属性设为在窗体中绘制一命令按钮,
21、名称属性设为command1command1, 其其clickclick事件代码如下所示:事件代码如下所示: 5.45.4使用数组程序举例使用数组程序举例 private sub command1_click()private sub command1_click()dim i as integerdim i as integerdim captions(6) as stringdim captions(6) as stringdim sizes(6) as integerdim sizes(6) as integercaptions(1) = captions(1) = 姓名姓名 capti
22、ons(2) = captions(2) = 性别性别 captions(3) = captions(3) = 民族民族 captions(4) = captions(4) = 家庭地址家庭地址 captions(5) = captions(5) = 联系电话联系电话 sizes(1) = 20sizes(1) = 20sizes(2) = 30sizes(2) = 30sizes(3) = 40sizes(3) = 40sizes(4) = 15sizes(5) = 125.45.4使用数组程序举例使用数组程序举例 for i = 1 to 5for i = 1 to 5 load labe
23、ls(i) load labels(i) load textboxes(i) load textboxes(i)labels(i).top = labels(i 1).top+1.5labels(i).top = labels(i 1).top+1.5 _ _ labels(0).height labels(0).heightlabels(i).left = labels(0).leftlabels(i).left = labels(0).lefttextboxes(i).top=textboxes(i-1).top+1.5textboxes(i).top=textboxes(i-1).top
24、+1.5 _ _textboxes(i).heighttextboxes(i).height textboxes(i).left = textboxes(0).left textboxes(i).left = textboxes(0).left textboxes(i).width = sizes(i) textboxes(i).width = sizes(i) textwidth( textwidth( a a ) ) labels(i).caption = captions(i) labels(i).caption = captions(i) labels(i).visible = true labels(i).visible = true textboxes(i).visible = true textboxes(i).visible = truenextnextend subend sub5.45.4使用数组程序举例使用数组程序举例 运行程序后,窗体如图运行程序后,窗体如图5.45.4所示,单击按钮后,窗体如图所示,单击按钮后,窗体如图5.55.5所示。所示。 图5.4 图 5.55.45.4使用数组程序举例使用数组程序举例 5.45.4使用数组程序举例使用数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 南京的旅游发展对当地居民幸福感的贡献
- 2025年征地树苗补偿合同协议书
- 2025装载机租赁合同范本
- 2025关于农产品购销合同
- 如何在家中实施幼儿心理健康计划
- 儿童营养餐制作与健康饮食指导
- 食管静脉注射硬化剂后的护理
- 品牌传播渠道拓展及推广策略探讨
- 2025年溶氧仪项目建议书
- 2024年CPMM课程特色试题及答案
- 交通设计课程设计
- 课件3:波束成形
- 04第四章(氢氧同位素)
- 人工智能基础与应用课件
- 固定资产盘点管理规定完整版
- 江苏扬州市梅岭小学二年级数学下册期末复习卷(一)及答案
- 妊娠、分娩和产褥期疾病病人的护理
- 18CS01 装配式箱泵一体化消防给水泵站选用及安装-MX智慧型泵站
- 法律文书制作基础-制作基础
- 避孕药具知识培训-专业知识讲座
- 2023版中国近现代史纲要课件第十专题社会主义革命和建设的开展PPT
评论
0/150
提交评论