Benutzerdefinierte Funktionen
In REX/PSI Next Generation haben Sie die Möglichkeit, benutzerdefinierte Funktionen zu erstellen, um spezifische Berechnungen und Simulationen an Ihre Anforderungen anzupassen. Diese Funktionen ermöglichen es, komplexe mathematische Ausdrücke und Bedingungen zu formulieren, um spezifische Parameter in der Simulation zu berechnen oder anzupassen. Für die Erstellung dieser Funktionen wurde eine eigene minimale Programmiersprache entwickelt, die mathematische und logische Ausdrücke unterstützt. Dieser Abschnitt erläutert die Funktionsweise, Syntax und Anwendung der benutzerdefinierten Funktionen im Detail.
Überblick: Benutzerdefinierte Funktionen verwalten
Der Dialog Benutzerdefinierte Funktionen verwalten bietet eine zentrale Oberfläche zur Erstellung und Verwaltung benutzerdefinierter Funktionen. Dieser Dialog ist in mehrere Abschnitte gegliedert:
- Oberer Bereich: Hier legen Sie den Namen und die Einheit der benutzerdefinierten Funktion fest. Der Name dient der Identifikation der Funktion, während die Einheit die physikalische Größe beschreibt, die die Funktion berechnet. Wichtig: Sobald der Name einer Funktion festgelegt wurde, kann er nicht mehr geändert werden.
- Mittlerer Bereich: In einem großen Textfeld definieren Sie die Funktion selbst. Der Text in diesem Feld ist farblich hervorgehoben (Syntaxhervorhebung), um die Übersichtlichkeit zu erhöhen. Verschiedene Elemente wie Schlüsselwörter, Variablen oder Operatoren werden in unterschiedlichen Farben dargestellt, um Fehler leichter zu erkennen und den Code besser lesbar zu machen.
- Unterer Bereich: Hier haben Sie Zugriff auf eine Liste von vordefinierten Variablen und mathematischen Funktionen. Mit einem einfachen Klick können Sie diese in das Textfeld an der Position des Cursors einfügen. Da es insgesamt 144 vordefinierte Variablen gibt, die Berechnungsergebnisse oder Geometriedaten enthalten, erleichtert diese Funktion die Erstellung komplexer Funktionen erheblich.
- Linker Bereich: Im linken Teil des Dialogs können Sie Ihre benutzerdefinierten Funktionen verwalten. Hier können Sie Funktionen erstellen oder löschen.
Prüfung und Auswertung der Funktion
Nachdem Sie Ihre Funktion definiert haben, können Sie auf 'OK' klicken, um zu prüfen, ob die Funktion korrekt formuliert ist. Die Software führt eine syntaktische Überprüfung durch, und falls Fehler vorliegen, werden diese im Textfeld farblich markiert. Dies hilft Ihnen, Fehlerquellen schnell zu identifizieren und zu korrigieren.
Mathematische Ausdrücke
Benutzerdefinierte Funktionen bestehen in der Regel aus mathematischen Ausdrücken, die einen Wert repräsentieren. In diesen Ausdrücken können Sie Variablen, Operatoren und mathematische Funktionen verwenden. Die wichtigsten Elemente, die in einem mathematischen Ausdruck verwendet werden können, umfassen:
- ** Binäre Operatoren:** Die Grundrechenarten, die in benutzerdefinierten Funktionen zur Verfügung stehen, sind:
- Potenzieren (^)
- Multiplizieren (*)
- Dividieren (/)
- Addieren (+)
- Subtrahieren (-)
- Unäre Operatoren: Das einzige definierte unäre Operator ist das Minus (-), das verwendet wird, um negative Werte darzustellen.
- Klammern: Sie können mathematische Ausdrücke beliebig klammern, um die Reihenfolge der Berechnungen zu steuern.
- Variablen: Sie können sowohl vordefinierte Variablen als auch eigene Variablen in den Ausdrücken verwenden. Vordefinierte Variablen liefern wichtige Informationen wie Geometrie- oder Materialdaten. Sie können aber auch neue Variablen definieren, die dann in der Funktion verwendet werden.
- Vordefinierte Funktionen: Es stehen 13 grundlegende mathematische Funktionen zur Verfügung, wie zum Beispiel die Sinus-Funktion oder der Logarithmus.
- Benutzerdefinierte Funktionen: Bereits erstellte benutzerdefinierte Funktionen können in anderen Funktionen wiederverwendet werden.
Rechenregeln für mathematische Ausdrücke
- Präzedenz von Operatoren: Die Rechenzeichen * und / haben eine höhere Priorität als + und -. Potenzen werden zuerst berechnet, und vordefinierte Funktionen binden stärker als der Potenzoperator. Ausdrücke in Klammern werden immer zuerst berechnet.
- Assoziativität: Alle binären Operatoren sind links-assoziativ, das heißt, bei mehreren Operatoren gleicher Priorität wird der Ausdruck von links nach rechts ausgewertet.
Logische Ausdrücke
Logische Ausdrücke repräsentieren einen Wahrheitswert und können mit Vergleichsoperatoren und logischen Operatoren formuliert werden:
- Vergleichsoperatoren:
- Kleiner ( < )
- Kleiner-oder-gleich ( < = )
- Gleich ( == )
- Größer-oder-gleich ( > = )
- Größer ( > )
- Ungleich ( != )
- Logische Operatoren:
- and: Verknüpft zwei logische Ausdrücke, wobei beide wahr sein müssen.
- or: Verknüpft zwei logische Ausdrücke, von denen mindestens einer wahr sein muss.
Logische Ausdrücke werden häufig für bedingte Anweisungen verwendet, um die Ausführung von Befehlen von einer bestimmten Bedingung abhängig zu machen.
Anweisungen
In benutzerdefinierten Funktionen gibt es verschiedene Arten von Anweisungen, die auf einer neuen Zeile beginnen und das Ergebnis eines mathematischen oder logischen Ausdrucks steuern:
- Zuweisungen: Eine Zuweisung bindet den Wert eines mathematischen Ausdrucks an eine Variable:
<Variable> = <Mathematischer Ausdruck>
- ** Return:** Die Anweisung return beendet die Funktion und gibt das Ergebnis des mathematischen Ausdrucks zurück:
return <Mathematischer Ausdruck>
- Bedingte Ausführung (if-then-else): Eine if-then-else Anweisung führt eine bedingte Prüfung durch. Falls der logische Ausdruck wahr ist, wird die then-Anweisung ausgeführt, andernfalls die else-Anweisung. Der else-Teil ist optional.
Umgang mit ungültigen Werten
Wenn eine Operation nicht definiert ist (z. B. eine Division durch Null), wird der spezielle Wert invalid zurückgegeben. Dieser ungültige Wert kann auch als Ergebnis einer Funktion verwendet werden, in dem Fall wird für diese Stützstelle kein Wert angezeigt.