vb编程-删除重复数.ppt

上传人:牧羊曲112 文档编号:6522732 上传时间:2023-11-08 格式:PPT 页数:8 大小:324.47KB
返回 下载 相关 举报
vb编程-删除重复数.ppt_第1页
第1页 / 共8页
vb编程-删除重复数.ppt_第2页
第2页 / 共8页
vb编程-删除重复数.ppt_第3页
第3页 / 共8页
vb编程-删除重复数.ppt_第4页
第4页 / 共8页
vb编程-删除重复数.ppt_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《vb编程-删除重复数.ppt》由会员分享,可在线阅读,更多相关《vb编程-删除重复数.ppt(8页珍藏版)》请在三一办公上搜索。

1、删除重复数,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.删除处理:将数组后面 的元素依次向前移动

2、覆 盖前面的数组元素,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-1ReDim Preserve A(Ub),Ub=Ub-1ReDim Preserve A(Ub),每当进行删除操作后都要改变数组的

3、维上界,并将数组最后一个元素删除,每当进行删除操作后都要改变数组的维上界,并将数组最后一个元素删除但是每重循环的循环终值的值是不会改变的因此产生“数组越界”错误。此外刚移入的那个元素不再参加这一轮比较,也将会引发其他错误纠正方法:将外面的两重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,使用数

4、组的不同属性编程,利用数组的“值”属性用数组的“下标”属性,重新编号,解题分析 要解决的问题,如何表示学生的老编号、如何表示学生的新编号如何处理报数如何将一个新的编号赋给一个符合条件的学生由于围成一圈不断在顺序报数,如何防止数组越界,重新编号,解题分析:如何做,1.如何表示老编号和新编号,定义两个一维数组Old_No和 New_No分别表示老编号和新编号其中Old_No的数组元素下标对应学生的老编号,数组元素的值均为1,用来标识它所代表的学生是否出圈(已获得新编号)New_No的数组元素的下标表示学生的新编号,元素的值对应该学生的老编号,Dim Old_NO(15)As IntegerDim

5、New_NO(15)As IntegerDim I As Integer,Idx As IntegerDim Count As IntegerFor I=1 To 15 Old_NO(I)=1Next I,重新编号,解题分析,2.如何描述1N报数,将Old_No的数组元素依次逐个相加每当和为N时,则将该元素的值置为0(即逢N者出圈),并将它的下标值(老编号)赋给New_No数组的一个元素New_No(I),于是,这个学生就获得一个新编号I,Count=0Do While Count N 3 Idx=Idx+1 Count=Count+Old_No(Idx)LoopOld_No(Idx)=0Ne

6、w_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 15Next I,报数,Count=0Do While Count N 3 Idx=Idx+1 Count=Old_NO(Idx)+CountLoop,预防数组越界,If Idx 15 Then Idx=1 处理数组下标,重新编号,Old_NO(Idx)=0New_NO(I)=Idx,程序,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号