www.vorhilfe.de
- Förderverein -
Der Förderverein.

Gemeinnütziger Verein zur Finanzierung des Projekts Vorhilfe.de.
Hallo Gast!einloggen | registrieren ]
Startseite · Mitglieder · Impressum
Forenbaum
^ Forenbaum
Status VH e.V.
  Status Vereinsforum

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Suchen
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Algorithmen und Datenstrukturen" - Auswertung von Ausdrücken!
Auswertung von Ausdrücken! < Algor.+Datenstr. < Theoretische Inform. < Hochschule < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Algorithmen und Datenstrukturen"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Auswertung von Ausdrücken!: Tipp, Idee
Status: (Frage) überfällig Status 
Datum: 22:24 Do 26.06.2008
Autor: mmlug

Aufgabe
gegeben sind postfix-->(*(-2 4) (+ 2 2))->in präfix(2-4)*(2+2)
in Stack Auswerten.

Guten Abend,


gegeben sind postfix-->(*(-2 4) (+ 2 2))->in präfix(2-4)*(2+2)
in Stack Auswerten.

(* -) ( 4 2) -->(2)(*)-->(2 2 2)(+ *) -->(4 2) (*)->erg(8)

oder

(* -) (4 2)->(-2)(*)->(-2 2 2)(+ *)-->(4 -2)(* )--> erg(-8)

welche von beiden ist richtig, d.h muss mann 4 - 2 rechen oder 2 - 4 ?

kann jemand mir ausführlich erklären, wie ich Stack auswertung durchführen kann.

Ich danke dir im Voraus,

mmlug

Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.

        
Bezug
Auswertung von Ausdrücken!: Präfix in Infix
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 15:59 Fr 27.06.2008
Autor: xenos

Ich kann dir nicht direkt formal helfen, da ich nicht genau nachvollziehen kann, welche Notationsvereinbarung du für die Umwandlung benutzt. Was ich dir aber mit Sicherheit sagen kann, ist:

Wenn du (* (-_2 4) (+ 2 2)) meinst (an Stelle der roten Unterstriches ein Leerzeichen, das hattest du vergessen), dann ist das Ergebnis -8 (siehe unten), ansonsten wäre der Ausdruck falsch geklammert und herrlich sinnlos.

Wie wandelt man die Präfixnotation nun in Infix um?
Da du mit den Bezeichnungen wohl durcheinander gekommen bist, kurz nochmal:

Seien a,b Variablen und # ein Operator, dann ist
Präfix: (# a b)
Infix: (a # b)
Postfix: (a b #)
Die Schreibweisen sind gleichwertig.

Im vorliegenden Fall kann man den verschachtelten Ausdruck umwandeln, indem man ihn einfach in Teilausdrücke zerlegt:
A = (- 2 4)
B = (+ 2 2)
Dann hat der Gesamtausdruck die Struktur (* A B) --> (A' * B')
Nun macht man dies mit den Teilausdrücken:
A = (- a b) --> A' = (a - b) mit a = 2 und b = 4
B = (+ c d) --> B' = (c + d) mit c = 2 und d = 2

Nun kann man die Infixnotation komplett einsetzen:
((2-4)*(2+2))
Damit ist die Umwandlung komplett.
Wenn du den Ausdruck ausrechnest kommst du auf -8.

Achtung: das Ausrechnen ist syntaktischer Zucker, gehört aber nicht zum Umwandeln und ist auch nicht immer erwünscht.

Was du mit Auswerten im Stack meinst, ist mir nicht klar. Suchst du nach einem Pseudo-Assembler Programm, welches den Ausdruck mithilfe des Stacks auswertet?

Bezug
                
Bezug
Auswertung von Ausdrücken!: Frage (überfällig)
Status: (Frage) überfällig Status 
Datum: 16:15 Mo 07.07.2008
Autor: mmlug

Auswertung von Ausdrücken miene ich.. auf dem papier wie die Stack arbeitet Step-by-Step auf schrieben und dabei zwischen ergebnisse notieren...

sorry. habe kiene scanner.. daher mit Mobile Camera..
[URL=http://img232.imageshack.us/my.php?image=stackxw6.jpg][IMG]http://img232.imageshack.us/img232/1794/stackxw6.th.jpg[/IMG][/URL]

Jetzt erkennen ich .. zuerst welche Notationvereinbarung - geben muss.

Präfix-->(*(- 2 4) (+ 2 2)

1. step--> 4-2 = 2

|4| |-|     | | | |
|2| |*| --> |2| |*|-> u.s.w -> ergebnis -> 8

Oder..
Präfix(*(- 2 4) (+ 2 2)
1.step-> 2-4 = -2
|4| |-|     |  | | |
|2| |*| --> |-2| |*|-> u.s.w -> ergebnis -> - 8 (minus 8)

welche ich richtig?

-----------------------------------------------------------

((4/2) + (6/(4-2))) in postfix notation um und werten Sie ihn mit einme Stack aus. Notieren Sie die Zwischenergebnisse.

Also: In Postfix --> 4 2 / 6 4 2 - / +

| |  |2| | |
| |  |4| |2|
|2|  |6| |6| |3|
|4| /|2|-|2|/|2|+|5|<--- ergbenis ist 5


oder??
Also: In Postfix --> 4 2 / 6 4 2 - / +

1. step --> 2 / 4 = 0.5 ??

| |  |2  | | |
| |  |4  | |2|
|2|  |6  | |6| |3|
|4| /|0.5|-|2|/|2|+|5|<--- ergbenis ist 5


ich habe keine leuten die ich mir fragen kann.

ich danke dir im voruas,
grüße
koko


Bezug
                        
Bezug
Auswertung von Ausdrücken!: Fälligkeit abgelaufen
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 16:21 Mi 09.07.2008
Autor: matux

$MATUXTEXT(ueberfaellige_frage)
Bezug
        
Bezug
Auswertung von Ausdrücken!: Fälligkeit abgelaufen
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 23:20 Sa 28.06.2008
Autor: matux

$MATUXTEXT(ueberfaellige_frage)
Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Algorithmen und Datenstrukturen"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
ev.vorhilfe.de
[ Startseite | Mitglieder | Impressum ]