Einzelnen Beitrag anzeigen

Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.063 Beiträge
 
Delphi XE2 Professional
 
#54

AW: Rechenprogramm

  Alt 13. Jul 2010, 22:16
Ich habe eine neue Version (2.3.1.1) des Parsers hochgeladen.

Was hat sich geändert ?:

Es gibt jetzt eine Context-sensitive Hilfe. Mehr dazu weiter unten.

Bisher konnten bei Funktionen, die nur einen Parameter haben die ( ) weggelassen werden.
Das geht jetzt, mit gewissen Einschränkungen für alle (genauer fast alle) Funktionen.
Die Einschränkungen sind :
Bei Funktionen die einen oder zwei Parameter haben, muß der letzte Parameter ein Wert (nicht ein Term) sein.
Beispiele
Power 2, 5 entspricht Power(2, 5)
Power 2, 5 + 3 entspricht nicht Power(2, 5 + 3) sondern Power(2, 5) + 3
Bei Funktionen mit mehr als 2 oder unbestimmter Anzahl Parametern müssen alle Parameter Werte (nicht Terme) sein.
Bei folgenden Funktionen muß die Parameterliste in ( ) stehen
FMin, FMax, FSum etc., EqE, Encode, Erase

Die Funktionen Date, Time DT wurden entfernt.

Die Funktionen Ld / ALd (Logarithmus dualis und seine Umkehrung) wurden hinzugefügt.
Warum ?: Wenn es die Funktionen Ln und Lg gibt darf man (m.E.) erwarten, das es auch Ld gibt.

Bei der Eingabe eines Datums ist jetzt das Jahr Optional.
Wird es nicht angegeben wird das Jahr aus dem System-Datum genommen.
Die Eingabe 15.07. würde dann als 15.07.2010 interpretiert.

Bei der Eingabe von Winkeln und Positionsangaben war bisher die Schreibweise g° m' s.ss" zwingend.
Jetzt kann auch g:m:s.ss geschrieben werden, wobei s.ss optional ist.
Diese Schreibweise kollidiert natürlich mit dem Eingabeformat für Zeiten (hh:mm:ss).
Das Programm unterscheidet wie folgt :
Ist der erste Wert (g oder hh) größer 23 dann handelt es sich um einen Winkel.
ist der erste Wert <= 23 hat aber (durch führende 0en) mehr als 2 Ziffern, dann handelt es sich um einen Winkel.
Ist der letzte Parameter (ss oder s.ss) ein reeller Wert dann handelt es sich um einen Winkel.

Eine Funktionalität die schon immer vorhanden (aber nicht zugänglich) war, ist das Testen der Performance des Parsers.
Mit Menu > Test > Performancetest kann getestet werden wie lange der Parser braucht, um den Ausdruck in der aktuellen Zeile auszuwerten. Auswerten heißt hier, daß dem Parser der Text übergeben wird und der Parser den Text auswertet und das Ergebnis liefert.

Ein paar kleine Bugs wurden beseitigt.

Zur Context-sensitiven Hilfe :
Ich habe 3 "Systeme" implementiert.

Anzeige von Hilfetexten zu einem im Eingabefeld stehenden Text
Hierzu wird das Caret (nicht der Mouse-Cursor) vor, hinter oder in den Text gestellt (oder der Text selektiert) und die F1 Taste gedrückt (oder Menu > Hilfe > Context sensitive Hilfe gwählt).
Wenn der Text der Name einer Funktion, eines Operators, einer Ausgabeanweisung, einer Konstanten ist, oder auch nur ein Sonderzeichen, das in der Syntax eine bestimmte Bedeutung hat, dann wird ein entsprechender Hilfetext angezeigt.

Anzeige von Funktionsnamen mit ihren möglichen Parameterlisten.
Hierzu wird das Caret hinter den Suchtext gestellt (oder der Suchtext selektiert) und Strg Space gedrückt (oder Menu > Hilfe > Funktionsparameter gewählt).
In einem Listenfeld werden alle Funktionen gezeigt die zu dem Suchtext passen.
Wie entschieden wird ob ein Funktionsname zum Suchtext paßt steht im HelpFile unter Context sensitive Hilfe.

Anzeige des Sprachschatzes des Parsers
Hierzu wird Shift-Strg-Space gedrückt (oder Menu > Hilfe > Sprachreferenz gewählt).
In einem Listenfeld werden in einer Baumstruktur alle implementierten Funktionen, Operatoren, Ausgabeanweisungen, Konstanten, Variablen, sowie alle Sonderzeichen, die irgendeine Bedeutung für den Parser haben, angezeigt und können von dort mit Doppelklick in das Eingabefeld kopiert werden. Alternativ kann durch Rechtsklick ein zugehöriger Hilfetext angezeigt werden.
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat