- 1、本文档共42页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[管理学]VB浙大孟学多BISUAL BASIC课件浙大教材主编孟学多亲自制作4
第四章 数 组 4.1 一维数组 【例4-1】求100个学生某门课程的平均成绩,并输出高于平均成绩的人数。 用数组方法重新实现例4-1 一维数组的定义和使用 定义:Dim 数组名(下标) As 数据类型 例: Dim name(2) As String 3个元素: name(0), name(1), name(2) Dim age(1 To 2) As Integer 2个元素:age(1), age(2) 数组缺省下界说明语句 Option Base 0 | 1 如: Option Base 1 Dim a(100) as integer 定义数组元素a(1)~a(100) ,如图所示 使用一维数组 数组元素的引用 如: a(1)=23 a(k)=a(k-1)+a(k-2) 访问数组元素 单个元素赋值:使用赋值语句,如:C(3)=A(2) 整个数组复制:使用 For循环和赋值语句 For i=1 To 100 score(i)=Int(Rnd*101) Next i 【例4-2】利用数组计算Fibonacci数列的前20个数,每行打印5个数。 分析 使用数组f(20)存放数列前20项的值,则 f(1) = 1 f(2) = 1 f(3) = f(1) + f(2) f(4) = f(2) + f(3) …… 得到递推公式: f(i) = f(i-2) + f(i-1) i = 3~20 算法 ① 计算数组 f(20)各元素的值 ② 输出数组 f(20) 程序: Private Sub Form_Click() Dim i As Integer, total As Integer Dim f(20) As Integer f(1) = 1 : f(2) = 1 For i = 3 To 20 f(i) = f(i - 1) + f(i - 2) Next i For i = 1 To 20 Print Space(6 - Len(Str(f(i)))); f(i); If i Mod 5 = 0 Then Print Next i End Sub Private Sub Form_click() Dim a(10) As Integer For i = 1 To 10 a(i) = Int(Rnd * 90) + 10 Print a(i); Next i Print min = a(1) For j = 2 To 10 If min a(j) Then min = a(j) Next j Print min End Sub 结论:10个数从小到大排序---选择分类法 选择分类法基本思想: 每次选出未排序数中的最小者,把它放在未排序数的最前面。对n个数据,需经过n-1次选择。 第一遍选择: 5 9 7 4 1 0 pos=4 5 9 7 4 1 0 pos=5 5 9 7 4 1 0 pos=6 交换第1和第6个元素得: 0 9 7 4 1 5 例 5 9 7 4 1 0 第一遍 5 9 7 4 1 0 4 9 7 5 1 0 1 9 7 5 4 0 第二遍 0 9 7 5 4 1 0 7 9 5 4 1 0 5 9 7 4 1 0 4 9 7 5 1 第三遍 0 1 9 7 5 4 0 1 7 9 5 4 0 1 5 9 7 4 直接选择分类算法: 对 i=1, 2, …, n-1 对 j=i+1, i+2, …, n 若 a(i)a(j),交换 a(i)与a(j) 冒泡排序算法的基本思想: 1、从第一个元素开始,对相邻元素两两比较,把最大数“沉底”。 2、对n 个数进行n-1轮冒泡,实现n 个数从小到大排序。 冒泡排序程序: Private Sub Form_Click() Dim a (30) As Integer For i = 1 To 30 a(i) = Int(Rnd * 90) + 10 Next i For i = 1 To 29 For j =
文档评论(0)