1、可视化程序设计 实验5广州大学学生实验报告开课学院及实验室:实验中心 计机楼307A 2013 年 11 月14日 学 院机电年级、专业、班姓名学号实验课程名称可视化程序设计成绩实验项目名称实验5数组指导教师一、实验目的二、实验原理(实验相关基础知识、理论)三、实验过程原始记录(程序界面、代码、设计调试过程描述等)四、实验结果及总结 一、实验目的 1掌握数组的基本概念。2掌握数组的声明、引用。3掌握静态数组和动态数组的区别。4掌握控件数组。4掌握如何利用数组解决与数组相关的常用算法(特别是排序算法)。二、实验原理(实验相关基础知识、理论) 数组的使用: 数组:在实际应用中,要处理同一类型的成批
2、数据。用一批具有相同名字,不同下标的下 标变 量来表示 同一属 性一组数据,能更清楚地表示它们之间的关系。 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
3、为下标,可用Option Base n定义。如果需在运行时定义数组大小,可以通过下面方法进行。 (1)用ReDime语句定义 n=InputBox(“输入n的值”) ReDim A(n) (2)先在窗体层、标准模块或过程中用Dim或Public声明一个没有下标的数组,(括号不 能省略)然后在过程中用ReDim语句定义带下标的数组。 Dim T() S=InputBox(“请输入S”) ReDim T(S)Lbound(数组,维)返回“数组”某一“维”的下界值。Ubound(数组,维)返回“数组”某一“维”的上界值。 实验内容1编程完成教材 【习题8.12】 P198。(在窗体上使用Print方
4、法输出)2 随机产生10个0100之间(包括0和100)且互不相同的整数,存放在一个数组中,然后求各元素之和、平均值,统计大于平均值的元素并把它们打印出来,如图所示。3编写一个程序,随机产生20个10100间的随机数并构成45矩阵,求矩阵中的最大元素,以及该元素所在的行号和列号,如图所示。 三、实验过程原始记录(程序界面、代码、设计调试过程描述等) 实验程序如下: 1.Option Base 1 Private Sub Form_Click() 实验结果截图: Const n = 10 Dim a(n, n) As Integer For i = 1 To n a(i, i) = 1 a(i,
5、 1) = 1 Next i For i = 3 To n For j = 2 To i - 1 a(i, j) = a(i - 1, j - 1) + a(i - 1, j) Next j Next i For i = 1 To n For j = 1 To i Print a(i, j); Next j Print 实验结果截图: Next i End Sub 2.Option Base 1 Dim a(10) As Integer Private Sub Command1_Click() Dim i%, sum% sum = 0 For i = 1 To 10sum = sum + a(
6、i)Next iText1 = Str(sum)End SubPrivate Sub Command2_Click()Text2 = Val(Text1) / 10End SubPrivate Sub Command3_Click()Dim i%For i = 1 To 10If a(i) Val(Text2) ThenPicture2.Print a(i);End IfNext iEnd SubPrivate Sub Form_Click()Dim i%RandomizePicture1.ClsPicture2.ClsText1 = Text2 = For i = 1 To 10a(i) =
7、 Int(Rnd * 101)Picture1.Print a(i);Next iEnd Sub 3.Option Base 1Private Sub Form_Click() Dim a(4, 5) As Integer, i%, j%, max%, max_i%, max_j% Picture1.Cls Randomize For i = 1 To 4 For j = 1 To 5 a(i, j) = Int(Rnd * 101) Picture1.Print Tab(j - 1) * 6); a(i, j); Next j 实验结果截图: Picture1.Print Next i ma
8、x = a(1, 1) max_i = 1 max_j = 1 For i = 1 To 4 For j = 1 To 5 If max a(i, j) Then max = a(i, j) max_i = i max_j = j End If Next j Next i Text1 = max Text2 = max_i Text3 = max_jEnd Sub 练习题 2-1 Private Sub Command1_Click() 2-2 Private Sub Form_Click() Dim x As Single, y As Single For i = 9 To 0 Step -
9、1x = Val(Text1) Print Space(9 - i);If x 3 Then For j = 1 To i * 2 + 1 y = 2 * x Print Trim(i); ElseIf x 5 Then Next jy = 2 * 0.9 * x PrintEnd Sub Next i ElseIf x 10 Then End Suby = 2 * 0.8 * xElsey = 2 * 0.75 * xEnd IfText2 = Str(y)End Sub2-3 Option Base 1Dim a%(10)Private Sub Command1_Click()Dim i%
10、If Val(Text1) 10 Then MsgBox 下标超出范围!Text1 = Else For i = Val(Text1) + 1 To 10a(i - 1) = a(i)Next iFor i = 1 To 9Picture2.Print a(i);Next i End IfEnd SubPrivate Sub Form_Click()Dim i%Picture1.Cls Picture2.Cls Text1 = For i = 1 To 10a(i) = Int(Rnd * 900 + 100)Picture1.Print a(i);Next iEnd Sub2-1 实验结果截图: 2-2 实验结果截图: 2-3 实验结果截图: 四、实验结果及总结 实验结果如上所示 。 上节课课我们学习了数组的声明、引用以及静态数组和动态数组的区别等相关知识,通过这次实验,我学习到了如何利用数组解决与数组相关的常用算法,不过我感到这部分还是比较难学的,需要更多精力去练习一些与数组相关的常用算法,学习一些常用的技巧。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1