实验报告-数组程序设计(4学时)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
西南石油大学实验报告
一、实验目的:
(1)掌握静态数组的定义
(2)掌握数组的初始化和数组的赋值
(3)掌握控件数组的使用
(4)掌握使用数组的常用算法
二、实验内容:
【实验1】已知10个数为53、67、42、89、65、8、98、67、54、36,编写程序,使用array函数存储这10个数并求和。
(1)编写代码
Private Sub Form_Click()
Dim a As Variant
a = Array(53, 67, 42, 89, 65, 8, 98, 67, 54, 36)
Sum = 0
For i = 0 To UBound(a)
Sum = Sum + a(i)
Next i
For i = 0 To UBound(a)
Print a(i); "";
Next i
Print "sum="; Sum
End Sub
(2)运行效果
【实验2】编写程序,定义二维静态数组,分别计算下列矩阵两条对角线元素之和。
156728147564285633⎡⎤⎢⎥⎢⎥⎢⎥⎣⎦
(1)编写代码
Option Base 1
Private Sub Form_click()
Dim a(3, 3) As Integer, sum1 As Integer, sum2 As Integer For i = 1 To 3 For j = 1 To 3
a(i, j) = Val(InputBox("输入数据:")) Next j Next i
Print "数组各元素为:" For i = 1 To 3 For j = 1 To 3
Print Format(a(i, j), "@@@@@"); Next j Print Next i
sum1 = 0: sum2 = 0 For i = 1 To 3
sum1 = sum1 + a(i, i) sum2 = sum2 + a(i, 4 - i) Next i
Print "主对角线之和为:
"; sum1
Print "次对角线之和为:"; sum2
End Sub
(2)运行效果
【实验3】编写程序,随机产生10个[100,999]范围内的随机整数存入数组,并将前5个元素与后5个元素对应位置交换(即倒序排列)。
(1)编写代码
Private Sub Form_Click()
Dim a(1 To 10) As Integer
For i = 1 To UBound(a)
Randomize
a(i) = Int((999 - 100 + 1) * Rnd + 100)
Next i
Print "数组各元素为:"
For i = 1 To 10
Print Format(a(i), "@@@@@");
Next i
Print "交换后的数组各元素为:"
For i = 1 To 5
t = a(i)
a(i) = a(10 - i + 1)
a(10 - i + 1) = t
Next i
For i = 1 To 10
Print Format(a(i), "@@@@@");
Next i
End Sub
(2)运行效果
【实验4】使用动态数组统计n个学生的成绩分布情况。
要求:
1、分别统计0-59、60-69、70-79、80-89、90-99和100各分数段的人数。
2、在窗体上输出统计结果。
3、对输入的成绩的有效性进行检测,如果数据出错必须重新输入数据。
4、学生人数不少于5人。
(1)编写代码
Dim a() As Integer
Private Sub Form_Click()
Dim s(5 To 10) As Integer
n = Val(InputBox("输入数据n:"))
ReDim a(n)
For i = 5 To 10
s(i) = 0
Next i
For i = 1 To n
begin: a(i) = Val(InputBox("输入第" & i & "个学生的成绩"))
If a(i) < 0 Or a(i) > 100 Then MsgBox ("输入数据错误"): GoTo begin If a(i) >= 60 Then
k = a(i) \ 10
s(k) = s(k) + 1
Else
s(5) = s(5) + 1
End If
Next i
Print "学生人数为:"; n; "人"
Print "成绩分段情况如下"
Print " 0~59"; s(5)
Print "60~69"; s(6)
Print "70~79"; s(7)
Print "80~89"; s(8)
Print "90~99"; s(9)
Print " 100"; s(10)
End Sub(2)运行效果
【实验5】利用控件数组完成三种除法运算。要求检测数据有效性。(1)设计界面
(2)编写代码
Private Sub Option1_Click(Index As Integer)
Dim x As Integer, y As Integer
x = V al(Text1.Text)
y = V al(Text2.Text)
Select Case Index
Case 0