Seite 1 von 1

Praktikum 1: Auswertung negativer Argumente

Verfasst: 1. Dez 2015 14:17
von lsk
Hallo,

bei Task 1 (ii) heißt es, dass Minuszeichen immer als Operatoren interpretiert werden und nie zwei Operatoren aufeinander folgen.
Beim Erstellen einer MathList mit buildlist() führt dies dazu, dass Ausdrücke wie
-1+3 oder 1*-3 durch evaluateSimpleExpression() nicht korrekt ausgewertet werden.
Auch bei Funktionsaufrufen mit negativen Argumenten kommt es zu Problemen (z.b. square(-5), wenn -5 beim Erstellen der Liste
nicht direkt in ein einzelnes MathElement gespeichert wird).
Ist die Bemerkung in der Aufgabenstellung so zu verstehen, dass solche Strings als nicht syntaktisch korrekt gewertet werden?

VG , Lucas

Re: Praktikum 1: Auswertung negativer Argumente

Verfasst: 1. Dez 2015 15:22
von Julian Prommer
Negative Zahlen sollten sich wie folgt simulieren lassen

-a -> (0-a)

Beispiele

-5 wird zu (0-5) = -5
4 + (-5) = -1 wird zu 4 + ( 0 - 5) = -1

Re: Praktikum 1: Auswertung negativer Argumente

Verfasst: 7. Dez 2015 10:50
von mlv
also sind funktionen im allgemeinen die argumente nicht atomar, sondern können auch ein mathematischen ausdruck beinhalten? Da habe ich die aufgabenstelleung anders interpretiert.
Muss es auch möglich sein folgendes auszuwerten:
square(square((3+4)*5)))
und nur in der Methode inlineFunction(...) ist davon auszugehen das die Argumente atomar sind?

Re: Praktikum 1: Auswertung negativer Argumente

Verfasst: 7. Dez 2015 13:03
von Felix Sternkopf
Die Argumente einer Funktion werden weder negativ sein, noch wird ein mathematischer Ausdruck übergeben werden.
Lediglich atomare Funktionsaufrufe, ODER ein weiterer Funktionsaufruf als Argument.

Re: Praktikum 1: Auswertung negativer Argumente

Verfasst: 10. Dez 2015 15:27
von coha
Felix Sternkopf hat geschrieben: ODER ein weiterer Funktionsaufruf als Argument.
Das bedeutet aber, dass auch Szenarien abgedeckt sein müssen, die in den Tests gar nicht geprüft werden?! Also nur grüne Tests reicht nicht aus, der Tutor kann auch etwas anderes eingeben?

Re: Praktikum 1: Auswertung negativer Argumente

Verfasst: 11. Dez 2015 03:45
von Felix Sternkopf
Funktionen als Funktionsparameter werden nur in assembleMathListElements() benutzt und das auch in der Tests. Wenn der Tutor dies eingibt soll auch lediglich das assemblen funktionieren. Das Evaluieren muss nicht zwingend funktionieren, da es nicht abgefragt war.