AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Taschenrechner - String durchsuchen

Ein Thema von Speedi2000 · begonnen am 28. Feb 2010 · letzter Beitrag vom 1. Mär 2010
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
Speedi2000

Registriert seit: 28. Feb 2010
15 Beiträge
 
#1

Taschenrechner - String durchsuchen

  Alt 28. Feb 2010, 15:04
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:
1+2*3-4/2
Jetzt will ich halt dass als Ergebnis 5 rauskommt und nicht 2,5.

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
  Mit Zitat antworten Zitat
Spezi

Registriert seit: 14. Feb 2009
Ort: Deutschland ;-)
65 Beiträge
 
Delphi 2005 Personal
 
#2

Re: Taschenrechner - String durchsuchen

  Alt 28. Feb 2010, 15:08
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
Wer Rechtschreibfehler findet darf Sie behalten
  Mit Zitat antworten Zitat
Speedi2000

Registriert seit: 28. Feb 2010
15 Beiträge
 
#3

Re: Taschenrechner - String durchsuchen

  Alt 28. Feb 2010, 15:25
Ja ich wollt ganz gerne die Funktion in Delphi wissen um dies zu realisieren x)
  Mit Zitat antworten Zitat
Spezi

Registriert seit: 14. Feb 2009
Ort: Deutschland ;-)
65 Beiträge
 
Delphi 2005 Personal
 
#4

Re: Taschenrechner - String durchsuchen

  Alt 28. Feb 2010, 15:25
Da gibt es meines Wissens keine, das musst du schon selbst realisieren
Wer Rechtschreibfehler findet darf Sie behalten
  Mit Zitat antworten Zitat
Speedi2000

Registriert seit: 28. Feb 2010
15 Beiträge
 
#5

Re: Taschenrechner - String durchsuchen

  Alt 28. Feb 2010, 15:42
Könnte mir dann bitte jemand nen Tipp geben wie?

Wie gesagt wir haben grade erst mit Delphi angefangen

Danke
Tobias
  Mit Zitat antworten Zitat
Benutzerbild von patti
patti

Registriert seit: 20. Okt 2004
Ort: Mittelfranken
665 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Taschenrechner - String durchsuchen

  Alt 28. Feb 2010, 15:48
Hi und willkommen in der DP

Zitat von Speedi2000:
Wir haben in der Schule grade mit Delphi angefangen, und sollen nun einen Taschenrechner programmieren.
Das sog. "Parsen", also das Umwandeln eines Strings in eine für den Computer lesbare Form und die anschließende Berechnung, ist aber kein Projekt für "Anfänger". Da gehört einiges dazu und man muss einiges beachten. Bist du dir sicher, dass ihr einen Taschenrechner programmieren sollt, der Terme ausflösen kann Ich würde einfach mal behaupten, dass ein richtiger Parser den schulischen Rahmen sprengt, denn das ist komplexer, als man auf Anhieb vermutet.

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 Delphi-Referenz durchsuchenPos kannst du einen Substring innerhalb eines gegebenen Strings suchen. Wenn die Funktion einen Wert, der größer als 0 ist, zurückliefert, dann entspricht der Wert der ersten gefundenen Stelle des Substrings im String. Du könntest versuchen, zuerst alle Multiplikationszeichen zu behandeln. Dazu suchst du einfach in dem String das '*'-Zeichen. Wenn der Wert > 0 ist, dann existiert so ein Zeichen. Anschließend musst du ausgehend von dieser Stelle in beide Richtungen solange den String Zeichen für Zeichen durchgehen, bis du ein Zeichen erreichst, welches keine Zahl ist. Wenn du dazu Fragen haben solltest, dann kannst du sie hier gerne stellen.
Patrick Kreutzer
[Informatik-Student im 4. Semester]
http://www.patti-k.de/
  Mit Zitat antworten Zitat
Speedi2000

Registriert seit: 28. Feb 2010
15 Beiträge
 
#7

Re: Taschenrechner - String durchsuchen

  Alt 28. Feb 2010, 15:59
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
  Mit Zitat antworten Zitat
Benutzerbild von patti
patti

Registriert seit: 20. Okt 2004
Ort: Mittelfranken
665 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Taschenrechner - String durchsuchen

  Alt 28. Feb 2010, 16:07
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.
Patrick Kreutzer
[Informatik-Student im 4. Semester]
http://www.patti-k.de/
  Mit Zitat antworten Zitat
Speedi2000

Registriert seit: 28. Feb 2010
15 Beiträge
 
#9

Re: Taschenrechner - String durchsuchen

  Alt 28. Feb 2010, 17:08
muh.caption := pos('+',term.caption);
Zitat:
[Fehler] taschenrechner.pas(451): Inkompatible Typen: 'String' und 'Integer'
Zeigt er mir an, ich weiß nicht, was ich falsch gemacht habe =/
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#10

Re: Taschenrechner - String durchsuchen

  Alt 28. Feb 2010, 17:10
Schau mal in der Hilfe, was Pos zurückgibt, dann weißt Du auch, was Du falsch gemacht hast.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz