Neue Antwort erstellen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

Neu erstellte Beiträge unterliegen der Moderation und werden erst sichtbar, wenn sie durch einen Moderator geprüft und freigeschaltet wurden.

Die letzte Antwort auf dieses Thema liegt mehr als 365 Tage zurück. Das Thema ist womöglich bereits veraltet. Bitte erstellen Sie ggf. ein neues Thema.

Informationen
Sicherheitsabfrage („reCAPTCHA“)
Nachricht
Maximale Anzahl an Dateianhängen: 10
Maximale Dateigröße: 1 MB
Erlaubte Dateiendungen: bmp, gif, jpeg, jpg, pdf, png, txt, zip
Internet-Adressen werden automatisch erkannt und umgewandelt.
Smiley-Code wird in Ihrer Nachricht automatisch als Smiley-Grafik dargestellt.
Sie können BBCodes zur Formatierung Ihrer Nachricht nutzen.

Vorherige Beiträge 7

  • was für funktionen sind das denn so?
    aber wenns da noch von c noch keine funktionen gibt siehts eher schlecht aus, weil ich will erst mal den parser an sich schreiben. irgendwelche mathemtatischen algorithmen zu implementieren gehöhrt da erst mal net dazu.
    und bis jetzt kann er noch nicht mal variablen ersetzen.
    nur so sachen wie "2+3^3*10.2>5" auswerten, oder ausrechnen.

    bitshifting müsste ich hinbekommen, probier ich gleich aus.
    edit: ich seh gerade, dass wenn man die normalen bitshift operatoren nehmen würde ("<<", ">>"), würde das ein problem mit den vergleichsoperatoren ">" und "<" geben...
    aber mal schauen.


    edit:
    hab eine benutzbare version der ersten klasse fertig.
    sie kann nichts mit variablen anfangen und man kann nichts mit neuen eigenen funktionen (ich glaube sowas nennt sich komposition :think:) anfangen. falls sie jemand ausprobieren will...
    folgende operatoren und funkionen werrden unterstützt:
    +, -, *, /, ^ (hoch), =, <=, >=, != (ungleich), sin, cos, tan, asin (umkehrfunktion von sin), acos, atan, ln
    die benutzung der klasse is ziemlich simpel.
    einfachdie Datei "arithexpr.hpp" inkludieren und dem linker sagen er soll mit der libmath linken (-lm beim gcc). klasse initialisieren und calculate() aufrufen.
    bsp:

    C-Quellcode

    1. #include <iostream>
    2. #include "arithexpr.hpp"
    3. using namespace std;
    4. int main(int argc, char *argv[])
    5. {
    6. arithExpr *ae;
    7. ae = new arithExpr("3+2^4*(5+8*ln(3)/2)!=2");
    8. cout << ae->calculate() << endl;
    9. return 0;
    10. }
    Alles anzeigen

    müsste gehen :rolleyes:
    Dateien
    • arithExpr.rar

      (3,37 kB, 1.036 mal heruntergeladen, zuletzt: )
  • hab ich gerade implementiert :)

    aber mir stellt sich gerade eine neue Frage: gibt es irgendwelche mathematischen funktionen (wie cos, ln, etc.) die mehr als ein Parameter brauchen und nicht durch andere dargestellt werden können die nur einen brauchen?
  • Du könntest auch noch xor, xnor, nand und nor mit reinnehmen. Würde vllt auch mal gebrauch. Übrigens gute idee, würde den parser sehr gerne einmal ausprobieren, wenn er öffentlichkeits fähig ist.
  • mathematische funktionen und operatoren

    Cypher

    ich will einen parser für mathematische ausdrücke schreiben, und brauch sammle gerade operatoren und funktionen.

    bis jetzt sind mir
    +, -, *, /, %, sin, cos, tan, ^ ("hoch"), sqrt(x), =, >, <, <=, >=, !=, & ("und"), | ("oder")
    eingefallen.

    aber da gibts sicher noch mehr. und ob die von anderen funktionen ableitbar sind müsste ich auch wissen (so wie sqrt(x)=x^0.5)