Berechnung

Hallo,

fange gerade an, Java zu lernen, und komme bei einer Fragestellung nicht weiter.

Beim Schreiben des Programms gab es eigentlich keine Probleme, ging nur darum, 2 short-Zahlen (m und n) einzugeben und dann folgende Berechnungen durchzuführen:
ergebnis = m - (m / n * n)
rest = m % n

Und jetzt ist die Frage, warum die beiden Berechnungen immer das selbe Ergebnis liefern.

Ich weiß nicht, ob die Frage hier oder im Mathe-Forum mehr Sinn ergibt, aber ich probier es erst mal bei euch.

Danke schon mal für die Antworten…

Hallo!

Und jetzt ist die Frage, warum die beiden Berechnungen immer
das selbe Ergebnis liefern.

Warum sollten sie nicht? Das Stichwort ist „Ganzzahldivision“.
Vielleicht hilft das weiter:
http://www.galileodesign.de/openbook/javainsel5/java…

th

Sorry, aber bitte nochmal für ganz doofe. Hab das auch schon dort nachgelesen, werd aber nicht schlau daraus.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Beim Schreiben des Programms gab es eigentlich keine Probleme,
ging nur darum, 2 short-Zahlen (m und n) einzugeben und dann
folgende Berechnungen durchzuführen:
ergebnis = m - (m / n * n)

Dies ist die Berechnung, wenn ich das richtig sehe
m / n * n = m (meiner Meinung nach, oder seh ich das grad falsch)
n gegen n gekürzt = 1
m / 1 = m

dann kommt dort raus:
m - m = 0

rest = m % n

warum sollte hier denn jetzt auch 0 rauskommen… das kommt doch nur dann raus, wenn n = m ist bzw. n ein vielfaches von m ist. % ist der Modulo-Operator, d.h. es wird nicht das Ergebnis an sich ausgegeben, sondern nur der REST, der dabei übrigbleibt.
Sprich: m = 3 und n = 2, dann kommt da raus 3 % 2 = 1

Und jetzt ist die Frage, warum die beiden Berechnungen immer
das selbe Ergebnis liefern.

Ich weiß nicht, ob die Frage hier oder im Mathe-Forum mehr
Sinn ergibt, aber ich probier es erst mal bei euch.

Hab ich jetzt hier auch ein Logik-Problem??? soll da wirklich das gleiche Ergebnis rauskommen?

Kann ich grad selbst nicht nachvollziehen.

Gruss

Dies ist die Berechnung, wenn ich das richtig sehe
m / n * n = m (meiner Meinung nach, oder seh ich das grad
falsch)

So kann man das natürlich auch schreiben…

n gegen n gekürzt = 1

wie soll das denn gehen? m = m / n^2, damit wirds vielleicht klarer.

Hab ich jetzt hier auch ein Logik-Problem??? soll da wirklich
das gleiche Ergebnis rauskommen?

100%ig. gibs mal bei Java ein…

Dies ist die Berechnung, wenn ich das richtig sehe
m / n * n = m (meiner Meinung nach, oder seh ich das grad
falsch)
n gegen n gekürzt = 1
m / 1 = m

Es geht nicht um Mathe, sondern um Java und Java kürzt nichts. Sondern es wird zuerst m/n errechnet das dann mit n multipliziert. Und das Ergebnis ist, wenn n kein Teiler von m ist (und m und n von Typ Ganzzahl sind), ungleich m. Denn die Division zweier Ganzzahlen ergibt (bei Java) wieder eine Ganzzahl.

Beispiel:

5 - (5 / 2 * 2 )
5 - ( 2 * 2 )
5 - 4
1

5 % 2
1

th