Seite 1 von 1

EA_CP_101 Aufgabe 2

Verfasst: 04.02.10 13:20
von stag3k
Hallo liebe Mitstudenten,

in der Einsendeaufgabe zur ersten Lerneinheit taucht folgende Aufgabe auf:
Wie lässt sich der Nachkommateil z ermitteln, wenn man x durch y dividiert, wobei
x > y und y ≠ 0? Schreiben Sie genau eine Anweisung.
Löst man das mit dem Modulo Operator? Wer kann helfen und erkären?

Danke... :)

flo

Verfasst: 04.02.10 14:53
von Rumtata106
Nur mal als Konzept:

Zuerst x durch y mit Nachkommastellen teilen und davon x durch y ohne Nachkommastellen abziehen:

Bsp:
-----
x = 21; y = 5;
"Abs" als Funktion, die nur den Vorkomma-Anteil zurück liefert.

(x/y) - Abs(x/y)
= (21 / 5) - Abs(21 / 5)
= 4,2 - 4
= 0,2

HTH,
Rumtata

Verfasst: 04.02.10 14:59
von stag3k
sowas ähnlich hatte ich mir auch überlegt, aber mich stört die aufforderung "schreiben sie genau eine anweisung"...

wenn ich das jetzt so übernehme wie vorgeschlagen, wären das ja mehrere anweisungen, oder nicht?

Verfasst: 04.02.10 15:05
von Nelson
Aus dem Bauch heraus würde dir ein Cast (temporäre Umwandlung in einen anderen Variablentyp) helfen.

Meine Idee wäre:

davon ausgehend, dass x, y und z float Variablen sind.

z = x/y - (int)x/(int)y;

Im ersten Teil bekommst du das Ergebnis der Division als Gleitkommazahl (mit Nachkommastellen).
Im zweiten Teil teilst du zwei Ganzzahlen und erhältst als Ergebnis wieder ein Ganzzahl (ohne Nachkommastellen)
Teil zwei von Teil eins abgezogen lässt die Nachkommastellen übrig.

Keinen Schimmer, ob das hier so gewollt ist... :wink:

Verfasst: 04.02.10 15:11
von Rumtata106
Nelson hat geschrieben: z = x/y - (int)x/(int)y;
besser (richtiger) wäre

z = x/y - (int)(x/y);

Verfasst: 04.02.10 15:14
von stag3k
das hört sich gut an... :)

ich schreib das mal da rein, danke für die erklärungen und hilfen... :)