Hallo liebe Gemeinde 
ich habe eine Programmieraufgabe von meinem Prof. bekommen und stecke irgendwie fest
Erstmal die Aufgabe:
Euro-Banknoten der ersten Serie haben eine eindeutige Seriennummer, die aus
einem führenden Großbuchstaben, einer Zahl mit 10 Ziffern und einer Prüfziffer
bestehen.
Beispiel: Z 6016220022 6
Der führende Buchstabe codiert die nationale Zentralbank (NZB), die den Geldschein
in Umlauf gebracht hat. Sie wird NZB-Nummer genannt.
Die Prüfziffer berechnet sich wie folgt:
Der Buchstabe wird durch seine Position im lateinischen Alphabet ersetzt (bei
A also 1, bei Z 26)
Es wird die Quersumme dieser Positionszahl und der 10 Ziffern berechnet (im
Beispiel 2+6+6+0+1+6+2+2+0+0+2+2 = 29)
Von der Quersumme wird der ganzzahlige Rest zum nächst kleineren
Vielfachen von 9 bestimmt (Modulo 9) (im Beispiel 2)
Der Rest wird von 8 subtrahiert. Das Resultat ist die Prüfziffer (im Beispiel 6).
Es sei denn, die Subtraktion von 8 vom Rest ergibt den Wert 0, dann ist die
Prüfziffer 9.
Implementieren Sie in Java eine Funktion, die als ersten Parameter eine NZBNummer
als Buchstaben (char-Wert) und als zweiten Parameter ein 10-elementiges
Array mit int-Werten übergeben bekommt. Die Funktion soll die Prüfziffer der
entsprechenden Euro-Banknote berechnen und als int-Wert zurückliefern.
static int getEuroPruefziffer(char nzbNummer, int[] ziffern)
Sie können davon ausgehen, dass die übergebenen Parameter korrekt sind.
Schreiben Sie weiterhin ein kleines Testprogramm für Ihre Funktion.
Mein Code sieht bislang so aus:
package example;
public class Aufgabe16 {
public static void main(String[] args) {
IO.println ("Deine Prüffzifferlautet: " + nzbNummer1 + ziffern);
}
static int getEuroPruefziffer(char nzbNummer, int[] ziffern){
nzbNummer = (char) ('a' + 25*Math.random());
ziffern = new int[10];
ziffern [1] = (int) (Math.random()*9);
ziffern [2] = (int) (Math.random()*9);
ziffern [3] = (int) (Math.random()*9);
ziffern [4] = (int) (Math.random()*9);
ziffern [5] = (int) (Math.random()*9);
ziffern [6] = (int) (Math.random()*9);
ziffern [7] = (int) (Math.random()*9);
ziffern [8] = (int) (Math.random()*9);
ziffern [9] = (int) (Math.random()*9);
ziffern [10] = (int) (Math.random()*9);
return ziffern.length;
}
}
Er gibt mir leider nicht d gewünschte Ergebniss aus :/
wie kann ich die Funktion am besten oben einbinden?
Liebe Grüße
Katchy
ich habe eine Programmieraufgabe von meinem Prof. bekommen und stecke irgendwie fest
Erstmal die Aufgabe:
Euro-Banknoten der ersten Serie haben eine eindeutige Seriennummer, die aus
einem führenden Großbuchstaben, einer Zahl mit 10 Ziffern und einer Prüfziffer
bestehen.
Beispiel: Z 6016220022 6
Der führende Buchstabe codiert die nationale Zentralbank (NZB), die den Geldschein
in Umlauf gebracht hat. Sie wird NZB-Nummer genannt.
Die Prüfziffer berechnet sich wie folgt:
Der Buchstabe wird durch seine Position im lateinischen Alphabet ersetzt (bei
A also 1, bei Z 26)
Es wird die Quersumme dieser Positionszahl und der 10 Ziffern berechnet (im
Beispiel 2+6+6+0+1+6+2+2+0+0+2+2 = 29)
Von der Quersumme wird der ganzzahlige Rest zum nächst kleineren
Vielfachen von 9 bestimmt (Modulo 9) (im Beispiel 2)
Der Rest wird von 8 subtrahiert. Das Resultat ist die Prüfziffer (im Beispiel 6).
Es sei denn, die Subtraktion von 8 vom Rest ergibt den Wert 0, dann ist die
Prüfziffer 9.
Implementieren Sie in Java eine Funktion, die als ersten Parameter eine NZBNummer
als Buchstaben (char-Wert) und als zweiten Parameter ein 10-elementiges
Array mit int-Werten übergeben bekommt. Die Funktion soll die Prüfziffer der
entsprechenden Euro-Banknote berechnen und als int-Wert zurückliefern.
static int getEuroPruefziffer(char nzbNummer, int[] ziffern)
Sie können davon ausgehen, dass die übergebenen Parameter korrekt sind.
Schreiben Sie weiterhin ein kleines Testprogramm für Ihre Funktion.
Mein Code sieht bislang so aus:
package example;
public class Aufgabe16 {
public static void main(String[] args) {
IO.println ("Deine Prüffzifferlautet: " + nzbNummer1 + ziffern);
}
static int getEuroPruefziffer(char nzbNummer, int[] ziffern){
nzbNummer = (char) ('a' + 25*Math.random());
ziffern = new int[10];
ziffern [1] = (int) (Math.random()*9);
ziffern [2] = (int) (Math.random()*9);
ziffern [3] = (int) (Math.random()*9);
ziffern [4] = (int) (Math.random()*9);
ziffern [5] = (int) (Math.random()*9);
ziffern [6] = (int) (Math.random()*9);
ziffern [7] = (int) (Math.random()*9);
ziffern [8] = (int) (Math.random()*9);
ziffern [9] = (int) (Math.random()*9);
ziffern [10] = (int) (Math.random()*9);
return ziffern.length;
}
}
Er gibt mir leider nicht d gewünschte Ergebniss aus :/
wie kann ich die Funktion am besten oben einbinden?
Liebe Grüße
Katchy