Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| simulation:benutzerdefinierte_funktionen [2026/01/10 21:16] – neelest | simulation:benutzerdefinierte_funktionen [2026/01/10 21:29] (aktuell) – neelest | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| ====== Benutzerdefinierte Funktionen ====== | ====== Benutzerdefinierte Funktionen ====== | ||
| - | |||
| - | *[[Simulation: | ||
| - | *[[Simulation: | ||
| - | *[[Simulation: | ||
| - | |||
| - | ===== Benutzerdefinierte Funktionen ===== | ||
| Für die Definition benutzerdefinierter Funktionen wurde eine eigene, minimale (Programmier-)Sprache entwickelt. In dieser Sprache können beliebig komplexe, mathematische Ausdrücke formuliert werden. Außerdem bietet sie die Möglichkeit der bedingten Ausführung anhand logischer Ausdrücke. Im Folgenden wird näher auf die Eigenschaften dieser Sprache eingegangen. | Für die Definition benutzerdefinierter Funktionen wurde eine eigene, minimale (Programmier-)Sprache entwickelt. In dieser Sprache können beliebig komplexe, mathematische Ausdrücke formuliert werden. Außerdem bietet sie die Möglichkeit der bedingten Ausführung anhand logischer Ausdrücke. Im Folgenden wird näher auf die Eigenschaften dieser Sprache eingegangen. | ||
| Zeile 19: | Zeile 13: | ||
| {{ : | {{ : | ||
| - | **Abbildung: | ||
| Der obere Teil dient zur Festlegung des Namens und der Einheit eines Funktionswertes dieser Funktion. Ist der Name einmal bestimmt, so kann er nicht mehr geändert werden. | Der obere Teil dient zur Festlegung des Namens und der Einheit eines Funktionswertes dieser Funktion. Ist der Name einmal bestimmt, so kann er nicht mehr geändert werden. | ||
| Zeile 64: | Zeile 57: | ||
| ===== Logische Ausdrücke ===== | ===== Logische Ausdrücke ===== | ||
| - | Logische Ausdrücke repräsentieren einen Wahrheitswert. In einem solchen Ausdruck können Vergleichsoperatoren sowie logische Operatoren verwendet werden. Die sechs binären Vergleichsoperatoren Kleiner (<), Kleiner-oder-gleich (<=), Gleich ( == ), Größer-oder-gleich ( >= ), Größer (>) und Ungleich ( != ) vergleichen jeweils zwei mathematische Ausdrücke miteinander. Ihre Rückgabewerte sind Wahrheitswerte und können mit den zwei logischen Operatoren //and// und //or// weiter verknüpft werden. Dabei gilt, dass //and// stärker bindet als //or//. Logische Ausdrücke können nicht geklammert werden. Der Einsatz von logischen Ausdrücken ist auf bedingte Anweisungen beschränkt, | + | Logische Ausdrücke repräsentieren einen Wahrheitswert. In einem solchen Ausdruck können Vergleichsoperatoren sowie logische Operatoren verwendet werden. Die sechs binären Vergleichsoperatoren Kleiner (<), Kleiner-oder-gleich ( < = ), Gleich ( == ), Größer-oder-gleich ( >= ), Größer (>) und Ungleich ( != ) vergleichen jeweils zwei mathematische Ausdrücke miteinander. Ihre Rückgabewerte sind Wahrheitswerte und können mit den zwei logischen Operatoren //and// und //or// weiter verknüpft werden. Dabei gilt, dass //and// stärker bindet als //or//. Logische Ausdrücke können nicht geklammert werden. Der Einsatz von logischen Ausdrücken ist auf bedingte Anweisungen beschränkt, |
| ==== Beispiele ==== | ==== Beispiele ==== | ||
| Zeile 82: | Zeile 75: | ||
| ''< | ''< | ||
| - | Durch Verwenden einer Zuweisungsanweisung wird die entsprechende Variable, sofern noch nicht bekannt, angelegt und mit dem Wert des Ausdrucks belegt. Existiert bereits eine Variable mit diesem Namen, so wird der alte Wert überschrieben. So angelegte Variablen können anschließend wieder in mathematischen Ausdrücken verwendet werden. Variablennamen müssen immer mit einem Buchstaben beginnen, dürfen aber Ziffern enthalten. Der Wert von logischen Ausdrücken kann nicht an Variablen gebunden werden! Nachfolgend sind einige Beispiele für Zuweisungen aufgeführt. | + | Durch Verwenden einer Zuweisungsanweisung wird die entsprechende Variable, sofern noch nicht bekannt, angelegt und mit dem Wert des Ausdrucks belegt. Existiert bereits eine Variable mit diesem Namen, so wird der alte Wert überschrieben. So angelegte Variablen können anschließend wieder in mathematischen Ausdrücken verwendet werden. Variablennamen müssen immer mit einem Buchstaben beginnen, dürfen aber Ziffern enthalten. Der Wert von logischen Ausdrücken kann nicht an Variablen gebunden werden! |
| + | |||
| + | Nachfolgend sind einige Beispiele für Zuweisungen aufgeführt. | ||
| | $\pi = 3.1415$ | Gültige Zuweisung | | | $\pi = 3.1415$ | Gültige Zuweisung | | ||
| Zeile 123: | Zeile 118: | ||
| end | end | ||
| </ | </ | ||
| + | |||
| + | ===== Weitere Hinweise für den Gebrauch benutzerdefinierter Funktionen ===== | ||
| + | |||
| + | |||
| + | ==== Die Bedeutung von Zeilen ==== | ||
| + | In den benutzerdefinierten Funktionen bildet eine Zeile jeweils eine der oben beschriebenen Anweisungen. Da es kein spezielles Endkennzeichen (wie ";" | ||
| + | |||
| + | ==== Variablen ==== | ||
| + | Es gibt nur Variablen für mathematische Ausdrücke. Eine Variable speichert also immer den Wert eines mathematischen Ausdrucks. Eine neue Variable wird durch Benutzen eines bisher unbekannten Bezeichners deklariert. Wird der neue Bezeichner innerhalb eines mathematischen Ausdrucks verwendet, so wird zwar die Variable deklariert, ihr Wert jedoch ungültig. | ||
| + | |||
| + | ==== Vordefinierte Variablen ==== | ||
| + | Eine benutzerdefinierte Funktion wird im Berechnungskern von SIGMA für jede Stützstelle einzeln ausgewertet. Für an der Stützstelle bekannte Daten, wie Geometrie- oder Materialdaten, | ||
| + | |||
| + | ==== Operatoren ==== | ||
| + | In der folgenden Tabelle sind alle benutzbaren Operatoren angegeben. Operatoren mit höherer Präzedenz stehen weiter oben. | ||
| + | |||
| + | ^ # ^ Name ^ Zeichen ^ Beschreibung ^ Kategorie ^ | ||
| + | | 7 | Potenz | %%^%% | Potenziert den linken Operanden mit dem rechten Operanden | mathematisch | | ||
| + | | 6 | Negation | - | Negiert den linken Operanden | mathematisch | | ||
| + | | 5 | Multiplikation | * | Multipliziert die beiden Operanden | mathematisch | | ||
| + | | 5 | Division | / | Dividiert den linken Operanden durch den rechten Operanden | mathematisch | | ||
| + | | 4 | Addition | + | Addiert die beiden Operanden | mathematisch | | ||
| + | | 4 | Subtraktion | - | Subtrahiert den rechten Operanden von dem linken Operanden | mathematisch | | ||
| + | | 3 | Kleiner | < | Prüft ob der linke Operand kleiner als der rechte Operand ist | mathematisch → logisch | | ||
| + | | 3 | Kleiner-oder-gleich | %%<=%% | Prüft ob linker Operand kleiner oder gleich dem rechten Operanden ist | mathematisch → logisch | | ||
| + | | 3 | Gleich | %%==%% | Prüft ob die beiden Operanden gleich sind | mathematisch → logisch | | ||
| + | | 3 | Größer-oder-gleich | %%>=%% | Prüft ob der linke Operand größer oder gleich dem rechten Operanden ist | mathematisch → logisch | | ||
| + | | 3 | Größer | > | Prüft ob linker Operand größer als der rechte Operand ist | mathematisch → logisch | | ||
| + | | 3 | Ungleich | != | Prüft ob die beiden Operanden ungleich sind | mathematisch → logisch | | ||
| + | | 2 | Logisches Und | and | Verknüpft die beiden Operanden mit der logischen Operation Und | logisch | | ||
| + | | 1 | Logisches Oder | or | Verknüpft die beiden Operanden mit der logischen Operation Oder | logisch | | ||
| + | |||
| + | ==== Mathematische Funktionen ==== | ||
| + | Innerhalb der mathematischen Ausdrücke können 14 vordefinierte mathematische Funktionen verwendet werden, die in der folgenden Tabelle aufgeführt sind. Jede dieser Funktionen besitzt genau einen Parameter, der, als mathematischer Ausdruck, direkt auf den Bezeichner folgt. Funktionen binden stärker als der Potenzoperator. | ||
| + | |||
| + | ^ Name ^ Zeichen ^ Beschreibung ^ | ||
| + | | Sinus | sin | Berechnet den Sinus, Parameter in rad | | ||
| + | | Cosinus | cos | Berechnet den Cosinus, Parameter in rad | | ||
| + | | Tangens | tan | Berechnet den Tangens, Parameter in rad | | ||
| + | | Arcus Sinus | asin | Berechnet den Arcus Sinus in rad | | ||
| + | | Arcus Cosinus | acos | Berechnet den Arcus Cosinus in rad | | ||
| + | | Arcus Tangens | atan | Berechnet den Arcus Tangens in rad | | ||
| + | | Sinus Hyperbolicus | sinh | Berechnet sinh in rad | | ||
| + | | Cosinus Hyperbolicus | cosh | Berechnet cosh in rad | | ||
| + | | Tangens Hyperbolicus | tanh | Berechnet tanh in rad | | ||
| + | | Dekadischer Logarithmus | log | Berechnet den Logarithmus zur Basis 10 | | ||
| + | | Logarithmus Naturalis | ln | Berechnet den Logarithmus zur Basis $e$ | | ||
| + | | Betrag | abs | Liefert den Absolutbetrag des Parameters | | ||
| + | | Quadratwurzel | sqrt | Berechnet die Quadratwurzel | | ||
| + | |||
| + | ==== Auswertung benutzerdefinierter Funktionen ==== | ||
| + | Eine benutzerdefinierte Funktion wird für jeweils eine Stützstelle ausgewertet, | ||
| + | |||
| + | ==== Ungültige Werte ==== | ||
| + | Da nicht alle vordefinierten Variablen für jede Stützstelle einen gültigen Wert aufweisen und manche mathematischen Operationen nicht für alle Werte definiert sind (z. B. Division durch Null), gibt es einen speziellen Wert, der ungültige Werte repräsentiert. Als vordefinierte Variable heißt dieser Wert // | ||