Az ISBN-10 ellenőrzési folyamat segítségével lehet érvényesíteni a könyvek azonosítószámait. Ezek általában kötőjeleket tartalmaznak, és így néznek ki: 3-598-21508-8
Az ISBN-10 formátum 9 számjegyből (0-tól 9-ig) és egy ellenőrző karakterből áll (amely vagy egy számjegy, vagy kizárólag egy X). Ha az ellenőrző karakter X, az a „10” értéket jelöli. Ezeket kötőjelekkel vagy azok nélkül is meg lehet adni, érvényességük pedig a következő képlettel ellenőrizhető:
(x1 * 10 + x2 * 9 + x3 * 8 + x4 * 7 + x5 * 6 + x6 * 5 + x7 * 4 + x8 * 3 + x9 * 2 + x10 * 1) mod 11 == 0
Ha az eredmény 0, akkor az ISBN-10 érvényes, egyébként érvénytelen.
Vegyük a 3-598-21508-8 ISBN-10-et. Behelyettesítjük a képletbe, és ezt kapjuk:
(3 * 10 + 5 * 9 + 9 * 8 + 8 * 7 + 2 * 6 + 1 * 5 + 5 * 4 + 0 * 3 + 8 * 2 + 8 * 1) mod 11 == 0
Mivel az eredmény 0, ez bizonyítja, hogy az ISBN érvényes.
Adott egy string, és a programnak meg kell vizsgálnia, hogy a kapott string érvényes ISBN-10-e. Ennek megvalósításához át kell gondolnod, hogyan dolgozod fel és értelmezed a stringet, mielőtt kiszámítod az ISBN ellenőrző számjegyét.
A programnak az elválasztó kötőjelekkel és azok nélkül is képesnek kell lennie ellenőrizni az ISBN-10-et.
Bizonyos nyelvekben a stringek számokká alakítása bonyolult lehet.
Most pedig még bonyolultabb, mert az ISBN-10 ellenőrző számjegye „X” is lehet (ami a „10”-et jelöli). Például a 3-598-21507-X érvényes ISBN-10.
Állíts elő egy érvényes ISBN-13-at a bemeneti ISBN-10-ből (és esetleg ellenőrizd újra egy származtatott ellenőrzővel).
Állíts elő érvényes ISBN-t, akár egy megadott kiinduló ISBN-ből is.
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Delphi Pascal nyelvet 76 feladat segítségével, valódi emberi mentorálással, mindez ingyen.