Delphi-PRAXiS
Seite 4 von 6   « Erste     234 56      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Taschenrechner Programmieren (https://www.delphipraxis.net/20361-taschenrechner-programmieren.html)

Luckie 18. Apr 2004 11:41

Re: Taschenrechner Programmieren
 
Das wird wohl von Unit zu Unit anders sein. genauso, was den Funktionsumfang betriift, hängt eben davon ab, wie viel Mühe sich derjenige gemacht hat.

Jens Schumann 18. Apr 2004 12:24

Re: Taschenrechner Programmieren
 
Hallo Jack,
auch hier kann ich folgendes Buch empfehlen:
Sedgewick

In diesem Buch beschreibt Herr Sedgewick in Pascalnotation verschiedene Algorithmen.
Unteranderem auch einen Algorithmus für einen Taschenrechner. Na ja nicht direkt. Es werden
Algorithmen für Staple erklärt. Ein Beispiel beschäftigt sich genau mit der Deiner Fragestellung.

D.h. für Lösung Deines Problems solltest Du mit einem Stapel arbeiten.
Im folgenden muss vorausgesetzt werden dass Du weißt was ein Stapel ist.
Push holt einen Wert vom Stapel, Pop packt einen Wert auf den Stapel.
Damit ließe sich folgender Ausdruck wie folgt berechenen:
Code:
5*(((9+8)*(4*6)+7)
Code:
push(5)
push(9)
push(8)
push(pop+pop)
push(4)
push(6)
push(pop*pop)
push(pop*pop)
push(7)
push(pop+pop)
push(pop+pop)
Result:=pop
Wie man sieht müssen die Operanden vor dem Operator auf dem Stapel erscheinen. Um das zu vereinfachen
kann man den Ausdruck 5*(((9+8 )*(4*6)+7) in der umgekehrten polnischen Notation darstellen. Dann würde unser Ausdruck wie folgt aussehen:
Code:
598+46**7+*
Man kann hier sehr deutlich einen Zusammenhang zwischen der Notation und den Stapeloperationen sehen. Der Ausdruck 5*(((9+8 )*(4*6)+7) entspricht der Notation wie wir sie in der Schule gelernt haben. Diese Notation nennt man auch InFix-Notation. Die umgekehrte polnische Notation nennt man auch PostFix-Notation. Interessant ist auch das die PostFix-Notation ohne Klammern auskommt.

Deine geistige Leistung muss es jetzt sein einen Stapel zu entwicklen, einen Algorithmus schreiben, der die InFix-Notation in die PostFix-Notation umwandelt und auf den Stapel packt und berechnet.

Jack Ryan 18. Apr 2004 13:24

Re: Taschenrechner Programmieren
 
Sei nicht böse es ist sicher gut erklärt aber ich bin ein Delphi Anfänger und kann mit diesen Begriffen irgendwie nichts anfangen

Jens Schumann 18. Apr 2004 18:11

Re: Taschenrechner Programmieren
 
Hallo Jack,
ich weiß ja nicht warum Du einen Taschenrechner programmieren musst.
Aber ein Taschenrechner der Punkt vor Strichrechnung können muss ist für
einen Anfänger der absolute Overkill.

Jack Ryan 18. Apr 2004 19:46

Re: Taschenrechner Programmieren
 
Ohh gut zu wissen!!!!

Gibt es nicht irgendeine Möglichkeit mir das einfach nahezubringen

glkgereon 20. Apr 2004 12:49

Re: Taschenrechner Programmieren
 
@JackRyan "Wie geht das mit den Units?"


ja, du sachst einfach
Delphi-Quellcode:
uses deineunit;
und um selbst eine zu machen so:

Delphi-Quellcode:
unit deineunit;

uses ...;

interface

   //typen

   //functionen und procedures headers
   //zB:

   procedure ichbintoll(a:string);

   //variablendeklarationen
   var
   a, b, c:integer;

implementation

   //function und procedure quelltexte
   
   procedure ichbintoll(a:string);
   begin
   Form1.Label1.Caption:='Ich Bin Ganz doll toll!!!';
   end;

end.
und das wars

glkgereon 20. Apr 2004 12:52

Re: Taschenrechner Programmieren
 
was näherbringen?

punktvorstrichrechnung?
das solltest dú können :wink:

himitsu 20. Apr 2004 12:55

Re: Taschenrechner Programmieren
 
@glkbkk
bei denem Codebeispiel fängt jetzt der Compiler an zu mekern, weil er Fotm1 nicht findet :warn:

Code:
...
implementation
[color=red]  //die Unit, wo Form1 & Form1.Label1 drin sind
   uses unit1;[/color]

   //function und procedure quelltexte
...

glkgereon 20. Apr 2004 13:00

Re: Taschenrechner Programmieren
 
das mit form1.label war nurn beispiel

da werden ja normalerweise algemeine functions drin sein (so mathe oder so) die sich nicht direkt auf irgendwelche d-komponenten beziehen

(die sollte man direkt in den record des jeweiligen typs schreiben, kann mir da aber mal wer per pn sagen wie das geht (damit kein mod kommt und sagt:"ihr kommt vom thema ab" :wink: ))

Jack Ryan 22. Apr 2004 14:56

Re: Taschenrechner Programmieren
 
so hab das jetzt hinbekommen *freu*.

Nur noch das problem.
Wie kann ich eine Fakultät berechnen???
also wenn ich 4 eingeben dann soll er 1*2*3*4
oder bei 7 1*2*3*4*5*6*7
rechnen


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:12 Uhr.
Seite 4 von 6   « Erste     234 56      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz