![]() |
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.
|
Re: Taschenrechner Programmieren
Hallo Jack,
auch hier kann ich folgendes Buch empfehlen: ![]() 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:
Wie man sieht müssen die Operanden vor dem Operator auf dem Stapel erscheinen. Um das zu vereinfachen
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 kann man den Ausdruck 5*(((9+8 )*(4*6)+7) in der ![]()
Code:
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.
598+46**7+*
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. |
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
|
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. |
Re: Taschenrechner Programmieren
Ohh gut zu wissen!!!!
Gibt es nicht irgendeine Möglichkeit mir das einfach nahezubringen |
Re: Taschenrechner Programmieren
@JackRyan "Wie geht das mit den Units?"
ja, du sachst einfach
Delphi-Quellcode:
und um selbst eine zu machen so:
uses deineunit;
Delphi-Quellcode:
und das wars
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. |
Re: Taschenrechner Programmieren
was näherbringen?
punktvorstrichrechnung? das solltest dú können :wink: |
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 ... |
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: )) |
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. |
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