Entwickler-Ecke
Sonstiges (Delphi) - Probleme mit Integer und Strings beim Taschenrechner
Anonymous - Fr 24.01.03 16:19
Titel: Probleme mit Integer und Strings beim Taschenrechner
Wir sollen für den Info-Unterricht einen Taschenrechner programmieren.
Ich wollte das nun mit zwei Edit-Feldern machen.
In das eine kommt das Ergebnis und in das andere die Aufgabe.
Dachte mir das in etwa so (natürlich vereinfacht :roll: ):
Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| procedure TForm1.BerechnungClick(Sender: TObject); var Aufgabe : String; Ergebnis : Integer; begin Aufgabe := Edit1.Text; Ergebnis := StrToInt(Aufgabe); Edit2.Text := IntToStr(Ergebnis); end; |
Wieso gibt es da Probleme?
Klar weiss ich, dass ein "*" oder eine "(" keine Zahlen sind, aber wenn man Ergebnis so definiert, geht es auch:
Quelltext
1: 2: 3: 4: 5: 6:
| procedure TForm1.BerechnungClick(Sender: TObject); var Ergebnis : Integer; begin Ergebnis := 2 + 3 * (8-2); Edit1.Text := IntToStr(Ergebnis); end; |
Hier wäre das Ergebnis gleich 20 ...
Wieso kann ich eine Integer-Variable mit Klammern definieren aber nicht mit einem "String füllen", wenn dieser auch "2 + 3 * (8-2)" wäre?
smiegel - Fr 24.01.03 16:59
Hallo,
woher soll der String wissen, dass er eine Formel ist?
Für die Analyse des Stringes bist Du als Programmierer selber verantwortlich. Dies bedeutet, Du kannst Dir schon einmal Gedanken über einen Parser machen.
Wenn Du in Deinen Quellcode eine Formel eingibst, sorgt schon der Compiler dafür, dass da ein Ergebnis herauskommt, weil der Quellcode-Analyser von Delphi dies kann. Aber wie bereits oben erwähnt, während des Programmablaufes können weder der Compiler noch das Edit wissen, dass Du eine Formel eingibst.
Anonymous - Fr 24.01.03 17:09
Du willst also sagen: Ich muss mir eine andere Möglichkeit überlegen, wie ich den Taschenrechner programmiere !?
smiegel - Fr 24.01.03 17:11
Hallo,
sofern Du Formeln von Hand in ein Edit eingeben willst, JA!
Ice - Fr 24.01.03 17:21
Du könntest deinen 'Formel' String zerlegen in Formelzeichen und Zahlen, dann müsste es sich berechnen lassen.
Dazu sucht du einfach nach den Formelzeichen im String allles bis zum Formelzeichen ist eine Zahl, die 'schneidest' du vom String ab jetzt schneidest du das Formelzeichen ab und suchst im reststring wieder. Das ganze machst du bist du am Ende des Strings bist und setzt dann deine Formel wieder zusammen.
Ice
Anonymous - Fr 24.01.03 17:35
@ Ice: So in etwa hab ich das schon in der Schule angefangen. Dort hatte ich ein Array of Integer für die Zahlen und ein Array of Char für die Zeichen ... allerdings hat das Berechnen nicht hingehauen. War irgendwie (mir zu :) ) schwierig.
Wer mir deine Lösung mal angucken.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!