EA_CP_101 Aufgabe 2

Algorithmus, Baumdurchlauf, Compiler, Interpreter...; Cobol, Pascal, C/C++, Java & Co.
Antworten
Benutzeravatar
stag3k
Forums-Profi
Forums-Profi
Beiträge: 178
Registriert: 21.01.09 18:02
Wohnort: Hamburg

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
Rumtata106
Forums-Profi
Forums-Profi
Beiträge: 162
Registriert: 15.06.08 20:26
Wohnort: Stuhr / Bremen

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
Benutzeravatar
stag3k
Forums-Profi
Forums-Profi
Beiträge: 178
Registriert: 21.01.09 18:02
Wohnort: Hamburg

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?
Nelson
Forums-Profi
Forums-Profi
Beiträge: 124
Registriert: 31.01.10 17:24

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:
Ha Ha!
Rumtata106
Forums-Profi
Forums-Profi
Beiträge: 162
Registriert: 15.06.08 20:26
Wohnort: Stuhr / Bremen

Nelson hat geschrieben: z = x/y - (int)x/(int)y;
besser (richtiger) wäre

z = x/y - (int)(x/y);
Benutzeravatar
stag3k
Forums-Profi
Forums-Profi
Beiträge: 178
Registriert: 21.01.09 18:02
Wohnort: Hamburg

das hört sich gut an... :)

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