查找并刪除重復(fù)數(shù)據(jù)的算法是基于順序查找的優(yōu)化,主要思路是把待查數(shù)據(jù)的起點元素設(shè)置成查找關(guān)鍵字,然后從后往前查找,通過結(jié)束時停留的數(shù)據(jù)位置來判斷查找結(jié)果(即結(jié)束時若停留在數(shù)據(jù)序列的起點,表示數(shù)據(jù)序列中無重復(fù)數(shù)據(jù);否則,存在重復(fù)數(shù)據(jù),刪除該數(shù)據(jù)后繼續(xù)查找).
編寫VB程序,實現(xiàn)上述算法.程序功能如下:運行程序時,在列表框List1中顯示數(shù)組a中的原始數(shù)據(jù);單擊“去重”按鈕(Command1),查找數(shù)組a中的重復(fù)數(shù)據(jù)并刪除,即相同的數(shù)據(jù)僅保留一個,并在列表框List2中輸出去重后的數(shù)組a中的數(shù)據(jù),同時在標(biāo)簽Label1中顯示刪除的數(shù)據(jù)總個數(shù),運行效果如第16題圖所示.
實現(xiàn)上述功能的VB代碼如下,但加框處代碼有錯,請改正.
Const maxn=10
Dim a(1To maxn) As Integer
Private Sub Form_Load ( ?。?br />'maxn個數(shù)據(jù)存儲在數(shù)組a中,并在列表框List1中顯示
'代碼略
End Sub
Private Sub Command1_Click ( ?。?br />Dim i As Integer,n As Integer'n用于存儲當(dāng)前查找的數(shù)組長度
Dim j As Integer,key As Integer'key用于存儲本次查找關(guān)鍵字的數(shù)據(jù)位置
key=1:n=maxn
Do While key<=n
i=n
Do While '(1)
i=i-1
Loop
If i=key Then'找到重復(fù)數(shù)據(jù),刪除;未找到,設(shè)定下一查找關(guān)鍵字
key=key+1
Else
For j=i To n-1
a(j)=a(j+1)
Next j
n=n-1
End If
Loop
For i=1To n
List2.AddItem a(i)
Next i
Label1.Caption=“共刪除重復(fù)數(shù)據(jù):“& &“個“'(2)
End Sub.
【考點】編輯事件處理過程的代碼.
【答案】見試題解答內(nèi)容
【解答】
【點評】
聲明:本試題解析著作權(quán)屬菁優(yōu)網(wǎng)所有,未經(jīng)書面同意,不得復(fù)制發(fā)布。
發(fā)布:2024/6/27 10:35:59組卷:2引用:2難度:0.3
相似題
-
1.學(xué)校舉辦了“語文作文現(xiàn)場賽”,參賽同學(xué)成績存儲在文本文件“gra.jye.ai”中,如左圖所示(每一行記錄一位同學(xué)的姓名和成績,以“:”分隔)。陳老師利用Python程序?qū)ψ魑某煽冞M行處理,統(tǒng)計出各個分?jǐn)?shù)等級的人數(shù),并輸出結(jié)果。程序運行界面如右圖所示。
實現(xiàn)上述功能的Python程序如下,請在劃線處填入合適的代碼。發(fā)布:2024/12/17 2:0:1組卷:6引用:2難度:0.3 -
2.有如下Python程序段:
執(zhí)行該程序段,輸入字符串“abcdefg”,則輸出的結(jié)果是( ?。?/h2>發(fā)布:2024/12/20 6:30:1組卷:2引用:3難度:0.4 -
3.試題描述的內(nèi)容:
一個單窗體VB程序的運行界面如圖所示。下列說法正確的是( )
(1)窗體內(nèi)有1個按鈕
(2)窗體內(nèi)有2個文本框
(3)窗體內(nèi)有3個標(biāo)簽
(4)該窗體的標(biāo)題(Caption)屬性值是“加法計算器”發(fā)布:2024/12/20 20:0:2組卷:1引用:1難度:0.6
把好題分享給你的好友吧~~