ISBN13 check digit: Difference between revisions
Content added Content deleted
Langurmonkey (talk | contribs) |
Not a robot (talk | contribs) (Add ABC) |
||
Line 199: | Line 199: | ||
bad</pre> |
bad</pre> |
||
=={{header|ABC}}== |
|||
<syntaxhighlight lang="abc">HOW TO REPORT valid.isbn13 str: |
|||
PUT {} IN digits |
|||
FOR d IN {0..9}: PUT d IN digits["`d`"] |
|||
IF #str <> 14 OR str item 4 <> '-': FAIL |
|||
PUT 1, 0 IN mul, sum |
|||
FOR c IN str|3 ^ str@5: |
|||
IF c not.in keys digits: FAIL |
|||
PUT sum + digits[c] * mul IN sum |
|||
PUT 4 - mul IN mul |
|||
REPORT sum mod 10 = 0 |
|||
PUT {} IN tests |
|||
PUT "978-0596528126" IN tests[1] |
|||
PUT "978-0596528120" IN tests[2] |
|||
PUT "978-1788399081" IN tests[3] |
|||
PUT "978-1788399083" IN tests[4] |
|||
FOR test IN tests: |
|||
SELECT: |
|||
valid.isbn13 test: WRITE test^": good"/ |
|||
ELSE: WRITE test^": bad"/</syntaxhighlight> |
|||
{{out}} |
|||
<pre>978-0596528126: good |
|||
978-0596528120: bad |
|||
978-1788399081: good |
|||
978-1788399083: bad</pre> |
|||
=={{header|Action!}}== |
=={{header|Action!}}== |
||
{{libheader|Action! Tool Kit}} |
{{libheader|Action! Tool Kit}} |