Hilfe bei Java - ungrade Zahlen?
Keine Ahnung, wie ich das lösen soll
2 Antworten
Der simpelste Trick um mit diversen Programmiersprachen die geraden oder ungeraden Zahlen herauszufiltern ist der sog. "Modulo-Operator", der meistens das Zeichen % hat. Es entspricht dem, was du in der Schulmathematik als "Rest" gelernt hast.
Du überprüfst in einer Zahlensequenz (z.B. "For-loop") ob die Zahl, wenn man sie durch 2 teilt einen Rest bekommt, der größer ist als 0 oder eben gleich 0 ist.
Beispiel:
7 % 2 = 1
Lies: 7 geteilt durch 2 ergibt eine beliebige Zahl mit Rest "1".
12 % 2 = 0
Lies: 12 geteilt durch 2 ergibt eine beliebige Zahl mit Rest "0".
Wie das in Java konkret gelöst wird weiß ich nicht, weil ich mit Python arbeite. Aber in jeder mir bekannten Programmiersprache macht man das so. Die Umsetzung kriegst du sicher selbst hin - ist ja auch deine Aufgabe ;)
Dafür brauchst du den MODULO-Operator. Der sagt dir, wieviel Rest beim Teilen übrig bleibt. Beispiel: 5 / 2 = 2 mit Rest 1. 5 Modulo 2 ergibt also 1 (= Der Rest).
Wenn du eine Zahl durch 2 teilst, und der Rest 0 ist, dann ist die Zahl gerade. Ist der Rest 1 ist die Zahl ungerade.
Dein Programmcode also:
Untere Grenze einlesen und als Int speichern
Obere Grenze einlesen und als Int speichern
for (int i = Untere_Grenze; i <= Obere_Grenze; i++) {
if (Zahl % 2 == 1) { Zahl in Array speichern}
}
Array ausgeben.
Kannst du mir sagen wie ich das array einbauch ich kann das nicht weil ich das noch nicht hatte
Mir fällt grad auf es geht auch ohne, sorry!
Nach dem einlesen der Grenzen den Text "Ungerade Zahlen die Zwischen _ und _ liegen:" ausgeben lassen, und dann kommt die for-schleife von oben. Und Anstatt "Zahl in Array speichern" kannst du einfach die Zahl ausgeben!
Jo, aber du gibst die einfach DIREKT aus wenn du sie findest.
Du musst die Zahlen nicht speichern. Einfach in einer Schleife die alle Zahlen durchgeht WENN UNGERADE DANN AUSGEBEN.
If ( i % 2 == 1) { gib die Zahl aus }
und das für jedes i von Untere_Grenze bis Obere_Grenze (also in der for-Schleife)
Ersetze das
{ Zahl in Array speichern}
durch
{ Zahl ausgeben }
bzw.
System.out.print(i); // Zahl ausgeben
System.out.print(" "); // Trennzeichen zwischen Zahlen
Es handelt sich hier offensichtlich um eine Anfänger-Aufgabe. Da ist ein Array Overkill.