Berechnung von Punkten

Danke, meins sieht jetzt so aus, er gibt aber noch nicht die beiden letzten Kriterien richtig an :(

public class TutorialCertificate {

public static void main(String[] args) {

int aufgabenzettel1 = Integer.parseInt(args[0]) + Integer.parseInt(args[1]);
int aufgabenzettel2 = Integer.parseInt(args[2]) + Integer.parseInt(args[3]);
int aufgabenzettel3 = Integer.parseInt(args[4]) + Integer.parseInt(args[5]);
int aufgabenzettel4 = Integer.parseInt(args[6]) + Integer.parseInt(args[7]);
int aufgabenzettel5 = Integer.parseInt(args[8]) + Integer.parseInt(args[9]);
int aufgabenzettel6 = Integer.parseInt(args[10]) + Integer.parseInt(args[11]);

if (aufgabenzettel1+aufgabenzettel2+aufgabenzettel3+aufgabenzettel4+aufgabenzettel5+aufgabenzettel6 >= 60 && aufgabenzettel1>=2 && aufgabenzettel2>=2 && aufgabenzettel3>=2 && aufgabenzettel4>=2 && aufgabenzettel5>=2 && aufgabenzettel6>=2 )
{
System.out.println("Glueckwunsch! Sie erhalten den Schein");
}
if (aufgabenzettel1+aufgabenzettel2+aufgabenzettel3+aufgabenzettel4+aufgabenzettel5+aufgabenzettel6 < 60)
{
System.out.println("Nicht Bestanden da Mindestpunktzahl nicht erreicht");
}
if (aufgabenzettel1<2 && aufgabenzettel2<2 && aufgabenzettel3<2 && aufgabenzettel4<2 && aufgabenzettel5<2 && aufgabenzettel6<2)
{
System.out.println("Schein nicht gewaehrt: Es wurden nicht 5 von 6 Zettel ausreichend bearbeitet");
}
if (aufgabenzettel1+aufgabenzettel2+aufgabenzettel3+aufgabenzettel4+aufgabenzettel5+aufgabenzettel6 < 60 && aufgabenzettel1>=2 && aufgabenzettel1<2 && aufgabenzettel2<2 && aufgabenzettel3<2 && aufgabenzettel4<2 && aufgabenzettel5<2 && aufgabenzettel6<2)
{
System.out.println("Schein nicht gewaehrt: Es wurden beide Kriterien nicht erfuellt");
}
}

}
 
Deine Lösung ist so aber nicht richtig!
Mein Tip: Mach dir 4 verschiedene Übergabeparameter, die die 4 Fälle abdecken und test, bis es stimmt.

Code:
if (aufgabenzettel1+aufgabenzettel2+aufgabenzettel3+aufgabenzettel4+aufgabenzettel5+
aufgabenzettel6 >= 60
&& aufgabenzettel1>=2 && aufgabenzettel2>=2 && aufgabenzettel3>=2 && aufgabenzettel4>=2
&& aufgabenzettel5>=2 && aufgabenzettel6>=2 )

ist true wenn du mehr als mehr oder gleich 60 punkte hat und alle Zettel mehr als mehr oder gleich 2 Punkte haben. Kann sein, dass das nach deiner Aufgabenstellung so sein soll. Dachte aber bei 5 Zetteln bestanden und mehr oder gleich 60 Punkte ist es auch bestanden.

Code:
if (aufgabenzettel1+aufgabenzettel2+aufgabenzettel3+aufgabenzettel4+aufgabenzettel5
+aufgabenzettel6 < 60)
Das ist true bei weniger als 60 Punkten. Das scheint mir richtig zu sein.

ABER

Code:
if (aufgabenzettel1<2 && aufgabenzettel2<2 && aufgabenzettel3<2 &&
aufgabenzettel4<2 && aufgabenzettel5<2 && aufgabenzettel6<2)

das ist TRUE wenn alle(!) Zettel weniger als 2 Punkte haben. Das ist nicht das, was du abfragen willst! Es sollen weniger als 5 Zettel bestanden sein, um den Schein nicht zu bekommen. Du fragst ob alle 6 nicht bestanden sind.


Code:
if (aufgabenzettel1+aufgabenzettel2+aufgabenzettel3+aufgabenzettel4+aufgabenzettel5
+aufgabenzettel6 < 60 && aufgabenzettel1>=2 && aufgabenzettel1<2 && aufgabenzettel2<2 &&
aufgabenzettel3<2 && aufgabenzettel4<2 && aufgabenzettel5<2 && aufgabenzettel6<2)
Das hier ist so falsch da weiss ich nicht, was ich dazu noch schreiben soll. Das wird glaub ich nie TRUE. Ein Beispiel:

Code:
aufgabenzettel1>=2 && aufgabenzettel1<2
Wie soll Aufgabenzettel1 >= 2 und <2 sein Welche Zahl ist größer, gleich und kleiner 2, gleichzeitig!!

So das wars jetzt von mir. Mehr schreib ich nicht. Jetzt sollte es eigentlich was werden, wenn nicht...
Bewerten nicht vergessen bitte!
 
Zuletzt bearbeitet:
Wie würden die letzten beiden Kriterien richtig Deiner Meinung nach aussehen? Kannst Du es verbessern?
 
Also..

in meiner Lösung zähl ich die nicht bestandenen Zettel in sheetsFailed.
Mach das auch!

Dann mußt du nur abfragen ob sheetsFailed >1 ist.
wenn ja:
Code:
if (sheetsFailed >1)
System.out.println("Schein nicht gewaehrt: Es wurden nicht 5 von 6 Zettel ausreichend bearbeitet");


Speicher dir die Punktzahl in einer Variablen und Frag beide für das letzta ab
Code:
if (sheetsFailed >1 && gesamtPZ < 60 )
System.out.println("Schein nicht gewaehrt: Es wurden beide Kriterien nicht erfuellt");

Wer hat eigentlich diese Aufgabe gestellt
 
Zuletzt bearbeitet:
Moin,

Wie würden die letzten beiden Kriterien richtig Deiner Meinung nach aussehen? Kannst Du es verbessern?

Dein Problem hat FrankBooth doch deutlich genug beschrieben:
ein Zahl kann nicht gleichzeitig "größer gleich" UND "kleiner" als irgendwas sein (!)

Ist es wirklich nicht offensichtlich, was Du hier ändern musst :confused::confused: :eek:

Gruß
Klaus
 
Zuletzt bearbeitet:
Zurück