当前位置: 高中信息技术 / 综合题
  • 1. (2017·浙江模拟) 有一种压缩算法,基本原理是:特殊字符+重复次数+字符。
    比如有文本字符串:A A A A A B C C C C B C C C,编码后得到:B B 5 A B B 4 C B B 3 C。编码串的最开始说明特殊字符B,以后B后面跟着的数字就表示出重复的次数。编程实现将从Text1输入的一个字符串,点压缩按钮后用上述方法压缩,压缩后的编码在Text2中输出,text3中输入特殊字符。压缩算法:
    a)       给压缩串添加开关的特殊字符
    b)      逐个判断输入字符串的字符(当前的字符与后一个比较),如果两个字符不同,则连到了压缩串中,如果有连续的重复字符则计数n+1
    c)       最后一组重复字符或单个字符再连到压缩串中。
    u  连入压缩串方法:单个的直接连入,有重复的连入特殊字符开头+数字+重复的字符

    图1
    程序如下:
    Private Sub Command1_Click()
    Dim src As String, t As String   ‘src保存输入的字符串
    Dim desc As String         ‘desc保存压缩后的字符串
    Dim c As String  ‘c保存特殊字符
    Dim n As Integer  ‘n用来记连续重复字符个数
    src = Text1.Text
    c = Text3.Text
    n = 0
    desc =   ①  
    For i = 1 To       ②  
        n = n + 1
        t = Mid(src, i, 1)
        If t <>     ③     Then
             desc = desc & zipstring(n, c, t)
             n = 0
        End If
    Next i
    Text2.Text = desc & zipstring(n, c,     ④   )
    End Sub
    Private Function zipstring(n As Integer, c As String, sr As String) As String
             If n <= 1 Then
                zipstring = sr
             Else
                zipstring = c & Trim(Str(n)) & sr
             End If
    End Function



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