可视化程序设计 实验5Word文档格式.docx
《可视化程序设计 实验5Word文档格式.docx》由会员分享,可在线阅读,更多相关《可视化程序设计 实验5Word文档格式.docx(10页珍藏版)》请在冰豆网上搜索。
一、实验目的
二、实验原理(实验相关基础知识、理论)
三、实验过程原始记录(程序界面、代码、设计调试过程描述等)
四、实验结果及总结
一、实验目的
1.掌握数组的基本概念。
2.掌握数组的声明、引用。
3.掌握静态数组和动态数组的区别。
4.掌握控件数组。
4.掌握如何利用数组解决与数组相关的常用算法(特别是排序算法)。
数组的使用:
数组:
在实际应用中,要处理同一类型的成批数据。
用一批具有相同名字,不同下标的下
标变量来表示同一属性一组数据,能更清楚地表示它们之间的关系。
1、数组的定义。
在VB中可以用(Dim、ReDim、Static、Public)四个语句定义数组。
(1)Dim用在窗体模块或标准模块中,也可用于过程中。
(2)ReDim用在过程中。
(3)Static用在过程中。
(4)Public用在标准模块中定义全局数组。
定义方法:
(以Dim为例)
第一种格式:
Dim数组名(第1维下标上界,第2维下标上界,……第n维下标上界)As类型名
第二种格式:
Dim数组名([下界to]上界[,[下界to]上界]……)As类型名
注:
一般数组下界只能是0或1,默认为0,如果切以1为下标,可用OptionBasen定义。
如果需在运行时定义数组大小,可以通过下面方法进行。
(1)用ReDime语句定义
n=InputBox(“输入n的值”)
ReDimA(n)
(2)先在窗体层、标准模块或过程中用Dim或Public声明一个没有下标的数组,(括号不
能省略)然后在过程中用ReDim语句定义带下标的数组。
DimT()
S=InputBox(“请输入S”)
ReDimT(S)
Lbound(数组[,维])返回“数组”某一“维”的下界值。
Ubound(数组[,维])返回“数组”某一“维”的上界值。
实验内容
1编程完成教材【习题8.12】P198。
(在窗体上使用Print方法输出)
2随机产生10个0~100之间(包括0和100)且互不相同的整数,存放在一个数组中,然后
求各元素之和、平均值,统计大于平均值的元素并把它们打印出来,如图所示。
3编写一个程序,随机产生20个10~100间的随机数并构成4×
5矩阵,求矩阵中的最大元
素,以及该元素所在的行号和列号,如图所示。
三、实验过程原始记录(程序界面、代码、设计调试过程描述等)
实验程序如下:
1.OptionBase1
PrivateSubForm_Click()实验结果截图:
Constn=10
Dima(n,n)AsInteger
Fori=1Ton
a(i,i)=1
a(i,1)=1
Nexti
Fori=3Ton
Forj=2Toi-1
a(i,j)=a(i-1,j-1)+a(i-1,j)
Nextj
Forj=1Toi
Printa(i,j);
Print实验结果截图:
Nexti
EndSub
2.OptionBase1
Dima(10)AsInteger
PrivateSubCommand1_Click()
Dimi%,sum%
sum=0
Fori=1To10
sum=sum+a(i)
Nexti
Text1=Str(sum)
EndSub
PrivateSubCommand2_Click()
Text2=Val(Text1)/10
PrivateSubCommand3_Click()
Dimi%
Fori=1To10
Ifa(i)>
Val(Text2)Then
Picture2.Printa(i);
EndIf
PrivateSubForm_Click()
Randomize
Picture1.Cls
Picture2.Cls
Text1="
"
Text2="
a(i)=Int(Rnd*101)
Picture1.Printa(i);
3.OptionBase1
Dima(4,5)AsInteger,i%,j%,max%,max_i%,max_j%
Picture1.Cls
Randomize
Fori=1To4
Forj=1To5
a(i,j)=Int(Rnd*101)
Picture1.PrintTab((j-1)*6);
a(i,j);
Nextj实验结果截图:
Picture1.Print
max=a(1,1)
max_i=1
max_j=1
Ifmax<
a(i,j)Then
max=a(i,j)
max_i=i
max_j=j
EndIf
Text1=max
Text2=max_i
Text3=max_j
练习题
2-1PrivateSubCommand1_Click()2-2PrivateSubForm_Click()
DimxAsSingle,yAsSingleFori=9To0Step-1
x=Val(Text1)PrintSpace(9-i);
Ifx<
3ThenForj=1Toi*2+1
y=2*xPrintTrim(i);
ElseIfx<
5ThenNextj
y=2*0.9*xPrint
EndSubNexti
10ThenEndSub
y=2*0.8*x
Else
y=2*0.75*x
Text2=Str(y)
2-3OptionBase1
Dima%(10)
PrivateSubCommand1_Click()
IfVal(Text1)<
1OrVal(Text1)>
10Then
MsgBox"
下标超出范围!
Fori=Val(Text1)+1To10
a(i-1)=a(i)
Fori=1To9
Picture2.Cls
Text1="
a(i)=Int(Rnd*900+100)
2-1实验结果截图:
2-2实验结果截图:
2-3实验结果截图:
四、实验结果及总结
实验结果如上所示。
上节课课我们学习了数组的声明、引用以及静态数组和动态数组的区别等相关知识,
通过这次实验,我学习到了如何利用数组解决与数组相关的常用算法,不过我感到这
部分还是比较难学的,需要更多精力去练习一些与数组相关的常用算法,学习一些
常用的技巧。