Tach...
Ich hab mir nen kleinen Taschenrechner gebastelt, funktionier soweit ganz prima und ist auch recht schnell. Allerdings wäre es fürs Studium nicht schlecht, wenn er mehr könnte, als nur Skalare behandeln. Notwendig wären mindestens Matrizen und komplexe Zahlen. Allerdings bin ich schon ein bischen am überlegen, wie ich am besten mein Typsystem konstruiere.
Das beste wäre, wenn ich Typen und dazugehörige Funktionen dynamisch laden könnte (da sich ja mein mathematisches Wissen während des Studiums auf Fuzzy - Zahlen usw. erweitern wird ... hoffentlich
)... allerdings bräuchte ich dazu eine Basisklasse, von der ich jeden Typ ableiten müsste was wiederrum mathematisch falsch wäre.
Code:
class BaseType {
public:
operator + (const BaseType&);
//...
};
class Scalar public : BaseType {...};
class Matrix public : BaseType {...};
class Complex public : BaseType {...};
//...
Scalar s;
Matrix m;
Complex c;
Matrix result = s + m;
So eine Situation müsste ja nun eigentlich einen Fehler melden, könnte aber durchaus auftreten, da der Scanner ja nichts über mathematische Gesetze weiß bzw. wissem muss und wissen sollte. Und der Interpreter sollte ebenfalls nichts darüber wissen, bzw. kann ja er ja auch garnicht, wenn Typen dynamisch geladen werden können.
Die Sache ist einfach, dass mir ein Designansatz fehlt und ich habe gehofft, ihr könnt mir da etwas weiterhelfen ... auch wenn ichs in C++ schreib.
MfG && Thx