VB实验任务11答案

VB实验任务11答案
VB实验任务11答案

实验任务11

课程名称:程序设计基础VB

实验名称——实验十一数组(1)

一、实验目的:

1.掌握数组的声明和数组元素的引用

2.掌握定长数组使用

3.掌握一维数组的基本操作算法

二、实验内容(包括实验要求(题目)、实验步骤、程序清单、运行情况):

注意:其中每个同学

....实验1自行写结果验证,实验2-实验6发老师邮箱,尽量课上发。

实验1人工写出如下程序的运行结果,并利用单步调试工具验证执行流程和运行结果,进一步深入弄清和理解数组的访问。

(1)在窗体上画一个命令按钮(其Name属性为Command1),然后编写如下代码:

Private Sub Command1_Click()

Dim a(5) As Integer, i As Integer, t As Integer

For i = 0 To 4

a(i) = i + 1

t = i + 1

If t = 3 Then

Print a(i);

a(t - 1) = a(i - 2)

Else

a(t) = a(i)

End If

If i = 3 Then a(i + 1) = a(t - 4) : Exit For

a(4) = 1

Print a(i);

Next I

End Sub

运行程序,单击命令按钮,输出结果是。

(2)下面的事件过程执行结束后,K的值是,A(2)的值是,A(7)的值是,程序中第二个循环被执行了次,程序中第三个循环被执行了次。

Option Explicit

Option Base 1 ‘将数组的下界的默认值设为1

Private Sub Command1_Click()

Dim A(10) As Integer, i As Integer, K As Integer

For i = 1 To 10

A(i) = 1

Next i

K = 1

For K = 1 To K Step K

A(K) = 0

K = K + 2

Next K

For K = K To 10 Step -1

A(K) = K

K = K + 2

Next K

End Sub

(3)执行下面程序,单击命令按钮Command1后,数组元素A(1, 2)的值是,数组元素A(2, 2)的值是,数组元素A(3, 3)的值是。

Private Sub Command1_Click()

Dim A(3, 3) As Integer, i As Integer, j As Integer, k As Integer

Dim B

i = 3: j = 1

A(i, j) = 1

For k = 2 To 9

If i + 1 > 3 Or j + 1 > 3 Then

If j = 1 Then

i = i - 1

ElseIf A(i - 1, j - 1) = 0 Then

i = i - 1: j = j - 1

ElseIf j = 3 Then

i = i - 1

Else

j = j + 1

End If

ElseIf j = 1 Or i = 1 Then

If A(i + 1, j + 1) = 0 Then

i = i + 1: j = j + 1

Else

j = j + 1

End If

Else

If A(i - 1, j - 1) = 0 Then

i = i - 1: j = j - 1

End If

End If

A(i, j) = k

Next k

For Each B In A

Print B

Next

End Sub

实验2实验7-1随机生成12个二位正整数,分别赋值给一个3×4的数组,找出每一行中的最大元素,运行后界面如图7-6所示。(参看例7-10)

部分程序代码如下请填空。

Option Explicit

Option Base 1 ‘将数组的下界的默认值设为1

Dim a(3, 4) As Integer

Private Sub Form_Click()

Dim i As Integer, j As Integer, mmax As Integer

Randomize

Print "数组:"

For i = 1 To 3

For j = 1 To 4

a(i, j) = Int(Rnd*(99-10+1)+10)

Print a(I,j);

Next j

Print

Next i

Print "其中:"

For i = 1 To 3

mmax = a(I,1)

For j = 2 To 4

If mmax < a(i, j) Then mmax=a(I,j)

Next j

Print "第" + Str(i) + "行中的最大元素为:"; mmax

Next i

End Sub

实验3利用数组存放Fibonacci数列的前20项,并显示输出(每4个一行)。说明:Fibonacci数列的前两项为1,从第三项开始,每项数据都等于前两项数据之和,即数列为:1,1,2,3,5,8,13,……

?图实验3运行效果

分析:像Fibonacci数列一般采用一维数组存放,根据题意可知数列中的每项数据是通过前两项数据之和推导而出,因此可依据上述规律给数组赋值,完成数组的生成。注意:输出采用标准格式,每4个一行。

实验步骤:

(1)填写程序代码,完成下列代码:

Option Explicit

Private Sub Form_Click()

Dim i As Integer, Fibo(1 to 20) As Integer

Fibo(1) = 1

Fibo(2)=1

For i = 3 To 20

Fibo(i)= Fibo(i-1)+Fibo(i-2)

Next i

Print "Fibonacci数列的前20项:"

For i = 1 To 20

Print Fibo(i),

If I mod 4=0 then print

Next i

Print

End Sub

(2)调试程序,并保存文件。

实验4 如图所示由用户输入生成10个自然数,分别显示其中的偶数、奇数以及它们的和。

?图按下“单击输入一组自然数”按钮弹出输入对话框

?图实验9-3 运行结果

分析:采用一维数组存放用户输入的10个数据,并结合累加求和算法完成。

注意:①数组声明的位置;②文本框中单行和多行显示数据的方法

实验步骤:

(1)界面设计

在窗体上按照图所示界面排放好各个控件。

(2)属性设置

请根据程序代码,设置好各个控件对象的名称属性;请根据图设置多行文本框的MultiLine和ScrollBars属性。(3)填写程序代码,完成下列代码:

Option Explicit

Const n = 10

Dim a(1 to n) As integer‘定义数组

Private Sub CmdCreate_Click()

Dim i As Integer

Text1 = ""

For i = 1 To n

a(i) = val(Inputbox(“请输入第”, & I & “个数”,”project1”))

Text1.Text = Text1.text & a(i) & ””

Next i

End Sub

Private Sub CmdDisp_Click()

Dim I As Integer, odd As Integer, even As Integer

Txteven = "" : Txtodd = ""

even = 0 : odd = 0

For i=1 to n

If a(i) mod 2=0 Then

Txteven= Txteven & a(i) & vbcrlf

even = even + a(i)

Else

Txtodd= Txtddd & a(i) & vbcrlf

Odd=odd+a(i)

End If

Next i

Txteven = Txteven & "偶数和为" & even

Txtodd = Txtodd & "奇数和为" & odd

End Sub

(4)调试程序,并保存文件。

课外实验

实验5教材p177练习7

Option Base 1

Dim a(5, 5) As Integer, UpSum As Integer, DownSum As Integer

Private Sub CmdCal_Click()

TxtUpDown = Abs(UpSum - DownSum)

End Sub

Private Sub CmdCreate_Click()

Dim i As Integer, j As Integer

Picture1.Cls

For i = 1 To 5

For j = 1 To 5

a(i, j) = Int(Rnd * 9 + 1)

Picture1.Print a(i, j);

Next j

Picture1.Print

Next i

End Sub

Private Sub CmdDownSum_Click()

Dim i As Integer, j As Integer

DownSum = 0

For i = 1 To 5

For j = 1 To i - 1

DownSum = DownSum + a(i, j)

Next j

Next i

TxtDownSum = DownSum

End Sub

Private Sub CmdUpSum_Click()

Dim i As Integer, j As Integer

UpSum = 0

For i = 1 To 5

For j = i + 1 To 5

UpSum = UpSum + a(i, j)

Next j

Next i

TxtUpSum = UpSum

End Sub

实验6教材p177练习8

Option Base 1

Private Sub Form_Click()

Dim a() As Integer, i As Integer, j As Integer

Dim col() As Integer, max As Integer, n As Integer

n = InputBox("请输入方阵的大小:")

ReDim a(n, n), col(n)

Print n & "阶方阵:"

For i = 1 To n

For j = 1 To n

a(i, j) = Int(Rnd * 101) - 50 '产生[-50,50]闭区间内的随机整数

Print a(i, j),

Next j

Print

Next i

For j = 1 To n

col(j) = 0 '累加器清零

For i = 1 To n

col(j) = col(j) + Abs(a(i, j)) '第j列元素绝对值求和

Next i

Next j

max = col(1): maxcol = 1 '求出各列和的最大值和所在列

For j = 2 To n

If col(j) > max Then

max = col(j): maxcol = j

End If

Next j

Print "方阵的范数(各列元素的绝对值之和中的最大值)为" & max & ",第("; maxcol & ")列"

End Sub

三、实验体会(包括对于本次实验的小结,实验过程中碰到的问题等)

相关主题
相关文档
最新文档