[填空題] 本程序?qū)崿F(xiàn)文本加密。先給定序列:a1,a2,…,an,它們的取值范圍是1~n,且互不相同。加密算法是:把原文本中第k個字符放到加密后文本的第ak個位
[填空題] 本程序?qū)崿F(xiàn)文本加密。先給定序列:a1,a2,…,an,它們的取值范圍是1~n,且互不相同。加密算法是:把原文本中第k個字符放到加密后文本的第ak個位置處。若原文本長度大于n,則只對前n個字符加密,后面的字符不變;若原文本長度小于n,則在后面補字符“*”使文本長度為n
后再加密。
例如:若給定序列a1,a2,…a7卻分別為2,5,3,7,6,1,4
當(dāng)文本為“PROGRAM”時,加密后的文本為“APOMRRG”
當(dāng)文本為“PROGKAMMING”時,加密后的文本為“APOMRRGMING”
當(dāng)文本為“THANK”時,加密后的文本為“*TA*HKN”
下面的過程code實現(xiàn)這一算法。其中參數(shù)數(shù)組a()中存放給定序列(個數(shù)與數(shù)組a的元素個數(shù)相等)a(1,a2,a3,…的值,要加密的文本放在參數(shù)變量mystr中。過程執(zhí)行完畢,加密后的文本仍放在變量mysar中。請?zhí)羁铡?br>Option Basel
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 & String$(n,"*")
End If
ch= mystr
For k= 【14】 To UBound(a
[14]1
參考解析:[15]a(k)[知識點] 字符串的替換、過程的使用[評析] String$(n,"*")返回的是n個*組成的字符串,當(dāng)字符串的長度小于數(shù)組a中元素的個數(shù)時,在字符串后面補*號,使字符串與數(shù)組的長度相同。For循環(huán)中,將字符串中的字符交換位置,Option Base 1指定數(shù)組的下標(biāo)從1開始,所以k的初值為1,因此第14空填1:當(dāng)k=1時。c1是截取的是第一個字符,根據(jù)加密規(guī)則,它應(yīng)放在a(1)中存放的數(shù)字指定的位置,即2,依次循環(huán),所以n的值應(yīng)該是數(shù)組a中的值,因此第15空填a(k)。
詞條內(nèi)容僅供參考,如果您需要解決具體問題
(尤其在法律、醫(yī)學(xué)等領(lǐng)域),建議您咨詢相關(guān)領(lǐng)域?qū)I(yè)人士。