电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

Visual Basic程序设计教程 第2版 教学课件 ppt 作者 刘瑞新 电子教案 第6章 数组

42页
  • 卖家[上传人]:E****
  • 文档编号:89183816
  • 上传时间:2019-05-20
  • 文档格式:PPT
  • 文档大小:261KB
  • / 42 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、第6章 数 组,第6章 数 组,前面章节中介绍的变量都属于简单数据变量,即单一的数据变量。除简单变量外,VB还提供了数组变量,利用数组可以缩短和简化程序,因为可以利用下标值设计一个循环,高效地处理多种情况。,6.1 数组的概念 数组是数据的有序集合,它为用户处理大量数据带来方便。下面介绍数组的基本概念。 6.1.1 数组与数组元素 数组是用一个统一的名称表示的、顺序排列的一组变量。数组中的变量称为数组元素,用下标(数字)来标识它们,因此数组元素又称为下标变量。 可以用数组名及下标唯一地识别一个数组的元素,比如a(5)表示名称为a的数组中顺序号(下标)为5的那个数组元素(变量)。,6.1.2 数组的类型 VB中的数据有多种类型,相应的数组也有多种类型。可以声明任何基本数据类型的数组,包括用户自定义类型和对象变量,但是一个数组中的所有元素应该具有相同的数据类型。当然,数据类型为Variant时,各个元素能够包含不同类型的数据(对象、字符串、数值等等)。 6.1.3 数组的维数 如果一个数组的元素只有一个下标,则称这个数组为一维数组。例如,数组s有30个元素:s(1)、s(2)、s(3)、s

      2、(30),依次保存30个学生的一门功课的成绩,则S为一维数组。一维数组中的各个元素又称为单下标变量。一维数组中的下标又称为索引(Index)。,如果有30个学生,每个学生有5门功课的成绩,见表6-1。 表6-1 学生成绩表 姓名 语文 数学 外语 物理 化学 学生1 85 60 55 78 88 学生2 69 74 80 76 79 学生3 77 86 72 80 95 学生30 88 90 75 88 82 这些成绩可以用有两个下标的数组来表示,如第i个学生第j门课的成绩可以用s(i, j)表示。有两个下标的数组称为二维数组,其中的数组元素称为双下标变量。,6.1.4 数组的形式 在VB中有两种形式的数组:固定大小的数组和动态数组。固定大小的数组是指数组元素的个数固定不变。而动态数组的大小(其元素的个数)在运行时可以改变。,6.1.5 数组的声明 有三种方法声明固定大小的数组,用哪一种方法取决于数组应用的有效范围: 1) 建立公用数组,在模块的通用段用Public语句声明数组。格式为: Public 数组名(维数定义) As 类型 2) 建立模块级数组,在模块的通用段用Private

      3、或Dim语句声明数组。格式为: Private | Dim 数组名(维数定义) As 类型 3) 建立局部数组,在过程中用Dim或Static语句声明数组。格式为: Dim | Static 数组名(维数定义) As 类型,6.2 数组的基本操作 在建立(声明)一个数组之后,就可以使用数组。使用数组就是对数组元素进行各种操作,例如:赋值、表达式运算、输入或输出等。 6.2.1 数组元素的输入、输出和复制 1. 数组元素的输入 数组元素可以在设计时通过赋值语句输入,或是在运行时通过InputBox函数输入。在元素较多的情况一般需要使用For循环语句。,【例6-1】利用数组name()存放姓名。考虑到要在不同的过程中使用数组,所以首先在模块的通用段声明数组: Dim name(1 To 10) As String 数组的赋值由窗体的Load事件代码完成: Private Sub Form_Load() a(1) = “陈高阳“: a(2) = “赵世杰“: a(3) = “李民维“: a(4) = “马英丽“: a(5) = “杨广民“ a(6) = “李灵君“: a(7) = “陈吉至“

      4、: a(8) = “王东明“: a(9) = “姜大伟“: a(10) = “吴晓林“ End Sub,【例6-2】随机产生10个两位整数,放入数组。考虑到要在不同的过程中使用数组,所以首先在模块的通用段声明数组: Dim a(1 To 10) As Integer 随机整数的生成由窗体的Load事件代码完成: Private Sub Form_Load() Randomize For i = 1 To 10 a(i) = Int(Rnd * 90) + 10 Next End Sub,多维数组元素的输入通过多重循环来实现。由于VB中的数组是按行存储的,因此一般把控制数组第1维的循环变量放在最外层循环中。 【例6-3】设有一个55的方阵,其中元素是由计算机随机生成的小于100的整数。 考虑到要在不同的过程中使用数组,所以首先在模块的通用段声明数组: Dim a(5, 5) As Integer,方阵的生成由窗体的Load事件代码完成: Private Sub Form_Load() Randomize For i = 1 To 5 For j = 1 To 5 a(i, j) = In

      5、t(Rnd * 99) + 1 Next Next End Sub,2. 数组元素的输出 数组元素可以在窗体或图片框中使用Print方法输出,也可以在多行文本框、列表框或组合框中输出。 【例6-4】将例6-2中的数组在窗体中按2行5列输出。 Private Sub Form_Activate() Cls Print For i = 1 To 10 If i Mod 5 = 0 Then Print a(i) Else Print a(i); “ “; End If Next End Sub,【例6-5】将例6-3中的数组在列表框中按5行5列输出。 Private Sub Command1_Click() List1.Clear Dim p As String For i = 1 To 5 p = “ For j = 1 To 5 p = p & Format(a(i, j), “!“) Next List1.AddItem p, i - 1 Next End Sub,3. 数组元素的复制 单个的数组元素可以像简单变量那样从一个数组复制到另一个数组,而要复制整个数组则仍要使用For循环语

      6、句。 6.2.2 For EachNext语句 与For.Next语句类似,两者都用来执行指定重复次数的一组语句。但For Each.Next语句专门用于数组或对象集合(本书不涉及集合)中的每个元素。语法为: For Each 成员 In 数组 语句序列 Exit For Next 成员,用For Each.Next语句可以对数组元素进行处理,包括查询、显示或读取。它所重复执行的次数有数组中元素的个数确定,也就是说,数组中有多少个元素,就自动重复执行多少次。例如: Dim aa(1 To 6) For Each x In aa Print x; Next x 在数组操作中,For Each.Next语句比For.Next语句更方便,因为它不需要指明循环的条件。,【例6-6】求例6-2、例6-4随机整数中的最大值、最小值和平均值。 编写命令按钮Command1的Click事件代码: Private Sub Command1_Click() Dim n As Integer, m As Integer, s As Single m = 100: n = 0: s = 0 For Each

      7、x In a If x n Then n = x If x m Then m = x s = s + x Next MsgBox “最大值为“ & n & Chr(13) & “最小值为“ & m & Chr(13) & “平均值为“ & s / 10 End Sub,说明:不能使用For Each.Next语句对普通的数组元素作“赋值”操作,因为语句中的成员表示数组元素的值,而不表示数组元素本身。但是可以对控件数组中每个控件的属性作赋值操作。,6.2.3 数组的初始化 给数组中的各个元素赋初值,称为数组的初始化。除了前面介绍的数组元素的输入方法之外,VB还提供了Array函数,用于在程序中利用代码对数组进行初始化。Array函数的语法格式为: 数组变量名= Array(数组元素值) 数组元素值是准备赋给数组各元素的值列表,各值之间用逗号分开。如果不提供参数,则创建一个长度为0的数组。,没有作为数组声明的Variant变量也可以表示数组。除了长度固定的字符串以及用户定义类型之外,Variant变量可以表示任何类型的数组。例如下面的语句创建了一个包含字符串的数组: Dim student

      8、s As Variant students = Array(“王大名“, “王平“, “李小双“, “李丽“, “张大强“, “武刚“) 注意:实际上,Array函数返回一个包含数组的Variant变量。尽管一个包含数组的Variant变量和一个元素为Variant类型的数组在概念上有所不同,但对数组元素的访问方式是相同的。,6.2.4 数组的使用 【例6-7】斐波那契(Fibonacci)数列问题。 Fibonacci数列问题起源于一个古典的有关兔子繁殖的问题:假设在第1个月时有一对小兔子,第2个月时成为大兔子,第3个月时成为老兔子,并生出一对小兔子(一对老,一对小)。 第4个月时老兔子又生出一对小兔子,上个月的小兔子变成大兔子(一对老,一对大,一对小)。第5个月时上个月的大兔子成为老兔子,上个月的小兔子变成大兔子,两对老兔子生出两对小兔子(两对老,一对中,两对小) 这样,各月的兔子对数为:1,1,2,3,5,8, 这就是Fibonacci数列(如图6-1所示)。其中第n项的计算公式为:Fib(n) = Fib(n-1) + Fib(n-2),编写命令按钮Command1的Click

      9、事件代码: Private Sub Command1_Click() Dim f(15) As Integer List1.Clear f(1) = 1: f(2) = 1 p = Format(“Fib(“ & 1 & “):“, “!“) & Format(f(1), “#“) List1.AddItem p, 0 For i = 3 To 15 f(i) = f(i - 1) + f(i - 2) p = Format(“Fib(“ & i & “):“, “!“) & Format(f(i), “#“) List1.AddItem p, i - 1 Next End Sub,【例6-8】随机生成10个互不相同的数,然后将这些数按由小到大的顺序显示出来,如图6-3所示。 图6-3 排序 分析:这是一个“排序”问题,排序的方法很多,下面介绍的是“比较排序法”。,设有10个数存放在数组a中,分别表示为: a(1)、a(2)、a(3)、a(4)、a(5)、a(6)、a(7)、a(8)、a(9)、a(10) 先将a(1)与a(2)比较,若a(2) a(1),则将a(1)、a(2)中的值互换a(1)存放较小者。再将a(1)与a(3)、a(10)比较,并依次作出同样的处理10个数中的最小者放入a(1)中。 第2轮:将a(2)与a(3)、a(10)比较,并依次作出同样的处理 第1轮余下的9个数中的最小者放入a(2)中。 继续第3轮、第4轮、,直到第9轮后,余下的a(10)自然就是10个数中的最大者。 至此,10个数已从小到大顺序存放在a(1)a(10)中。,考虑到要在不同的过程中使用数组,所以首先在模块的通用段声明数组: Dim a(1 To 10) As Integer 随机整数的生成由窗体的Load事件代码完成: Private Sub Form_Load() Dim p As String Randomize p = “ For i = 1 To 10 Do x = Int(Rnd * 90) + 10 yes = 0 For j

      《Visual Basic程序设计教程 第2版 教学课件 ppt 作者 刘瑞新 电子教案 第6章 数组》由会员E****分享,可在线阅读,更多相关《Visual Basic程序设计教程 第2版 教学课件 ppt 作者 刘瑞新 电子教案 第6章 数组》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.