版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第7章 数 组 1本章上机本章上机v本章所有作业题本章所有作业题,上机验证或编制调试上机验证或编制调试v实验实验8的案例的案例3 杨輝三角杨輝三角v讲过的典型例题上机验证讲过的典型例题上机验证第七章第七章 数数 组组1). 可通过循环给数组元素赋初值可通过循环给数组元素赋初值 For i = 1 To 10 A数组的每个元素值为数组的每个元素值为1 A(i)=1 Next i 2). 数组的输入数组的输入 输入输入10个数,并存入到数组个数,并存入到数组A中中For i = 1 To 10 A(i) =Val( InputBox(“输入输入A(” & i & “) 的的值值”)
2、 ) Next i上机一:编程完成一维数组的基本操作上机一:编程完成一维数组的基本操作-输入输出及求最值输入输出及求最值3). 求数组中最大元素及所在下标求数组中最大元素及所在下标 Dim Max As Integer, iMax As Integer Max = A(1): iMax = 1 For i = 2 To 10 If A(i) Max Then Max = A(i) iMax = i End If Next i Print A( & iMax & )=; A(iMax)编程:编程: 将数组元素倒置将数组元素倒置For i =1 To 102 t=A(i) A(i)
3、=A(10-i+1) A(10-i+1)=tNext I(演示)(演示)Option ExplicitConst NUM = 60 声明代表班上学生人数的符号常量声明代表班上学生人数的符号常量Private Sub Form_Click() Dim a(NUM) As Integer, i As Integer Dim Sum As Integer, Aver As Single, N As Integer Sum = 0 给给Sum赋初值赋初值 For i = 1 To NUM 输入学生成绩,并求和输入学生成绩,并求和 a(i) = Val(InputBox(输入第输入第( & i
4、& )学生的成绩学生的成绩) Sum = Sum + a(i) Next i Aver = Sum / NUM N = 0 For i = 1 To NUM 统计高于平均成绩的人数统计高于平均成绩的人数 If a(i) Aver Then N = N + 1 Next i Print 全班平均成绩:全班平均成绩: & Aver & 共有共有 & N & 高于平均成高于平均成绩绩End Sub 编程求某班编程求某班60个学生某门课程考试的平均成绩及高于平均成绩的学生人数。个学生某门课程考试的平均成绩及高于平均成绩的学生人数。 在在上题上题中编程统计中编程统
5、计09,1019,2029,.8089,9099分数段及分数段及100分分的学生人。的学生人。 另用数组另用数组bn来存各分数段的人数,并用来存各分数段的人数,并用bn(0)存存09分的人数,分的人数,bn(1)存存1019分的人数,分的人数,bn(9)存存9099分的人数,分的人数,bn(10)存存100分的人数。分的人数。 Option ExplicitConst NUM = 60 声明代表班上学生人数的符号常量声明代表班上学生人数的符号常量Private Sub Form_Click() Dim a(NUM) As Integer, i As Integer Dim bn(0 To 10
6、) As Integer, k As Integer For i = 1 To NUM 输入学生成绩,并求和输入学生成绩,并求和 a(i) = InputBox(输入第输入第( & i & )学生的成绩学生的成绩) Print a(i); k = Int(a(i) / 10) bn(k) = bn(k) + 1 Next i Print For i = 0 To 9 打印输出各分数段的学生人数打印输出各分数段的学生人数 Print (i * 10) & & (i * 10 + 9) & 的学生人数的学生人数: & bn(i) Next i Pri
7、nt Tab(10); 100学生人数学生人数: & bn(i)End SubFor i = 1 To n - 1For i = 1 To n - 1 p = i p = i For j = i + 1 To n For j = i + 1 To n If a(p) a(j) Then p = j If a(p) a(j) Then p = j Next j Next j t = a(i): a(i) = a(p): a(p) = t t = a(i): a(i) = a(p): a(p) = tNext iNext i选择法排序(选择法排序(升序升序)的)的VB程序程序:思考:如果按
8、思考:如果按降序降序排,程序如何修改?排,程序如何修改?第五章第五章 数数 组组 编程编程 对对 一维数组的数据排序一维数组的数据排序 习题习题 用随机函数产生用随机函数产生50个个10100的随机整数,并按由小到大的顺序的随机整数,并按由小到大的顺序打印出来。打印出来。 Option ExplicitOption Base 1Private Sub Form_Click() Dim i As Integer, j As Integer, t As Integer, p As Integer Const N = 50 Dim a(N) As Integer Print 排序前数据排序前数据:
9、For i = 1 To N 产生产生10,99之间的随机整数之间的随机整数 a(i) = Int(Rnd * 90) + 10 Print a(i); If i Mod 10 = 0 Then Print 每行打印每行打印10个元素个元素 Next i Print For i = 1 To N 1 排序排序 p = i For j = i + 1 To N If a(p) a(j) Then p = j Next j t = a(i): a(i) = a(p): a(p) = t 交换数据交换数据 Next i Print 排序后数据排序后数据: For i = 1 To N Print a
10、(i); If i Mod 10 = 0 Then Print 打印换行打印换行 Next iEnd SubFor i = 1 To n - 1For i = 1 To n - 1 For j = 1 To n-i For j = 1 To n-i If a(j) a(j+1) Then If a(j) a(j+1) Then t=a(j) t=a(j): a(j)=a(j+1)a(j)=a(j+1):a(j+1)=ta(j+1)=t End if End if Next j Next jNext iNext i冒泡法排序(升序)程序冒泡法排序(升序)程序:演示演示第五章第五章 数数 组组 一
11、维数组的应用一维数组的应用数据排序数据排序二维数组数据的输入二维数组数据的输入 Const N=4, M=5, L=6Dim a(1 to N,1 to M) As Integer, i%, j%,k%1). 给二维数组给二维数组a输入数据的程序段如下:输入数据的程序段如下: For i=1 to 4 For j=1 to 5 A(i,j)=Val(InputBox(a(& I &, & j & )=?) Next j Next i求最大元素及其所在的行和列求最大元素及其所在的行和列 用变量用变量max存放最大值,存放最大值,row,col存放最大值所在行列号存
12、放最大值所在行列号 Max = a(1, 1): row = 1: Col = 1 For i = 1 To N For j = 1 To M If a(i, j) a(row, Col) Then Max = a(i, j) row = i Col = j End If Next jNext iPrint 最大元素是最大元素是; MaxPrint 在第在第 & row & 行行,; 第第 & Col & 列列 矩阵的转置矩阵的转置 方阵的转置的程序代码如下:方阵的转置的程序代码如下:For i = 2 2 To For j = 1 1 To I-1 Temp=
13、a(i,j) a(i, j) = a(j, i) a(j, i)=Temp Next j Next i 设A是M*N的矩阵,要重新定义一个N*M的二级数组B,将A转置得到B的程序代码如下:For i = To For j = To N b(j,i) = a(i,j) Next jNext i 习题习题 通过输入对话框输入一批正整数,将其中的偶数以每行通过输入对话框输入一批正整数,将其中的偶数以每行10个输出。个输出。动态数组动态数组Option ExplicitPrivate Sub Form_Click() Dim a() As Integer 声明可变数组 Dim os%, n%, i%
14、n = Val(InputBox(输入一个,输入-1结束) Do While n -1 当输入-1时结束 If n Mod 2 = 0 Then 判断是不是偶数 os = os + 1 ReDim Preserve a(os) 重新定义数组a的大小,并存持原来的值 a(os) = n End If n = Val(InputBox(输入一个,输入-1结束) Loop Print 输入的偶数有: For i = 1 To os Print a(i); Spc(2); If i Mod 10 = 0 Then Print 输出10个数据后换行 Next i PrintEnd Sub习题习题 在一个
15、文本框中,输入多个用在一个文本框中,输入多个用“,”分隔的整数,按回分隔的整数,按回车键后,将各数据按升序打印输出在窗体上。程序运行情况车键后,将各数据按升序打印输出在窗体上。程序运行情况如图所示。如图所示。动态数组动态数组 Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then Dim i%, j%, p%, n%, m%, t% Dim b() As Integer, a() As String 将文本框输入的文本,以,为分隔符分离字符子串存入数组a的各元素中 a = Split(Text1.Text, ,
16、) n = LBound(a): m = UBound(a) ReDim b(n To m) For i = n To m 将数组a中的数字字符串转化成数字存入数组b中 b(i) = Val(a(i) Next i For i = n To m - 1 排序 p = i For j = i + 1 To m If b(p) b(j) Then p = j Next j t = b(i): b(i) = b(p): b(p) = t Next i For i = n To m 将排序后的数据输出到窗体上 Print b(i); Next i End IfEnd Sub 大量数据的输入和处理大量数
17、据的输入和处理例7-9 输入一个45的二维整数数组,输出数组元素的平均值及该数组。Private Sub Form_Click()Dim A(1 To 4,1 To 5) As Integer, i As Integer, j As IntegerDim Average As Integer, Sum As IntegerSum=0For i=1 To 4按行依次输入各元素值 For j=1 To 5A(i, j)=Val(InputBox(请输入A( & Str(i) & , & Str(j) & )的值) Sum=Sum+A(i,j)Next jNext i
18、Average=Sum/20求平均值Print 数组元素的平均值是:; AverageFor i=1 To 4按行输出各元素值 For j=1 To 5Print A(i, j); Next jPrintNext iEnd Sub 寻找最大值或最小值 例7-10 求数组中最大元素和所在下标及各元素之和。部分程序代码如下:Dim Max As Integer, iMax As Integer, sum As Integer . Max = a(1): iMax = 1: sum = a(1)For i = 2 To 10 sum = sum + a(i) If a(i) Max Then Max
19、 = a(i) iMax = i End IfNext i 数组排序排序是将一组数按递增或递减的次序重新排列。常用的排序算法有选择法、冒泡法、插入法和合并排序等。1.选择法排序选择法是在每一轮排序时找最小(递增顺序)数的下标,出了内循环(一轮排序结束),再交换最小数的位置。 例7-11 选择排序法的应用。2.冒泡法排序 冒泡法在每一轮排序时将相邻的数比较,当次序不对就交换位置,出了内循环,最小数已冒出。 例7-12冒泡法排序法的应用。数组中元素的插入和删除操作 1.插入例7-14 设有一按升序排列的有n个元素的数组a(数组元素均为整数),现要将一个数“11”插入其中后仍保持其有序。解题算法描述如下:(1)查找插入位置k(1kn-1);(2)从n-1到k逐一往后移动一个位置,将第k个元素的位置腾出;(3)将数据插入。 程序代码如下:Private Sub Command1_Click()Dim a%(1 To 10), i%, k%Print 插入前:;For i 1 To 9 a(i) 2 * i Print a(i);Next iFor k 1 To 9 If 11 a(k) Then Exit ForNext kFor i 9
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 提前终止服务合同
- 2024年度广告发布合同:广告公司与合作媒体2篇
- 委托买卖合同
- 2024年度股权转让协议样本:个人股东将其股权转让给公司3篇
- 基于2024年度电子商务的智能物流合同
- 2024年度房屋租赁不带家具合同3篇
- 2024年度二手房购房绿化及景观维护协议3篇
- 防火涂料施工合同范本
- 2024年度艺人经纪居间合同3篇
- 2024年二手医疗器械交易预约合同2篇
- 《长津湖》电影赏析PPT
- 阻化剂喷洒工安全生产责任制(新安全生产法)
- 佳能700d摄影技巧
- GB/T 3810.13-1999陶瓷砖试验方法第13部分:耐化学腐蚀性的测定
- 审计整改通知书
- 勘察质量及安全保障措施
- 沧州市基层诊所基本公共卫生服务医疗机构卫生院社区卫生服务中心村卫生室地址信息
- 小学生汉语拼音田字格练习纸蓝打印版
- 生态脆弱区的综合治理(第1课时)课件 高中地理人教版(2019)选择性必修2
- 8S培训教材(-90张)课件
- 小学音乐《京调》课件
评论
0/150
提交评论