rechnen

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
hanibal
Beiträge: 369
Registriert: Sa 3. Mär 2007, 16:03
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Bramsche (Emsland)

rechnen

Beitrag von hanibal »

hallo,
ich möchte ganz gerne, das ein string, z.B. "1+5*5+(4-1)" ausgerechnet wird, und die zahl dann in eine variable des types single gesteckt wird, wie kann man das machen?

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Beitrag von monta »

Ja, da gibts ein ganz einfaches Verfahren ;)...du brauchst schlicht und ergreifend nen Parser.

Mit anderen Worten du musst dir nen Programm schreiben, was den String in seine Bestandteile zerlegt und anschließend bzw. als Baum die einzelnen Knoten auflöst, indem die entsprechenden Operationen nacheinander ausgeführt werden.

Beim Zerlegen hast du typische Token, wie Operationszeichen, an welche due den String aufsplitten kannst.
Johannes

hanibal
Beiträge: 369
Registriert: Sa 3. Mär 2007, 16:03
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Bramsche (Emsland)

Beitrag von hanibal »

gibt es da nix vorgefertigtes?
irgendeine funktion?

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Beitrag von Euklid »

Hallo hanibal!

In Lexart haben wir das über eine rekursive Schleife gelöst. In dieser rekursiven Schleife sind die algebraischen Strukturen enthalten: Punkt vor Strich, innerste Klammer zuerst, u.s.w.

ist recht aufwendig, sowas zu programmieren. Macht aber Spaß!

Also viel Erfolg!

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Beitrag von monta »

Nein, da gibt keine vorgefertigte Funktion, zumindest nicht von Haus aus. Das ganze ist auch ne wahnsinnig komplexe Angelegenheit, wenn man nicht gerade nur die Grundrechenarten da reinbringen will.

Es sollte allerdings einige Units geben, die das übernehmen.
Allerdings kenn ich zumindest keine für FPC, für Delphi könntest du mal in den üblichen Quellen suchen und schauen, ob die unter FPC auch laufen (bzw. hier: http://www.torry.net).
Johannes

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »


pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

die gibt es tonnenweise für Delphi, ich denke mit wenig Aufwand müssten sie

auch unter Lazarus laufen. z.b. hier gibt es sehr viele davon:
http://www.delphi-forum.de/
ich glaube auch hier:
http://www.delphipraxis.net/forum_main.html
Aber ich kann mir nicht vorstellen das sowas schwer ist selbst zu Bauen..... für Lazarus als Funktion z.b......
MFG
Michael Springwald

hanibal
Beiträge: 369
Registriert: Sa 3. Mär 2007, 16:03
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Bramsche (Emsland)

Beitrag von hanibal »

aso :(
schade
muss ich mal schauen, ob ich das selber schreibe, ist nämlich eig ne nebenfunktion für n script interpreter für einen mediaplayer. also ,damit man zusatzfunktionen einbauen kann, die plattformübergreifend sind.

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Du musst sie nicht selbst schreiben. Es gibt sie wie Sand am Meer *G*.
Evlt. schreibt ihn ja jemand hier aus dem Forum für dich als Tutorial oder so.....
dann hätten alle was davon.
MFG
Michael Springwald

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

Oder so:

[url=http://www.remobjects.com/page.asp?id={9A30A672-62C8-4131-BA89-EEBBE7E302E6}]Pascal Script[/url]

Antworten