[C] Problem mit einfachen Taschenrechner

DAmico

Mitglied
Hallo Leute,

ich möchte einen Taschenrechner in C programmieren, doch leider muss ich zugeben, dass meine bisherigen Versuche alle gescheitert sind. :confused:
Deshalb wende ich mich an euch.:)

Der Taschenrechner soll nur einstellige Zahlen(0-9) benutzen, nur Addition und Subtraktion beherrschen und Klammern unterstützen, die bei der Rechnung beachtet werden sollen, z.B.: (4+5)-(2) oder 3+6-4

Mein Problem bei dem Taschenrechner liegt darin, dass die ganze Rechenaufgabe als String eingelesen werden soll.

Habt ihr eine Idee, wie ich am besten dieses Problem in Angriff nehmen kann?

Vielen Dank für eure Hilfe im Voraus.:)
Mit freundlichen Grüßen
 
Dankeschön für die schnellen Antworten.

Google habe ich, bevor ich in das forum gepostet habe, durchforstet,
habe aber leider keinen passenden Ansatz gefunden. :(

Habe mir den Thread von killerkirsche angeschaut, die Anforderungen an seinen Rechner sind noch hoher.
Leider steige ich mit meinen bisherigen Kenntnissen da nicht ganz durch.

Hat jemand von euch eine Idee, wie ich diese Problemstellung anpacken könnte? :)
Mit freundlichen Grüßen
 
Habe mir den Thread von killerkirsche angeschaut, die Anforderungen an seinen Rechner sind noch hoher.
Leider steige ich mit meinen bisherigen Kenntnissen da nicht ganz durch.
Evtl. solltest du dann deine Anforderungen korrigieren. Klammerausdrücke würde ich erstmal weglassen.
Hat jemand von euch eine Idee, wie ich diese Problemstellung anpacken könnte? :)
Ich vermute du hast das gelesen? http://www.tutorials.de/forum/c-c/247583-hilfe-beim-parsen.html

Dann mußt du ja eigentlich nur eine Ziffer lesen und dann in einer Schleife einen Operator, eine weitere Ziffer, die Operation ausführen bis der Ausdruck zuende ist. Letztendlich kannst du Klammern mit behandeln indem du deine Funktion rekursiv aufrufst.

Gruß
 
Dankeschön für die guten Anregungen,:)
ich werd mich mal auf den Stoff stürzen.

Eine spezielle Frage zum Verständnis habe ich:
Wenn ich vom Programm einen String "rechnung" einlesen lasse,
also als konkretes Beispiel 2 + 3.
Dann liegt ja in rechnung[0] die 2, das + in rechnung[1] und die 3 in rechnung[2].
Wie lässt es sich jetzt in C umsetzen, dass ich diese Rechnung ausführe?
Sprich ich initialisere die Variable ergebnis und möchte jetzt das Ergebnis von 2+3 in die Variable ergebnis speichern,
Wie lässt sich dies bewerkstelligen?

Vielen Dank im Voraus.:)
Mit freundlichen Grüßen
 
Gar nicht.
Das ist ja eben das Problem bei Taschenrechnern und ähnlichem, man muss die einzelnen Zahlen und Operatoren aus dem String rausholen (und möglichst alle math. Regeln dabei beachten)

Der C-Compiler kanns zwar, aber eben nur wenns im Quelltext steht.
Beim Ausführen hilft der nicht mehr
 
Ist bei Addition und Subtraktion die Klammersetzung nicht sowieso obsolet (ich mag das Wort :) )?
 

Neue Beiträge

Zurück