友情提示:同学您好,此页面仅供预览,在此页面学习不会被统计哦! 请进入学习空间后选择课程学习。

实验目的

1. 掌握数组的声明和数组元素的引用方法,理解数组的基本概念。

2. 掌握静态一维数组在程序设计中的使用。

3. 掌握简单的排序算法。

4. 了解控件数组的概念及其创建方式。

5. 掌握定义Function过程和Sub过程的方法,并能够在程序中调用你定义的过程。

6. 了解VB程序的基本结构及代码组织方式。

实验内容

一、数组的使用

某数组有20个元素,分别为1220。编程实现将其前十个元素和后十个元素对调,即将第1个元素和第11个元素对调,第2个元素和第12个元素对调,依次类推。补充完善如下代码,并调试通过。

PrivateSub Form_Click()

Dima(1 To 20) As Integer

Dimi As Integer, t As Integer

Fori = 1 To 20

    a(i) = i

Nexti

Fori = 1 To 10

                    

                    

                                     

Nexti

Fori = 1 To 20

Printa(i)

Nexti

EndSub

运行该程序,然后回答以下两个问题。

1)在引用数组元素时,应注意一些什么样的问题?                          

2)能否像使用普通变量那样,不经声明就使用数组元素?                    

二、冒泡排序法

用随机函数产生201~100之间的整数,使其按升序排列。请使用冒泡排序法完成本题目的设计工作。补充完善如下代码,并调试通过。

冒泡排序法如下:对于大小为n的数组a,我们先依次比较两个相邻的元素:a1)和a2)、a2)和a3)、……an-1)和an),比较时将小的元素交换到前面,完成第一趟排序,这时an)中将存放数组元素中最大的值;然后使用相同的算法在a1)到an-1)之间依次进行比较交换,完成第二趟排序,这时an-1)中将存放数组元素中第二大的值;依次类推,经过n-1趟排序,数组元素将从小到大排列。

PrivateSub Form_Click()

    Dim N(1 To 20) As Integer

    Dim R As Integer

    Dim I As Integer

    Dim J As Integer

    Print "排序前的数据为:"

    For I = 1 To 20

        N(I) = Int(Rnd(10) * 100 + 1)

        Print N(I);

    Next I

    For I =             

       For J =                 

           If N(J) > N(J + 1) Then         a

                               

                               

                               

            End If

        Next J

    Next I

    Print

    Print "排序后的数据为:"

    For I = 1 To 20

        Print N(I);

    Next I

EndSub

运行该程序,然后回答以下几个问题。

1)冒泡排序法的核心思想是什么?                           

2)对含有20个元素的数组进行排序,内层循环体中的语句(a)执行多少次?     

3)对含有n个元素的数组进行排序,内层循环体中的语句(a)执行多少次?      

4)修改以上题目,将参与排序的数组元素个数由20改为10000,然后看一看本程序的运行需要多少时间,这说明了什么问题?                                

5)在第4个问题中,你在代码中修改了几处?为了方便程序代码的修改,对于那些在程序调试中要经常修改的常量数据,应怎样表示才好?                             

三、选择排序法

用随机函数产生201~100之间的整数,使其按升序排列。请使用选择排序法完成本题目的设计工作。补充完善如下代码,并调试通过。

选择排序法如下:对于大小为n的数组a,我们先从a1)、a2)、an)中选出最小的元素ak1),并将其与a1)互换位置;而后再从a2)、an1)中选出最小的元素ak2),并将其与a2)互换位置;……;如此循环n-1次,就完成了整个数组的排序。

PrivateSub Form_Click()

    Dim N(1 To 20) As Integer

    Dim R As Integer

    Dim I As Integer

    Dim J As Integer

    Print "排序前的数据为:"

    For I = 1 To 20

        N(I) = Int(Rnd(10) * 100 + 1)

        Print N(I);

    Next I

    For I =                 

       For J =                  

           If N(I) > N(J) Then              a

                                   

                                   

                                   

            End If

        Next J

    Next I

    Print

    Print "排序后的数据为:"

    For I = 1 To 20

        Print N(I);

    Next I

EndSub

运行该程序,然后回答以下几个问题。

1)选择排序法的核心思想是什么?                          

2)对含有20个元素的数组进行排序,内层循环体中的语句(a)执行多少次?     

3)对含有n个元素的数组进行排序,内层循环体中的语句(a)执行多少次?      

4)修改以上题目,将参与排序的数组元素个数由20改为10000,然后看一看本程序的运行需要多少时间,这说明了什么问题?                                

5)比较冒泡排序法和选择排序法的异同点,将你能考虑到的写在下面。