27 lines
683 B
Plaintext
27 lines
683 B
Plaintext
data "710889", "B0YBKJ", "406566", "B0YBLH", "228276", "B0YBKL", "557910", "B0YBKR", "585284", "B0YBKT", "B00030", "AB", "B00A03", ""
|
|
|
|
do
|
|
read d$
|
|
if d$ = "" break
|
|
print sedol$(d$)
|
|
loop
|
|
|
|
sub sedol$(d$)
|
|
LOCAL a, i, s, weights$(1)
|
|
|
|
a = len(d$)
|
|
if a < 6 or a > 6 return d$ + ": Error in length"
|
|
|
|
for i = 1 to 6
|
|
if not instr("BCDFGHJKLMNPQRSTVWXYZ0123456789", mid$(d$, i, 1)) return d$ + ": Error in symbol " + mid$(d$, i, 1)
|
|
next
|
|
|
|
a = token("1 3 1 7 3 9", weights$())
|
|
|
|
FOR i = 1 TO 6
|
|
a = ASC(MID$(d$, i, 1)) - 48
|
|
s = s + (a + 3 * (a > 9)) * val(weights$(i))
|
|
NEXT
|
|
return d$ + CHR$(48 + mod(10 - mod(s, 10), 10))
|
|
end sub
|