Kurzusok
/
Delphi Pascal
Delphi Pascal
/
Feladatok
/
ISBN-ellenőrző
ISBN-ellenőrző

ISBN-ellenőrző

Közepes

Utasítások

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

ISBN

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.

Példa

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.

Feladat

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.

Megjegyzések

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.

Bónuszfeladatok

  • Á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.

Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
Delphi Pascal Exercism

Készen állsz elkezdeni a(z) ISBN-ellenőrző feladatot?

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.