Autor Beitrag
ffprogramming
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 44

Win XP
C# Java C PHP
BeitragVerfasst: Di 09.03.10 09:51 
Moin!
Ich hoffe ich habe die richtige Section getroffen.

Ich bin dabei ein Programm zur Lösung von numerischen Problemen am schreiben.
Nun soll mein Programm auch eine Scriptsprache(ich glaube dsa ist der richtige Ausdruck) bekommen, die es ermöglicht Dinge ausrechnen zu lassen:

Als erstes mal ein einfaches Beispiel, wie es denn aussehen könnte:

ausblenden Quelltext
1:
ergebnis=12.45 + 25.4;					


Wenn man diesesn Code jetzt ausführt sollte man die Lösung bekommen. Dies ließe sich jetzt noch einfach mit einer Split Methode realisieren. Aber der Nutzer könnte ja genauso gut ein array definieren, das Zahlen enthält, aus dem jetzt der Mittelwert berechnet wird:

ausblenden Quelltext
1:
ergebnis=Mittelwert(ar[1,2,6,7]);					


Ich habe gar keine Ahnung wie ich an so etwas rangehen könnte. Es wäre nett wenn jemand mir ein par Tipps geben könnte.
Schon einmal Danke.
Grüße
Filip
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Di 09.03.10 10:14 
Das Stichwort lautet Parser bzw. Mathe-Parser. Dazu solltest du in Foren und auch über Wikipedia viele Vorschläge finden. Jürgen
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 09.03.10 10:18 
Da hast du dir ein sehr komplexes Thema ausgesucht. ;-)

Ein relativ einfach geschriebener Parser (naja, einfach ist relativ, aber für das Thema ist er relativ einfach :mrgreen:) für Delphi ist dieser:
code.google.com/p/castaliadelphiparser/
Dort lässt sich relativ gut nachvollziehen wie man sowas bauen kann.

Für dich reichen aber auch weniger komplizierte Versionen, wenn du nicht ganz so allgemeine Befehle zulassen willst, sondern nur eingeschränkte Möglichkeiten anbietest.
ffprogramming Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 44

Win XP
C# Java C PHP
BeitragVerfasst: Di 09.03.10 10:43 
Danke schon einmal. Dann werde ich wohl die nächste Zeit damit beschäftigt sein einen Parser zu schreiben. (Ich möchte ihn gerne selbst schreiben).
Danke.
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Mi 10.03.10 15:35 
Ich habe vor einiger Zeit einen Parser/Interpreter in Java geschrieben. Meine Vorgehensweise war dabei wie folgt:
  • Ein Lexer zerlegt die Eingabe in einzelne Tokens (Hier können Syntax-Fehler regulärer Art erkannt und behandelt werden)
  • Ein Parser erzeugt aus den Tokens einen Parse-Baum (Hier werden kontextfreie Fehler behandelt)
  • Der Interpreter geht dann rekursiv durch diesen Baum und Interpretiert den Code

Die Interpreter Funktion ist dann auch nur ein paar Zeilen lang.
delfiphan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2684
Erhaltene Danke: 32



BeitragVerfasst: Mi 10.03.10 19:41 
Du kannst auch einfach den JScript Interpreter von Windows nehmen und einfach einbinden. Mehr als ein halbes Duzend Zeilen Code musst du dafür nicht schreiben. Kommt etwas darauf an, wie schnell das ganze sein muss und welche Sprachen für dich in Frage kommen.
JDKDelphi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 115
Erhaltene Danke: 22

WIN2000, XP, WIN 7 , UNIX, LINUX
Assembler für (Z8x, 68xxx,R6000,Intel), DELPHI 6 Enterprise, MAGIC eDeveloper V9+V10, C++, C#,VB, .NET, zertifizierter iBOLT-Programmierer
BeitragVerfasst: Do 11.03.10 18:23 
Hallo...

Kannst es ja mal mit meinem Rechenkern versuchen..

Der kann sowas..

Hatte ich hier mal gepostet


Viele Grüße

_________________
Wo andere aufhören, fange ich erst an..