【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、数组的赋值操作

例如:生成101~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

 

posted @ 2008-12-11 12:45  jesonpeng  阅读(846)  评论(0编辑  收藏  举报