已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
删除重复数,1 8 9 8 1 5,删除,5,1 8 9 8 5,第一轮结束,删除,5,第二轮结束,1 8 9 5,重复数已删除,删除重复数,1.确定需要几轮比较 待处理数据个数-1次,Ub = UBound(A) For I = 1 To Ub - 1 Next I,1.确定需要几轮比较 待处理数据个数-1次 2.在每一轮对比中依次逐 个比较,若有重复数, 则进行删除处理,For J = I + 1 To Ub If A(I) = A(J) Then End If Next J,1.确定需要几轮比较 待处理数据个数-1次 2.在每一轮对比中依次逐 个比较,若有重复数, 则进行删除处理 3.删除处理:将数组后面 的元素依次向前移动覆 盖前面的数组元素,For K = J To Ub - 1 A(K) = A(K + 1) Next K Ub = Ub - 1 ReDim Preserve A(Ub),运行程序,结果怎样?,为什么会是这样?怎样纠正!,进行删除处理,删除重复数,Ub = UBound(A) For I = 1 To Ub - 1 For J = I + 1 To Ub If A(I) = A(J) Then For K = J To Ub - 1 A(K) = A(K + 1) Next K End If Next J Next I,Ub = Ub - 1 ReDim Preserve A(Ub),Ub = Ub - 1 ReDim Preserve A(Ub),每当进行删除操作后都要改变数组的维上界,并将数组最后一个元素删除,每当进行删除操作后都要改变数组的维上界,并将数组最后一个元素删除 但是每重循环的循环终值的值是不会改变的因此产生“数组越界”错误。此外刚移入的那个元素不再参加这一轮比较,也将会引发其他错误 纠正方法:将外面的两重For 循环改为Do循环,Ub = UBound(A) N = 1 Do While N Ub I = N + 1 Do While I = Ub If A(N) = A(I) Then For J = I To Ub - 1 A(J) = A(J + 1) Next J Ub = Ub - 1 ReDim Preserve A(Ub) Else I = I + 1 End If Loop N = N + 1 Loop,使用数组的不同属性编程,利用数组的“值”属性 用数组的“下标”属性,重新编号,解题分析 要解决的问题,如何表示学生的老编号、如何表示学生的新编号 如何处理报数 如何将一个新的编号赋给一个符合条件的学生 由于围成一圈不断在顺序报数,如何防止数组越界,重新编号, 解题分析:如何做,1.如何表示老编号和新编号,定义两个一维数组Old_No和 New_No分别表示老编号和新编号其中 Old_No的数组元素下标对应学生的老编号,数组元素的值均为1,用来标识它所代表的学生是否出圈(已获得新编号) New_No的数组元素的下标表示学生的新编号,元素的值对应该学生的老编号,Dim Old_NO(15) As Integer Dim New_NO(15) As Integer Dim I As Integer, Idx As Integer Dim Count As Integer For I = 1 To 15 Old_NO(I) = 1 Next I,重新编号, 解题分析,2.如何描述1N报数,将Old_No的数组元素依次逐个相加每当和为N时,则将该元素的值置为0(即逢N者出圈),并将它的下标值(老编号)赋给New_No数组的一个元素New_No(I),于是,这个学生就获得一个新编号I,Count = 0 Do While Count N 3 Idx = Idx + 1 Count = Count + Old_No(Idx) Loop Old_No(Idx) = 0 New_No(I) = Idx,这里的Do循环能否用For 循环替代?,此处会不会“越界”?,不能用For循环替代,因为Old_No(Idx)中的值可能是0不知道要执行多少次 Count = Count + Old_No(Idx) 语句才会使Count的值为N,If Idx M Then Idx = 1,添加这个语句后就不会发生“数组越界”,重新编号,Private Sub Command1_Click() Dim Old_NO(15) As Integer, New_NO(15) As Integer Dim I As Integer, Idx As Integer, Count As Integer Dim N As Integer For I = 1 To 15 Old_NO(I) = 1 Next I Idx = 0 N = Val(Text3) End Sub,定义变量与数组,赋初值,用For循环控制新编号,For I = 1 To 15 Next I,报数,Count = 0 Do While Count N 3 Idx = Idx + 1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 红色故事演讲稿1
- 企业员工健身教练聘用协议
- 商场烟道改造及清理服务协议
- 电信工程混凝土施工协议
- 车间员工个人工作心得体会5篇范文
- 机场问讯处管理规定
- 城市防冰施工合同
- 水电开发与黄河水文利用
- 汽车零部件采购资格预审表
- 建筑行业招投标技巧解析讲座
- 新苏教版五年级上册科学全册教学课件(2022年春整理)
- 小学体育水平一《走与游戏》教学设计
- 秋日私语(完整精确版)克莱德曼(原版)钢琴双手简谱 钢琴谱
- 办公室室内装修工程技术规范
- 盐酸安全知识培训
- 万盛关于成立医疗设备公司组建方案(参考模板)
- 消防安全巡查记录台帐(共2页)
- 科技特派员工作调研报告
- 中波广播发送系统概述
- 县疾控中心中层干部竞聘上岗实施方案
- 急性心肌梗死精美PPt完整版
评论
0/150
提交评论