实验五数组的应用(1)
一、实验目的:
1、掌握静态数组的定义和使用方法。
2、用数组解决实际问题。
二、实验准备:
1、计算机基本操作练习。
2、VisualBasic软件使用预习。
3、设计出下面问题的程序。
三、实验步骤及内容:
1、静态数组的声明,语法格式如下:
Dim 数组名[(各维下标)] [As 数据类型],…
例如:Dim num(6) As Integer
定义了一个包含()个元素的数组,从()到()。
静态数组的上下标必须是(),如果希望数组下标下界默认从1开始,则可在窗体的“通用|声明”部分使用:
________________________________语句来改变默认值。
2、Array函数的使用。
Dim a() As Variant
A = Array(154,135,121)
请说明以上语句的作用,()。
Lbound函数和Ubound函数可以分别返回数组的指示维数的最小、最大可用下标。
3、应用一维静态全局数组求10个100以内的最大值、最小值、平均值和方差。
程序运行界面如图所示。
4、利用数组排序。
按“生成随机数”按钮,在第一个文本框中生成10个10~99之间的随机数,然后按“按大小排序”按钮,将这10个数按从大到小的顺序排列放在第二个文本框中。
设计界面及运行结果如图1和图2 所示:
图1 设计界面
图2 运行界面
要求:
提示:
(1)设计窗体,添加控件:两个文本框(Text)、两
个按钮(Command)。
(2)如表1 所示设置窗体控件属性。
(4)自行编辑代码。
窗体通用声明代码如下:
Option Base 1
Dim a() As Integer
窗体控件代码自行编辑。
Private Sub Command1_Click()
ReDim a(10) As Integer
Text1.Text = ""
Randomize
For i = 1 To 10
a(i) = Int(Rnd * 90 + 10)
Text1.Text = Text1.Text & Trim(Str(a(i))) & Space(2) Next i
End Sub
※比较交换法:
Private Sub Command2_Click()
For i = LBound(a) To UBound(a)
For j = i + 1 To UBound(a)
If a(i) < a(j) Then
temp = a(i)
a(i) = a(j)
a(j) = temp
End If
Next j
Next i
Text2.Text = ""
For i = LBound(a) To UBound(a)
Text2.Text = Text2.Text & Trim(Str(a(i))) & Space(2) Next i
End Sub
※选择排序法:
Private Sub Command2_Click()
For i = LBound(a) To UBound(a) - 1
p = i
For j = i + 1 To UBound(a)
If a(j) > a(p) Then
p = j
End If
Next j
If p <> i Then
temp = a(i)
a(i) = a(p)
a(p) = temp
End If
Next i
Text2.Text = ""
For i = LBound(a) To UBound(a)
Text2.Text = Text2.Text & Trim(Str(a(i))) & Space(2) Next i
End Sub
※冒泡排序法:
Private Sub Command2_Click()
For i = LBound(a) To UBound(a) - 1
For j = i To LBound(a) Step -1
If a(j + 1) > a(j) Then
temp = a(j)
a(j) = a(j + 1)
a(j + 1) = temp
Else
Exit For
End If
Next j
Next i
Text2.Text = ""
For i = LBound(a) To UBound(a)
Text2.Text = Text2.Text & Trim(Str(a(i))) & Space(2) Next i
End Sub
5、实验的感受及体会。