当前位置: 高中信息技术 / 综合题
  • 1. (2021高二下·浙江月考) 某字符串加密算法,规则如下:

    1)根据字符串长度构建一个最小的n*n矩阵,将字符串中每个字符从左到右,自上而下顺序填入矩阵,不足部分用字符“*”代替;

    2)将矩阵转置(行列对换),然后将奇数行字母内码加上1,偶数行字母内码减1,字符为a、z或A、Z时做循环处理。比如,字符a减1为z;字符Z加1为A。

    3)按从左到右,从上而下依次取出字符,形成新的字符串。如图a为字符串“Go to the zoo.”的加密过程。编写VB程序,在文本框Text1中输入字符串,点击“加密”按钮,在文本框Text2中输出加密后的字符串。程序运行结果如图b所示。

    a

    b

    1. (1) 若在文本框Text1中输入3个字母“Far”,执行加密程序后,输出结果为
    2. (2) 实现上述功能的VB程序如下,请在划线处填入合适的代码

      Dim a(1 To 100) As String, b(1 To 100) As String, n As Integer

      Private Sub Command1_Click()

          Dim s1 As String, s2 As String,i As Integer, j As Integer, m As Single

          s1 = Text1.Text

          m = Sqr(Len(s1))

          If m > Int(m) Then n = Int(m) + 1 Else n = m

          For i = 1 To n * n

              If i <= Len(s1) Then  a(i) = Mid(s1, i, 1)   Else  a(i) = "*"

          Next i

          For i = 1 To n

              For j = 1 To n

                  b((i - 1) * n + j) =     ‘将矩阵转置

                  b((i - 1) * n + j) = jm(i, j)   ‘内码变换

              Next j

          Next i

          s2 = ""

          For i = 1 To n * n

              s2 = s2 & b(i)

          Next i

          Text2.Text = s2

      End Sub

      Function jm(x As Integer, y As Integer) As String

          Dim s As String

          s = b((x - 1) * n + y)

          If s <= "Z" And s >= "A" Or s <= "z" And s >= "a" Then

              If x Mod 2 <> 0 Then

                  If s <> "Z" And s <> "z" Then

                      s = Chr(Asc(s) + 1)

                  Else

                      s = Chr(Asc(s) - 25)

                  End If

              Else

                  If s <> "a" And s <> "A" Then

                      s = Chr(Asc(s) - 1)

                  Else

                      s =

                  End If

              End If

          End If

          

      End Function

微信扫码预览、分享更方便