Sitzung: Jeden Freitag in der Vorlesungszeit ab 16 Uhr c. t. im MAR 0.005. In der vorlesungsfreien Zeit unregelmäßig (Jemensch da?). Macht mit!

C-Kurs/Taschenrechner2.0/Musterlösung

Musterlösung

Dieser Aufgabe wird kein Code angehangen, da dies nicht sinnvoll wäre. Die Aufgabe war, sich zu überlegen, wie man eine beliebig lange Eingabe in den Taschenrechner erlaubt. Dieser Taschenrechner soll die Grundrechenregeln (Punkt vor Strich, etc.) beinhalten.

Folgend habe ich ein paar Ideen aufgeschrieben, wie man dies lösen könnte. Achtung: Die Liste ist keinesfalls komplett und auch einige Lösungen erfordern Grundwissen, das noch nicht, oder auch von uns nicht, vermittelt wird.

Bitte melde dich bei Fragen an den nebenstehenden Tutor, oder frage den ersteller (Mario).


Einige Ideen:

  1. Mehrfaches parsen
    • Parse die Eingabe mehrmals, jeweils absteigend mit Priorität der aktuellen Rechenoperation
    • Fange bei Multiplikation an und multipliziere solange, bis alle Multiplikationen durch Ergebnisse erstetzt wurden
    • Gehe nun eine Ebene tiefer und Addiere alle Werte auf die addiert werden sollten
    • Wenn du dies für alle Ebenen tust, solltest du die Eingabe korrekt gelesen haben.
  2. Benutze dein Grundwissen aus TheGI: einen Syntaxbaum
    • Überlege dir, wie du einen Baum in C schreiben könntest (Oder höre eine der nächsten Vorlesungen)
    • Erstelle dir nun den Baum aus der Eingabe.
    • Parse den Baum inorder.
  3. Suche dir eine Bibliothek, die das Problem löst
    • Dies ist ein bereits bekanntes Problem, also gibt es schon einige Lösungen
    • Wenn du viel Zeit und Lust hast, empfiehlt es sich eine ingehende Suche im Netz durchzuführen
    • Auch hierfür wird mehr Wissen benötigt, als der Kurs bisher vermittelt hat.
  4. Deine Idee?