16.數字黑洞數6174.一個任意的四位正整數(四位數完全相同除外),將數字重新組合成一個最大的數和最小的數相減,重復這個過程,最多七步,必得6174.如取四位數5462,按以上方法作運算如下: ①6542-2456=4086 ②8640-0468=8172 ③8721-1278=7443 ④7443-3447=3996 ⑤9963-3699=6264⑥6642-2466=4176 ⑦7641-1467=6174 從文本框Text1中輸入一個任意的數字不完全相同的四位正整數,在文本框Text2中輸出掉進黑洞的步數.實現上述功能的VB代碼如下,但加框處代碼有錯,請改正: ①
② Private Sub Command1-Click( ) Dim a(1 TO4)As Integer,c As Integer,tAs In teger Dim x As Integer,yAs Integer,iAs Integer,j AsInteger x=Val(Text1.Text) c=0 Do While x<>6174 For i=l To4'把四位正整數x的每一位數字取出來并存放到數組a中 a(i)=xMod10 '① Next i Fori=1To3 Forj=i+lTo4 IfThen'② t=a(i):a(i)=a(j):a(j)=t end Next j Next i x=a(1)*1000+a(2)^100+a(3)*10+a(4) y=a(1)+a(2)*10+a(3)*100+a(4)*1000 x=x-y c=c+1 Loop Text2.Text=Str(c) End Sub.
。 (2)實現上述功能的VB程序如下,請在橫線處填入合適代碼。 Private Sub Command1_Click ( ) Dim i As Integer,S As String Dim str As String,ch As String str=Text1.Text List1.Clear For i=1 To Len(str) ch= ① S=convert(ch) List1.AddItem ch &“=>“& S Next i End Sub Private Function convert(ch As String) As String Dim m As Integer,k As Integer,n As Integer,i As Integer convert=““ n=Asc(ch) Do While n>0 ② convert=m & convert If m=1 Then k=k+1 End If n=n\2 Loop For i=1 To 7-Len(convert)'將字符的二進制代碼補足7位 convert=“0“& convert Next i If k Mod 2=0 Then convert= ③ Else convert=“0“& convert End If End Function 程序中橫線處的代碼應為