modulo mit while schleifen berechnen

Neue Frage »

Hamsterchen Auf diesen Beitrag antworten »
modulo mit while schleifen berechnen
hallo alle zusammen,
hab da grad so ne komische aufgabe, bei der ich dachte, ich komme auf die lösung, aber irgendwie steh ich aufm schlauch ^^
also es geht darum, y mod z zu berechnen, indem man nur while schleifen benutzt.

also nur wertzuweisungen wie x=y-z und while-schleifen, die nur abfragen können, ob etwas ungleich 0 ist.

kann mir wer helfen? dürfte ja net schwer sein oder?

lg
hamsterchen
chrizke Auf diesen Beitrag antworten »

Ok,

was ist denn der Modulo? Was bedeutet er anschaulich?
Hamsterchen Auf diesen Beitrag antworten »

ja man schaut halt, welcher rest bleibt, wenn ich y so oft von z abziehe, bis z zwischen 0 und y-1 liegt, also z.bsp. ist 13 mod 5 = 3, weil 13-5=8 und 8-5=3 und 3 ist dann zwischen 0 und 4.
wenn ich in der whileschleife größer bzw. kleiner abfragen könnte, dann wäre es auch etwas leichter =)

lg
kiste Auf diesen Beitrag antworten »

Kopiere den Inhalt in eine weitere Variable.
Lasse in der Schleife eine Variable größer werden(um z) und eine kleiner.

Mit einer verschachtelten While-Schleife kannst du eine Variable setzen ob eine der beiden im richtigen Bereich.

Beispiel:
Modulo 2
Zahl 5

e1 = 5
e2 = 5

erster Durchlauf:
e1 = 7
e2 = 3
ist e1=1 oder e1=0 oder e2=1 oder e2=0? nein

zweiter Durchlauf:
e1 = 9
e2 = 1

ist e1=1 oder e1=0 oder e2=1 oder e2=0? ja -> setze variable und breche ab
Steffen Bühler Auf diesen Beitrag antworten »
RE: modulo mit while schleifen berechnen
Zitat:
also es geht darum, y mod z zu berechnen, indem man nur while schleifen benutzt.

also nur wertzuweisungen wie x=y-z und while-schleifen, die nur abfragen können, ob etwas ungleich 0 ist.


In welcher Sprache gibt's denn solche whiles? Die sollten verboten werden.

Egal, wenn's partout so sein soll: zieh z immer wieder von y ab und merke Dir sgn(y), also das Vorzeichen. Sobald sich das ändert (also altes signum + neues signum Null ist) oder selber Null ist, kannst Du abbrechen.

Viele Grüße
Steffen
Hamsterchen Auf diesen Beitrag antworten »
RE: modulo mit while schleifen berechnen
Zitat:
Original von Steffen Bühler
In welcher Sprache gibt's denn solche whiles? Die sollten verboten werden.

genau ^^

also eure vorschläge benutzen aber einmal if und das mit dem signum geht ja auch nicht.
also wir dürfen nur while x=/ 0 und sowas wie x1:=z benutzen, sonst nix -.-
 
 
Steffen Bühler Auf diesen Beitrag antworten »
RE: modulo mit while schleifen berechnen
Zitat:
also wir dürfen nur while x=/ 0 und sowas wie x1:=z benutzen, sonst nix -.-


Dann gehört das zwar eher ins Informatikforum, aber trotzdem: eine Variable x, die dann Null wird, wenn y Null ist ODER wenn das alte y positiv UND das neue negativ ist, darf doch wohl in die while-Abfrage rein.

Oder was soll das für eine Sprache sein? Eine Eigenentwicklung des Dozenten? Um die Studenten zu ärgern?

Viele Grüße
Steffen
Hamsterchen Auf diesen Beitrag antworten »

ich weiß nicht, was das für eine sprache sein soll xD war leider auch nicht in der vorlesung, aber es steht halt so in der aufgabenstellung und so wurde es mir auch gesagt.
wenn ich die lösung bekomme, dann poste ich sie mal =)

lg
hamsterchen
chrizke Auf diesen Beitrag antworten »

Die wohl kürzeste Schleife, die das beschreibt, was du schon sagtest, würde wohl wie folgt aussehen:
code:
1:
2:
3:
4:
while((x-y)>=0) do
    x = x-y;
end
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »