实验报告-数组程序设计(4学时)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

Print "sum="; Sum

Print

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

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

相关文档
最新文档