the Hellboard
Zum Portal Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Portal » the Hellboard » Diskussionen » Naturwissenschaften » mathematische funktionen und operatoren » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Zum Ende der Seite springen mathematische funktionen und operatoren
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Cypher Cypher ist männlich
gehört zum Inventar


images/avatars/avatar-62.gif

Dabei seit: 20.04.2003
Beiträge: 916

Level: 47 [?]
Erfahrungspunkte: 7.032.720
Nächster Level: 7.172.237

139.517 Erfahrungspunkt(e) für den nächsten Levelanstieg

mathematische funktionen und operatoren Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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)

__________________

Website | Blog

Meine Organe sind offenbar nicht am richtigen Platz. - Nicht am richtigen Platz? Entsprechend welchen Kriterien? aus dem FIlm "Immortal"

<Goliat> Cypher ruled ;)

18.06.2005 21:36 Cypher ist offline E-Mail an Cypher senden Homepage von Cypher Beiträge von Cypher suchen Nehmen Sie Cypher in Ihre Freundesliste auf
Pirroh Pirroh ist männlich
Otto Normalposter


images/avatars/avatar-1702.png

Dabei seit: 10.10.2004
Beiträge: 110
Herkunft: Breskens / Niederlande

Level: 35 [?]
Erfahrungspunkte: 785.292
Nächster Level: 824.290

38.998 Erfahrungspunkt(e) für den nächsten Levelanstieg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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.

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Pirroh: 18.06.2005 23:28.

18.06.2005 23:27 Pirroh ist offline E-Mail an Pirroh senden Beiträge von Pirroh suchen Nehmen Sie Pirroh in Ihre Freundesliste auf
Cypher Cypher ist männlich
gehört zum Inventar


images/avatars/avatar-62.gif

Dabei seit: 20.04.2003
Beiträge: 916

Level: 47 [?]
Erfahrungspunkte: 7.032.720
Nächster Level: 7.172.237

139.517 Erfahrungspunkt(e) für den nächsten Levelanstieg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

hab mal einen für logische ausdrücke geschrieben, also nur mit and, or und not und klammern.
http://cypher.cybton.com/tgi2007/upload/...le-0.1.2.tar.gz
musst du aber erst noch kompilieren, wenn du ihn ausprobieren willst Augenzwinkern
da is ein Makefile dabei.
und dann kannst du dir von ausdrücken wie "a&b|(!c&b)" tabellen erstellen lassen.

__________________

Website | Blog

Meine Organe sind offenbar nicht am richtigen Platz. - Nicht am richtigen Platz? Entsprechend welchen Kriterien? aus dem FIlm "Immortal"

<Goliat> Cypher ruled ;)

19.06.2005 01:38 Cypher ist offline E-Mail an Cypher senden Homepage von Cypher Beiträge von Cypher suchen Nehmen Sie Cypher in Ihre Freundesliste auf
Bill Bones Bill Bones ist männlich
Forenwächter


images/avatars/avatar-1061.jpg

Dabei seit: 19.06.2003
Beiträge: 2.158
Herkunft: Aus dem 7. Kreis der Hölle

Level: 53 [?]
Erfahrungspunkte: 16.439.251
Nächster Level: 19.059.430

2.620.179 Erfahrungspunkt(e) für den nächsten Levelanstieg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

kenne sonst noch <> (ungleich), sq(x) (quadrieren)

__________________
Vernunft siegt über Nostalgie
19.06.2005 12:59 Bill Bones ist offline E-Mail an Bill Bones senden Homepage von Bill Bones Beiträge von Bill Bones suchen Nehmen Sie Bill Bones in Ihre Freundesliste auf
Cypher Cypher ist männlich
gehört zum Inventar


images/avatars/avatar-62.gif

Dabei seit: 20.04.2003
Beiträge: 916

Level: 47 [?]
Erfahrungspunkte: 7.032.720
Nächster Level: 7.172.237

139.517 Erfahrungspunkt(e) für den nächsten Levelanstieg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

hab ich gerade implementiert smile

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?

__________________

Website | Blog

Meine Organe sind offenbar nicht am richtigen Platz. - Nicht am richtigen Platz? Entsprechend welchen Kriterien? aus dem FIlm "Immortal"

<Goliat> Cypher ruled ;)

19.06.2005 15:11 Cypher ist offline E-Mail an Cypher senden Homepage von Cypher Beiträge von Cypher suchen Nehmen Sie Cypher in Ihre Freundesliste auf
Goliat Skipson Goliat Skipson ist männlich
ForumsGolly


images/avatars/avatar-698.jpg

Dabei seit: 07.02.2004
Beiträge: 2.012
Herkunft: The other Place

Level: 52 [?]
Erfahrungspunkte: 14.858.106
Nächster Level: 16.259.327

1.401.221 Erfahrungspunkt(e) für den nächsten Levelanstieg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

kannst noch die ganzen funktionen aus der wahrscheinlichkeits rechnung implementieren

und bitshifting Augenzwinkern

__________________
Realität, so wissen wir aus eigener vielfacher Erfahrung, Realität ist etwas für Leute, die nicht mit Science-Fiction klarkommen

19.06.2005 15:17 Goliat Skipson ist offline E-Mail an Goliat Skipson senden Homepage von Goliat Skipson Beiträge von Goliat Skipson suchen Nehmen Sie Goliat Skipson in Ihre Freundesliste auf
Cypher Cypher ist männlich
gehört zum Inventar


images/avatars/avatar-62.gif

Dabei seit: 20.04.2003
Beiträge: 916

Level: 47 [?]
Erfahrungspunkte: 7.032.720
Nächster Level: 7.172.237

139.517 Erfahrungspunkt(e) für den nächsten Levelanstieg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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 :thinksmile 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:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
#include <iostream>
#include "arithexpr.hpp"

using namespace std;

int main(int argc, char *argv[])
{
    arithExpr *ae;
    ae = new arithExpr("3+2^4*(5+8*ln(3)/2)!=2");
    cout << ae->calculate() << endl;
    return 0;
}

müsste gehen rolleyes

Dateianhang:
rar arithExpr.rar (3,29 KB, 781 mal heruntergeladen)


__________________

Website | Blog

Meine Organe sind offenbar nicht am richtigen Platz. - Nicht am richtigen Platz? Entsprechend welchen Kriterien? aus dem FIlm "Immortal"

<Goliat> Cypher ruled ;)

Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von Cypher: 19.06.2005 16:51.

19.06.2005 16:02 Cypher ist offline E-Mail an Cypher senden Homepage von Cypher Beiträge von Cypher suchen Nehmen Sie Cypher in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Thema bewerten: 

nicht lesenswert nicht lesenswert 

1

2

3

4

5

6

7

8

9

10
 lesenswert lesenswert

Portal » the Hellboard » Diskussionen » Naturwissenschaften » mathematische funktionen und operatoren

Impressum Netiquette

Powered by Burning Board 2.3.6 © 2001-2007 WoltLab GmbH