Kurzusok
/
Standard ML
Standard ML
/
Feladatok
/
ISBN-ellenőrző
ISBN-ellenőrző

ISBN-ellenőrző

Könnyű

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 (ez 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 anélkül is meg lehet adni, az érvényességük pedig a következő képlettel ellenőrizhető:

(d₁ * 10 + d₂ * 9 + d₃ * 8 + d₄ * 7 + d₅ * 6 + d₆ * 5 + d₇ * 4 + d₈ * 3 + d₉ * 2 + d₁₀ * 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 azonosítót. 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

A programnak a kapott string alapján el kell döntenie, hogy a megadott string érvényes ISBN-10-e. Ennek megvalósításához át kell gondolni, hogyan dolgozod fel és értelmezed a stringet, mielőtt kiszámítod az ISBN ellenőrző számjegyét.

A programnak az ISBN-10 azonosítókat kötőjelekkel és anélkül is ellenőriznie kell tudnia.

Figyelmeztetések

A stringek számokká alakítása bizonyos nyelvekben trükkös lehet. Most pedig még trükkösebb, mert az ISBN-10 ellenőrző számjegye lehet „X” is (ami a „10”-et jelöli). Például a 3-598-21507-X érvényes ISBN-10.

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

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

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Standard ML nyelvet 90 feladat segítségével, valódi emberi mentorálással, mindez ingyen.