VB语言第6章教案
数组是程序设计中广泛使用 的数据结构,它可以方便灵活地 组织数据。 数组与循环语句结合使用, 可使程序结构简洁、清晰。通常 数组应先声明后使用。主页
第6章 数 组利用数组可以有效地存储和处理成批数据
本章主要内容数组的概念 数组的声明
数组的输入和输出动态数组 For Each...Next循环语句
控件数组程序举例退出 主页
6.1 数组的概念1. 数组与数组元素处理成批的数据时,必须使用数组来处理。 例如,表示100个学生的成绩,采用简单变量来表示: s1,s2,s3,… s99,s100 采用数组来表示:t(0), t(1), t(2),… t(98), t(99)
t(k) (k=0,1,2,…99)为数组元素(或称下标变量),它表示第k个学生的成绩, k称为下标变量的下标(默认情况下,下标从0开始)数组是一组按一定顺序排列的数据的集合。 由三行四列组成的二维数组y,其12个下标变量可表示为 y(0,0) y(0,1) y(0,2) y(0,3) y(1,0) y(1,1) y(1,2) y(1,3) y(2,0) y(2,1) y(2,2) y(2,3)主页
2. 数组的维数下标标明该下标变量在数组中的位置的。下标可以是常数 值,也可以是变量(包括下标变量)或数值表达式。 数组元素中下标的个数称为数组的维数,上述成绩数组t 只有一个下标,称为一维数组,三元一次方程组的系数数组y有 两个下标,称为二维数组。
在VB中最多可以使用60维的数组。只要有规则地改变下标值(如k),就可以很方便地使下标 变量(如t(k))成为所需要的具体下标变量
主页
3. 数组元素的表示方法数组名(下标,…) s(i) 一维数组 s(i, j) 二维数组 i行j列下标可以是常数值,也可以是变量(包括数组元素)或数值表达式,如d(s(3)),若s(3)=2,则d(s(3))就是d(2)。当下标值带有 小数部分时,系统会自动对它四舍五入取整,如x(7.7)将作为 x(8)处理。 数组元素又称为有序的变量——下标变量,其使用方法与
简单变量基本相同,也就是说,可以像使用简单变量一样使用数组中的每一个元素,但数组的功能远远超过简单变量。
主页
6.2 数组的声明使用数组之前,必须先定义数组,以便让系统分配相应 的存储单元。格式为: Dim 数组名([下界1 to]上界1[,[下界2 to]上界2 ]) [As 数据类型] 功能:指定数组的维数、各维的上下界和数据类型
举例:
Dim Sum(10) As Long 下标号从0~10,共11个元素 Dim Ary(1 to 20) As Integer 下标号从1~20,共20个元素 Dim d(1 to 5,1 to 10) As Double 定义二维数组UBound(Sum) LBound(Sum) Sum的上界结果为10 Sum的下界结果为0
设定下界的方法
Option Base 1 设定下界为1 Dim Data(10) As Single 下标号从1~10 Option Base指定所有数组下界都为1
主页
例6.1 输入5个同学的成绩,计算总分和平均分(取小数后
一位) Dim d(5) As Integer Dim i As Integer, total As Single, average As Single Show 例6.1 For i = 1 To 5 '输入成绩 d(i) = Val(InputBox("请输入第" & Str(i) & _ "个学生的成绩", "输入成绩")) Next i total = 0 For i = 1 To 5 '计算总分和平均分 total = total + d(i) Next i average = total / 5 Print "总分:" & total Print "平均分:" & Format(average, "##.0")主页
6.3 数组的输入和输出1. 数组的输入(1) 使用赋值语句。例如: a(2) = 2 a(3) = 10 (2) 使用循环语句。例如: Dim d(100) As Integer For i=0 To 100 d(i)=int(90*Rnd+10) Next i (3) 使用InputBox函数。 使用InputBox函数为数组元素赋值,增强了与用户的交互 性。但不适合大批量的数据输入。主页
(4)使用Array函数Array函数用来为数组元素赋值,即把一组数据读入某个数 组中。 格式:数组变量名 = Array(数组元素值) 例如: Dim d As Variant d = Array(1,2,3,4) 执行上述语句后,将把1,2,3,4这四个数赋值给数组d() 的各个元素,即1→d(0),2→d(1),3→d(2),4→d(3)。
2. 数组的输出因为每个数组元素都是一个数据,所以输出数组元素同 输出其他数据一样,可以使用Print方法,也可以使用控件, 如标签、文本框、列表框、组合框等。 在使用二重循环输出一个二维数组时,通常内层循环用 于控制列号的变化,外层循环用于控制行号的变化。主页
【例6.2】使用Array函数给一维数组a()输入数据,再用数组a中的数据存入 二维数组b中,然后将二维数组b(,)以矩阵形式输出到窗体及多行文本框中。Option Base 1 '声明数组下标的下界默认值为1 Private Sub Form_Load() 例6.2 Dim a As Variant, b(3, 4) As Integer Dim i As Integer, j As Integer a = Array(11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22) For i = 1 To 3 For j = 1 To 4 b(i, j) = a((i - 1) * 4 + j) '用一维数组a()的数据存入二维数组b(,) Next j 文本框Text1 Next i Show For i = 1 To 3 '以矩阵形式输出二维数组b(,) For j = 1 To 4 Print b(i, j); '输出在窗体上 Text1.Text = Text1.Text & Str(b(i, j)) '输出在文本框上 Next j Print '换行 Text1.Text = Text1.Text & vbCrLf '加入换行控制符vbCrLf(或Chr(13)+Chr(10)) Next i End Sub 主页
【例6.3】生成20个随机两位数作为原始数据,存放在4行5列的二维数组a(,) 中,然后求各列元素的和,把这些和数存放在一个一维数组t()中。 采用2个二重循环来实现程序的功能。第1个二重循环为二维数组a(,)输 入数据,第2个二重循环用于求各列元素的和。 Dim a(4, 5) As Integer, t(5) As Integer Dim i As Integer, j As Integer, s As Integer 例6.3 Randomize : Show For i = 1 To 4 '控制行数 For j = 1 To 5 '控制列数 a(i, j) = Int(90 * Rnd + 10) '随机数存放在数组的i行j列中 Next j Next i For j = 1 To 5 '控制列数 s=0 '合计前清0 For i = 1 To 4 '控制列数 s = s + a(i, j) '累
加同一列元素值 Next i t(j) = s '列元素之和存放于数组s()中 Print "第" & j & "列元素的和:" & t(j) '输出当前列元素之和 Next j
主页
思考题
下列程序的运行结果?
想一想
D 1. 执行下列程序段后,输出的结果是______。 Dim a(1 To 3, 1 To 3) For j = 1 To 3 For k = 1 To 3 a(j, k) = j Print a(j, k); Next k Print Next j A. 3 2 1 2 3 2 1 2 3 B. 0 1 2 1 0 1 2 1 0 C. 1 2 3 2 1 2 3 2 1 D. 1 1 1 2 2 2 3 3 3主页
6.4 动态数组两种形式的数组:静态数组和动态数组静态数组(前面介绍的)是指数组元素的个数固定不变;动态 数组的元素个数,在程序运行时可以改变
动态数组可以在运行过程中改变数组的大小,提高存储区 的使用效率
6.4.1 建立动态数组用ReDim语句重新定义带下标的动态数组
6.4.2 数组刷新语句Erase语句用来清除静态数组的内容,或者释放动态数组占
用的内存空间主页
静态数组和动态数组Dim t(200) As Integer For k=1 To 200 t(k) = … Next k …… 声明一个静态数组
使用 静态数组个数固定不变
Dim t() As Integer …… ReDim t(100) …… ReDim t(200)
'声明一个动态数组
使用 动态数组个数可以改变
'用ReDim语句重新定义
'用ReDim语句重新定义主页
例6.4 ReDim语句应用示例Private Sub Form_Load()Dim a() As Integer Show ReDim a(800) k=0 For …… 此处隐藏:2964字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [教学研究]2012西拉科学校团少队工作总结
- [教学研究]建筑工程公司档案管理制度
- [教学研究]小学数学人教版六年级上册圆的周长和面
- [教学研究]ERP电子行业解决方案
- [教学研究]钢支撑租赁合同范本
- [教学研究]预应力自动张拉系统用户手册Rev1.0
- [教学研究]MOOC课程:金瓶梅人物写真(每章节课后
- [教学研究]追加被执行人申请书(适用追加夫妻关系)
- [教学研究]2014年驾考科目一考试最新题库766
- [教学研究]2013-2014学年度九年级物理第15章《电
- [教学研究]新版中日交流标准日本语初级下26课-客
- [教学研究]小导管注浆施工作业指导书
- [教学研究]一般财务人员能力及人岗匹配评估表
- [教学研究]打1.2.页 小学一年级暑假口算100以内加
- [教学研究]学习贯彻《中国共产党党和国家机关基层
- [教学研究]2012年呼和浩特市中考试卷_35412
- [教学研究]最简易的电线电缆购销合同范本
- [教学研究]如何开展安全标准化建设
- [教学研究]工作分析与人岗匹配
- [教学研究]2016-2017学年高中历史第七单元现代中
- 山东省义务教育必修地方课程小学三年级
- 台湾宜兰大学互联网交换技术课程 01_In
- 思想品德:第一课《我知我家》课件(人
- SAR合成孔径雷达图像点目标仿真报告(附
- 利辛县“十三五”规划研究报告
- 2015-2020年中国手机APP行业市场发展趋
- 广告策略、创意表现、媒体方案
- 企业如何申请专利的的几点思考
- 《中国教育简史》网上作业
- 高中历史第二单元西方人文精神的起源及
- 年终晚会必备_精彩的主持稿_精心整理_
- 信息工程专业自荐书
- 2019高考历史人教版一轮练习:第十二单
- JAVA俱乐部管理系统软件需求规格说明书
- 2016-2021年中国小型板料折弯机行业市
- (人教新课标)六上_比的基本性质课件PPT
- 辽宁省公务员考试网申论备考技巧:名言
- 神经阻滞麻醉知情同意书
- 施工企业信息填报、审核和发布的相关事
- 初一(七年级)英语完形填空100篇




