Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#7

Re: Taschenrechner Speicher Problem

  Alt 29. Jan 2006, 16:06
Ein Stack bzw. Stapel bzw. Kellerspeicher ist ein Zwischenspeicher für mehrere Items, bei dem du das zuletzt hinzugefügte Item zuerst wieder wegnimmst. Vielleicht läuft dir in diesem Zusammanhang noch das Akronym LIFO über den Weg - Last In First Out.

Benutzen kannst du den von mir skizzierten (extrem primitiven) Stack so:

Delphi-Quellcode:
// (2 * 9 + 3) * 2
Push(2);
Push(Pop * 9);
Push(Pop + 3);
Push(Pop * 2);
ShowMessage(Format('%.2f', [Pop]));
Double ist einer der Fließkomma-Typen aus Delphi, so wie Integer ein Ganzzahl-Typ ist. Da solltest du mal in der Online Hilfe unter Typen nachlesen.

Infix ist einfach die dir geläufige Notation (1 + 1) für eine mathematische Operation, so benannt, weil der Operator zwischen den Operanden steht.

Das bringt uns zu deiner Frage, was denn die einfachste Lösung für dein Klammernproblem wäre. Das dürfte die Lösung sein, bei der die Klammern einfach vermieden werden. Die zugehörige Notation heißt postfix und ist von den HP Taschenrechnern her in der Schule auch als UPN (Umgekehrte Polnische Notation) bekannt. Die obige Rechenaufgabe würde da so notiert:

Code:
 2 9 * 3 + 2 * =
Wie du siehst - keine Klammern, weil unnötig.

Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat