Einzelnen Beitrag anzeigen

Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#1

Komplexe Funktionsterme zu Postfix konvertieren

  Alt 25. Jan 2009, 13:00
Hi!

Dieses Thema gehört in keines der vorhandenen Foren. Mein Problem ist kein Programmierproblem sondern ein mathematisches. Ich halte ein Mathematik-Forum für angemessen da Programmieren ohne Mathematik unmöglich ist. Ich habe diese Frage einfach in dieses Forum gepackt, weil ich "Programmieren allgemein" für genauso schwachsinnig halte und ich einfach in dieser Kategorie laut meinem Profil wohne

Ich konvertiere erfolgreich Infix zu Postfix. Nun stehe ich allerdings vor einem Problem:
Hat man eine Funktion namens fnkt(20), dann schreibt man einfach 20 fnkt in Postfix. Aber nun nehmen wir mal an, ich hätte fnkt((2/5^2)*6). Dann wäre das 2 5 2 ^ / 6 * fnkt. Wie soll ich am Ende
Code:
2 5 2 ^ / 6 * fnkt
noch vom Rest unterscheiden können ? Woher soll ich wissen, wie weit ich in den Stack reingehen muss, um den kompletten Funktionsterm zu bekommen ?

Eine Lösung wäre natürlich, denn Funktionsterm zu Postfix zu konvertieren, diesen auszurechnen und am Ende vor den Funktionsnamen schreiben (am Beispiel von oben verdeutlicht):
Code:
0,48 fnkt
Aber ich finde das ist nicht zufriedenstellend, da ich auf einen kompletten UPN-Term großen Wert lege.

Habt ihr eine Idee wie man dieses Problem lösen könnte ?
  Mit Zitat antworten Zitat