VisualBasic 程序设计教程 教学课件 ppt 作者 刘莲英 第7章 数组

上传人:E**** 文档编号:89181417 上传时间:2019-05-20 格式:PPT 页数:64 大小:392KB
返回 下载 相关 举报
VisualBasic 程序设计教程 教学课件 ppt 作者 刘莲英 第7章  数组_第1页
第1页 / 共64页
VisualBasic 程序设计教程 教学课件 ppt 作者 刘莲英 第7章  数组_第2页
第2页 / 共64页
VisualBasic 程序设计教程 教学课件 ppt 作者 刘莲英 第7章  数组_第3页
第3页 / 共64页
VisualBasic 程序设计教程 教学课件 ppt 作者 刘莲英 第7章  数组_第4页
第4页 / 共64页
VisualBasic 程序设计教程 教学课件 ppt 作者 刘莲英 第7章  数组_第5页
第5页 / 共64页
点击查看更多>>
资源描述

《VisualBasic 程序设计教程 教学课件 ppt 作者 刘莲英 第7章 数组》由会员分享,可在线阅读,更多相关《VisualBasic 程序设计教程 教学课件 ppt 作者 刘莲英 第7章 数组(64页珍藏版)》请在金锄头文库上搜索。

1、1/64,第7章 数组,本章内容:,7.1 引言 7.2 一维数组 7.3 二维数组 7.4 动态数组 7.5 控件数组,2/64,7.1 引言,1为什么使用数组 【例7-1】设计一个程序,将n个人某门课程的成绩输入计算机,求平均成绩和高于平均成绩的人数。 如果不使用数组,以5个人的成绩为例,使用A1、A2、A3、A4、A5来存放5个成绩,程序代码如下: Private Sub Form_Click() Dim N%, S!, Ave!, A1!, A2!, A3!, A4!, A5!,3/64,1为什么使用数组(续),A1 = Val(InputBox(“Enter A1 “) . 此处省略

2、了部分语句 A5 = Val(InputBox(“Enter A5 “) S = A1 + A2 + A3 + A4 + A5 Ave = S / 5 If A1 Ave Then N = N + 1 此处省略了部分语句 If A5 Ave Then N = N + 1 Print Ave, N End Sub,程序不能这样编!,如果要统计10个人的成绩呢?,4/64,1为什么使用数组(续),如果使用数组来存储10个人的数据,此题就可以使用循环结构实现,程序代码如下: Private Sub Form_Click() Dim N%, i%, S!, Ave!, A(1 To 10) As Si

3、ngle A是数组名 For i = 1 To 10 A(i) = Val(InputBox(“Enter A“ S = S + A(i) Next i,5/64,1为什么使用数组(续),Print Ave = S / 10 For i = 1 To 10 If A(i) Ave Then N = N + 1 Next i Print “平均成绩为:“; Ave Print “高于平均成绩的人数:“; N End Sub,6/64,2数组与数组元素的概念,数组:是用一个名字表示的一组(一般是相同类型的)数据的集合,这个名字就称为数组名。 例如:Dim A(1 To 10) As Single

4、A是数组名。 数组元素:数组中的数据分别存储在用下标区分的变量中,这些变量称为下标变量或数组元素。 例如:A(1)、A(2)A(i) 通常一个数组中的所有元素具有相同的数据类型,只有当数组的数据类型为Variant类型时,各个元素的数据类型可以不同。,7/64,定义一维数组的一般形式,Dim 数组名(下界to上界)As 数据类型 或: Dim 数组名数据类型符(下界 to 上界) 例:Dim a(1 to 10) As Integer 声明了a数组有10个元素,1是下标的下界,10是下标的上界,元数的数据类型,与上面定义等价形式: Dim a%(1 to 10),7.2 一维数组,1. 一维数

5、组的定义,8/64, 数组名:数组名的命名规则与变量的命名规则相同。 下界和上界:下界和上界是数组元素的最小和最大下标。若省略下界,下界为0;若希望默认下界为1,可在模块的通用部分使用Option Base语句来设置。Option Base语句格式: Option Base 0|1 后面的参数只能取0或1,例如: Option Base 1 默认下界为 1,说明:,9/64,说明:, 下界和上界必须是常量,可以是直接常量、符号常量,一般是整型常量。若是实数,系统自动四舍五入取整。 As 数据类型:说明数组中每一个元素的类型。如果省略该项或数据类型符,则数组的类型为变体类型(variant类型)

6、,此时,数组中的元素可以为不同类型的数据。 数组必须先定义后使用。,10/64,1. 一维数组的定义(续),Dim N As Integer Dim A(N) As Integer N是变量 Dim AN As Integer 不能用 ,以下数组定义是正确的:,Const num=50 Dim y(num) As Integer 下界默认为0 Dim x(5 To 10) As single 或:Dim x!(5 To 10),以下数组定义是错误的:,11/64,使用形式: 数组名(下标) 其中:下标可以是整型变量、常量或表达式。 例如: 设有下面的数组定义: Dim A(10) As Int

7、eger ,B(10) As Integer 则下面的语句都是正确的: A(1)=A(2)+B(1)+5 取数组元素运算 A(i)=B(i) 下标使用变量 B(i+1)=A(i+2) 下标使用表达式,2.一维数组元素的引用,注意:引用数组元素时下标不要越界。 例如,A(11)越界。,12/64,利用循环语句对数组元素逐一赋值 例如: Private Sub Form_Click() Dim b%(5) For i = 0 To 5 b(i) = Val(InputBox(“请输入一个成绩:“) Next i End Sub,3. 一维数组元素的输入,13/64,利用Array函数输入,Arra

8、y函数可方便地对数组整体赋值,但它只能给声明为Variant类型的变量或Variant类型的动态数组赋值,赋值后的数组大小由赋值的个数决定。 所谓动态数组就是在定义数组时不指定数组的上、下界,数组的长度不定。有关动态数组的概念和应用在7.4节介绍。 例如,要将1、3、5、7、9 赋值给数组a,将2、4、6、8、10赋值给数组b,然后输出a、b数组中的数据。程序的运行结果如图7-2所示。,14/64,Private Sub Form_Click() Dim a(), b, i% a = Array(1, 3, 5, 7, 9) Print “a数组中的数据如下:“ For i = 0 To 4

9、Print a(i); Next i Print b = Array(2, 4, 6, 8, 10) Print “b数组中的数据如下:“ For i = 0 To 4 Print b(i); Next i End Sub,15/64,利用Split函数输入,使用Split函数可从一个字符串中,以某个指定字符为分隔符,分离若干个子字符串,建立一个下标从零开始的一维字符数组。 Split函数使用格式: Split(字符串表达式 ,分隔符),16/64,说明:, 字符串表达式:如果字符串表达式是一个长度为零的字符串(“),则Split函数返回一个空数组,即没有元素和数据的数组。 分隔符:可选。用于

10、分隔子字符串的字符。如果省略,则使用空格字符作为分隔符。如果分隔符是一个长度为零的字符串,则返回的数组仅包含一个元素,即完整的字符串表达式。 使用Split函数建立的动态数组的下标一定是从0开始,与Option Base语句无关。,17/64,利用Split函数输入(续),例如,在文本框中输入6个成绩,用逗号分隔,然后将6个成绩存入一维数组A中。 程序代码如下: Private Sub Form_Click() Dim i%, A(5) As Single, s() As String s是动态数组 s = Split(Text1.Text, “,“) 将文本框中的字符串以逗号为分隔符,将分离

11、出的数字字符串存入数组s中 For i = 0 To 5 A(i) = Val(s(i) Print A(i); Next i End Sub,18/64,4 . 一维数组元素的输出,利用循环语句将数组元素在窗体或图片框中使用Print方法输出,也可以在文本框中输出。 例如: Dim a%(10) For i = 0 To 5 Print a(i); Next i ,例如:Dim a%(10) For i = 0 To 5 Text1.text= text1.text & a(i) & “ “ Next i,19/64,5. 一维数组应用举例,【例7-2】设计一个程序,将n个人某门课程的成绩输

12、入计算机后输出最高分和最低分。 思路:首先将n个人的成绩输入到一个一维数组中。求若干个数的最大值或最小值常采用打擂台的方法: 首先指定某数为最大值或最小值的擂主: 如:max=a(1), min=a(1) 将其他各数依次与擂主进行比较(循环嵌套分支),当所有的数都比较完之后,输出max和min的值。,20/64,操作步骤如下:, 在窗体上添加2个命令按钮、4个标签和1个文本框。 设置各对象的主要属性(Tex1.Locked=True,其他属性略)。, 打开代码窗口,编制命令按钮的单击事件过程。 程序代码如下: Private Sub Command1_Click() Const N = 6 D

13、im i%, max%, min%, s() As String, A(N-1) As Single,21/64,s = Split(Text1.Text, “,“) For i = 0 To N - 1 A(i) = Val(s(i) Next i max = A(0): min = A(0) For i = 1 To N - 1 If A(i) max Then max = A(i) ElseIf A(i) min Then min = A(i) End If Next i Label1.Caption = max Label2.Caption = min End Sub,22/64,5.

14、 一维数组应用举例(续),【例7-3】将5个数存放到一维数组中,再将这5个数按逆序存放在同一数组中并输出。,交换前,交换后,a(i)与a(n+1-i)交换,23/64,程序代码如下:,Private Sub Command1_Click() Const N = 5 Dim i%, t%, a(1 To N) As Integer For i = 1 To N a(i) = Val(InputBox(“输入一个数:“) Text1.Text = Text1.Text & “ “ & a(i) Next i For i = 1 To N 2 t = a(i) a(i) = a(N + 1 - i)

15、 a(N + 1 - i) = t Next i 输出数据,24/64,方法二: i = 1: j = N While i j t = a(i): a(i) = a(j): a(j) = t i = i + 1: j = j - 1 Wend 输出数据 End Sub,25/64,5. 一维数组应用举例(续),【例7-4】用冒泡法(也称起泡法)对输入的一组成绩按从小到大的顺序排序并输出。 冒泡法是对数据进行排序的基本算法。,26/64,冒泡法排序算法,27/64,程序代码如下:,Option Base 1 Private Sub Form_Click() Dim i%, j%, t%, p%

16、Const N = 6 Dim a(N) As Integer Form1.Cls Print “排序前输入的成绩:“ For i = 1 To N a(i) = Val(InputBox(“输入成绩“) Print a(i); Next i Print,28/64, 冒泡法排序 For i = 1 To N - 1 For j = 1 To N - i If a(j) a(j + 1) Then t = a(j): a(j) = a(j + 1): a(j + 1) = t End If Next j Next i Print “冒泡法排序后的成绩:“ For i = 1 To N Print a(i);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

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