网友您好, 请在下方输入框内输入要搜索的题目:
( 9 )本程序实现文本加密。先给定序列: a1,a2, …… an, 它们的取值范围是 1~n ,且互不相同。加密算法是 : 把原文本中第 k 个字符放到加密后的文本的第 ak 个位置处 。 若原文本长度大于 n , 则只对前 n 个字符加密,后面的字符不变;若原文本长度小于 n ,则在后面补字符 “ * ” 使文本长度为 n 后再加密。
例如:若给定序列 a1,a2, … a7 分别为 2 , 5 , 3 , 7 , 6 , 1 , 4
当文本为 “ PROGRAM ” 时,加密后的文本为 “ APOMRRG ”
当文本为 “ PROGRAMMING ” ,加密后的文本为 “ APOMRRGMING ”
当文本为 “ THANK ” 时,加密后的文本为 “ TA*HKN ”
下面的过程 code 实现这一算法。其中参数数组 a() 中存放给定序列(个数与数组 a 的元素个数相等)a1,a2,a3 … 的值,要加密的文本放在参数变量 mystr 中。过程执行完毕,加密后的文本仍放在变量 myst r中。请填空。
Option Base 1
Private Sub code(a () As Integer,mystr As String)
Dim ch As string,cl As String
n=Ubound(a)-Len(mystr)
If n>0 Then
mystr= mystr& Strings(n, ” * ” )
End If
Ch=mystr
For k= 【 14 】 To Ubound(a)
Cl=Mid(mystr,k,l)
n= 【 15 】
Mid$(ch,n)=cl
Next k
Mystr=ch
End Sub
参考答案