请填补流程图中的空缺(1)~(4)。 设“程序员考试大纲”标准书号前9个数字为7-302-08493,请写出其校验码。

admin2008-11-20  41

问题 请填补流程图中的空缺(1)~(4)。
设“程序员考试大纲”标准书号前9个数字为7-302-08493,请写出其校验码。

选项

答案9

解析 制订标准书号的目的是实现图书的国际统一编码,以便于实现计算机化的图书管理信息系统,使出版社内的图书管理、书库中的图书管理以及书店的图书销售管理具有更高的工作效率和管理水平。
   标准书号采用分段编码,总长度是统一的,而段的长度是不统一的。例如,中国的出版者号规定为2~7位数字。对较大的出版社分配比较短的码,留出较长的书名号为较多的书进行编码。
   标准书号的最后一位是校验码。设置校验码可以大大减少录入错误造成的管理混乱。
   校验码一般由计算机程序产生。当操作人员录入前9个数字后,计算机就会自动启动计算校验码的过程,输出正确的校验码。
   在书店(或书库),不论是建库还是查询检索,在手工输入带校验码的标准书号后,计算机就会自动启动校验过程,判断是否输入错误。
   计算校验码的过程中,首先要计算S=10*a(1)+9*a(2)+8*a(3)+…+2*a(9),这就要采用循环。在循环前应设置初始值S=0,在循环体内应执行S+(11-I)*a(1)→S或S+ (I+1)*a(10-I)→S(其中的乘号“*”不要丢失)。该循环应对循环变量I=1~9进行(步长默认为1),因此,(2)处应填9,(3)处填S+(11-I)*a(I)→S或S+(I+1)*a(10-I)→S。
   接着再计算该S值除以11的余数R。显然0R10。由于R与校验码之和应能被 11整除,因此,校验码应等于MOD(11-R,11)(填11-R者没有考虑R=0的情况)。从而(4)处应填MOD(11-R,11)。在校验码等于10的情况,还应以符号X表示之。
   对标准书号的校验过程中,首先要将校验码为x的情况转换成数据10,以便于后续计算。为了计算S=10*a(1)+9*a(2)+8*a(3)+…+1*a(10),需要采用循环。在循环前,应设置初始值S=0,对循环变量I从1到10(步长默认为1),执行语句S+(10-I+1)*a(I)→S或S+I*a(11-I)→S,因此,(1)处填(11-I)*a(I)或I*a(11-I)。
   计算出S的值后,还应判断S除以11的余数是否为0。若余数为0,说明S能够被 11整除,表示校验结果正确:若余数非0,则说明输入的标准书号有错(可能是校验码输入有错,也可能是前面的数字输入有错)。这时计算机会输出错误信息,请操作人员仔细校对改正。
转载请注明原文地址:https://kaotiyun.com/show/AsjZ777K
0

随机试题
最新回复(0)