VBNET程序设计教程第5章数组

上传人:lizhe****0001 文档编号:57695333 上传时间:2018-10-24 格式:PPT 页数:42 大小:1.23MB
返回 下载 相关 举报
VBNET程序设计教程第5章数组_第1页
第1页 / 共42页
VBNET程序设计教程第5章数组_第2页
第2页 / 共42页
VBNET程序设计教程第5章数组_第3页
第3页 / 共42页
VBNET程序设计教程第5章数组_第4页
第4页 / 共42页
VBNET程序设计教程第5章数组_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《VBNET程序设计教程第5章数组》由会员分享,可在线阅读,更多相关《VBNET程序设计教程第5章数组(42页珍藏版)》请在金锄头文库上搜索。

1、Visual Basic.NET 程序设计教程,2,第五章 数 组,5.1 数组的概念 5.2 数组声明及初始化 5.3 重定义数组大小 5.4 数组的基本操作和排序 5.5 列表框和组合框控件 5.6 结构类型及其数组 5.7 综合应用 5.8 自主学习,本章目录,3,5.1 数组的概念,5.1.1 问题的提出 例5.1 求100个学生的平均成绩,并统计高于平均分的人数。用简单变量和循环,求平均成绩程序段如下:aver = 0For i = 1 To 100mark = InputBox(“输入学生成绩“)aver = aver + markNext iaver = aver / 100 问

2、题 (1)mark只能放一个学生的成绩,无法统计高于平均分的人数。重复输入和不保证输入的一致性。 (2)若用简单变量保存100个学生的成绩,则需定义100个变量和使用100句输入语句。由此引入了数组。,本章目录,XX,mark,4,用数组例5.1.1 解决问题的程序如下:Dim mark(99) As Integer 声明数组markDim aver!, overn%, i%aver = 0 For i = 0 To 99 输入成绩,求分数和mark(i) = InputBox(“输入学生的成绩“)aver = aver + mark(i)Next iaver = aver / 100 求10

3、0人的平均分overn = 0For i = 0 To 99 统计高于平均分的人数If mark(i) aver Then overn = overn + 1Next iMsgBox (“平均分:“ & aver & “高于平均分人数:“ & overn),本章目录,5,数组: 不是一种复合数据类型,一般由相 同类型的变量的集合,系统为其分 配了连续的存储区域。 作用:用一个数组名代表逻辑上相关的一 批数据,用下标表示该数组中的各 个元素,和循环语句结合使用,使 得程序书写简洁。 使用:必须先声明后使用,本章目录,5.1.2 数组的概念,6,例 Dim mark(99) As Integer

4、声明: 一个一维整型数组mark ,共有100个元素; 下标: 范围为0 To 99; 各元素: mark(0),mark(1),mark(99);mark(i)表示由下标i的值决定是哪一个元素。 mark数组内存分配如下:,每个数组元素有一个唯一的顺序号,下标不能超出数组声明时的上、下界范围,否则会产生“索引超出了数组界限”。 数组元素的使用规则与同类型的简单变量相同。,本章目录,7,5.2数组声明及初始化,一维数组 Dim 数组名(下标上界) As 类型 下标上界为常数、已有值的表达式或变量。 下标下界为0。一维数组的大小为:下标上界+1。例 Dim a(10) As Integer,Di

5、m st(5) As String,本章目录,8,多维数组声明,Dim 数组名(下标1,下标2) As 类型 下标数决定了数组的维数,每一维的大小=上界+1;数组的大小为每一维大小的乘积。 例 Dim x(2,4) As Long 声明了一个长整型的二维数组 x;共占据35个长整型变量的空间,本章目录,9,数组的初始化,在定义数组的同时,为数组元素赋初值。形式: Dim 数组() As 类型 =常数1,常数n 一维 Dim 数组(,) As 类型 =行1常数,行m常数 例 Dim x(,) As Integer = 1,2,3,4, 5,6,7,8,数组x,本章目录,注意:不能声明数组的下标上

6、界,如下声明是错误的:Dim a(5) As Integer=1,3,5,7,9,11通过UBound函数来确定其下标上界。形式为:UBound(数组名,第n维),10,5.3重定义数组大小,本章目录,例 Sub Form1_Load( )Dim sArray(2,3 ) As SingleReDim sArray(4,8)End Sub,11,重定义数组大小注意:,Dim 是说明语句,可出现在程序的任何地方,而ReDim 是执行语句,只能出现在过程中 在过程中可多次使用ReDim语句来改变数组的大小,但不能改变维数和类型可在ReDim 后加Preserve参数用来保留数组中的数据,若使用Pr

7、eserve参数后,只能改变最后一维的大小。,本章目录,例5.2 对例5.1改进,根据指定人数输入学生的成绩,计算的平均分和高于平均分的人数放入数组中。,12,5.4数组的基本操作和排序,5.4.1 数组的输入 通过TextBox控件或InputBox函数逐一输入 例 Dim sb(3,4) AS Integer For i = 0 To 3For j = 0 To 4 sb(I,j) = InputBox(“输入“ & i &“,“ & j & “元素“)Next j Next i 缺点:每次只能输入一个元素的值,本章目录,13,5.4.2数组的输出,例5.3 形成55的方阵,分别输出方阵中

8、各元素和下三角元素 方阵规律:第一行的元素为04,以后每一行是前一行对应元素增加5 上三角规律: 每一行的起始列与行号相同,只要控制内循环的初值 控制输出的空格:Space(4-Len(Trim(sc(i,j),本章目录,代码说明,14,5.4.3求数组和、最值、位置,例5.4 求一维数组中元素之和、最小数组元素,并将最小值数组元素与数组中第一个元素交换,本章目录,求元素和 通过循环将每个元素进行累加 求数组中最小元素和下标 假设第一个元素为最小,然后将该数与其他元素逐一比较,若发现小于最小值,就用新值替换最小值,同时记录下标值。 与第一个元素交换位置,15,5.4.4数组排序,排序:将一组数

9、按递增或递减的次序排列。 常用排序算法:选择法、冒泡法、插入法、合并排序等。(1)选择法排序,本章目录,基本思想:每次在若干个无序数中找最小(大)数, 并放在相应的位置。,排序的步骤: (n个数的序列) 1) 从n个数中找出最小数的下标,出了内循环, 最小数与第1个数交换位置;通过这一轮排 序,第1个数已确定好。 2) 除已排序的数外,其余数再按步骤1)的方法 选出最小的数,与未排序数中的第1个数交换位置。 3) N个数进行n-1轮重复找最小数过程.,16,选择法排序,例5.5 对已知存放在数组中的6个数,用选择法按递增顺序排序。,选择法排序过程示意,本章目录,选择法演示,17,冒泡法排序,基

10、本思想是: 1)从第一个元素开始,对数组中两两相邻的元素比较,将值较小的元素放在前面,值较大的元素放在后面,一轮比较比较完毕,一个最大的数沉底成为数组中的最后一个元素,一些较小的数如同气泡一样上浮一个位置。 2)n个数,经过n-1轮比较后完成排序。,本章目录,18,冒泡法排序,例5.6 用冒泡排序法实现例5.5的问题。,本章目录,代码说明,冒泡法演示,19,5.4.5插入数据,插入数据基本思想是: 首先查找待插入数据在数组中的位置k; 然后从最后一个元素开始往前直到下标为k的 元素依次往后移动一个位置; 第k个元素的位置腾出,将数据插入。,例5.7在有序数组a中插入数值x。,本章目录,数据插入

11、演示,20,5.4.6删除数据,首先也是要找到欲删除的元素的位置k; 然后从k+1到n个位置开始向前移动; 最后将数组元素减1。,例5.8要将值为13的元素删除。,本章目录,数据删除演示,21,5.5 列表框和组合框,列表框和组合框实质是一维字符串数组 列表框 可显示多个选项供用户选择,不能直接修改其中的内容。 组合框 组合了文本框和列表框的特性而形成的一种控件。组合框有3种式样。,本章目录,22,1、列表框和组合框重要属性,(1) ItemsItems是一个集合Items中选项的序号是从0开始的。Items属性既可在设计状态设置也可以在程序中设置或引用。,本章目录,ListBox1.Item

12、s(3) =“关红梅”,(2) SelectedIndex 表示在程序运行时被选定的项的序号。只能在程序中设置或引用。,SelectedIndex=3,23,(3) Items.Count列表框或组合框中项目数量。最后一项的序号为Items.Count-1该属性只能在程序中设置或引用。 (4) Sorted程序运行期间列表框或组合框的选项是否按字母表顺序排序。,本章目录,24,(5) Text 最后一次被选定的选项的文本内容。该属性只能在程序中设置或引用。 注意:ListBox1.Items(ListBox1.SelectedIndex)等于ListBox1.Text。,ListBox1.Te

13、xt,ListBox1.Items(ListBox1.SelectedIndex),本章目录,25,列表框和组合框常用方法,(1) Items.Add对象.Items.Add(选项) 把一个选项加入列表框或组合框 例如:ListBox1.Items.Add(“周海涛“) (2) Items.Remove 对象. Items.Remove (选项) 从列表框或组合框中删除指定的项 例如:ListBox1.Items.Remove (“华成“),本章目录,26,(3)Items.RemoveAt 对象.RemoveAt(Index) 从列表框或组合框中删除指定的项。Index表示被删除项目在列表框

14、或组合框中的位置。例如:ListBox1.Items.RemoveAT(4),将删除选项“华成”,本章目录,(4) Items.Clear对象.Items.Clear 用于清除列表框或组合框的所有项目,27,主要事件,列表框:Click、DoubleClick 组合框:Click 例5.9 编写一个能对列表框进行项目添加、修改和删除的应用程序。,代码说明,本章目录,修改列表框,先将选项显示在文本框中; 更改文本框中内容后; 再更新列表框,28,4、应用,例5.10编写一个使用屏幕字体、字号的程序,例5.11使用列表框实现排序、查找、删除,例5.12使用组合框对省和直辖市名称管理,本章目录,29

15、,5.7 结构类型及其数组,数组存放性质相同的数据集合。若不同类型信息作为一个整体来描述,例如姓名、性别、出生年月等,通过“Structure”结构类型来解决。1.结构类型定义: Structure 结构类型名成员名声明End Structure,本章目录,30,例如,定义一个有关学生信息的结构类型: Structure studType studType为类型名Dim Name As String 姓名Dim Sex As Char 性别Dim Telephone As Long 电话Dim School As String 学校 End Structure,本章目录,注意:结构类型不能在过

16、程内部定义。用Dim语句声明的成员默认为Public,否则可 用Private声明。,31,2.结构变量的声明,定义了结构类型,就可在变量的声明时使用。Dim 变量名 As 结构类型名 例如,如下语句:Dim Student ,MyStud As StudType 声明Student、MyStud为两个同种类型的变量,本章目录,32,注意: 不要混淆StudType 和Student ,前者如同Integer等的类型名,后者根据该类型分配所需的内存空间,存储各成员数据。 结构类型变量和数组相同之处它们都是由若干个成员(元素)组成;不同之处,前者的成员可表不同性质、不同类型的数据,以各个不同的成员名表示;而数组一般存放的是同种性质、同种类型的数据,以下标表示不同的元素。,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号