当前位置: 高中信息技术 / 综合题
  • 1. (2020高三上·浙江期末) 信息科代表楠楠想给美丽的信息老师写一段心里话,又怕被人发现,于是想了一个两全其美的方法。楠楠有两张n*n大小的纸,一张是透明的,一张是有字的。楠楠在透明的纸上涂黑了一些格子,然后把两张纸一起给信息老师,并告诉老师阅读方法:首先把透明的纸盖在另一张纸上,然后把露出来的字母从上到下从左到右写下来并将每个字母向左循环移一位(如取出是D,则左移为C),然后将透明的纸顺时针旋转90度,再读一遍,这样子一共读四遍,就得到情书内容。

    1. (1) 若透明纸上的涂黑处(“O”没有涂黑的地方,“#”代表被涂黑的地方)如图a所示,有字纸张内容如图b所示,则获取的情书内容的前八位内容

    2. (2) 楠楠根据上述阅读规则,结合学科特点,发挥自己特长,设计了一个获取心里话的小程序。其VB代码和运行界面如图所示,请在划线处填入合适的代码。

      Dim a(1 To 1000) As String

      Const n = 4

      Private Sub Form_Load()

          Dim x As Integer, s As String

          Dim b(1 To n * n) As Boolean

          Randomize

          For i = 1 To n      ‘随机产生n个位置,使得这些位置表示未被涂黑

             

              If b(x) = False Then

                  a(x) = "0"

                  b(x) = True

              Else

                  i = i - 1

              End If

          Next i

      ‘将其余位置赋值为“#”,存入数组a相应的位置中,并将结果按n行n列的方式显示在列表框list1上,代码略

      End Sub

      Private Sub Command1_Click()

          Dim s As String, jg As String, ch As String

          s = "HAOXUEXIHAODUSHU"

          For i = 1 To n * n Step n

              List2.AddItem Mid(s, i, n)

          Next i

          For i = 1 To n

              For j = 1 To n * n

                  If a(j) = "0" Then

                      ch = Mid(s, j, 1)

                      ch =

                      jg = jg + ch

                  End If

              Next j

              Call turn(n)       ‘调用过程turn,完成矩阵顺时针旋转90度

          Next i

          Label1.Caption = jg

      End Sub

      Sub turn(x As Integer)

          Dim i As Integer, j As Integer

          Dim c(1 To n * n) As String

          For i = 1 To x

              For j = 1 To x

                 c((i - 1) * x + j) =

              Next j

          Next i

          For i = 1 To n * n

              a(i) = c(i)

          Next i

      End Sub

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