B
BloodyKnife
Gast
Hi @ all,
wir haben in der Klasse (einjährige Berufsfachschule Informatik) die Aufgabe bekommen, ein Programm zu schreiben, welches in der Lage ist anhand der verschiedenen Nummern die unten auf dem Perso draufstehen dessen Gültigkeit zu "berechnen".
Nun das Programm habe ich soweit fertig..nur habe ich es bis heute nicht hingekriegt das er die Prüfziffer "richtig" ausrechnet...dabei habe ich mich an alle Vorgaben gehalten die wir hatten.
Unter anderem mussten wir auf unserem Eigentlichen Wissensstand in der Klasse (for- und while-schleifen & if-Anweisungen) beschränken. Bei meinem Programm habe ich NUR for-schleifen und if-anweisungen verwendet.
Kann mir vielleicht jemand sagen was genau ich in dem Programm falsch gemacht habe?
Wäre sehr Hilfreich und Dankbar...weil ich hab den Quelltext schon einige male abgeändert aber ohne Erfolg
Hier der Quelltext:
[/code]
wir haben in der Klasse (einjährige Berufsfachschule Informatik) die Aufgabe bekommen, ein Programm zu schreiben, welches in der Lage ist anhand der verschiedenen Nummern die unten auf dem Perso draufstehen dessen Gültigkeit zu "berechnen".
Nun das Programm habe ich soweit fertig..nur habe ich es bis heute nicht hingekriegt das er die Prüfziffer "richtig" ausrechnet...dabei habe ich mich an alle Vorgaben gehalten die wir hatten.
Unter anderem mussten wir auf unserem Eigentlichen Wissensstand in der Klasse (for- und while-schleifen & if-Anweisungen) beschränken. Bei meinem Programm habe ich NUR for-schleifen und if-anweisungen verwendet.
Kann mir vielleicht jemand sagen was genau ich in dem Programm falsch gemacht habe?
Wäre sehr Hilfreich und Dankbar...weil ich hab den Quelltext schon einige male abgeändert aber ohne Erfolg
Hier der Quelltext:
Code:
//Hendrik Alexander Mennen
//Edewechter Landstraße 85
//26131 Oldenburg
//015112419182
class persopruefung
{
public static void main(String args[])
{
int pruefziffer_pn=0, pruefziffer_gb=0, pruefziffer_amt=0;
int personalausweisnummer=0, geburtsdatum=0, amtsstelle=0;
int arbeiten=0, ergebnis=0, faktor=0, zaehler=1;
int finale_pruefziffer = 0, letzte_ziffer = 0;
personalausweisnummer = IO.readInt("Bitte geben Sie die ersten 9 Ziffern des ersten Blockes ein: ");
geburtsdatum = IO.readInt("Bitte geben Sie die ersten 6 Ziffern des zweiten Blockes ein: ");
amtsstelle = IO.readInt("Bitte geben Sie die ersten 6 Ziffern des dritten Blockes ein: ");
//Arbeitsschritt Personalausweisnummer
for(zaehler = 1;zaehler <=9 ;zaehler++)
{
arbeiten = personalausweisnummer % 10;
if (zaehler == 1 || zaehler == 4 || zaehler == 7)
{
faktor = 7;
}
if (zaehler == 2 || zaehler == 5 || zaehler == 8)
{
faktor = 3;
}
if (zaehler == 3 || zaehler == 6 || zaehler == 9)
{
faktor = 1;
}
ergebnis = arbeiten * faktor;
pruefziffer_pn = (ergebnis % 10) + pruefziffer_pn;
}
zaehler = 1;
//Arbeitsschritt Geburtsdatum
for (zaehler = 1; zaehler<=6; zaehler++)
{
arbeiten = geburtsdatum % 10;
if (zaehler == 1 || zaehler == 4)
{
faktor = 7;
}
if (zaehler == 2 || zaehler == 5)
{
faktor = 3;
}
if (zaehler == 3 || zaehler == 6)
{
faktor = 1;
}
ergebnis = arbeiten * faktor;
pruefziffer_gb = (ergebnis % 10) + pruefziffer_gb;
}
zaehler = 1;
//Arbeitsschritt Amtskennzahl
for (zaehler = 1; zaehler<=6; zaehler++)
{
arbeiten = amtsstelle % 10;
if (zaehler == 1 || zaehler == 4)
{
faktor = 7;
}
if (zaehler == 2 || zaehler == 5)
{
faktor = 3;
}
if (zaehler == 3 || zaehler == 6)
{
faktor = 1;
}
ergebnis = arbeiten * faktor;
pruefziffer_amt = (ergebnis % 10) + pruefziffer_amt;
}
System.out.println("Personalausweisnummer: " + personalausweisnummer + " und Pruefziffer: " + pruefziffer_pn);
System.out.println("Geburtsdatum: " + geburtsdatum + " und Pruefziffer: " + pruefziffer_gb);
System.out.println("Amtskennzahl: " + amtsstelle + " und Pruefziffer: " + pruefziffer_amt);
zaehler = 1;
//Arbeitsschritt 24-Ziffern-Rechnung
for (zaehler = 1; zaehler<=24; zaehler++)
{
if (zaehler == 1 || zaehler == 4 || zaehler == 7)
{
faktor = 7;
arbeiten = personalausweisnummer % 10;
ergebnis = (arbeiten * faktor) % 10;
}
if (zaehler == 2 || zaehler == 5 || zaehler == 8)
{
faktor = 3;
arbeiten = personalausweisnummer % 10;
ergebnis = (arbeiten * faktor) % 10;
}
if (zaehler == 3 || zaehler == 6 || zaehler == 9)
{
faktor = 1;
arbeiten = personalausweisnummer % 10;
ergebnis = (arbeiten * faktor) % 10;
}
if (zaehler == 10)
{
faktor = 7;
finale_pruefziffer = finale_pruefziffer + (pruefziffer_pn * faktor) % 10;
}
if (zaehler == 11 || zaehler == 14)
{
faktor = 3;
arbeiten = geburtsdatum % 10;
ergebnis = (arbeiten * faktor) % 10;
}
if (zaehler == 12 || zaehler == 15)
{
faktor = 1;
arbeiten = geburtsdatum % 10;
ergebnis = (arbeiten * faktor) % 10;
}
if (zaehler == 13 || zaehler == 16)
{
faktor = 7;
arbeiten = geburtsdatum % 10;
ergebnis = (arbeiten * faktor) % 10;
}
if (zaehler == 17)
{
faktor = 3;
finale_pruefziffer = finale_pruefziffer + (pruefziffer_gb * faktor) % 10;
}
if (zaehler == 18 || zaehler == 21)
{
faktor = 1;
arbeiten = amtsstelle % 10;
ergebnis = (arbeiten * faktor) % 10;
}
if (zaehler == 19 || zaehler == 22)
{
faktor = 7;
arbeiten = amtsstelle % 10;
ergebnis = (arbeiten * faktor) % 10;
}
if (zaehler == 20 || zaehler == 23)
{
faktor = 3;
arbeiten = amtsstelle % 10;
ergebnis = (arbeiten * faktor) % 10;
}
if (zaehler == 24)
{
faktor = 1;
finale_pruefziffer = finale_pruefziffer + (pruefziffer_amt * faktor) % 10;
}
finale_pruefziffer = finale_pruefziffer + ergebnis;
}
letzte_ziffer = finale_pruefziffer % 10;
System.out.println("Finale Pruefziffer: " + letzte_ziffer);
}
}