Autor Beitrag
delfiphan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2684
Erhaltene Danke: 32



BeitragVerfasst: Di 09.08.05 11:45 
Mir ist bewusst, dass es schon sehr viele Taschenrechner für den PC gibt.

Ich habe diesen Taschenrechner erstellt, da ich den Code noch für ein anderes Projekt brauchen werde. Und eigentlich ist so ein Calculator noch ganz nützlich, da der Windows-Calculator für normale Rechnungen etwas mühsam zu bedienen ist.

Die Features:

  • Open Source
  • Einfache Bedienung (Matlab-like)
  • Unbeschränke Anzahl von Variablen/Expressions definierbar
  • Rechnung mit komplexen Zahlen
  • Lizenz: Free for any use, use at own risk


Es handelt sich hier um eine erste Version. Je nach dem ob weitere Funktionen erwünscht sind mache ich weiter oder lasse es sein.

Zukünftige Versionen könnten bieten:
Definition von Funktionen "f(x) = x^2", Graphen zeichnen, u.a.

Beispiel:
Nullstelle der kubischen Funktion x^3-6x^2+11x-6 mittels Lösungsformel berechnen:

1) Definition der Ausdrücke für x1,x2,x3:
ausblenden Simple Calculator Code (Copy-/Pastebar):
1:
2:
3:
x1 := 1/6/a*(36*c*b*a-108*d*a^2-8*b^3+12*a*(12*c^3*a-3*c^2*b^2-54*c*b*a*d+81*d^2*a^2+12*d*b^3)^(1/2))^(1/3)-2/3*(3*c*a-b^2)/a/(36*c*b*a-108*d*a^2-8*b^3+12*a*(12*c^3*a-3*c^2*b^2-54*c*b*a*d+81*d^2*a^2+12*d*b^3)^(1/2))^(1/3)-1/3*b/a
x2 := -1/12/a*(36*c*b*a-108*d*a^2-8*b^3+12*a*(12*c^3*a-3*c^2*b^2-54*c*b*a*d+81*d^2*a^2+12*d*b^3)^(1/2))^(1/3)+1/3*(3*c*a-b^2)/a/(36*c*b*a-108*d*a^2-8*b^3+12*a*(12*c^3*a-3*c^2*b^2-54*c*b*a*d+81*d^2*a^2+12*d*b^3)^(1/2))^(1/3)-1/3*b/a+1/2*j*3^(1/2)*(1/6/a*(36*c*b*a-108*d*a^2-8*b^3+12*a*(12*c^3*a-3*c^2*b^2-54*c*b*a*d+81*d^2*a^2+12*d*b^3)^(1/2))^(1/3)+2/3*(3*c*a-b^2)/a/(36*c*b*a-108*d*a^2-8*b^3+12*a*(12*c^3*a-3*c^2*b^2-54*c*b*a*d+81*d^2*a^2+12*d*b^3)^(1/2))^(1/3))
x3 := -1/12/a*(36*c*b*a-108*d*a^2-8*b^3+12*a*(12*c^3*a-3*c^2*b^2-54*c*b*a*d+81*d^2*a^2+12*d*b^3)^(1/2))^(1/3)+1/3*(3*c*a-b^2)/a/(36*c*b*a-108*d*a^2-8*b^3+12*a*(12*c^3*a-3*c^2*b^2-54*c*b*a*d+81*d^2*a^2+12*d*b^3)^(1/2))^(1/3)-1/3*b/a-1/2*j*3^(1/2)*(1/6/a*(36*c*b*a-108*d*a^2-8*b^3+12*a*(12*c^3*a-3*c^2*b^2-54*c*b*a*d+81*d^2*a^2+12*d*b^3)^(1/2))^(1/3)+2/3*(3*c*a-b^2)/a/(36*c*b*a-108*d*a^2-8*b^3+12*a*(12*c^3*a-3*c^2*b^2-54*c*b*a*d+81*d^2*a^2+12*d*b^3)^(1/2))^(1/3))

2) Auswerten von x1,x2,x3 mit a=1,b=-6,c=11,d=-6:
ausblenden Simple Calculator Code (Copy-/Pastebar):
1:
2:
a=1; b=-6; c=11; d=-6
x1;x2;x3
Einloggen, um Attachments anzusehen!
retnyg
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2754

SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
BeitragVerfasst: Di 13.09.05 13:25 
super programm ! user defined image

könntest du noch eine inttohex und hextoint funktion einbauen?
wenn möglich mit ganz kurzen funktionsnamen ;)

_________________
es gibt leute, die sind genetisch nicht zum programmieren geschaffen.
in der regel haben diese leute die regel...
delfiphan Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2684
Erhaltene Danke: 32



BeitragVerfasst: Di 13.09.05 15:57 
Nun, der Rechner kennt nur einen Typ und zwar Extended (bzw. "Complex"). Damit IntToHex bzw. HexToInt geht müsste man den Parser erweitern... Viel Lust habe ich aber nicht, das umzuschreiben... ;)
Wenn du's selbst mal probieren möchtest ist der Source ja dabei ;)
retnyg
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2754

SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
BeitragVerfasst: Do 15.09.05 13:00 
hmm mod kann der auch nicht :gruebel:

könnteste nicht modulo einbauen, wenn man mit \ (backslash) dividiert, so wie bei visual basic ?

_________________
es gibt leute, die sind genetisch nicht zum programmieren geschaffen.
in der regel haben diese leute die regel...
uall@ogc
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1826
Erhaltene Danke: 10

Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
BeitragVerfasst: Do 15.09.05 13:12 
und wieso heißt das i bei dir j :P

_________________
wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
delfiphan Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2684
Erhaltene Danke: 32



BeitragVerfasst: Do 15.09.05 19:52 
user profile iconretnyg hat folgendes geschrieben:
hmm mod kann der auch nicht :gruebel:

könnteste nicht modulo einbauen, wenn man mit (backslash) dividiert, so wie bei visual basic ?

Wie ist mod für komplexe Zahlen definiert? a mod b = a-floor(a/b)*b ?

user profile iconuall@ogc hat folgendes geschrieben:
und wieso heißt das i bei dir j :P

Weil der Parser in AXMDs Complex Calculator eingebaut werden sollte und er unbedingt j wollte ;) (Ändern kann man's auf Zeile 351 in complexParser.pas...)

Plots kann man übrigens hiermit machen.