Delphi-PRAXiS
Seite 2 von 10     12 34     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Rechenprogramm (https://www.delphipraxis.net/134885-rechenprogramm.html)

Amateurprofi 31. Mai 2009 21:29

Re: Rechenprogramm
 
@Satty67
@Forlan

Danke. Freut mich, daß es euch gefällt.

Matze 31. Mai 2009 21:43

Re: Rechenprogramm
 
Schön wäre noch, wenn du es lösen würdest wie Matlab: Jedes Ergebnis wird (zusätzlich) der Variablen "ans" zugewiesen, sobald man Return drückt.

Dann wäre so etwas möglich:

Code:
5*4   [Return]
=> 20
ans+2 [Return]
=> 22
ans/2 [Return]
=> 11
Grüße, Matze

Amateurprofi 31. Mai 2009 22:22

Re: Rechenprogramm
 
Zitat:

Zitat von himitsu
Ich hab jetzt nicht sowas gefunden, aber zu dem Zwischenergebnis, da wäre es noch schön, wenn man einfach sagen könnte "hier Ergebnis aus Zeile X".?
z.B.
Code:
25*3
r0-15  // Zeile1 - 15
r0+r1  // Zeile1 + Zeile2
Nja, vielleicht auch mit 1 beginnen zu indizieren, für die Nichtprogrammierer.

Das hatte ich bereits implementiert, dann aber wieder rausgenommen.
Der Grund ist, daß der Teil, der die Ausdrücke auswertet keinerlei Zugriff auf das Hauptprogramm hat, bzw. nicht haben soll, weil er auch für andere Anwendungen verwendbar sein soll. Der eigentliche Parser ist eine Funktion, die vom Hauptprogramm als Parameter einen String (eine Zeile aus dem Eingabefeld (ein TMemo)) geliefert kriegt, und das Ergebnis als String zurück gibt. Aber das ist nicht wirklich ein grundsätzliches Problem - Ich notiere das mal als einen Punkt für eine neue Version.

Zitat:

Mußte z.B. da oben, in der Beschreibung, mehmals hingucken, bevor ich mitbekam, daß das " als Markierung für die Binärzahl ist und nicht nur zur Abgrenzung hier im Post ... hab mich erst ewig gefragt, wie er an 11111011001 (praktisch ohne das ") erkennen soll, daß es binär gemeint ist (binär und hekadezimal hätt man ja z.B. auch mit b und x kennzeichnen können)
Das gäbe dann aber Konflikte. Stell Dir vor da ist eine Variable mit dem Name xe8 oder b111. wie sollen dann xe8 und b111 ausgewertet werden ? Als Hex- und Binärzahl oder als Name einer Variablen ?

Zitat:

das #8#3731 sähe als 8#3731 auch hübsch aus
Nicht ganz unproblematisch, aber machbar.

Zitat:

PS: wegen der Unmengen an Funktionen ... schonmal an eine Autovervollständigung gedacht?
Ja, aber das übersteigt meine Fähigkeiten bei weitem (bin halt nur ein amateurprofi).

Amateurprofi 31. Mai 2009 22:32

Re: Rechenprogramm
 
Zitat:

Zitat von Matze
Schön wäre noch, wenn du es lösen würdest wie Matlab: Jedes Ergebnis wird (zusätzlich) der Variablen "ans" zugewiesen, sobald man Return drückt.

Dann wäre so etwas möglich:

Code:
5*4   [Return]
=> 20
ans+2 [Return]
=> 22
ans/2 [Return]
=> 11
Grüße, Matze

Müßte eigentlich machbar sein. Ist, so wie himitsus Vorschlag, auf die Ergebnisse vorheriger Zeilen zugreifen zu können, für eine neue Versione notiert.

himitsu 31. Mai 2009 22:41

Re: Rechenprogramm
 
Zitat:

Zitat von Amateurprofi
Das hatte ich bereits implementiert, dann aber wieder rausgenommen.
Der Grund ist, daß der Teil, der die Ausdrücke auswertet keinerlei Zugriff auf das Hauptprogramm hat, ...

da es ja auch Variablen gibt, könnte man es ja so lösen, daß dann einfach für jede Zeile eine Variable angelegt würde, welche sich dann auslesen liese :)

Zitat:

Zitat von Amateurprofi
Das gäbe dann aber Konflikte. Stell Dir vor da ist eine Variable mit dem Name xe8 oder b111. wie sollen dann xe8 und b111 ausgewertet werden ? Als Hex- und Binärzahl oder als Name einer Variablen ?

joar, ok ... das ist ein guter Grund ... OK, man könnte zwar auch "bestimmte" Variablennamen einfach verbieten :nerd:
(einige Namen, wie z.B. die ganzen Funktionsnamen sind ja vermutlich auch schon gesperrt)

mein Gedanke war halt nur, daß es für mich so verständlicher wäre :angel2:

Zitat:

Zitat von Amateurprofi
Ja, aber das übersteigt meine Fähigkeiten bei weitem (bin halt nur ein amateurprofi).

macht mix, der Eine kann das gut und andere was Anderes ... wozu sind wir ein Forum ... laß einfach andere das erledigen :mrgreen:
z.B. AutoComplete für TMemo, TRichEdit uvm.

[edit]
wenn ich es mir Recht überleg, dann sollte sich die AutoComplete-Klasse auch so erweitern lassen, daß im Popup auch noch die Funktionsparameter mit angezeigt werden könnten, so als kleine Hilfestellung.

fLaSh11 1. Jun 2009 16:12

Re: Rechenprogramm
 
Was ich noch gerne hätte :D wäre, dass man die Speicherung der Rechnungen abschalten kann (oder gibt's das Feature schon?), weil das benötige ich nicht :mrgreen:

Jakob Ullmann 1. Jun 2009 17:13

Re: Rechenprogramm
 
Wirklich gute Arbeit!

Ich bastle nämlich auch gerade an einem Rechner. Da hab ich noch sowas wie sum(n;0;20;1/fac(n)) oder halt prod(...) eingebaut. Nur so als Anregung. ;-)

Amateurprofi 2. Jun 2009 12:40

Re: Rechenprogramm
 
Zitat:

Zitat von Jakob Ullmann
Wirklich gute Arbeit!

Ich bastle nämlich auch gerade an einem Rechner. Da hab ich noch sowas wie sum(n;0;20;1/fac(n)) oder halt prod(...) eingebaut. Nur so als Anregung. ;-)

Danke, aber solche Funktionen die Listen von Werten verarbeiten, sind bereits Teil des Programms
Min(Liste) Minimum
Max(Liste) Maximum
Sum(Liste) Summe
Avg(Liste) Mittelwert
Mul(Liste) Produkt
QSum(Liste) Summe von Quadraten
LCD(Liste) Größter gemeinsamer Teiler
SCM(Liste) Kleinstes gemeinsames Vielfaches
In allen Fällen kann die Liste beliebig viele Einträge haben, und jeder Eintrag kann ein beliebig komplexer Ausdruck sein.

Amateurprofi 2. Jun 2009 18:17

Re: Rechenprogramm
 
Zitat:

Zitat von fLaSh11
Was ich noch gerne hätte :D wäre, dass man die Speicherung der Rechnungen abschalten kann (oder gibt's das Feature schon?), weil das benötige ich nicht :mrgreen:

Ist in der aktuellen Version nicht vorgesehen.
Da du die Texte mit einem einzigen Tastendruck löschen kannst, scheint mir das auch nicht problematisch zu sein.

Jakob Ullmann 2. Jun 2009 18:37

Re: Rechenprogramm
 
Zitat:

Zitat von Amateurprofi
Zitat:

Zitat von Jakob Ullmann
Wirklich gute Arbeit!

Ich bastle nämlich auch gerade an einem Rechner. Da hab ich noch sowas wie sum(n;0;20;1/fac(n)) oder halt prod(...) eingebaut. Nur so als Anregung. ;-)

Danke, aber solche Funktionen die Listen von Werten verarbeiten, sind bereits Teil des Programms
Min(Liste) Minimum
Max(Liste) Maximum
Sum(Liste) Summe
Avg(Liste) Mittelwert
Mul(Liste) Produkt
QSum(Liste) Summe von Quadraten
LCD(Liste) Größter gemeinsamer Teiler
SCM(Liste) Kleinstes gemeinsames Vielfaches
In allen Fällen kann die Liste beliebig viele Einträge haben, und jeder Eintrag kann ein beliebig komplexer Ausdruck sein.

Damit hatte ich eigentlich sowas wie das mathematische Summationszeichen gemeint. Zum Beispiel, um die eulersche Zahl zu nähern. Ist aber vielleicht nur bedingt brauchbar. :wink:


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:03 Uhr.
Seite 2 von 10     12 34     Letzte »    

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