【VB教学】第十八节 数组与排序
一、教学目标:
1、 理解数组的产生、结构
2、 学会对数组进行输入、输出操作
3、 学会冒泡法排序
二、教学重点:
1、 数组的输入输出
2、 冒泡法
三、所需课时:2课时
四、教学过程:
(一)、复习
Private Sub Command1_Click()
x = Val(InputBox("输入一个正整数:", "数据输入框"))
Print "x="; x
End Sub
Private Sub Command2_Click()
Print "fb="; fb(x)
End Sub
Private Function fb(n As Long) As Long
If n = 1 Or n = 2 Then
fb = 1
Else
fb = fb(n - 1) + fb(n - 2)
End If
End Function
(二)、引入数组
1、现在有1000个电话号码,请你快速地查找一个电话号码(85632416)。
要想用计算机处理这些数据,实现自定查找,需要:
(1)、以合适的方式存储数据
(2)、对数据进行排序
(3)、对数据进行查找
(三)、数组概念
一组相同数据类型的变量的集合。集合中每个元素都是独立的变量,它们能通过数组序号(下标)被引用。a(i)
(四)、数组的定义
dim a(常量) as 数据类型
如:dim a(5) as integer
认识:
数组是一组地址连续的变量
数组a,里面有6个元素,a(0),a(1),a(2),a(3),a(4),a(5)
每个元素数据类型都是整型。
数组元素是单独的变量,可以进行赋值
a(1)=5
a(2)=a(5)
数组中的元素可以通过数组名和下标进行识别和操作
(五)、数组的基本操作
1、数组的初始化
Dim a(10) As Integer
For i = 1 To 10
a(i) = 0
Next i
2、数组的赋值操作
例如:生成10个1~100的随机数,赋值给数组
Dim a(10) As Integer
Dim i As Integer
Randomize
For i = 1 To 10
a(i) = Int(Rnd * 100 + 1)
Next i
3、数组的输入
For i = 1 To 5
a(i) = InputBox("a(" + Str(i) + ")")
Next
4、数组的输出操作
For i = 1 To 10
Print a(i);
Next i
5、数组元素交换数据
a(1)=a(2)(错)
t=a(1)
a(1)=a(2)
a(2)=t
(六)、理解排序
所谓排序,就是指将一个无序排列成一个有序的过程。
将元素按从小到大的顺序排列称为升序排列,反之称为降序排列。
(七)、冒泡法排序
冒泡排序的算法核心(升序)
相邻元素进行比较
a(i)>a(i+1)
如果a(i)>a(i+1)则交换数据
n个数据比较过以后,最大的数据移动到数组的最后,即a(n)最大。(一轮循环)
然后n-1个数据重复上面的操作
依次类推,一共做n-1轮排序操作,完成整个数组的排序。( n-1轮循环)
代码:
for i=1 to n-1
for j=1 to n-i
if 相邻元素比较 then
相邻元素数据交换
end if
next j
next i