当前位置: 高中信息技术 / 综合题
  • 1. (2020高二上·柯桥期末) 现需要对字符串中的字符进行重排顺序,具体方法如下:

    原字符串8个字符为一段,分成若干段进行重排处理,尾段剩余字符(个数小于8)为独立段不做处理。

    重排规则:从起始段第1个字符开始,从1开始数数,数到m时取出该位置上的字符,拼接到新字符串。然后,从下一个位置继续从1开始数数,数到m时再次取出相应位置上的字符,拼接到新字符串。当数到每段的最后一个字符时,重新从该段首第一个没有取掉的字符继续数数。重复上述操作,直至段内8个字符被取完。注:当某段中的7个字符被取出后,该段最后一个字符不需要数数,直接取出拼接到新字符串即可。

    用以上方法逐段取字符,直至除独立段之外的其他字符取完。

    独立段字符个数小于8,不需要重排,直接拼接到新字符串的尾部即可。

    实现该功能的VB程序功能如下:程序运行时从文本框Text1中输入一段字符串,在文本框Text2输入正整数m,单击“确定”按钮Command1,对字符串按上述方法重排后在文本框Text3中显示(每段以逗号分隔)。程序运行界面如下:

    1. (1) 运行上述程序,若在文本框中输入“1010110010”,在Text2中输入5,单击“确定”按钮,则文本框Text3中显示的内容是
    2. (2) 实现上述功能的VB程序如下,请在划线处填入合适的代码。

      Private Sub Command1_lick( )

          Dim s1 As String, s2 As String

          Dim i As Integer, sum As Integer, ed As Integer, n As Integer

          Dim m As Integer

         

          s1 = Mid(Text1. Text, 1, Len(Text1. Text)- n)

          m = Val(Text2. Text)

          s2 = " "

          ' 字符重排顺序

          sum = 0 : i = 1 : ed = 8

          Do While Len(s1)< > 0

              sum = sum + 1

              If sum = m Then

                  s2 = s2 + Mid(s1, i, 1)

                  s1 = Mid(s1, 1, i-1)+ Mid(s1, i+1, Len(s1)-i)

                  ed = ed – 1

                  sum = 0

              Else

                  i = i + 1

              End If

              If ed = 1 Then

                  s2 = s2 + Mid(s1, 1, 1)+ ", "

                 

                  ed = 8

                  i = 1

              ElseIf  Then

                  i = 1

              End If

          Loop

          ' 处理独立段

          If n < > 0 Then s2 = s2 + Mid(Text1. Text, Len(Text1. Text)- n + 1, n)+ ", "

          Text3. Text = s2

      End Sub

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