Compiler ???



  • Ich hab da ein Informatikproblem:
    Vielleicht fällt euch Systemprogrammierer da ja mehr ein als mir. Eigentlich soll es nur ein ausführbares Programm sein.

    So jetzt das Problem:

    Ich sol ein Programm „Auswertung“ schreiben, das zulässige, geklammerte Ausdrücke einliest und berechnet, wobei zulässige Ausdrücke wie folgt aufgebaut sind:

    Die Eingabewerte sind ganzzahlig und der Ausdruck wird vollständig übergeben, d.h. als vollständige Zeile oder als Datei. Als Operatoren können + (Addition), - (Subtraktion), * (Multiplikation), / (ganzzahlige Division ohne Rest), und **2 ( Quadrierung ) auftreten, wobei die Operanden auch mathematisch geklammert sein können ( Klammersymbole ( oder ) ). Als Trennzeichen fungiert das Leerzeichen; eine Folge von Trennzeichen ist einem einzelnen Trennzeichen gleichwertig. Vor und hinter jedem Operator darf ein Trennzeichen stehen, braucht es aber nicht. Ein Zeilenende-Zeichen beendet einen Ausdruck.

    Das Programm erfüllt folgende Anforderungen/Funktionen:

    Lesen und Berechnung werden wiederholt, bis das Dateiende-Zeichen erreicht wird. Die Umleitung der Eingabe in eine Datei ist möglich, d.h. Dateien mit zulässig geklammerten Ausdrücken können zur Auswertung an das Programm übergeben werden.
    Das Programm sieht (mindestens) für folgende Fälle verschiedene Fehlermeldungen vor:
    Unzulässige Eingaben ( Aufgabe: welche unzulässigen Eingaben können entstehen ??? ).
    Bereichsüberschreitungen beim Rechnen.

    Desweiteren soll ich ein Programm „Prior“ schreiben, das wie das Programm Auswertung zulässige, geklammerte Ausdrücke einliest und berechnet, was aber zusätzlich die folgende Klammereinsparungsregel realisiert:

    Man ordnet den Operatoren folgende Prioritäten zu:
    **2 geht vor * , /
    * , / geht vor + , -

    Alle anderen Rahmenbedingungen gelten analog zu Programm „Auswertung“, insbesondere Fehlermeldungen.

    Und als letztes soll ich Programm „UPN“ schreiben, das zulässige, geklammerte Ausdrücke einliest und diesen Ausdruck in umgekehrte polnische Notation ( UPN ) übersetzt.

    Die Eingabewerte können ganze Zahlen und auch Buchstaben ( keine Umlaute ) sein. Ein Ausdruck wird vollständig übergeben, d.h. als vollständige Zeile oder als Datei.
    Als Operatoren können + (Addition), - (Subtraktion), * (Multiplikation), und / (Division) auftreten, wobei die Operanden auch mathematisch geklammert sein können ( Klammersymbol ( oder ) ). Als Trennzeichen fungiert das Leerzeichen; eine Folge von Trennzeichen ist einem einzelnen Trennzeichen gleichwertig. Vor und hinter jedem Operator darf ein Trennzeichen stehen, braucht es aber nicht. Ein Zeilenende-Zeichen beendet einen Ausdruck. Alle anderen Rahmenbedingungen gelten analog zu Programm „Auswertung“, insbesondere Fehlermeldungen.




Log in to reply