刪數(shù)問題.輸入一個數(shù)字串s,刪去其中k個數(shù)字(k<數(shù)字串中數(shù)字的個數(shù)),使剩余數(shù)字在保持相對位置不變的情況下構(gòu)成一個值最小的整數(shù).例如,s=“19990608”,k=4,處理結(jié)果為:608.
刪數(shù)的算法如下:
(1)如果k>0,則從前往后檢測相鄰字符,否則,轉(zhuǎn)(3);
(2)①若所有相鄰字符都已非降序,則將串尾k個字符刪去,k值置0,轉(zhuǎn)(1);
②若相鄰兩數(shù)存在逆序(即前一個數(shù)>后一個數(shù)),則將前一個數(shù)刪除,k值變化,然后回到(1);
(3)去掉串首的0,輸出結(jié)果.
按照上述算法思路,編寫了VB程序,功能如下:在文本框Text1中輸入數(shù)字串,在文本框Text2中輸入刪數(shù)的個數(shù),單擊“處理”按鈕Command1,在文本框Text3中顯示最小的整數(shù).程序運行界面如圖所示.
(1)如果輸入的數(shù)字串為“20160125”,刪除個數(shù)為4,則結(jié)果是 1212.
(2)實現(xiàn)上述功能的VB程序如下,請在橫線處填入合適代碼.
delete函數(shù)說明:delete(st,x,y)為自定義函數(shù),功能為在字符串st中刪除x位置開始的y長度的子串.
Private Sub Command1_Click ( )
Dim s As String,k As Integer,i As Integer,j As Integer,n As Integer
s=Text1.Text
k=Val(Text2.Text)
n=Len(s)
Do While k>0
i=1
Do While i<n And ①①
i=i+1
Loop
If i=n Then
②②
n=n-k
k=0
Else
s=delete(s,i,1)
n=n-1
③③
End If
Loop
i=1
Do While n>1And Mid(s,1,1)=“0“
s=delete(s,1,1)
i=i+1
n=n-1
Loop
Text3.Text=s
End Sub
Function delete(st As String,x As Integer,y As Integer) As String
delete=Mid(st,1,x-1)+Mid(st,x+y)'mid函數(shù)第3個參數(shù)省略,則截取從開始位置向右到字符串結(jié)尾的所有字符
End Function.
【考點】編輯事件處理過程的代碼.
【答案】12;①;②;③
【解答】
【點評】
聲明:本試題解析著作權(quán)屬菁優(yōu)網(wǎng)所有,未經(jīng)書面同意,不得復(fù)制發(fā)布。
發(fā)布:2024/6/27 10:35:59組卷:5引用:1難度:0.3
相似題
-
1.學(xué)校舉辦了“語文作文現(xiàn)場賽”,參賽同學(xué)成績存儲在文本文件“gra.jye.ai”中,如左圖所示(每一行記錄一位同學(xué)的姓名和成績,以“:”分隔)。陳老師利用Python程序?qū)ψ魑某煽冞M行處理,統(tǒng)計出各個分數(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程序的運行界面如圖所示。下列說法正確的是( ?。?br />(1)窗體內(nèi)有1個按鈕
(2)窗體內(nèi)有2個文本框
(3)窗體內(nèi)有3個標簽
(4)該窗體的標題(Caption)屬性值是“加法計算器”發(fā)布:2024/12/20 20:0:2組卷:1引用:1難度:0.6
把好題分享給你的好友吧~~