wiwauwsel Geschrieben 25. Juli 2007 Geschrieben 25. Juli 2007 Hi! Ich bin neu hier und dachte, dass ich mal mein Problem hier beschreibe. Also, ich soll einen Algorithmus in Form von Pseudocode oder Java schreiben, der einen vollständig geklammerten Ausdruck einliest und auswertet. Das heisst, dass die Sache mit 2 Stacks passieren soll, einem Operanden- und einem Operatorenstack. Die Klammern sollen mit auf den Operatorenstack. Und beim abarbeiten muss halt auf die Prioritäten usw geachtet werden. Mein Prof hat mir den Tip gegeben, dass ich die Klammern mit verschiedenen Präzedenzen begelegen kann, das wäre sehr elegant. Ich habe leider wenig Ahnung, wie ich das machen soll. Bin noch nicht so lange bei der Informatik dabei. Kann mir da jemand helfen? Im Endeffekt ist es ja ein arithmetischer Taschenrechner, der hier programmiert werden soll. Würde mich sehr über Hilfe freuen, weil ich das in recht kurzer Zeit fertig haben muss. Zitieren
Zero_HOUR Geschrieben 26. Juli 2007 Geschrieben 26. Juli 2007 hey ich hab auch ma so einen taschenrechner gebaut. ich habe es aber mit stringlisten gelöst. da ich probs mit dem stack hatte. du zwar eine variable also den wert auf den stack packen kannst. wenn du die variable aber überschreibst ist der vorherige wert weg da auf die adresse der variable zurückgegriffen bzw. verweist wird. ich hatte damit paar probs. ich hab das ganze in delphi mit stringlisten aufgebaut. stringlisten sind hintereinandergereite reservierte speicherbereiche auf die gepointert werden können also auch eine art stack. aber der vorteil ist, dass du das alles dann rekursiv bzw. interativ durchlaufen kannst. ich poste mal meine exe guck es dir mal an. vorher musst du aber die eingabe parsen. bevor du damit arbeitest weiß nit genau, ob das die entgültige version ist. aber zum verständnis hilfst. ist schon was länger her wo ich das gemacht habe. stand aber damals vor dem selben prob wie du jetzt. mfgProject_Rechner.rar Zitieren
setiII Geschrieben 26. Juli 2007 Geschrieben 26. Juli 2007 Liest du: Drachenbuch steht Lösung des Problems drinnen Zitieren
flashpixx Geschrieben 27. Juli 2007 Geschrieben 27. Juli 2007 Mein Tipp: Polnische Notation ggf. auch mal die Struktur von Prolog sich anschauen, mein Tipp hierzu DCG (definite clause grammer). Als Querthema ginge auch zuerst einmal den Ausdruck in polnischer Notation in einen Binärbaum zu packen und auszuwerten. Falls Du das mit einer DCG machen solltest, ein Bsp hab ich auf meiner Webseite für einen Taschenrechner, der solche Ausrücke prüft und berechnet (musste das für mein Praktikum machen): klammerauf fünf plus 2 klammerzu mal klammerauf drei minus zehn klammerzu => er gibt dann das Ergebnis als Text aus. Sonst ne PN an mich Gruß Phil Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.