当前位置: 高中信息技术 / 综合题
  • 1. (2019高三上·浙江月考) 条形码按照一定的编码规则排列,用以表达一组信息的图形标识符。其中,EAN-13条形码是由13位数字组成,最右边的是校验位。校验规则如下:

    ⑴从左向右将13个数字按顺序排列,最左边的是第1位,最右边的是第13位(即校验位)。将所有偶数位的数据相加,结果乘3,得到p。将除校验位以外所有奇数位的数据相加,得到q。

    ⑵计算p加q得到的和除以10的余数,再计算该余数以10为模的补数(如3以10位模的补数为7,8以10为模的补数为2)。

    ⑶若补数与校验位相等,则验证正确,否则验证错误。

    小李对上述校验规则进行了加密处理,他将前12位数字分成3个一组。每组上每个数字分别循环向左移1位轮换(如第2位移到第1位,第7位移到第9位),再分别加上所处的位置后除以10 的余数,示例如下:

    位置

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    原文

    9

    7

    8

    7

    5

    1

    0

    1

    3

    7

    0

    1

    3

    轮换

    7

    8

    9

    5

    1

    7

    1

    3

    0

    0

    1

    7

    3

    密文

    8

    0

    2

    9

    6

    3

    8

    1

    9

    0

    2

    9

    3

    小李还编写了解密验证程序,代码如下,运行界面如图所示。

    Private Sub Command1_Click()

    Dim i As Integer, t As Integer, code As String, res As String

    Dim p As Integer, q As Integer, x As Integer

    Dim a(1 To 13) As Integer

    code = Text1.Text

    For i = 1 To 12

        ch = Mid(code, i, 1)

    t =     ①        

    a(i + 1 - (     ②     ) * 3) = t

    Next i

    For i = 1 To 12

        If i Mod 2 = 0 Then  p = p + a(i)  Else  q = q + a(i)

    Next i

    x =      ③      

    If x = Val(Mid(code,13,1)) Then res = "验证正确" Else res = "验证错误"

    Label3.Caption = res

    End Sub

    请回答下列问题:

    1. (1) 根据题意,若加密条形码是“8025530167878”(不含引号),则原文的后4位是
    2. (2) 在划线处填入合适的代码。

       ② ③ 

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