15.ROI-13(回轉13位)是一種簡易的替換式密碼,編碼解碼規則相同,針對英文字母,僅僅只需要檢查字母順序并用13位后的對應字母取代它,超過時則重新繞回26個英文字母開頭即可。即A換成N、B換成O,以此類推到M換成Z,然后序列反轉;N換成A、O換成B…… 小明決定以ROT-13為基礎制定新的ROT-n,即每次回轉不是13位,而是n位。因此他引入了11位數字密鑰和字符位置來計算n的值,并擴大加密范圍,使得大小寫字母和數字都能加密,從而達到加密效果增強的目標。具體規則如下: (1)字符在奇數位置上n的值即當前對應密鑰值,偶數位置上n的值為當前段密鑰中已經出現的所有數字之和。 (2)數字字符在“0”到“9”之間回轉,即超過“9”部分返回“0”開始繼續計算:大寫字母在“A”到“Z”范圍內回轉,小寫字母在“a”到“z”范圍內回轉,其它字符不變。 程序代碼如下 Private Sub Command1_Click) Dim i,z,m,js As Integer im s,c,h,t As String Const my=“14159265358” Text2.Text=“” S=Text1.Text z=1 For i=1 To Len(s) ① If z=12 Then z=1:js=0 m=Val(Mid(my,z,1)) js=js+m If ②Then n=js Else n=m If c>=“0“And c<=“9“Then h=CStr((Val(c)+n)Mod 10) Elself c>=“A“And c<=“Z“Or c>=“a”And c<=“z“Then t=Chr(Asc(c)+n Mod 26) If c>=“A“And c<=“Z“Then If Not (t>=“A“And t<=“Z“)Then h=Chr(Asc(t)-26)Else h=t Else If Asc(c)+n Mod 26>122 Then h=Chr((Asc(c)+n Mod 26)-26)Else h=t End If Else h=c End If Text2.Text=Text2.Text+h ③ Next i End Sub 請回答下列問題 (1)解密過程為加密過程的逆運算,即由密文字符向前推導n位尋找原字符,現已知密鑰為123,密文“WEjpq j”(無雙引號)對應的原文是
16. 小明學習過VB后決定制作一個“幸運的數字”小程序,程序設計如下: 打開程序后隨機生成10個不重復的整數,整數范圍在50到100之間(含50和100),數據存放在數組a中并在列表框 list1中顯示。并按如下規則進行處理: (1)單擊“去除”按鈕一次會生成一個隨機整數n,并去除一個數組a元素,隨機整數n范圍在1到150之間(含1和150),被去除的數組元素是當次所有數組元素中與n形成的差絕對值最小的一個數組元素。如有2個數組元素與n的差相等,則去除值較小的數組元素。 (2)每次生成的隨機數n顯示在列表框list2中,去除的數組a元素顯示在列表框list3中。直至最后剩下最后一個數組元素即為“幸運數字“。 (3)單擊“重置”按鈕,重新生成10個不重復的隨機整數,存放在列表框list1中,并清空列表框list2、list3。 程序界面及代碼如下: Dim a(1 To 10)As Integer Dim b(1 To 10)As Integer Dim k As Integer Private Sub Command1_Click( ) 重置按鈕,重新生成10個不重復的范圍在[50,100]的隨機整數,代碼略 End sub Private Sub Form_Load( ) 生成10個不重復的范圍在[50,100]的隨機整數代碼略 End Sub Private Sub Cd1_Click( ) Dim m,n,t,i,j,w As Integer If k=9 Then Label4.Caption=Str(a(1)) Else Randomize n=lnt(Rnd*150)+1 For i=1 To 9 For j=1 To ① If a(j)>a(j+1)Then t=a(j):a(j)=a(j+1):(ja+1)=t Next j Next i If n>a(10)Then t=a(10-k):w=10-k Elself n<a(1)Then t=a(1):w=1 Else i=1:j=10-k Do while i<=j m=lnt((i+j)/2) If n=a(m) Then Exit Do Elself n<a(m)Then j=m-1 Else i=m+1 End if Loop If ②Then t=a(m):w=m Elself Abs(a(i)-n)>Abs(a(j)-n)Then t=a(j):w=j Else t=a(i):w=i End If End If List2.Addltem Str(n) list3.Addltem Str(t) k=k+1 For i=w To 10-k ③ Next i End If End Sub 請回答下列問題 (1)“去除”按鈕對象名是