ISBN-Prüfer

ISBN-Prüfer

Mittel

Anleitung

Der ISBN-10-Verifizierungsprozess wird verwendet, um Buchidentifikationsnummern zu validieren. Diese enthalten normalerweise 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 nur ein X). Ist das Prüfzeichen ein X, steht es für den Wert '10'. Diese Nummern können mit oder ohne Bindestriche angegeben werden, und ihre Gültigkeit lässt sich mit der folgenden Formel prüfen:

(x1 * 10 + x2 * 9 + x3 * 8 + x4 * 7 + x5 * 6 + x6 * 5 + x7 * 4 + x8 * 3 + x9 * 2 + x10 * 1) mod 11 == 0

Ist das Ergebnis 0, dann ist es eine gültige ISBN-10, 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, beweist das, dass unsere ISBN gültig ist.

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 über die Vorverarbeitung und das Parsen des Strings machen, bevor du die Prüfziffer für die ISBN berechnest.

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

Zu beachten

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

Bonusaufgaben

  • Erzeuge eine gültige ISBN-13 aus der eingegebenen ISBN-10 (und verifiziere sie vielleicht noch einmal mit einem abgeleiteten Verifizierer).

  • Erzeuge eine gültige ISBN, vielleicht sogar ausgehend von einer vorgegebenen ISBN.

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

Bereit, mit ISBN-Prüfer zu starten?

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