Hilfe bei Java - ungrade Zahlen?

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.
Woher ich das weiß:Hobby – Programmieren ist mein Hobby & Beruf

PWolff  03.10.2019, 20:30

Es handelt sich hier offensichtlich um eine Anfänger-Aufgabe. Da ist ein Array Overkill.

2
mandfredt 
Beitragsersteller
 03.10.2019, 19:53

Kannst du mir sagen wie ich das array einbauch ich kann das nicht weil ich das noch nicht hatte

0
MrAmazing2  03.10.2019, 19:54
@mandfredt

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!

0
MrAmazing2  03.10.2019, 19:57
@mandfredt

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)

0
PWolff  03.10.2019, 20:51
@mandfredt

Ersetze das

{ Zahl in Array speichern}

durch

{ Zahl ausgeben }

bzw.

        System.out.print(i);    // Zahl ausgeben
        System.out.print(" ");  // Trennzeichen zwischen Zahlen
1