- 19
- 0
- 约2.09千字
- 约 3页
- 2021-09-10 发布于山东
- 举报
(完整word版)VB常用算法——数组元素插入与删除
(完整word版)VB常用算法——数组元素插入与删除
(完整word版)VB常用算法——数组元素插入与删除
VB 常考算法(七)数组元素之插入删除:
1、算法说明
数组中元素的插入和删除一般是在已固定序列的数组中插入或删除一个元素, 使得插入或删除操作后的数组还是有序的。
1)插入
代码如下:
Private Sub Command1_Click()
Dim a(10) As Integer
Dim i As Integer, k As Integer
For i = 0 To 9
a(i) = i * 3 + 1
Print a(i);
Next i
Print
Print 插入 14
For k = 0 To 9
If 14 a(k) Then Exit For
Next k
For i = 9 To k Step -1 从最后元素开始逐个后移腾出位置
a(i + 1) = a(i)
Next i
a(k) = 14
For i = 0 To 10
Print a(i);
Next i
End Sub
2)删除
代码如下:
Private Sub Command1_Click()
Dim a() As Integer
---
ReDim a(1 To N)
---
For i = k + 1 To N
a(i - 1) = a(i)
Next i
ReDim Preserve a(1 To N - 1)
End Sub
2、实战练习
1)补充代码(等级考试原题一)
C 盘根目录下文件 Data4.txt 的内容是: 2,4,6,8,10,1,3,5,7,9 。下面程序的功能是将文件后
半部分的奇数分别按序插入前半部分的适当位置, 得到的新数列是: 1 2 3 4 5 6 7 8 9 10。(实
现方法: 第一次调整后的数列是 1 2 4 6 8 10 3 5 7 9 ,第二次调整后的数列是: 1 2 3 4 6 8 10 5
9)。
Option Explicit
Private Sub Form_Click()
Dim a(10) As Integer, i As Integer, J As Integer
Open c:\data4.txt For Input As #12
Do ( 1)
‘参考答案:
While Not EOF(12)
J=J+1
Input #12, a(J)
Loop
Call Insert(a)
For i = 1 To 10
Print a(i);
Next i
Print
Close #12
End Sub
Private Sub Insert(a() As Integer)
Dim i As Integer, Putp As Integer, J As Integer
Dim Getp As Integer, N As Integer, Tem As Integer
N = UBound(a) / 2
Putp = 1
Getp = N + 1
For i = 1 To N
Tem = a(Getp)
For J = Getp To Putp + 1 Step -1
( 2) ‘参考答案: a(J) = a(J - 1)
Next J
a(Putp) = Tem
Getp = Getp + 1
Putp = ( 3) ‘参考答案: Putp + 2
Next i
End Sub
2)补充代码(等级考试原题二)
下面程序的功能是将无序数组中相同的数只保留一个, 其余得删除, 并输出经过删除后
的数组元素, 删除相同数是通过将数组元素后面的元素在数组内依次前移替换前一个元素的值实现的。数组各元素从文件 Data.txt 中读取。
Option Explicit
Option Base 1
Private Sub Form_Click()
Dim I As Integer, J As Integer, K As Integer
Dim A() As Integer, T As Integer, M As Integer
Open C:\data.txt For Input As #1
Do While ( 1) ‘参考答案: Not EOF(1)
I=I+1
Loop
M = 1: T = ( 2) ‘参考答案: UBound(A)
Do While M = T
I=M+1
Do While I = T
If A(I) = A(M) Then
For J = M To ( 3) ‘参考答案:
A(J) = A(J + 1)
Next J
T=T-1
T - 1
Else
I = (4) ‘参考答案: I + 1
En
原创力文档

文档评论(0)