![]() |
Re: Wissenschaftlicher Taschenrechner
Hallo
Kannst du auch den Quellcode veröffentlichen? Oder soll der nur dir vorbehalten bleiben, oder nur verfügbar werden, wenn du ganz fertig bist? ;-) MFG |
Re: Wissenschaftlicher Taschenrechner
würd mich auch mal interesieren, wie du das alles so gemacht hast. ich muss für die schule auch son ding schreiben...
Also wär coll, wenn du den Sourcecode mal hier dran hängen könntest. .:: Greetz xDestiny ::. |
Re: Wissenschaftlicher Taschenrechner
Mach ich vielleicht wirklich spaeter. Aber er ist ja immer noch nicht fertig. Hier nur mal eben die Version mit der korrigierten Klammernrechnung.
Zum Implementation: ich habe fuer die Operationen einen Aufzaehlungstyp, in dem alle verfuegbaren Operationen drin stehen. Dann habe ich in einem Array dieses Typs die Rangfolge festgehalten.
Delphi-Quellcode:
Sodass ich dann in der Berechnungsprozedur (abgesehen von Spezialfaellen, die zuvor abgehandelt werden) nur noch eine Whileschleife drin hab:
tOperatorType=(oNone,oValue,oVariable,oExec,
oAdd,oSub,oMul,oDiv, oFac,oRec,oAbs,oPO,oPC, oLn,oLog,oRt,oSqrt,oPi, oPwrE,oPwr10,oPwr,oSq,oCb, oSin,oSinh,oASin,oASinh, oCos,oCosh,oACos,oACosh, oTan,oTanh,oATan,oATanh); const OperatorPriority:array[tOperatorType] of byte=( 9,0,0,9, 3,3,2,2, 1,1,1,5,4, 1,1,1,1,0, // ..Pi 1,1,1,1,1, 1,1,1,1, 1,1,1,1, 1,1,1,1);
Delphi-Quellcode:
ReadOperator liest den obersten Operator vom Stack, ohne ihn zu loeschen. CalculateOperation tut das dann mit loeschen und holt auch so viele Operanden vom Operandenstack, wie fuer die Operation benoetigt. Das Ergebnis wird dann auf den Operandenstack zurueck geschrieben, sodass es fuer das naechste CalculateOperation wieder als Operand verfuegbar ist.
while (OperatorPriority[ReadOperator]<=OperatorPriority[NewOperator])
and (OperatorCount>0) do begin temp:=CalculateOperation; PushOperand(temp); end; |
Re: Wissenschaftlicher Taschenrechner
Liste der Anhänge anzeigen (Anzahl: 2)
Neue Version: ich habe angefangen, das Digitaldisplay zu implementieren.
Hab soeben die Anzeige der Zehnerpotenz (so einigermassen) abgeschlossen. Weil das Display groesser ist als vorher, ist auch der Rechner selbst etwas groesser geworden. Ist das Display gut lesbar so? Fuer die neue Anzeige gibt es auch die Option der frei waehlbaren Farbschattierung (von nicht wirksam bis etwa 1/3), und die Anzeige der Tausendertrennzeichen funktioniert damit jetzt auch. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:22 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