![]() |
Taschenrechner - String durchsuchen
Hallo liebe Community.
Wir haben in der Schule grade mit Delphi angefangen, und sollen nun einen Taschenrechner programmieren. Nun stehe ich allerdings vor dem Problem mit Punkt- vor Strichrechnung. Habe jetzt ein Label in dem der Gesamte Term steht der Berechnet werden soll also zB.: Zitat:
Ich selber Programmiere seit Jahren in PHP deswegen kam ich auch auf die Idee das so zu machen, dass ich am Ende den ganzen String nach den Operationszeichen durchsuche und dann jeweils die Zahl davor und dannach miteinander addiere, subtrahiere, multipliziere oder dividiere. Leider weiß ich nur nicht wie ich das in Delphi realisieren kann. Danke für die Hilfe. Tobias |
Re: Taschenrechner - String durchsuchen
Hmm, damit habe ich mich vor kurzem auch beschäftigt, ich weiß zwar nicht ob meine Lösung optimal ist, aber mein Prinzip war, dass ich es rekursiv löse.
Zuerst suchte ich nach dem + Wenn ich das gefunden habe sagt ich, dass es die beiden Teilstrings addieren soll. Die wurden natürlich wiederum von meiner Funktion zerlegt. Ich weiß jetzt nicht, ob ich es richtig erklärt habe, aber so in etwa habe ich es durchgeführt :wink: |
Re: Taschenrechner - String durchsuchen
Ja ich wollt ganz gerne die Funktion in Delphi wissen um dies zu realisieren x)
|
Re: Taschenrechner - String durchsuchen
Da gibt es meines Wissens keine, das musst du schon selbst realisieren :wink:
|
Re: Taschenrechner - String durchsuchen
Könnte mir dann bitte jemand nen Tipp geben wie?
Wie gesagt wir haben grade erst mit Delphi angefangen :( Danke Tobias |
Re: Taschenrechner - String durchsuchen
Hi und willkommen in der DP ;-)
Zitat:
Wenn du dich wirklich daran versuchen willst, dann musst du dir vorher genaue Gedanken machen, wie du das angehen willst. Da gibt es sicherlich mehrere Möglichkeiten, die man verfolgen kann, aber letzendlich musst du alles selber machen, Delphi nimmt dir da im ersten Moment nichts ab. Alternativ kannst du mal in der DP nach "Parser" suchen, da sollte sich inzwischen einiges finden lassen. mfg Edit: Hab gerade mal bei meinem Parser, den ich vor Kurzem geschrieben habe, nachgeschaut. Die Unit hat exakt 732 Zeilen (gut, der kann noch etwas mehr, wie z.B. Klammern, Funktionen, ...). Daran sieht man aber doch sehr deutlich, was da für eine Arbeit dahintersteckt. Edit2: Zu deiner Frage: Mit ![]() |
Re: Taschenrechner - String durchsuchen
Naja uns wurde halt gesagt wir sollen Punkt vor Strichrechnung beachten.
Auf die Idee mit dem String bin ich ja gekommen weil ichs von PHP her kannte. Vll könnte man das aber auch so realisieren, dass man immer ne Zahl speichert und dann jeweils das Rechenzeichen und dann nochmal die Zahl und das nächste Rechnezeichen. Also ich muss das nicht über die Methode machen dass ich den kompletten Term dann durchsuche. Es soll halt nur Punkt vor Strichrechnung beachtet werden. Wenns ne Möglichkeit gibt, die einfacher ist, nehm ich die gerne :) |
Re: Taschenrechner - String durchsuchen
Hast du schon meinen Edit in meinem oberen Post bemerkt?
Da hab ich nämlich einen Ansatz, mit dem man das relativ einfach lösen kann, genannt. Besorge dir erstmal die Stelle des ersten *-Zeichens in deinem String (Erklärung siehe oben). Wenn du das geschafft hast, dann kannst du dich an den nächsten Schritt wagen. |
Re: Taschenrechner - String durchsuchen
Delphi-Quellcode:
muh.caption := pos('+',term.caption);
Zitat:
|
Re: Taschenrechner - String durchsuchen
Schau mal in der Hilfe, was Pos zurückgibt, dann weißt Du auch, was Du falsch gemacht hast.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:33 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz