小藍(lán)設(shè)計了一個數(shù)字字符串的簡單加密解密小程序,該程序的加密規(guī)則是計算連續(xù)升序子串的長度,將該長度字符插入到相應(yīng)子串后面。例如:
輸入2350123456783,先將字符串拆成三段,分別是235,012345678,3要求每一段必須嚴(yán)格有序,如果無法實現(xiàn)連續(xù)升序,則單獨作為一個拆分。
原字符串 |
235 |
012345678 |
3 |
連續(xù)升序字符數(shù) |
3 |
9 |
1 |
密文 |
235 |
3 |
012345678 |
9 |
3 |
1 |
在文本框Text1中輸入原文,單擊“加密”按鈕,可在文本框Text2中輸出密文。
在文本框Text2中輸入密文,單擊“解密”按鈕,可在文本框Text3中輸出原文。
(1)程序運行時,在文本框Text2中輸入“1233012345678910”,則在Text3中顯示的內(nèi)容為
123012345678
123012345678
。
(2)實現(xiàn)上述功能的VB代碼段如下,請在橫線處填上合適代碼。
Private Sub Command1_Click ( ?。?
加密過程
Dim a(1 To 100)As String
Dim s1,s2 As String:Dim tmp As Integer
tmp=1:s1=Text1.Text
For i=1 To Len(s1)
a(i)=Mid(s1,i,1)
Next i
s2=a(1)
For i=2 To Len(s1)
If
①
①
Then
s2=s2+a(i):tmp=tmp+1
Else
s2=s2+LTrim(Str(tmp))'LTrim
( ?。?/div>
( )
函數(shù)用以移除左邊的符號位空字符
s2=s2+a(i)
②
②
End If
Next i
s2=s2+LTrim(Str(tmp)):Text2.Text=s2
End Sub
Private Sub Command2_Click ( ?。?解密過程
Dim b(0 To 100)As String
Dim k As String,t As Integer,n As Integer
Dim s As String,s3 As String,j As Integer
s=Text2.Text:n=Len(s)
For i=1 To n
b(i)=Mid(s,i,1)
Next i
t=n-1:k=Val(b(n))
Do While t>0
If k<>0 Then
For j=1 To k
③
③
t=t-1
Next j
k=Val(b(t))
t=t-1
Else
k=10
t=t-1
End If
Loop
Text3.Text=s3
End Sub
【答案】123012345678;①;( ?。?;②;③
【解答】
【點評】
聲明:本試題解析著作權(quán)屬菁優(yōu)網(wǎng)所有,未經(jīng)書面同意,不得復(fù)制發(fā)布。
發(fā)布:2024/4/20 14:35:0組卷:0引用:1難度:0.5