Hallo,
ich möchte von niemanden wissen, wie der folgende Text zu Coden ist, mich interessiert lediglich die Fett markierte Zeile.
Hier die Angabe:
Bücher werden eindeutig identifiziert durch die ISBN (International Standard Book
Number). Diese Nummer besteht aus neun bedeutungsvollen Ziffern und einer Prüfziffer
(das ist die letzte, zehnte Ziffer). Beispiele für ISBNs sind "3-86640-001-2", "3-446-19313-
8" oder "0-7475-5100-6" (die Bindestriche können an verschiedenen Stellen stehen und
trennen die Bestandteile Land, Verlag, Titel und Prüfziffer).
a) Schreiben Sie eine Methode pruefziffer, die eine ISBN als Parameter übergeben
bekommt und als Ergebnis (char) die Prüfziffer zurück liefert.
Der Parameter darf nur Ziffern, Leerzeichen und Bindestriche enthalten; Leerzeichen und
Bindestriche werden bei der Bearbeitung einfach ignoriert. Die Anzahl der Ziffern muss
genau neun sein. In allen anderen Fällen – unerlaubte Zeichen, zu viel oder zu wenig
Ziffern – wird einfach ein Fragezeichen als Ergebnis geliefert.
Die Prüfziffer ergibt sich wie folgt:
● aus den ersten neun Ziffern wird eine gewichtete Quersumme gebildet: erste Ziffer
mal 1, plus zweite Ziffer mal 2, plus dritte Ziffer mal 3, usw. bis, neunte Ziffer mal
neun.
● von dieser Quersumme wird der Rest genommen, der bei der Division durch 11
entsteht.
● falls der Rest 10 ist, wird ein großes X geliefert, ansonsten die entsprechende
Ziffer.
Sie dürfen bei Ihren Berechnungen davon ausgehen, dass bereits die Methoden
digitToInt und intToDigit (siehe nachfolgender Programmrahmen) vorliegen, die
eine Ziffer (char) in eine Zahl, bzw. eine (einstellige) Zahl in ein Ziffer-Zeichen umwandeln
(Beispiele: digitToInt('5') → 5, intToDigit(5) → '5').
Ich hab das ganze schon gecodet, lediglich verstehe ich die fett dargestellte Zeile nicht ganz. Welche entsprechende Ziffer wird hier gemeint, falls der Rest nicht 10 ist? Die Funktion kann ja bloß char-Werte zurückgeben und keine Ziffern?
Es wäre nett, wenn mir das jemand kurz vermitteln könnte, da ich gerade aufm Schlauch stehe...
Danke
Gruß
ich möchte von niemanden wissen, wie der folgende Text zu Coden ist, mich interessiert lediglich die Fett markierte Zeile.
Hier die Angabe:
Bücher werden eindeutig identifiziert durch die ISBN (International Standard Book
Number). Diese Nummer besteht aus neun bedeutungsvollen Ziffern und einer Prüfziffer
(das ist die letzte, zehnte Ziffer). Beispiele für ISBNs sind "3-86640-001-2", "3-446-19313-
8" oder "0-7475-5100-6" (die Bindestriche können an verschiedenen Stellen stehen und
trennen die Bestandteile Land, Verlag, Titel und Prüfziffer).
a) Schreiben Sie eine Methode pruefziffer, die eine ISBN als Parameter übergeben
bekommt und als Ergebnis (char) die Prüfziffer zurück liefert.
Der Parameter darf nur Ziffern, Leerzeichen und Bindestriche enthalten; Leerzeichen und
Bindestriche werden bei der Bearbeitung einfach ignoriert. Die Anzahl der Ziffern muss
genau neun sein. In allen anderen Fällen – unerlaubte Zeichen, zu viel oder zu wenig
Ziffern – wird einfach ein Fragezeichen als Ergebnis geliefert.
Die Prüfziffer ergibt sich wie folgt:
● aus den ersten neun Ziffern wird eine gewichtete Quersumme gebildet: erste Ziffer
mal 1, plus zweite Ziffer mal 2, plus dritte Ziffer mal 3, usw. bis, neunte Ziffer mal
neun.
● von dieser Quersumme wird der Rest genommen, der bei der Division durch 11
entsteht.
● falls der Rest 10 ist, wird ein großes X geliefert, ansonsten die entsprechende
Ziffer.
Sie dürfen bei Ihren Berechnungen davon ausgehen, dass bereits die Methoden
digitToInt und intToDigit (siehe nachfolgender Programmrahmen) vorliegen, die
eine Ziffer (char) in eine Zahl, bzw. eine (einstellige) Zahl in ein Ziffer-Zeichen umwandeln
(Beispiele: digitToInt('5') → 5, intToDigit(5) → '5').
Ich hab das ganze schon gecodet, lediglich verstehe ich die fett dargestellte Zeile nicht ganz. Welche entsprechende Ziffer wird hier gemeint, falls der Rest nicht 10 ist? Die Funktion kann ja bloß char-Werte zurückgeben und keine Ziffern?
Es wäre nett, wenn mir das jemand kurz vermitteln könnte, da ich gerade aufm Schlauch stehe...
Danke
Gruß