作者:wudi来源:k12zy.com时间:2005-06-23 查看
教学内容:Visual Basic的编程基础——数组
教学目的:了解什么是visual basic数组
掌握vb数组的定义方法
掌握数组在程序中的应用
教学重点难点:vb数组的定义及应用
教学方法:讲授、演示法
课时:6
教学过程:
第1、2课时
一、数组的概念
到目前为止,我们所使用的变量都是独立的变量,每一个变量与其它变量之间没有内在的联系,称为简单变量。然而在实际应用中,许多数据之间是有联系的,如一个班级有50名学生,这50名学生的成绩是一个整体,都是数值型的数据。如果要对这50名学生的成绩进行处理,没有必要定义也无法处理50个s1、s2、s3…这样的变量,我们可以把这些具有相同性质的数据组合在一起,作为一个整体参加运算,称为数组(array),用一个统一的名字如s来代表50个数据,s称为数组名,数组的命名规则与简单变量相同。数组中的每个数据称为数组元素,数组元素用数组名和它在数组中的序号来确定,这个序号就是数组元素下标,如用s(1)代表第1个数据,s(2)代表第2个数据,…因此,数组元素又称为下标变量。在程序中,常把数组和循环联合使用,顺序处理数组中的各个元素。
数组可以有一个、二个或多个下标,下标的个数称为数组的维数,具有一个下标的数组称为一维数组,具有二个下标的数组称为二维数组等,使用得较多的是一维数组和二维数组。
二、一维数组
在使用一个数组之前,应先用Dim语句定义数组,定义一维数组的形式如下:
Dim 数组名(最大下标) As 数据类型
其中:
下标必须为常数,不能是表达式或变量。
例如:
Dim f(20) As Integer
Dim s(50) As Single
Dim address(100) As String
第一个语句定义了一个一维整型数组,该数组的最大下标值为20,由于下标从0开始,因此数组中共有f(0)、f(1)、f(2)、…、f(20)计21个元素。第二个语句定义了一个一维实型数组,下标从0到50,数组中共有s(1)、s(2)、s(3)、…、s(50)计51个元素。第三个语句定义了一个具有101个元素的字符串数组。
【例】使用“递推”法打印费波那契数列前20项的值。
费波那契数列是这样一列数:它的前两个数是1,从第三个数开始,每一个数为其前面两个数之和。也就是说,此数列为:
1,1,2,3,5,8,13,21,34,55……
从上可以看出:fn=1 (n≤2)
fn=fn-2+fn-1(n>2)
因此,可以在程序中定义一个数组f,使用下标变量存放求出的新值f(i)=f(i-2)+f(i-1),程序代码如下:
′打印斐波那契数列
Private Sub Form_Click()
Dim f(20) As Integer
Dim i As Integer
f(1) = 1: f(2) = 1
For i = 3 To 10
f(i) = f(i - 2) + f(i - 1)
Next i
For i = 1 To 10
Print f(i);
Next i
End Sub
这种根据前面的数推出后面的结果,如果不知道前面两个数就推不出第3个数的算法称为“递推”。
【例】输入10个数给x数组,找出其中的最大数。
这是一个查找(Searching)问题,其基本思路是:将数组中的第一个数赋给一个变量max,然后将max与数组中其余各个元素比较,如果某一个元素比max大,将该元素赋给max,否则与下一个元素比较,最后max中就是该数组中的最大数。流程图如图,程序如下:
′找最大数
Private Sub Form_Click()
Dim x(10) As Single
Dim i As Integer
Dim max As Single
For i = 1 To 10 ' 输入10个数到x数组
x(i) = InputBox("输入一个元素", "输入")
Next i
max = x(1)
For i = 2 To 10
If x(i) > max Then max = x(i)
Next i
Print "最大数="; max
End Sub
【例】输入10个数,将它们按从小到大顺序排列输出。
这是一个排序(sorting)问题,排序的方法很多,我们只介绍最简单的简单选择排序(simple selection sort),基本思路如下:设有10个数,存放在数组a中。先将a(1)与a(2)比较,如果a(2)' 简单选择排列
Private Sub Form_Click()
Dim a(10) As Single
Dim i As Integer,j As Integer
Dim m As Single
For i = 1 To 10 ' 给数组a置初值
a(i) = InputBox("输入一个元素", "输入")
Next i
For i = 1 To 9
For j = i + 1 To 10
If a(j) < a(i) Then
m = a(j)
a(j) = a(i)
a(i) = m
End If
Next j
Next i
For i = 1 To 10 ' 输出排序后的数组
Print a(i)
Next i
End Sub
实践与探索
仔细分析上例程序不难看出,每进行一次比较,只要a(j)练 习
⑴ 请指出下列定义的数组中有多少个元素?
① Dim a(10) As Integer
② Dim x(3,4) As Single
③ Dim str(7) As String
⑵ 写出下列程序的执行结果:
① Private Sub Form_Click()
Dim a(6) As Integer
For i = 1 To 5
a(i) = i * i
Print a(i)
Next i
a(i) = i * i
Print a(i)
End Sub
② Private Sub Form_Click()
本文文档版下载:http://www.k12zy.com/20/07/200786.htm
上一篇:襄樊高三数学(文)-模拟考试题
下一篇:开展研究性学习的假想
| 文件名称 | vb数组6课时 |
| 资源类型 | 教案 |
| 资源学科 | 其它课程 |
| 资源层次 | 暂未分类 |
| 文件类型 | doc |
| 文档标题 | Visual Basic的基本知识 |
| 文档大小 | 88.5K |
| 文档作者 | wuyang |
| 文档字数 | 5603 |
| 文档页数 | 3 |
| 创建时间 | 2005-6-23 9:40:00 |
| 下载地址 | 点击下载文档文件 |
Copyright © 2006-2008 k12zy.com 鲁ICP备06022298号