Frage zu DLL´s

ole2

Grünschnabel
Guten Abend,

ich habe mal eine kleine Frage zu dlls, also eigentlich geht es um sowas wie dynamischen Programmcode.

Also wenn ich im Programm die dll erzeuge und sie dann speichere und dann an späterer Stelle aufrufe dann wäre das doch eigentlich dynamischer Programm code?! oder?

Mein eigentliches Problem ist das der Benutzer des Programms eine Formel eingibt zum beispiel

( x + 1 ) * 5 + xwurzel 5 20 ^ 5

und diese muss halt in programm code übersetzt werden

das mit den dlls wär einer meiner ansätze
 
Hi und Willkommen bei tutorials.de,

das, was du vorhast, geht so nicht.
Du müsstest dafür immer den kompletten Compiler beim Programm dabeihaben.
Einen abgespeckten C-Compiler für Formeln kenn ich jedenfalls nicht :D

Das, was wichtig ist, ist doch das Ergebnis der Rechnung?

Da muss ein Parser her, der erkennt, was die Eingabe mathematisch bedeutet und verarbeitet.
Fertige per Google findbar...
Selbst schreiben ist aber auch möglich.

Bei zB.
123+456-789
muss eben nach Rechenzeichen durchgesucht werden, + gefunden, aha Addition,
Zahl vorne und hinten ist wichtig, die hintere hört beim - auf...usw.
Klammern und math. Prioritäten (Punkt-vor-Strich usw.) auch beachten.
 
Ja ich stimme da sheel vollkommen zu.
Im Buch Einstieg in C++ von Galileo Computing wir ein solcher Parser ich glaub im Zusammenhang mit Zeigern geschrieben. War wirklich nicht schlecht. Er kam mit Punkt vor Strich und ich glaube auch mit Klammern klar. Allerdings Kamm dieser nur mit +, -, / und * klar.

Dabei wurde nur ein Zeiger durch das erste Kommandozeilenargument gejagt.
Je nachdem ob jetzt ein Rechnzeichen oder eine Zahl kam wurde anders vorgegangen.
Und das ganze war nichtmal so schwer. Bei den Zahlen wurde Zeichen für Zeichen eingelesen, danach mit '0' also 48 subtrahiert. Danch wurde die alte Zahl mal zehn genommen und die neue dazuaddiert.
Damit hast du schon mal einen weg Zahlen einzulesen. Die Rechenzeichen überlasse ich jetzt aber dir.
Mit etwas erhöhtem aufwand und vielleicht dem Einsatz einer Map könnte man vielleicht auch Variablen im Programmiertechnischem sinne hinzufügen. Für Variablen im Mathematischem sinne (zumindestens dem der im Stoff der 8. Klasse einer Realschule vorkommt ^^) ist etwas mehr aufwand nötig.
Dynamic Linkies brauchst du aber nicht. Theoretisch müsste es tatsächlich möglich sein. Als erstes generierst du validen C code für eine DLL, dann fügst du die (angepasste) Formel ein und lässt das ganze übersetzen. nur wie sheel schon gesagt hast muss dafür erst einmal ein Compiler vorhanden bzw. mitgeliefert sein. Das wäre VIEL zu umständlich.

Grüße,
Nico
 
Zurück