Tracks
/
OCaml
OCaml
/
Übungen
/
ISBN-Prüfer
ISBN-Prüfer

ISBN-Prüfer

Einfach

Anleitung

Mit dem ISBN-10-Prüfverfahren lassen sich Buchidentifikationsnummern validieren. Normalerweise enthalten sie Bindestriche und sehen so aus: 3-598-21508-8

ISBN

Das ISBN-10-Format besteht aus 9 Ziffern (0 bis 9) plus einem Prüfzeichen (entweder eine Ziffer oder ausschließlich ein X). Ist das Prüfzeichen ein X, steht es für den Wert '10'. Die Nummern können mit oder ohne Bindestriche angegeben werden, und ihre Gültigkeit lässt sich mit der folgenden Formel prüfen:

(d₁ * 10 + d₂ * 9 + d₃ * 8 + d₄ * 7 + d₅ * 6 + d₆ * 5 + d₇ * 4 + d₈ * 3 + d₉ * 2 + d₁₀ * 1) mod 11 == 0

Ist das Ergebnis 0, ist die ISBN-10 gültig, andernfalls ist sie ungültig.

Beispiel

Nehmen wir die ISBN-10 3-598-21508-8. Wir setzen sie in die Formel ein und erhalten:

(3 * 10 + 5 * 9 + 9 * 8 + 8 * 7 + 2 * 6 + 1 * 5 + 5 * 4 + 0 * 3 + 8 * 2 + 8 * 1) mod 11 == 0

Da das Ergebnis 0 ist, ist unsere ISBN damit gültig.

Aufgabe

Das Programm erhält einen String und soll prüfen, ob der übergebene String eine gültige ISBN-10 ist. Um das umzusetzen, musst du dir Gedanken darüber machen, wie der String vor der Berechnung der Prüfziffer der ISBN aufbereitet und zerlegt wird.

Das Programm soll ISBN-10 sowohl mit als auch ohne trennende Bindestriche prüfen können.

Hinweise

In manchen Sprachen kann die Umwandlung von Strings in Zahlen knifflig sein. Jetzt wird es noch kniffliger, denn die Prüfziffer einer ISBN-10 kann ein 'X' sein (das für '10' steht). Zum Beispiel ist 3-598-21507-X eine gültige ISBN-10.

Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab
OCaml Exercism

Bereit, mit ISBN-Prüfer zu starten?

Melde dich bei Exercism an, um OCaml mit 60 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.