欢迎来到天天文库
浏览记录
ID:14055483
大小:58.50 KB
页数:3页
时间:2018-07-25
《vb常用算法——数组元素插入与删除》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、VB常考算法(七)数组元素之插入删除:1、算法说明数组中元素的插入和删除一般是在已固定序列的数组中插入或删除一个元素,使得插入或删除操作后的数组还是有序的。1)插入代码如下:PrivateSubCommand1_Click()Dima(10)AsIntegerDimiAsInteger,kAsIntegerFori=0To9a(i)=i*3+1Printa(i);NextiPrintPrint"插入14"Fork=0To9If142、4Fori=0To10Printa(i);NextiEndSub2)删除代码如下:PrivateSubCommand1_Click()Dima()AsInteger---ReDima(1ToN)---Fori=k+1ToNa(i-1)=a(i)NextiReDimPreservea(1ToN-1)EndSub2、实战练习1)补充代码(等级考试原题一)C盘根目录下文件Data4.txt的内容是:2,4,6,8,10,1,3,5,7,9。下面程序的功能是将文件后半部分的奇数分别按序插入前半部分的适当位置,得到的新数列是:12345678910。(实现方法:第一次调整后的数列是123、468103579,第二次调整后的数列是:12346810579)。OptionExplicitPrivateSubForm_Click()Dima(10)AsInteger,iAsInteger,JAsIntegerOpen"c:data4.txt"ForInputAs#12Do(1)‘参考答案:WhileNotEOF(12)J=J+1Input#12,a(J)LoopCallInsert(a)Fori=1To10Printa(i);NextiPrintClose#12EndSubPrivateSubInsert(a()AsInteger)DimiAsInteger,Pu4、tpAsInteger,JAsIntegerDimGetpAsInteger,NAsInteger,TemAsIntegerN=UBound(a)/2Putp=1Getp=N+1Fori=1ToNTem=a(Getp)ForJ=GetpToPutp+1Step-1(2)‘参考答案:a(J)=a(J-1)NextJa(Putp)=TemGetp=Getp+1Putp=(3)‘参考答案:Putp+2NextiEndSub2)补充代码(等级考试原题二)下面程序的功能是将无序数组中相同的数只保留一个,其余得删除,并输出经过删除后的数组元素,删除相同数是通过将数组元素后面的元素在数组内5、依次前移替换前一个元素的值实现的。数组各元素从文件Data.txt中读取。OptionExplicitOptionBase1PrivateSubForm_Click()DimIAsInteger,JAsInteger,KAsIntegerDimA()AsInteger,TAsInteger,MAsIntegerOpen"C:data.txt"ForInputAs#1DoWhile(1)‘参考答案:NotEOF(1)I=I+1ReDimPreserveA(I)Input#1,A(I)LoopM=1:T=(2)‘参考答案:UBound(A)DoWhileM<=TI=M+1DoW6、hileI<=TIfA(I)=A(M)ThenForJ=MTo(3)‘参考答案:T-1A(J)=A(J+1)NextJT=T-1ElseI=(4)‘参考答案:I+1EndIfLoopM=M+1LoopReDimPreserveA(T)ForI=1ToTPrintA(I);NextIPrintEndSub
2、4Fori=0To10Printa(i);NextiEndSub2)删除代码如下:PrivateSubCommand1_Click()Dima()AsInteger---ReDima(1ToN)---Fori=k+1ToNa(i-1)=a(i)NextiReDimPreservea(1ToN-1)EndSub2、实战练习1)补充代码(等级考试原题一)C盘根目录下文件Data4.txt的内容是:2,4,6,8,10,1,3,5,7,9。下面程序的功能是将文件后半部分的奇数分别按序插入前半部分的适当位置,得到的新数列是:12345678910。(实现方法:第一次调整后的数列是12
3、468103579,第二次调整后的数列是:12346810579)。OptionExplicitPrivateSubForm_Click()Dima(10)AsInteger,iAsInteger,JAsIntegerOpen"c:data4.txt"ForInputAs#12Do(1)‘参考答案:WhileNotEOF(12)J=J+1Input#12,a(J)LoopCallInsert(a)Fori=1To10Printa(i);NextiPrintClose#12EndSubPrivateSubInsert(a()AsInteger)DimiAsInteger,Pu
4、tpAsInteger,JAsIntegerDimGetpAsInteger,NAsInteger,TemAsIntegerN=UBound(a)/2Putp=1Getp=N+1Fori=1ToNTem=a(Getp)ForJ=GetpToPutp+1Step-1(2)‘参考答案:a(J)=a(J-1)NextJa(Putp)=TemGetp=Getp+1Putp=(3)‘参考答案:Putp+2NextiEndSub2)补充代码(等级考试原题二)下面程序的功能是将无序数组中相同的数只保留一个,其余得删除,并输出经过删除后的数组元素,删除相同数是通过将数组元素后面的元素在数组内
5、依次前移替换前一个元素的值实现的。数组各元素从文件Data.txt中读取。OptionExplicitOptionBase1PrivateSubForm_Click()DimIAsInteger,JAsInteger,KAsIntegerDimA()AsInteger,TAsInteger,MAsIntegerOpen"C:data.txt"ForInputAs#1DoWhile(1)‘参考答案:NotEOF(1)I=I+1ReDimPreserveA(I)Input#1,A(I)LoopM=1:T=(2)‘参考答案:UBound(A)DoWhileM<=TI=M+1DoW
6、hileI<=TIfA(I)=A(M)ThenForJ=MTo(3)‘参考答案:T-1A(J)=A(J+1)NextJT=T-1ElseI=(4)‘参考答案:I+1EndIfLoopM=M+1LoopReDimPreserveA(T)ForI=1ToTPrintA(I);NextIPrintEndSub
此文档下载收益归作者所有