<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.uni-due.de/jack/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=LGlaser</id>
	<title>JACK Wiki - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.uni-due.de/jack/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=LGlaser"/>
	<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=Spezial:Beitr%C3%A4ge/LGlaser"/>
	<updated>2026-05-02T11:11:46Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.39.10</generator>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=Dynamischer_Python_Checker_(JACK3)&amp;diff=12751</id>
		<title>Dynamischer Python Checker (JACK3)</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=Dynamischer_Python_Checker_(JACK3)&amp;diff=12751"/>
		<updated>2026-04-28T06:40:58Z</updated>

		<summary type="html">&lt;p&gt;LGlaser: Anleitung für statische Tests hinzugefügt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der [[Python (JACK3)|Aufgabentyp Python]] lässt sich automatisiert bewerten, indem Testfälle ausgeführt werden. Diese können z.&amp;amp;nbsp;B. einen erwarteter Wert mit dem tatsächlichen Wert vergleichen. Der Python-Checker von JACK3 kann nicht nur Punktzahlen und Feedback zurückgeben, sondern auch Traces aufzeichnen (welche Zeilen ausgeführt wurden und wie die Variablenbelegung beim Testfall war). Es lassen sich beliebig komplexe Testfälle und auch zufallsbasierte Tests schreiben sowie passgenaues Feedback, programmiert in Python, erzeugen. &lt;br /&gt;
&lt;br /&gt;
{{Hinweis|In diesem Artikel werden [https://docs.python.org/3/tutorial/index.html grundlegende Python-Kenntnisse] vorausgesetzt.}}&lt;br /&gt;
&lt;br /&gt;
Der Checker arbeitet auf Python 3.11. Aktuell ist es nicht möglich, eigene Module zum Check hinzuzufügen oder Pakete aus dem Python Package Index (PyPI) (über &amp;lt;code&amp;gt;pip&amp;lt;/code&amp;gt;) zu laden. Das Paket [https://pandas.pydata.org/docs/user_guide/index.html pandas] ist vorinstalliert und kann durch den Testtreiber geladen werden, ansonsten sind ausschließlich Pakete der [https://docs.python.org/3.11/library/index.html Python-Standardbibliothek] nutzbar. &lt;br /&gt;
&lt;br /&gt;
== Unterstützte Aufgabenstellungen ==&lt;br /&gt;
Der dynamische Python-Checker ist darauf ausgelegt, Funktionsaufrufe aufzuzeichnen und ihre Rückgabewerte zu prüfen. Dies funktioniert am besten mit folgenden Aufgabenstellungen:&lt;br /&gt;
&lt;br /&gt;
* Schreiben Sie eine parameterlose Funktion, die ... zurückgibt.&lt;br /&gt;
* Schreiben Sie eine Funktion, die ... erwartet und ... zurückgibt.&lt;br /&gt;
* Schreiben Sie eine Funktion mit x Parametern, die mit dem ersten Parameter ... macht. (Um die Funktion zu prüfen, muss der Typ des ersten Parameters mutierbar sein, z.&amp;amp;nbsp;B. eine Liste.)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel&#039;&#039;&#039;: &#039;&#039;Definieren Sie eine Funktion add. Die Funktion soll zwei Parameter entgegennehmen und das Ergebnis der Addition zurückgeben.&#039;&#039; Die erwartete Musterlösung für diesen Fall wäre:&amp;lt;syntaxhighlight lang=&amp;quot;python3&amp;quot;&amp;gt;&lt;br /&gt;
def add(a, b):&lt;br /&gt;
  return a + b&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Testfälle (s.u.) können diese Funktion dann mit verschiedenen Werten aufrufen und das Ergebnis prüfen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Statische Tests &amp;amp; Codeanalyse&#039;&#039;&#039;: Derzeit gibt es für Python keinen statischen (GReQL-)Checker. Der eingereichte Code kann allerdings indirekt auf Syntaxelemente überprüft werden, indem er händisch geparst wird. Hierzu können die Python-Bordmittel, insbesondere das [https://docs.python.org/3.11/library/ast.html AST (Abstract Syntax Trees)]-Modul für Syntaxbäume genutzt werden.&lt;br /&gt;
&lt;br /&gt;
==Testtreiber für den Checker==&lt;br /&gt;
Grundsätzlich ist ein Testtreiber ein einzelnes Modul mit einer oder mehreren [https://docs.python.org/3.11/tutorial/controlflow.html#defining-functions parameterlosen Funktionen] (&#039;&#039;&#039;Testfälle&#039;&#039;&#039;), die nacheinander ausgeführt werden. In der Regel importiert der Testtreiber dabei das Modul mit dem eingereichten (zu testenden) Code. Dessen Name [[Python (JACK3)|wird im UI als &amp;quot;Modul-Pfad für studentischen Code&amp;quot;]] festgelegt.&lt;br /&gt;
&lt;br /&gt;
Damit die Traces der Testfälle korrekt aufgezeichnet werden, wird jeder Testfall mit dem [https://book.pythontips.com/en/latest/decorators.html Decorator] &amp;lt;code&amp;gt;decorator&amp;lt;/code&amp;gt; aus dem vorgegebenen &amp;lt;code&amp;gt;Communicator&amp;lt;/code&amp;gt;-Modul gekennzeichnet. Der folgende Code zeigt ein Beispiel mit zwei Testfällen, jeweils ohne Inhalt:&amp;lt;syntaxhighlight lang=&amp;quot;python3&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
import Communicator&lt;br /&gt;
import Trace&lt;br /&gt;
import studentcode as s&lt;br /&gt;
&lt;br /&gt;
@Communicator.decorator&lt;br /&gt;
def testcase1():&lt;br /&gt;
  # TODO so something with s ...&lt;br /&gt;
  pass&lt;br /&gt;
&lt;br /&gt;
@Communicator.decorator&lt;br /&gt;
def testcase2():&lt;br /&gt;
  # TODO so something with s ...&lt;br /&gt;
  pass&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    print(&#039;Running test case 1...&#039;)&lt;br /&gt;
    testcase1()&lt;br /&gt;
    print(&#039;Running test case 2 ...&#039;)&lt;br /&gt;
    testcase2()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===API zum Zurückmelden von Ergebnissen ===&lt;br /&gt;
Innerhalb eines Testfalls werden Ergebnisse über das Modul &amp;lt;code&amp;gt;Trace&amp;lt;/code&amp;gt; zurückgeliefert. Dieses Modul sammelt alle Punktzahlen und Feedback auf und berichtet diese am Ende der Ausführung. Es bietet folgende Funktion:&amp;lt;syntaxhighlight lang=&amp;quot;python3&amp;quot;&amp;gt;&lt;br /&gt;
def printResult(result: int, feedback: str = None):&lt;br /&gt;
  &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
  Reports a result.&lt;br /&gt;
&lt;br /&gt;
  :param result: Points which are reported. Must be between 0 and 100 (both inclusive).&lt;br /&gt;
  :param feedback: Optional Feedback presented to the user.&lt;br /&gt;
  &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
  pass&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;{{Wichtig|In jedem Testfall muss &amp;lt;code&amp;gt;printResult&amp;lt;/code&amp;gt; genau ein Mal tatsächlich aufgerufen werden!}}&lt;br /&gt;
&lt;br /&gt;
===Schreiben von Testfällen===&lt;br /&gt;
Der Checker nutzt für das Tracing eine spezielle Kontrollflussanalyse, basierend auf Pythons [https://docs.python.org/3.11/reference/simple_stmts.html#the-assert-statement &amp;lt;code&amp;gt;assert&amp;lt;/code&amp;gt;-Schlüsselwort] und Exceptions. Mit &amp;lt;code&amp;gt;assert&amp;lt;/code&amp;gt; lassen sich Ausdrücke testen, die resultierende Exception lässt sich anschließend fangen und in Feedback umwandeln.&lt;br /&gt;
&lt;br /&gt;
Ein möglicher Testfall 1 für das obige Beispiel wäre dementsprechend:&amp;lt;syntaxhighlight lang=&amp;quot;python3&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;5&amp;quot;&amp;gt;&lt;br /&gt;
@Communicator.decorator&lt;br /&gt;
def testcase1():&lt;br /&gt;
  try:&lt;br /&gt;
    # Berechnen des Ergebnisses mit dem &amp;quot;studentcode&amp;quot;:&lt;br /&gt;
    result = s.add(1, 0)&lt;br /&gt;
    # zu prüfender Ausdruck:&lt;br /&gt;
    assert result == 1&lt;br /&gt;
&lt;br /&gt;
    # Bei Erfolg: +25 Punkte&lt;br /&gt;
    Trace.printResult(25)&lt;br /&gt;
  except Exception:&lt;br /&gt;
    # Bei Misserfolg: +0 Punkte mit Feedback-Nachricht&lt;br /&gt;
    Trace.printResult(0, f&amp;quot;Erwartete Summe: 1, tatsächlich: {result}.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Das Tracing reagiert auf alle Arten von Exceptions und zeigt im Falle eines &amp;lt;code&amp;gt;AssertionError&amp;lt;/code&amp;gt;s (entweder händisch geworfen oder über &amp;lt;code&amp;gt;assert&amp;lt;/code&amp;gt;) eine generische Fehlermeldung an, die mitteilt, dass der Testfall nicht bestanden wurde, sofern kein benutzerdefiniertes Feedback (zweiter Parameter von &amp;lt;code&amp;gt;printResult&amp;lt;/code&amp;gt;) vorgegeben wurde. Zusätzlich wird die Variablenbelegung angezeigt und die ausgeführten Zeilen.&lt;br /&gt;
&lt;br /&gt;
Pro Testtreiber werden die Punkte aller Testfälle aufsummiert. Bei einer gleichen Gewichtung von vier Testfällen wird jeder Testfall also 25 Punkte im Erfolg zurückmelden. Die summierten Punkte müssen zwischen 0 und 100 (jeweils inklusiv) liegen.&lt;br /&gt;
&lt;br /&gt;
In Situationen, bei denen die Punktevergabe von anderen Testfällen abhängig ist (z.&amp;amp;nbsp;B. wenn ausschließlich Punkte vergeben werden sollen, wenn statische Checks erfolgreich waren), kann diese Logik auch in einem einzigen Testfall untergebracht werden. Punktzahl und (ggf. konkatenierte) Feedback(s) müssen dann entsprechend vom Testfall zusammengesetzt werden.&lt;br /&gt;
&lt;br /&gt;
=== Statische Tests===&lt;br /&gt;
Mithilfe des [https://docs.python.org/3.11/library/ast.html AST]-Moduls kann der eingereichte Code in einen Syntaxbaum geparst werden. Dieser Syntaxbaum lässt sich mithilfe von Python-Code prüfen. Der folgende Testfall prüft beispielsweise, ob im eingereichten Code Importe enthalten sind:&amp;lt;syntaxhighlight lang=&amp;quot;python3&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
import Communicator&lt;br /&gt;
import Trace&lt;br /&gt;
import studentcode&lt;br /&gt;
import math&lt;br /&gt;
import ast&lt;br /&gt;
&lt;br /&gt;
@Communicator.decorator&lt;br /&gt;
def static_check():&lt;br /&gt;
  # Parsen in Syntaxbaum&lt;br /&gt;
  with open(studentcode.__file__, mode=&amp;quot;r&amp;quot;, encoding=&amp;quot;utf-8&amp;quot;) as f:&lt;br /&gt;
    source_code = f.read()&lt;br /&gt;
  tree = ast.parse(source_code)&lt;br /&gt;
&lt;br /&gt;
  # Über Syntaxbaum iterieren und Importe suchen&lt;br /&gt;
  import_detected = None&lt;br /&gt;
  for node in ast.walk(tree):&lt;br /&gt;
    if isinstance(node, (ast.Import, ast.ImportFrom)):&lt;br /&gt;
      import_detected = node.lineno&lt;br /&gt;
      print(f&amp;quot;Import in line {import_detected}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
  # Feedback erzeugen&lt;br /&gt;
  error_feedback = None&lt;br /&gt;
  if import_detected is not None:&lt;br /&gt;
    error_feedback = f&amp;quot;In Zeile {import_detected} wurde ein Import erkannt. Die Lösung sollte ohne Importe auskommen.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  # Rückmeldung&lt;br /&gt;
  try:&lt;br /&gt;
    assert (error_feedback is None)&lt;br /&gt;
    Trace.printResult(40) # Statischer Test bestanden&lt;br /&gt;
  except Exception:&lt;br /&gt;
    Trace.printResult(0, error_feedback) # Statischer Test nicht bestanden&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    static_check()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Dieser Test könnte beliebig erweitert werden, z.&amp;amp;nbsp;B. for-/while-Schleifen suchen oder Rekursion prüfen, indem Funktionsaufrufe auf eine bestimmte Funktion gesucht werden. Es ist wichtig, dass Aufrufe von &amp;lt;code&amp;gt;ast.walk&amp;lt;/code&amp;gt; nicht ineinander verschachtelt werden – stattdessen sollten Elemente, über die ein zweites Mal iteriert werden soll, zwischengespeichert werden.&lt;br /&gt;
&lt;br /&gt;
==Ressourcen==&lt;br /&gt;
Um das Entwickeln von Testfällen zu vereinfachen, haben wir einen Dummy gebaut, der die Funktion des Checkers simuliert. [[Medium:Tracing-Python-Checker-Dummy.zip|Den Dummy können Sie hier herunterladen.]] Folgende Dateien sind enthalten:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;Trace.py&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;Communicator.py&amp;lt;/code&amp;gt; simulieren die Funktion des Checkers.&lt;br /&gt;
*&amp;lt;code&amp;gt;testdriver.py&amp;lt;/code&amp;gt; enthält vier Testfälle aus dem Beispiel oben und kann beliebig angepasst werden.&lt;br /&gt;
*&amp;lt;code&amp;gt;studentcode.py&amp;lt;/code&amp;gt; enthält eine studentische Einreichung mit einem &amp;quot;Fehler&amp;quot;, bei dem einer der Testfälle nicht bestanden wird.&lt;br /&gt;
*&amp;lt;code&amp;gt;run.py&amp;lt;/code&amp;gt; ist ein Skript, das den Testtreiber ausführt und ausgibt, wie viele Punkte die Lösung ergeben würde.&lt;br /&gt;
&lt;br /&gt;
Der Dummy kann mit dem Befehl &amp;lt;code&amp;gt;python run.py&amp;lt;/code&amp;gt; ausgeführt werden (auf Linux-Systemen kann der Befehl auch &amp;lt;code&amp;gt;python3&amp;lt;/code&amp;gt; lauten, auf Windows auch &amp;lt;code&amp;gt;py&amp;lt;/code&amp;gt;).&lt;br /&gt;
{{Hinweis|Der Dummy arbeitet nicht exakt wie der Checker. Es gibt keine Garantie, dass Testtreiber, die mit dem Dummy funktionieren, auch genau so in JACK funktionieren. Testen Sie die Aufgabe deshalb immer auch in JACK!}}&lt;br /&gt;
[[Kategorie:Benutzerhandbuch]]&lt;br /&gt;
[[Kategorie:Checker]]&lt;/div&gt;</summary>
		<author><name>LGlaser</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=Python_(JACK3)&amp;diff=12750</id>
		<title>Python (JACK3)</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=Python_(JACK3)&amp;diff=12750"/>
		<updated>2026-04-27T12:15:09Z</updated>

		<summary type="html">&lt;p&gt;LGlaser: Schnellverweis zum Checker&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;Siehe auch: [[Dynamischer Python Checker (JACK3)]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Aufgabeninhalt===&lt;br /&gt;
In dem Bereich Aufgabeninhalt wird der Aufgabentext erstellt und spezifische Eingaben für den jeweiligen Aufgabenteil gemacht.&lt;br /&gt;
[[File:Aufgabentext.jpg|center|thumb|800px|Editor für den Aufgabentext]]&lt;br /&gt;
* &#039;&#039;&#039;Titel:&#039;&#039;&#039; Hier kann optional der Name des Aufgabenteils eingetragen werden.&lt;br /&gt;
* &#039;&#039;&#039;Aufgabentext:&#039;&#039;&#039; Im Aufgabentext steht die Aufgabenstellung. Der Editor für den Aufgabetext lässt sich öffnen in dem man reinklickt. In dem Fließtext kann Latex-Code verwendet werden, indem man diesen mit $-Zeichen einspannt. Der Editor bietet einige Formatierungen an wie z.B. fett, kursiv und unterstrichen. Einfache Tabellen können auch mithilfe des Editors erstellt werden. Wenn man den Button &#039;&#039;source code&#039;&#039; [[File:Icon-source_code.jpg|35px]] verwendet kann man HTML-Code nutzen. Über den Button &#039;&#039;&#039;Ressource Einfügen&#039;&#039;&#039; lässt sich ein hochgeladenes Bild oder ein Link in den Aufgabentext einfügen.&lt;br /&gt;
&lt;br /&gt;
===Feedback===&lt;br /&gt;
* &#039;&#039;&#039;Gewichtung des Aufgabenteils:&#039;&#039;&#039; Gewichtung der Punktzahl eines Aufgabenteils innerhalb der Aufgabe.&lt;br /&gt;
* &#039;&#039;&#039;Verhalten bei internen Fehlern während der Überprüfung:&#039;&#039;&#039; Während der Überprüfung der studentischen Lösung können Fehler auftreten. Hier muss angegeben werden ob die &#039;&#039;&#039;Bearbeitung markiert und abgebrochen&#039;&#039;&#039; wird oder ob eine &#039;&#039;&#039;Nachricht ausgegeben und Bearbeitung fortgesetzt&#039;&#039;&#039; wird.&lt;br /&gt;
* &#039;&#039;&#039;Bewertungsverfahren:&#039;&#039;&#039; Hier lassen sich Checks definieren, die den eingereichten Code automatisch prüfen. Aktuell ist nur der [[Dynamischer Python Checker (JACK3)|&#039;&#039;&#039;dynamische Python Checker&#039;&#039;&#039;]] verfügbar. Dieser führt Testfälle aus und zeichnet Traces auf.&lt;br /&gt;
** &#039;&#039;&#039;Gewichtung dieses Checks:&#039;&#039;&#039; Ein Python-Aufgabenteil kann mehrere Checks haben. Die Ergebnisse der Checks können unterschiedlich stark in der Gesamtbewertung einfließen.&lt;br /&gt;
** &#039;&#039;&#039;Timeout:&#039;&#039;&#039; Nach wie vielen Sekunden ein Check abbrechen soll.&lt;br /&gt;
** &#039;&#039;&#039;Module-Pfad für den studentischen Code:&#039;&#039;&#039; Name des Python-Moduls, das den eingereichten Code enthält. Diese Information muss beim Schreiben des Testtreibers berücksichtigt werden, um den passenden Import zu wählen. Dieses Feld muss ausgefüllt werden.&lt;br /&gt;
** Unter dem Modul-Pfad wird der &#039;&#039;&#039;Testtreiber&#039;&#039;&#039; für den dynamischen Test geschrieben. Siehe [[Dynamischer Python Checker (JACK3)]] für weitere Informationen.&lt;br /&gt;
* &#039;&#039;&#039;Feedback beim Überspringen:&#039;&#039;&#039; Der Lehrende kann jeden Python Aufgabenteil zum Überspringen anbieten. Dazu muss zunächst der Haken gesetzt werden. Danach gibt es noch die Möglichkeit einen Text den Lernenden anzuzeigen, wenn dieser diesen Aufgabenteil übersprungen hat. Den Text kann man durch Klicken in das Textfeld oder über das Icon [[File:Icon-Pencil.jpg|22px]] hinzufügen.&lt;br /&gt;
[[File:Python_Checker.JPG|center|thumb|800px|Einstellungen eines dynamischen Python-Checks]]&lt;br /&gt;
&lt;br /&gt;
{{JACK3:Hinweise}}&lt;br /&gt;
&lt;br /&gt;
===Verknüpfungen===&lt;br /&gt;
* &#039;&#039;&#039;Nächster Aufgabenteil (Standard):&#039;&#039;&#039; In dem Drop-Down Feld wird der nächste Zustand ausgewählt, in die die Aufgabe sein soll, wenn der Lernende eine Lösung eingereicht hat. Dieses wird immer dann durchgeführt, wenn keine andere Aktion zutrifft. Es gibt die folgenden Möglichkeiten: &lt;br /&gt;
** &#039;&#039;&#039;Nächster oder Ende:&#039;&#039;&#039; Dies ist die default Einstellung. Nach der studentischen Einreichung dieses Aufgabenteils wird der nächste Aufgabenteil in der Reihe angezeigt. Wenn dies der letzte Aufgabenteil dieser Aufgabe ist, ist die Aufgabe beendet. &lt;br /&gt;
** &#039;&#039;&#039;Ende der Aufgabe:&#039;&#039;&#039; Die Aufgabe ist mit der Aktion des Lernenden beendet.&lt;br /&gt;
** &#039;&#039;&#039;Aufgabenteil wiederholen:&#039;&#039;&#039; Der Aufgabenteil wird wiederholt. Der Lernende kann ein weiteres Ergebnis einreichen. Diese Aktion kann man z.B. bei Übungsaufgaben benutzen, wenn der Lernende eine Aufgabe solange wiederholen soll, bis das richtige Ergebnis eingereicht wurde.&lt;br /&gt;
** &#039;&#039;&#039;#x (x ist dabei ein beliebiger Aufgabenteil dieser Aufgabe):&#039;&#039;&#039; Der entsprechende Aufgabenteil wird als nächstes angezeigt. Wenn man die Aufgabenteilnummer des aktuellen Aufgabenteils wählt wird dieser Aufgabenteil neu aufgerufen.&lt;br /&gt;
* &#039;&#039;&#039;Nicht auf Feedback warten und sofort zum nächsten Aufgabenteil weiterschalten:&#039;&#039;&#039; Da Python-Checks je nach Anzahl der Testfälle und ihrer Komplexität länger dauern können, besteht die Möglichkeit, das Warten auf die Ergebnisse zu überspringen.&lt;br /&gt;
[[File:Verknuepfung_Java.JPG|center|thumb|800px|Verknüpfung mit anderen Aufgabenteilen]]&lt;br /&gt;
* &#039;&#039;&#039;Weitere nächste Aufgabenteile (optional):&#039;&#039;&#039; Hier kann die nächste Aktion dynamisch eingestellt werden, d.h. sie kann abhängig von der Variablen Konstelation sein oder von der Eingabe des Lernenden.&lt;br /&gt;
* &#039;&#039;&#039;Nächster Aufgabenteil beim Überspringen (optional):&#039;&#039;&#039; Hier wird eingestellt welcher nächste Aufgabenteil angezeigt werden soll, wenn der Lernende den Aufgabenteil übersprungen hat. Diese Einstellungsmöglichkeit steht nur zur Verfügung, wenn der Haken im Tab Feedback fürs Überspringen gesetzt wurde.&lt;br /&gt;
&lt;br /&gt;
{{JACK3:Variablenupdates}}&lt;br /&gt;
&lt;br /&gt;
{{JACK3:Dateien für Studierende}}&lt;br /&gt;
&lt;br /&gt;
=== Variablen ===&lt;br /&gt;
Die folgenden [[Variablen (JACK3)|JACK-Variablen]] stehen für diesen Aufgabentyp zur Verfügung:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[input=code]&amp;lt;/code&amp;gt;|| Der eingereichte Python-Code&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[category:Benutzerhandbuch]]&lt;/div&gt;</summary>
		<author><name>LGlaser</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=Formeleditor_Paletten_(JACK3)&amp;diff=12749</id>
		<title>Formeleditor Paletten (JACK3)</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=Formeleditor_Paletten_(JACK3)&amp;diff=12749"/>
		<updated>2026-04-07T08:40:02Z</updated>

		<summary type="html">&lt;p&gt;LGlaser: LaTeX korrigiert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die verschiedenen Paletten des [[Formeleditor (JACK3)|JACK3-Formeleditors]] sind in allen [[Fill-In (JACK3)|Fill-In Aufgaben]] einsetzbar. Hier werden die einzelnen Varianten charakterisiert.&lt;br /&gt;
&lt;br /&gt;
== Mathematik-Paletten ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Name!!Formeleditor!!Inhalt&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Ohne (Mathematik)&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
| Es wird keine Palette angezeigt. Eingegebene Formeln werden aber automatisch in die Anzeigeform des Formeleditors umgewandelt.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Einfach&#039;&#039;&#039;|| style=&amp;quot;width: 60%&amp;quot; |&amp;lt;center&amp;gt;[[File:Formeleditor-Basic.jpg|130px]]&amp;lt;/center&amp;gt;||&lt;br /&gt;
*Wurzeln&lt;br /&gt;
*Brüche&lt;br /&gt;
*Potenzen&lt;br /&gt;
*Beträge&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Standard&#039;&#039;&#039;||&amp;lt;center&amp;gt;[[File:Formeleditor-Palette.jpg|400px]]&amp;lt;/center&amp;gt;||&lt;br /&gt;
*Vergleichsoperationen&lt;br /&gt;
*\(\pi\), \(e^{1}\), \(i\) und \(\infty\)&lt;br /&gt;
*Division, Potenzen, Beträge, Fakultät und \(e^{x}\)&lt;br /&gt;
*trigonometrische Funktionen &#039;&#039;Sinus&#039;&#039;, &#039;&#039;Kosinus&#039;&#039; und &#039;&#039;Tangens&#039;&#039;&lt;br /&gt;
*Logarithmen&lt;br /&gt;
*Wurzeln&lt;br /&gt;
*Integrale&lt;br /&gt;
*Summen-und Produktzeichen&lt;br /&gt;
*Determinante&lt;br /&gt;
*Vektoren und Matrizen&lt;br /&gt;
*Intervalle&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Vollständig&#039;&#039;&#039;||&amp;lt;center&amp;gt;[[File:Formeleditor-PaletteFull1.jpg|350px]][[File:Formeleditor-PaletteFull2.jpg|350px]]&amp;lt;/center&amp;gt;||&lt;br /&gt;
*Vergleichsoperationen&lt;br /&gt;
*\(\pi\), \(e^{1}\), \(i\) und \(\infty\)&lt;br /&gt;
*Division, Potenzen, Beträge, Fakultät und \(e^{x}\)&lt;br /&gt;
*trigonometrische Funktionen &#039;&#039;Sinus&#039;&#039;, &#039;&#039;Kosinus&#039;&#039; und &#039;&#039;Tangens&#039;&#039;&lt;br /&gt;
*Logarithmen&lt;br /&gt;
*Wurzeln&lt;br /&gt;
*Integrale&lt;br /&gt;
*Limes&lt;br /&gt;
*Summen-und Produktzeichen&lt;br /&gt;
*Determinante&lt;br /&gt;
*Vektoren und Matrizen&lt;br /&gt;
*sämtliche trigonometrische Funktionen&lt;br /&gt;
*Intervalle&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;UDE Mathematikdidaktik&#039;&#039;&#039;||&amp;lt;center&amp;gt;[[File:Formeleditor UdeMathDidactics1.jpg|300px]] [[File:Formeleditor UdeMathDidactics2.jpg|300px]]&amp;lt;/center&amp;gt; &amp;lt;center&amp;gt;[[File:Formeleditor UdeMathDidactics3.jpg|300px]] [[File:Formeleditor UdeMathDidactics4.jpg|300px]]&amp;lt;/center&amp;gt;||&lt;br /&gt;
*Grundrechenarten&lt;br /&gt;
*Vergleichsoperatoren&lt;br /&gt;
*Brüche&lt;br /&gt;
*Potenzen&lt;br /&gt;
*Wurzeln&lt;br /&gt;
*Betrag&lt;br /&gt;
* Summen- und Produktformel&lt;br /&gt;
* Fakultät&lt;br /&gt;
*Mengen&lt;br /&gt;
*Durchschnitt&lt;br /&gt;
*Vereinigung&lt;br /&gt;
*Differenz&lt;br /&gt;
*leere Menge&lt;br /&gt;
*Intervalle&lt;br /&gt;
*Exponentialfunktion&lt;br /&gt;
*Logarithmusfunktionen&lt;br /&gt;
*\(\pi\)&lt;br /&gt;
*\(i\)&lt;br /&gt;
*\(\infty\)&lt;br /&gt;
* Vektoren&lt;br /&gt;
*Matrizen&lt;br /&gt;
*Determinante&lt;br /&gt;
*trigonometrische Funktionen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Chemie-Paletten ==&lt;br /&gt;
&lt;br /&gt;
Die Eingabemöglichkeiten im Chemie-Formeleditor sind wie folgt:&lt;br /&gt;
&lt;br /&gt;
* Durch Tippen von Großbuchstaben (optional gefolgt von einem Kleinbuchstaben) können Atome angegeben werden, beispielsweise \(H\) (Wasserstoff) oder \(Li\) (Lithium).&lt;br /&gt;
* Durch &amp;lt;code&amp;gt;Shift + Pfeil unten&amp;lt;/code&amp;gt; kann die Anzahl der Atome in einem Molekül erreicht werden, beispielsweise \(H_{2}\).&lt;br /&gt;
* Durch &amp;lt;code&amp;gt;Shift + Pfeil oben&amp;lt;/code&amp;gt; kann die Ladung des Moleküls angegeben werden, beispielsweise \(Ca^{2+}\).&lt;br /&gt;
* Operatoren &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; stehen zur Verfügung.&lt;br /&gt;
* Ganzzahlen können verwendet werden&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Name!!Formeleditor!!Inhalt&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Ohne (Chemie)&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|Es wird keine Palette angezeigt. Eingegebene Reaktionsgleichungen werden aber automatisch umgewandelt.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Reaktionsgleichung&#039;&#039;&#039;||&amp;lt;center&amp;gt;[[File:Formeleditor-PaletteChemicalReactionEquation.jpg|130px]] ||Ermöglicht die Eingabe von Reaktionsgleichungen und Molekülen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[category:Benutzerhandbuch]]&lt;/div&gt;</summary>
		<author><name>LGlaser</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=Formeleditor_Paletten_(JACK3)&amp;diff=12748</id>
		<title>Formeleditor Paletten (JACK3)</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=Formeleditor_Paletten_(JACK3)&amp;diff=12748"/>
		<updated>2026-04-07T08:39:09Z</updated>

		<summary type="html">&lt;p&gt;LGlaser: Aktualisierung der Palettennamen; Ergänzungen zum Chemie-Formeleditor&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die verschiedenen Paletten des [[Formeleditor (JACK3)|JACK3-Formeleditors]] sind in allen [[Fill-In (JACK3)|Fill-In Aufgaben]] einsetzbar. Hier werden die einzelnen Varianten charakterisiert.&lt;br /&gt;
&lt;br /&gt;
== Mathematik-Paletten ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Name!!Formeleditor!!Inhalt&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Ohne (Mathematik)&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
| Es wird keine Palette angezeigt. Eingegebene Formeln werden aber automatisch in die Anzeigeform des Formeleditors umgewandelt.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Einfach&#039;&#039;&#039;|| style=&amp;quot;width: 60%&amp;quot; |&amp;lt;center&amp;gt;[[File:Formeleditor-Basic.jpg|130px]]&amp;lt;/center&amp;gt;||&lt;br /&gt;
*Wurzeln&lt;br /&gt;
*Brüche&lt;br /&gt;
*Potenzen&lt;br /&gt;
*Beträge&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Standard&#039;&#039;&#039;||&amp;lt;center&amp;gt;[[File:Formeleditor-Palette.jpg|400px]]&amp;lt;/center&amp;gt;||&lt;br /&gt;
*Vergleichsoperationen&lt;br /&gt;
*\(\pi\), \(e^{1}\), \(i\) und \(\infty\)&lt;br /&gt;
*Division, Potenzen, Beträge, Fakultät und \(e^{x}\)&lt;br /&gt;
*trigonometrische Funktionen &#039;&#039;Sinus&#039;&#039;, &#039;&#039;Kosinus&#039;&#039; und &#039;&#039;Tangens&#039;&#039;&lt;br /&gt;
*Logarithmen&lt;br /&gt;
*Wurzeln&lt;br /&gt;
*Integrale&lt;br /&gt;
*Summen-und Produktzeichen&lt;br /&gt;
*Determinante&lt;br /&gt;
*Vektoren und Matrizen&lt;br /&gt;
*Intervalle&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Vollständig&#039;&#039;&#039;||&amp;lt;center&amp;gt;[[File:Formeleditor-PaletteFull1.jpg|350px]][[File:Formeleditor-PaletteFull2.jpg|350px]]&amp;lt;/center&amp;gt;||&lt;br /&gt;
*Vergleichsoperationen&lt;br /&gt;
*\(\pi\), \(e^{1}\), \(i\) und \(\infty\)&lt;br /&gt;
*Division, Potenzen, Beträge, Fakultät und \(e^{x}\)&lt;br /&gt;
*trigonometrische Funktionen &#039;&#039;Sinus&#039;&#039;, &#039;&#039;Kosinus&#039;&#039; und &#039;&#039;Tangens&#039;&#039;&lt;br /&gt;
*Logarithmen&lt;br /&gt;
*Wurzeln&lt;br /&gt;
*Integrale&lt;br /&gt;
*Limes&lt;br /&gt;
*Summen-und Produktzeichen&lt;br /&gt;
*Determinante&lt;br /&gt;
*Vektoren und Matrizen&lt;br /&gt;
*sämtliche trigonometrische Funktionen&lt;br /&gt;
*Intervalle&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;UDE Mathematikdidaktik&#039;&#039;&#039;||&amp;lt;center&amp;gt;[[File:Formeleditor UdeMathDidactics1.jpg|300px]] [[File:Formeleditor UdeMathDidactics2.jpg|300px]]&amp;lt;/center&amp;gt; &amp;lt;center&amp;gt;[[File:Formeleditor UdeMathDidactics3.jpg|300px]] [[File:Formeleditor UdeMathDidactics4.jpg|300px]]&amp;lt;/center&amp;gt;||&lt;br /&gt;
*Grundrechenarten&lt;br /&gt;
*Vergleichsoperatoren&lt;br /&gt;
*Brüche&lt;br /&gt;
*Potenzen&lt;br /&gt;
*Wurzeln&lt;br /&gt;
*Betrag&lt;br /&gt;
* Summen- und Produktformel&lt;br /&gt;
* Fakultät&lt;br /&gt;
*Mengen&lt;br /&gt;
*Durchschnitt&lt;br /&gt;
*Vereinigung&lt;br /&gt;
*Differenz&lt;br /&gt;
*leere Menge&lt;br /&gt;
*Intervalle&lt;br /&gt;
*Exponentialfunktion&lt;br /&gt;
*Logarithmusfunktionen&lt;br /&gt;
*\(\pi\)&lt;br /&gt;
*\(i\)&lt;br /&gt;
*\(\infty\)&lt;br /&gt;
* Vektoren&lt;br /&gt;
*Matrizen&lt;br /&gt;
*Determinante&lt;br /&gt;
*trigonometrische Funktionen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Chemie-Paletten ==&lt;br /&gt;
&lt;br /&gt;
Die Eingabemöglichkeiten im Chemie-Formeleditor sind wie folgt:&lt;br /&gt;
&lt;br /&gt;
* Durch Tippen von Großbuchstaben (optional gefolgt von einem Kleinbuchstaben) können Atome angegeben werden, beispielsweise (\H\) (Wasserstoff) oder (\Li\) (Lithium).&lt;br /&gt;
* Durch &amp;lt;code&amp;gt;Shift + Pfeil unten&amp;lt;/code&amp;gt; kann die Anzahl der Atome in einem Molekül erreicht werden, beispielsweise (\H_{2}\).&lt;br /&gt;
* Durch &amp;lt;code&amp;gt;Shift + Pfeil oben&amp;lt;/code&amp;gt; kann die Ladung des Moleküls angegeben werden, beispielsweise (\Ca^{2+}\).&lt;br /&gt;
* Operatoren &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; stehen zur Verfügung.&lt;br /&gt;
* Ganzzahlen können verwendet werden&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Name!!Formeleditor!!Inhalt&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Ohne (Chemie)&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|Es wird keine Palette angezeigt. Eingegebene Reaktionsgleichungen werden aber automatisch umgewandelt.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Reaktionsgleichung&#039;&#039;&#039;||&amp;lt;center&amp;gt;[[File:Formeleditor-PaletteChemicalReactionEquation.jpg|130px]] ||Ermöglicht die Eingabe von Reaktionsgleichungen und Molekülen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[category:Benutzerhandbuch]]&lt;/div&gt;</summary>
		<author><name>LGlaser</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=Formeleditor&amp;diff=12747</id>
		<title>Formeleditor</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=Formeleditor&amp;diff=12747"/>
		<updated>2026-04-07T08:32:15Z</updated>

		<summary type="html">&lt;p&gt;LGlaser: /* Chemie Editor */ Tippfehler&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;JACK bietet die Möglichkeit, Fill-In-Aufgaben um einen Editor zu erweitern, der die Eingabe mathematischer und chemischer Ausdrücke vereinfacht.&lt;br /&gt;
&lt;br /&gt;
=Mathematik Editor=&lt;br /&gt;
Zum Einbinden des mathematischen Editors in eine Aufgabe muss der &amp;lt;code&amp;gt;exercise&amp;lt;/code&amp;gt;-Tag um das Attribut &amp;lt;code&amp;gt;editor&amp;lt;/code&amp;gt; mit einem passenden Wert ergänzt werden. Der mathematische Editor bietet eine Palette mit einer Vielfalt an mathematischen Ausdrücken an, die außerdem erweitert werden kann. In JACK gibt es die Möglichkeit eigene Paletten ([[Templatepaletten]]) zu erstellen und vorgefertigte [[Standardpaletten]] zu nutzen. &lt;br /&gt;
&lt;br /&gt;
Um [[Standardpaletten]] einzubinden genügt es den Namen der Palette wie oben beschrieben anzugeben.&lt;br /&gt;
&lt;br /&gt;
Um [[Templatepaletten]] einzubinden, muss die selbsterstellte XML Datei der Aufgabe hinzugefügt werden. Zusätzlich muss in dem &amp;lt;code&amp;gt;editor&amp;lt;/code&amp;gt;-Tag der Stage Datei der Name der Datei + Dateiendung übergeben werden. Bsp.: &amp;lt;code&amp;gt;editor=&amp;quot;MyPalette.xml&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Beispiel==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;iso-8859-1&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;exercise type=&amp;quot;fillIn&amp;quot; editor=&amp;quot;basic&amp;quot;&amp;gt;&lt;br /&gt;
  ...&lt;br /&gt;
  ...&lt;br /&gt;
&amp;lt;/exercise&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In dem Beispiel hat &amp;lt;code&amp;gt;editor&amp;lt;/code&amp;gt; den Wert &amp;lt;code&amp;gt;basic&amp;lt;/code&amp;gt;.&lt;br /&gt;
==Hinweise zum mathematischen Editor==&lt;br /&gt;
&lt;br /&gt;
=== Eingabe mit Multiplikationszeichen ===&lt;br /&gt;
Damit der Formeleditor Terme richtig erkennen kann, muss zwischen den Variablen ein Multiplikationszeichen stehen.&lt;br /&gt;
::*Bsp.:&lt;br /&gt;
:::*&amp;lt;code&amp;gt;a^4c&amp;lt;/code&amp;gt; kann vom Editor nicht erkannt werden&lt;br /&gt;
:::*&amp;lt;code&amp;gt;a^4*c&amp;lt;/code&amp;gt; dieser Ausdruck wird vom Editor korrekt erkannt&lt;br /&gt;
&lt;br /&gt;
===Mehrere Buchstaben werden als eine Variable zusammengefasst===&lt;br /&gt;
Der Formeleditor erlaubt Variablen mit mehrere Buchstaben.&lt;br /&gt;
&lt;br /&gt;
::*Beispiele: &lt;br /&gt;
:::*Für &amp;lt;code&amp;gt;ca^4&amp;lt;/code&amp;gt; wird als die Variable &amp;quot;ca&amp;quot; hoch 4 interpretiert.&lt;br /&gt;
:::*&amp;lt;code&amp;gt;x*y^2&amp;lt;/code&amp;gt; führt zu &amp;lt;code&amp;gt;x*y*y&amp;lt;/code&amp;gt;&lt;br /&gt;
:::*&amp;lt;code&amp;gt;x*yz^2&amp;lt;/code&amp;gt; wird als die Variable &amp;quot;x&amp;quot; multipliziert mit der Variablen &amp;quot;yz&amp;quot; hoch vier interpretiert.&lt;br /&gt;
:::*&amp;lt;code&amp;gt;ab*ab&amp;lt;/code&amp;gt; führt zu &amp;lt;code&amp;gt;(ab)^2&amp;lt;/code&amp;gt;, wobei &amp;lt;code&amp;gt;ab&amp;lt;/code&amp;gt; wieder als eine Variable erkannt wird.&lt;br /&gt;
:::*&amp;lt;code&amp;gt;abc&amp;lt;/code&amp;gt; wird als Variable &amp;lt;code&amp;gt;abc&amp;lt;/code&amp;gt; erkannt. Schreibt man aber &amp;lt;code&amp;gt;a*b*c&amp;lt;/code&amp;gt; werden alle drei Buchstaben als einzelne Variablen erkannt.&lt;br /&gt;
&lt;br /&gt;
=== Keine Palette anzeigen===&lt;br /&gt;
Es gibt die Möglichkeit die FillIn Kästchen des Formeleditors zu nutzen, ohne eine Palette anzuzeigen. Hierzu kann &amp;lt;code&amp;gt;editor=&amp;quot;invisible&amp;quot;&amp;lt;/code&amp;gt; gesetzt werden.&lt;br /&gt;
&lt;br /&gt;
===Besondere Zeichen===&lt;br /&gt;
* &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt;: Wird in einem FillIn Kästchen ein &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt; eingefügt, wird ein Bruch anstelle eines &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt; erstellt.&lt;br /&gt;
&lt;br /&gt;
=Chemie Editor= &lt;br /&gt;
[[file:Beispiel_Chem.PNG|thumb|Stimulierendes Beispiel mit der Palette &amp;quot;palette_chemical_reaction_equation&amp;quot;]]&lt;br /&gt;
Um den chemischen Editor für eine Aufgabe zu nutzen muss dem Tag &amp;lt;code&amp;gt;exercise&amp;lt;/code&amp;gt; das Attribut &amp;lt;code&amp;gt;domain&amp;lt;/code&amp;gt; mit dem Wert &amp;quot;chem&amp;quot; und das Attribut &amp;lt;code&amp;gt;editor&amp;lt;/code&amp;gt; mit Wert &amp;quot;palette_chemical_reaction_equation&amp;quot; oder &amp;quot;invisibleChem&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Durch tippen von Großbuchstaben (optional gefolgt durch einen Kleinbuchstaben) können Atome angegeben werden.&lt;br /&gt;
* Durch &amp;lt;code&amp;gt;Shift + Pfeil unten&amp;lt;/code&amp;gt; kann die Anzahl der Atome in einem Molekül erreicht werden.&lt;br /&gt;
* Durch &amp;lt;code&amp;gt;Shift + Pfeil oben&amp;lt;/code&amp;gt; kann die Ladung des Moleküls angegeben werden.&lt;br /&gt;
* Operatoren &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; stehen zur Verfügung.&lt;br /&gt;
* Ganzzahlen können verwendet werden&lt;br /&gt;
&lt;br /&gt;
Die Palette &amp;quot;palette_chemical_reaction_equation&amp;quot; beinhaltet Elemente um Oxidationszahlen anzugeben und die Elemente, die mit &amp;lt;code&amp;gt; Shift + Pfeiltaste &amp;lt;/code&amp;gt; erzeugbar sind. Diese können mit einem Mausklick eingefügt werden.&lt;br /&gt;
&lt;br /&gt;
==Beispiel zum chemischen Editor==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;iso-8859-1&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;exercise type=&amp;quot;fillIn&amp;quot; domain=&amp;quot;chem&amp;quot; editor=&amp;quot;palette_chemical_reaction_equation&amp;quot;&amp;gt;&lt;br /&gt;
  ...&lt;br /&gt;
  ...&lt;br /&gt;
&amp;lt;/exercise&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In dem Beispiel hat &amp;lt;code&amp;gt;editor&amp;lt;/code&amp;gt; den Wert &amp;lt;code&amp;gt;palette_chemical_reaction_equation&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=Allgemeine Hinweise zum Editor=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Mischen vom mathematischen und chemischen Formeleditor===&lt;br /&gt;
*Eine Mischung der beiden Editoren ist in einer Stage nicht möglich.&lt;br /&gt;
*Eine Mischung in verschiedenen Stages einer Aufgabe ist zwar möglich, sollte aber vermieden werden. Die korrekte Anzeige aller gemachten Eingaben ist im Falle einer Mischung nicht möglich.&lt;br /&gt;
&lt;br /&gt;
=== erweitertes Steuern des Editorfeldes===&lt;br /&gt;
Der Formeleditor wird nur für ein Inputfeld angezeigt, wenn&lt;br /&gt;
:*in der Stage, wie oben beschrieben, ein Editor eingefügt wurde und beim Inputfeld &#039;&#039;&#039;nicht&#039;&#039;&#039; &amp;lt;code&amp;gt;editor=&amp;quot;false&amp;quot;&amp;lt;/code&amp;gt; gesetzt wurde.&lt;br /&gt;
:*in der Stage, wie oben beschrieben, ein Editor eingefügt wurde und beim Inputfeld &amp;lt;code&amp;gt;editor=&amp;quot;true&amp;quot;&amp;lt;/code&amp;gt; gesetzt wurde.&lt;br /&gt;
:*in der Stage &#039;&#039;&#039;kein&#039;&#039;&#039; Editor eingefügt wurde und beim Inputfeld &amp;lt;code&amp;gt;editor=&amp;quot;true&amp;quot;&amp;lt;/code&amp;gt; gesetzt wurde. Hierbei wird die &#039;&#039;palette6&#039;&#039; des mathematischen Editors als Defaultpalette angezeigt.&lt;br /&gt;
&lt;br /&gt;
Für alle Fälle gilt, dass das Inputfeld &#039;&#039;&#039;kein&#039;&#039;&#039; Dropdownfeld sein darf!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Weiterführende Links==&lt;br /&gt;
  * [[Templatepaletten]]&lt;br /&gt;
  * [[Standardpaletten]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Formeleditor]]&lt;/div&gt;</summary>
		<author><name>LGlaser</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=Dynamischer_Python_Checker_(JACK3)&amp;diff=12642</id>
		<title>Dynamischer Python Checker (JACK3)</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=Dynamischer_Python_Checker_(JACK3)&amp;diff=12642"/>
		<updated>2026-02-03T07:43:43Z</updated>

		<summary type="html">&lt;p&gt;LGlaser: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der [[Python (JACK3)|Aufgabentyp Python]] lässt sich automatisiert bewerten, indem Testfälle ausgeführt werden. Diese können z.&amp;amp;nbsp;B. einen erwarteter Wert mit dem tatsächlichen Wert vergleichen. Der Python-Checker von JACK3 kann nicht nur Punktzahlen und Feedback zurückgeben, sondern auch Traces aufzeichnen (welche Zeilen ausgeführt wurden und wie die Variablenbelegung beim Testfall war). Es lassen sich beliebig komplexe Testfälle und auch zufallsbasierte Tests schreiben sowie passgenaues Feedback, programmiert in Python, erzeugen. &lt;br /&gt;
&lt;br /&gt;
{{Hinweis|In diesem Artikel werden [https://docs.python.org/3/tutorial/index.html grundlegende Python-Kenntnisse] vorausgesetzt.}}&lt;br /&gt;
&lt;br /&gt;
Der Checker arbeitet auf Python 3.11. Aktuell ist es nicht möglich, eigene Module zum Check hinzuzufügen oder Pakete aus dem Python Package Index (PyPI) (über &amp;lt;code&amp;gt;pip&amp;lt;/code&amp;gt;) zu laden. Das Paket [https://pandas.pydata.org/docs/user_guide/index.html pandas] ist vorinstalliert und kann durch den Testtreiber geladen werden, ansonsten sind ausschließlich Pakete der [https://docs.python.org/3.11/library/index.html Python-Standardbibliothek] nutzbar. &lt;br /&gt;
&lt;br /&gt;
== Unterstützte Aufgabenstellungen ==&lt;br /&gt;
Der dynamische Python-Checker ist darauf ausgelegt, Funktionsaufrufe aufzuzeichnen und ihre Rückgabewerte zu prüfen. Dies funktioniert am besten mit folgenden Aufgabenstellungen:&lt;br /&gt;
&lt;br /&gt;
* Schreiben Sie eine parameterlose Funktion, die ... zurückgibt.&lt;br /&gt;
* Schreiben Sie eine Funktion, die ... erwartet und ... zurückgibt.&lt;br /&gt;
* Schreiben Sie eine Funktion mit x Parametern, die mit dem ersten Parameter ... macht. (Um die Funktion zu prüfen, muss der Typ des ersten Parameters mutierbar sein, z.&amp;amp;nbsp;B. eine Liste.)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel&#039;&#039;&#039;: &#039;&#039;Definieren Sie eine Funktion add. Die Funktion soll zwei Parameter entgegennehmen und das Ergebnis der Addition zurückgeben.&#039;&#039; Die erwartete Musterlösung für diesen Fall wäre:&amp;lt;syntaxhighlight lang=&amp;quot;python3&amp;quot;&amp;gt;&lt;br /&gt;
def add(a, b):&lt;br /&gt;
  return a + b&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Testfälle (s.u.) können diese Funktion dann mit verschiedenen Werten aufrufen und das Ergebnis prüfen.&lt;br /&gt;
&lt;br /&gt;
=== Statische Tests &amp;amp; Codeanalyse ===&lt;br /&gt;
Derzeit gibt es für Python keinen statischen (GReQL-)Checker. Der eingereichte Code kann allerdings indirekt auf Syntaxelemente überprüft werden, indem er händisch geparst wird. Hierzu können die Python-Bordmittel, insbesondere das [https://docs.python.org/3.11/library/ast.html AST (Abstract Syntax Trees)]-Modul genutzt werden.&lt;br /&gt;
&lt;br /&gt;
== Aufbau eines Testtreibers ==&lt;br /&gt;
Grundsätzlich ist ein Testtreiber ein einzelnes Modul mit einer oder mehreren [https://docs.python.org/3.11/tutorial/controlflow.html#defining-functions parameterlosen Funktionen] (&#039;&#039;&#039;Testfälle&#039;&#039;&#039;), die nacheinander ausgeführt werden. In der Regel importiert der Testtreiber dabei das Modul mit dem eingereichten (zu testenden) Code. Dessen Name [[Python (JACK3)|wird im UI als &amp;quot;Modul-Pfad für studentischen Code&amp;quot;]] festgelegt.&lt;br /&gt;
&lt;br /&gt;
Damit die Traces der Testfälle korrekt aufgezeichnet werden, wird jeder Testfall mit dem [https://book.pythontips.com/en/latest/decorators.html Decorator] &amp;lt;code&amp;gt;decorator&amp;lt;/code&amp;gt; aus dem vorgegebenen &amp;lt;code&amp;gt;Communicator&amp;lt;/code&amp;gt;-Modul gekennzeichnet. Der folgende Code zeigt ein Beispiel mit zwei Testfällen, jeweils ohne Inhalt:&amp;lt;syntaxhighlight lang=&amp;quot;python3&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
import Communicator&lt;br /&gt;
import Trace&lt;br /&gt;
import studentcode as s&lt;br /&gt;
&lt;br /&gt;
@Communicator.decorator&lt;br /&gt;
def testcase1():&lt;br /&gt;
  # TODO so something with s ...&lt;br /&gt;
  pass&lt;br /&gt;
&lt;br /&gt;
@Communicator.decorator&lt;br /&gt;
def testcase2():&lt;br /&gt;
  # TODO so something with s ...&lt;br /&gt;
  pass&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    print(&#039;Running test case 1...&#039;)&lt;br /&gt;
    testcase1()&lt;br /&gt;
    print(&#039;Running test case 2 ...&#039;)&lt;br /&gt;
    testcase2()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===API zum Zurückmelden von Ergebnissen===&lt;br /&gt;
Innerhalb eines Testfalls werden Ergebnisse über das Modul &amp;lt;code&amp;gt;Trace&amp;lt;/code&amp;gt; zurückgeliefert. Dieses Modul sammelt alle Punktzahlen und Feedback auf und berichtet diese am Ende der Ausführung. Es bietet folgende Funktion:&amp;lt;syntaxhighlight lang=&amp;quot;python3&amp;quot;&amp;gt;&lt;br /&gt;
def printResult(result: int, feedback: str = None):&lt;br /&gt;
  &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
  Reports a result.&lt;br /&gt;
&lt;br /&gt;
  :param result: Points which are reported. Must be between 0 and 100 (both inclusive).&lt;br /&gt;
  :param feedback: Optional Feedback presented to the user.&lt;br /&gt;
  &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
  pass&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;{{Wichtig|In jedem Testfall muss &amp;lt;code&amp;gt;printResult&amp;lt;/code&amp;gt; genau ein Mal tatsächlich aufgerufen werden!}}&lt;br /&gt;
&lt;br /&gt;
=== Schreiben von Testfällen ===&lt;br /&gt;
Der Checker nutzt für das Tracing eine spezielle Kontrollflussanalyse, basierend auf Pythons [https://docs.python.org/3.11/reference/simple_stmts.html#the-assert-statement &amp;lt;code&amp;gt;assert&amp;lt;/code&amp;gt;-Schlüsselwort] und Exceptions. Mit &amp;lt;code&amp;gt;assert&amp;lt;/code&amp;gt; lassen sich Ausdrücke testen, die resultierende Exception lässt sich anschließend fangen und in Feedback umwandeln.&lt;br /&gt;
&lt;br /&gt;
Ein möglicher Testfall 1 für das obige Beispiel wäre dementsprechend:&amp;lt;syntaxhighlight lang=&amp;quot;python3&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;5&amp;quot;&amp;gt;&lt;br /&gt;
@Communicator.decorator&lt;br /&gt;
def testcase1():&lt;br /&gt;
  try:&lt;br /&gt;
    # Berechnen des Ergebnisses mit dem &amp;quot;studentcode&amp;quot;:&lt;br /&gt;
    result = s.add(1, 0)&lt;br /&gt;
    # zu prüfender Ausdruck:&lt;br /&gt;
    assert result == 1&lt;br /&gt;
&lt;br /&gt;
    # Bei Erfolg: +25 Punkte&lt;br /&gt;
    Trace.printResult(25)&lt;br /&gt;
  except Exception:&lt;br /&gt;
    # Bei Misserfolg: +0 Punkte mit Feedback-Nachricht&lt;br /&gt;
    Trace.printResult(0, f&amp;quot;Erwartete Summe: 1, tatsächlich: {result}.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Das Tracing reagiert auf alle Arten von Exceptions und zeigt im Falle eines &amp;lt;code&amp;gt;AssertionError&amp;lt;/code&amp;gt;s (entweder händisch geworfen oder über &amp;lt;code&amp;gt;assert&amp;lt;/code&amp;gt;) eine generische Fehlermeldung an, die mitteilt, dass der Testfall nicht bestanden wurde, sofern kein benutzerdefiniertes Feedback (zweiter Parameter von &amp;lt;code&amp;gt;printResult&amp;lt;/code&amp;gt;) vorgegeben wurde. Zusätzlich wird die Variablenbelegung angezeigt und die ausgeführten Zeilen.&lt;br /&gt;
&lt;br /&gt;
Pro Testtreiber werden die Punkte aller Testfälle aufsummiert. Bei einer gleichen Gewichtung von vier Testfällen wird jeder Testfall also 25 Punkte im Erfolg zurückmelden. Die summierten Punkte müssen zwischen 0 und 100 (jeweils inklusiv) liegen.&lt;br /&gt;
&lt;br /&gt;
== Ressourcen ==&lt;br /&gt;
Um das Entwickeln von Testfällen zu vereinfachen, haben wir einen Dummy gebaut, der die Funktion des Checkers simuliert. [[Medium:Tracing-Python-Checker-Dummy.zip|Den Dummy können Sie hier herunterladen.]] Folgende Dateien sind enthalten:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;Trace.py&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;Communicator.py&amp;lt;/code&amp;gt; simulieren die Funktion des Checkers.&lt;br /&gt;
* &amp;lt;code&amp;gt;testdriver.py&amp;lt;/code&amp;gt; enthält vier Testfälle aus dem Beispiel oben und kann beliebig angepasst werden.&lt;br /&gt;
* &amp;lt;code&amp;gt;studentcode.py&amp;lt;/code&amp;gt; enthält eine studentische Einreichung mit einem &amp;quot;Fehler&amp;quot;, bei dem einer der Testfälle nicht bestanden wird.&lt;br /&gt;
* &amp;lt;code&amp;gt;run.py&amp;lt;/code&amp;gt; ist ein Skript, das den Testtreiber ausführt und ausgibt, wie viele Punkte die Lösung ergeben würde.&lt;br /&gt;
&lt;br /&gt;
Der Dummy kann mit dem Befehl &amp;lt;code&amp;gt;python run.py&amp;lt;/code&amp;gt; ausgeführt werden (auf Linux-Systemen kann der Befehl auch &amp;lt;code&amp;gt;python3&amp;lt;/code&amp;gt; lauten, auf Windows auch &amp;lt;code&amp;gt;py&amp;lt;/code&amp;gt;).&lt;br /&gt;
{{Hinweis|Der Dummy arbeitet nicht exakt wie der Checker. Es gibt keine Garantie, dass Testtreiber, die mit dem Dummy funktionieren, auch genau so in JACK funktionieren. Testen Sie die Aufgabe deshalb immer auch in JACK!}}&lt;br /&gt;
[[Kategorie:Benutzerhandbuch]]&lt;br /&gt;
[[Kategorie:Checker]]&lt;/div&gt;</summary>
		<author><name>LGlaser</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=Kategorie:Geometry&amp;diff=12641</id>
		<title>Kategorie:Geometry</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=Kategorie:Geometry&amp;diff=12641"/>
		<updated>2026-02-02T17:06:33Z</updated>

		<summary type="html">&lt;p&gt;LGlaser: Navigationsvorlage eingefügt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Eine Auflistung aller Funktionen die mit geometrischen Formen arbeiten.&lt;br /&gt;
&lt;br /&gt;
{{Navigation/Geometriefunktionen}}&lt;br /&gt;
[[Kategorie:Math-Evaluatorfunktion]][[Kategorie:Evaluatorfunktionenkategorie]]&lt;/div&gt;</summary>
		<author><name>LGlaser</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=Vorlage:Navigation/Geometriefunktionen&amp;diff=12640</id>
		<title>Vorlage:Navigation/Geometriefunktionen</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=Vorlage:Navigation/Geometriefunktionen&amp;diff=12640"/>
		<updated>2026-02-02T17:05:50Z</updated>

		<summary type="html">&lt;p&gt;LGlaser: LGlaser verschob die Seite Vorlage:Navigation/Koordinatenfunktionen nach Vorlage:Navigation/Geometriefunktionen, ohne dabei eine Weiterleitung anzulegen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;{{Navigation&lt;br /&gt;
| TITEL  = Geometriefunktionen&lt;br /&gt;
| INHALT = &lt;br /&gt;
Geometrische Figuren:&lt;br /&gt;
[[Coordinate]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[Circle]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[Polygon]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[Rectangle]]&lt;br /&gt;
&lt;br /&gt;
Prüfen von Koordinaten:&lt;br /&gt;
[[IsCoordinateInCircle]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[IsCoordinateInPolygon]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[IsCoordinateInRectangle]]&lt;br /&gt;
&lt;br /&gt;
Abrufen von Koordinaten:&lt;br /&gt;
[[GetXCoordinate]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[GetYCoordinate]]&lt;br /&gt;
}}&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Navigationsvorlagen|Koordinatenfunktionen]]&lt;/div&gt;</summary>
		<author><name>LGlaser</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=Vorlage:Navigation/Geometriefunktionen&amp;diff=12639</id>
		<title>Vorlage:Navigation/Geometriefunktionen</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=Vorlage:Navigation/Geometriefunktionen&amp;diff=12639"/>
		<updated>2026-02-02T17:05:02Z</updated>

		<summary type="html">&lt;p&gt;LGlaser: Vervollständigung der Vorlage&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;{{Navigation&lt;br /&gt;
| TITEL  = Geometriefunktionen&lt;br /&gt;
| INHALT = &lt;br /&gt;
Geometrische Figuren:&lt;br /&gt;
[[Coordinate]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[Circle]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[Polygon]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[Rectangle]]&lt;br /&gt;
&lt;br /&gt;
Prüfen von Koordinaten:&lt;br /&gt;
[[IsCoordinateInCircle]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[IsCoordinateInPolygon]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[IsCoordinateInRectangle]]&lt;br /&gt;
&lt;br /&gt;
Abrufen von Koordinaten:&lt;br /&gt;
[[GetXCoordinate]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[GetYCoordinate]]&lt;br /&gt;
}}&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Navigationsvorlagen|Koordinatenfunktionen]]&lt;/div&gt;</summary>
		<author><name>LGlaser</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=Vorlage:Navigation/Numberfunktionen&amp;diff=12638</id>
		<title>Vorlage:Navigation/Numberfunktionen</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=Vorlage:Navigation/Numberfunktionen&amp;diff=12638"/>
		<updated>2026-02-02T17:00:51Z</updated>

		<summary type="html">&lt;p&gt;LGlaser: IsNaN nachgetragen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;{{Navigation&lt;br /&gt;
| TITEL  = Numberfunktionen ([[Übersicht Numberfunktionen|Übersicht]])&lt;br /&gt;
| INHALT = &lt;br /&gt;
[[EvaluatesToNumber]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[IsNumber]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[IsIntegerNumber]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[IsNaturalNumber]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[IsRationalNumber]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[IsRealNumber]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[IsMathematikerRealNumber]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[IsNaN]]&lt;br /&gt;
}}&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Navigationsvorlagen|Numberfunktionen]]&lt;/div&gt;</summary>
		<author><name>LGlaser</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=Dynamischer_Python_Checker_(JACK3)&amp;diff=12637</id>
		<title>Dynamischer Python Checker (JACK3)</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=Dynamischer_Python_Checker_(JACK3)&amp;diff=12637"/>
		<updated>2026-02-02T16:51:41Z</updated>

		<summary type="html">&lt;p&gt;LGlaser: Hinweis auf statische Codeanalyse&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der [[Python (JACK3)|Aufgabentyp Python]] lässt sich automatisiert bewerten, indem Testfälle ausgeführt werden. Diese können z.&amp;amp;nbsp;B. einen erwarteter Wert mit dem tatsächlichen Wert vergleichen. Der Python-Checker von JACK3 kann nicht nur Punktzahlen und Feedback zurückgeben, sondern auch Traces aufzeichnen (welche Zeilen ausgeführt wurden und wie die Variablenbelegung beim Testfall war). Es lassen sich beliebig komplexe Testfälle und auch zufallsbasierte Tests schreiben sowie passgenaues Feedback, programmiert in Python, erzeugen. &lt;br /&gt;
&lt;br /&gt;
{{Hinweis|In diesem Artikel werden [https://docs.python.org/3/tutorial/index.html grundlegende Python-Kenntnisse] vorausgesetzt.}}&lt;br /&gt;
&lt;br /&gt;
Der Checker arbeitet auf Python 3.11. Aktuell ist es nicht möglich, eigene Module zum Check hinzuzufügen oder Pakete aus dem Python Package Index (PyPI) (über &amp;lt;code&amp;gt;pip&amp;lt;/code&amp;gt;) zu laden. Das Paket [https://pandas.pydata.org/docs/user_guide/index.html pandas] ist vorinstalliert und kann durch den Testtreiber geladen werden, ansonsten sind ausschließlich Pakete der [https://docs.python.org/3.11/library/index.html Python-Standardbibliothek] nutzbar. &lt;br /&gt;
&lt;br /&gt;
== Unterstützte Aufgabenstellungen ==&lt;br /&gt;
Der dynamische Python-Checker ist darauf ausgelegt, Funktionsaufrufe aufzuzeichnen und ihre Rückgabewerte zu prüfen. Dies funktioniert am besten mit folgenden Aufgabenstellungen:&lt;br /&gt;
&lt;br /&gt;
* Schreiben Sie eine parameterlose Funktion, die ... zurückgibt.&lt;br /&gt;
* Schreiben Sie eine Funktion, die ... erwartet und ... zurückgibt.&lt;br /&gt;
* Schreiben Sie eine Funktion mit x Parametern, die mit dem ersten Parameter ... macht. (Um die Funktion zu prüfen, muss der Typ des ersten Parameters mutierbar sein, z.&amp;amp;nbsp;B. eine Liste.)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel&#039;&#039;&#039;: &#039;&#039;Definieren Sie eine Funktion add. Die Funktion soll zwei Parameter entgegennehmen und das Ergebnis der Addition zurückgeben.&#039;&#039; Die erwartete Musterlösung für diesen Fall wäre:&amp;lt;syntaxhighlight lang=&amp;quot;python3&amp;quot;&amp;gt;&lt;br /&gt;
def add(a, b):&lt;br /&gt;
  return a + b&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Testfälle (s.u.) können diese Funktion dann mit verschiedenen Werten aufrufen und das Ergebnis prüfen.&lt;br /&gt;
&lt;br /&gt;
=== Statische Tests &amp;amp; Codeanalyse ===&lt;br /&gt;
Derzeit gibt es für Python keinen statischen (GReQL-)Checker. Der eingereichte Code kann allerdings indirekt auf Syntaxelemente überprüft werden, indem er händisch geparst wird. Hierzu können die Python-Bordmittel, insbesondere das [https://docs.python.org/3.11/library/ast.html AST (Abstract Syntax Trees)]-Modul genutzt werden.&lt;br /&gt;
&lt;br /&gt;
== Aufbau eines Testtreibers ==&lt;br /&gt;
Grundsätzlich ist ein Testtreiber ein einzelnes Modul mit einer oder mehreren [https://docs.python.org/3.11/tutorial/controlflow.html#defining-functions parameterlosen Funktionen] (&#039;&#039;&#039;Testfälle&#039;&#039;&#039;), die nacheinander ausgeführt werden. In der Regel importiert der Testtreiber dabei das Modul mit dem eingereichten (zu testenden) Code. Dessen Name [[Python (JACK3)|wird im UI als &amp;quot;Modul-Pfad für studentischen Code&amp;quot;]] festgelegt.&lt;br /&gt;
&lt;br /&gt;
Damit die Traces der Testfälle korrekt aufgezeichnet werden, wird jeder Testfall mit dem [https://book.pythontips.com/en/latest/decorators.html Decorator] &amp;lt;code&amp;gt;decorator&amp;lt;/code&amp;gt; aus dem vorgegebenen &amp;lt;code&amp;gt;Communicator&amp;lt;/code&amp;gt;-Modul gekennzeichnet. Der folgende Code zeigt ein Beispiel mit zwei Testfällen, jeweils ohne Inhalt:&amp;lt;syntaxhighlight lang=&amp;quot;python3&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
import Communicator&lt;br /&gt;
import Trace&lt;br /&gt;
import studentcode as s&lt;br /&gt;
&lt;br /&gt;
@Communicator.decorator&lt;br /&gt;
def testcase1():&lt;br /&gt;
  # TODO so something with s ...&lt;br /&gt;
  pass&lt;br /&gt;
&lt;br /&gt;
@Communicator.decorator&lt;br /&gt;
def testcase2():&lt;br /&gt;
  # TODO so something with s ...&lt;br /&gt;
  pass&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    print(&#039;Running test case 1...&#039;)&lt;br /&gt;
    testcase1()&lt;br /&gt;
    print(&#039;Running test case 2 ...&#039;)&lt;br /&gt;
    testcase2()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===API zum Zurückmelden von Ergebnissen===&lt;br /&gt;
Innerhalb eines Testfalls werden Ergebnisse über das Modul &amp;lt;code&amp;gt;Trace&amp;lt;/code&amp;gt; zurückgeliefert. Dieses Modul sammelt alle Punktzahlen und Feedback auf und berichtet diese am Ende der Ausführung. Es bietet folgende Funktion:&amp;lt;syntaxhighlight lang=&amp;quot;python3&amp;quot;&amp;gt;&lt;br /&gt;
def printResult(result: int, feedback: str = None):&lt;br /&gt;
  &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
  Reports a result.&lt;br /&gt;
&lt;br /&gt;
  :param result: Points which are reported. Must be between 0 and 100 (both inclusive).&lt;br /&gt;
  :param feedback: Optional Feedback presented to the user.&lt;br /&gt;
  &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
  pass&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;{{Wichtig|In jedem Testfall muss &amp;lt;code&amp;gt;printResult&amp;lt;/code&amp;gt; genau ein Mal tatsächlich aufgerufen werden!}}&lt;br /&gt;
&lt;br /&gt;
=== Schreiben von Testfällen ===&lt;br /&gt;
Der Checker nutzt für das Tracing eine spezielle Kontrollflussanalyse, basierend auf Pythons [https://docs.python.org/3.11/reference/simple_stmts.html#the-assert-statement &amp;lt;code&amp;gt;assert&amp;lt;/code&amp;gt;-Schlüsselwort] und Exceptions. Mit &amp;lt;code&amp;gt;assert&amp;lt;/code&amp;gt; lassen sich Ausdrücke testen, die resultierende Exception lässt sich anschließend fangen und in Feedback umwandeln.&lt;br /&gt;
&lt;br /&gt;
Ein möglicher Testfall 1 für das obige Beispiel wäre dementsprechend:&amp;lt;syntaxhighlight lang=&amp;quot;python3&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;5&amp;quot;&amp;gt;&lt;br /&gt;
@Communicator.decorator&lt;br /&gt;
def testcase1():&lt;br /&gt;
  try:&lt;br /&gt;
    # Berechnen des Ergebnisses mit dem &amp;quot;studentcode&amp;quot;:&lt;br /&gt;
    result = s.add(1, 0)&lt;br /&gt;
    # zu prüfender Ausdruck:&lt;br /&gt;
    assert result == 1&lt;br /&gt;
&lt;br /&gt;
    # Bei Erfolg: +25 Punkte&lt;br /&gt;
    Trace.printResult(25)&lt;br /&gt;
  except Exception:&lt;br /&gt;
    # Bei Misserfolg: +0 Punkte mit Feedback-Nachricht&lt;br /&gt;
    Trace.printResult(0, f&amp;quot;Erwartete Summe: 1, tatsächlich: {result}.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Das Tracing reagiert auf alle Arten von Exceptions und zeigt im Falle eines &amp;lt;code&amp;gt;AssertionError&amp;lt;/code&amp;gt;s (entweder händisch geworfen oder über &amp;lt;code&amp;gt;assert&amp;lt;/code&amp;gt;) eine generische Fehlermeldung an, die mitteilt, dass der Testfall nicht bestanden wurde, sofern kein benutzerdefiniertes Feedback (zweiter Parameter von &amp;lt;code&amp;gt;printResult&amp;lt;/code&amp;gt;) vorgegeben wurde. Zusätzlich wird die Variablenbelegung angezeigt und die ausgeführten Zeilen.&lt;br /&gt;
&lt;br /&gt;
Pro Testtreiber werden die Punkte aller Testfälle aufsummiert. Bei einer gleichen Gewichtung von vier Testfällen wird jeder Testfall also 25 Punkte im Erfolg zurückmelden. Die summierten Punkte müssen zwischen 0 und 100 (jeweils inklusiv) liegen.&lt;br /&gt;
&lt;br /&gt;
== Ressourcen ==&lt;br /&gt;
Um das Entwickeln von Testfällen zu vereinfachen, haben wir einen Dummy gebaut, der die Funktion des Checkers simuliert. [[index.php?title=Medium:Tracing-Python-Checker-Dummy.zip|Den Dummy können Sie hier herunterladen.]] Folgende Dateien sind enthalten:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;Trace.py&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;Communicator.py&amp;lt;/code&amp;gt; simulieren die Funktion des Checkers.&lt;br /&gt;
* &amp;lt;code&amp;gt;testdriver.py&amp;lt;/code&amp;gt; enthält vier Testfälle aus dem Beispiel oben und kann beliebig angepasst werden.&lt;br /&gt;
* &amp;lt;code&amp;gt;studentcode.py&amp;lt;/code&amp;gt; enthält eine studentische Einreichung mit einem &amp;quot;Fehler&amp;quot;, bei dem einer der Testfälle nicht bestanden wird.&lt;br /&gt;
* &amp;lt;code&amp;gt;run.py&amp;lt;/code&amp;gt; ist ein Skript, das den Testtreiber ausführt und ausgibt, wie viele Punkte die Lösung ergeben würde.&lt;br /&gt;
&lt;br /&gt;
Der Dummy kann mit dem Befehl &amp;lt;code&amp;gt;python run.py&amp;lt;/code&amp;gt; ausgeführt werden (auf Linux-Systemen kann der Befehl auch &amp;lt;code&amp;gt;python3&amp;lt;/code&amp;gt; lauten, auf Windows auch &amp;lt;code&amp;gt;py&amp;lt;/code&amp;gt;).&lt;br /&gt;
{{Hinweis|Der Dummy arbeitet nicht exakt wie der Checker. Es gibt keine Garantie, dass Testtreiber, die mit dem Dummy funktionieren, auch genau so in JACK funktionieren. Testen Sie die Aufgabe deshalb immer auch in JACK!}}&lt;br /&gt;
[[Kategorie:Benutzerhandbuch]]&lt;br /&gt;
[[Kategorie:Checker]]&lt;/div&gt;</summary>
		<author><name>LGlaser</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=Vorlage:Navigation&amp;diff=12277</id>
		<title>Vorlage:Navigation</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=Vorlage:Navigation&amp;diff=12277"/>
		<updated>2025-06-06T07:54:04Z</updated>

		<summary type="html">&lt;p&gt;LGlaser: Vorlagenkategorie&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&amp;lt;div style=&amp;quot;background: #eaf3ff; border: solid 1px #a3caff; padding-left: 10px; padding-right: 10px; line-height: 1.0em; text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
{{#if: {{{TITEL|}}} | &amp;lt;div style=&amp;quot;font-weight: bold;&amp;quot;&amp;gt;&lt;br /&gt;
{{{TITEL}}}&lt;br /&gt;
&amp;lt;/div&amp;gt; | }}&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-top: 10px;&amp;quot;&amp;gt;&lt;br /&gt;
{{{INHALT}}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;Diese Vorlage bildet eine Navigationsleiste, ähnlich zu der in der [https://de.wikipedia.org/wiki/Vorlage:Navigationsleiste Wikipedia].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Benutzung:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
{{Navigation&lt;br /&gt;
| TITEL  = Titel hier einfügen&lt;br /&gt;
| INHALT = &lt;br /&gt;
[[Erste Seite]]&amp;amp;amp;nbsp;&amp;amp;amp;bull;&lt;br /&gt;
[[Zweite Seite]]&amp;amp;amp;nbsp;&amp;amp;amp;bull;&lt;br /&gt;
[[Dritte Seite]]&amp;amp;amp;nbsp;&amp;amp;amp;bull;&lt;br /&gt;
[[Vierte Seite]]&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Parameter &amp;lt;code&amp;gt;TITEL&amp;lt;/code&amp;gt; ist optional.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ergibt:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Navigation&lt;br /&gt;
| TITEL  = Titel hier einfügen&lt;br /&gt;
| INHALT = &lt;br /&gt;
Erste Seite&amp;amp;nbsp;&amp;amp;bull; &amp;lt;!-- Dummy-Links entfernt --&amp;gt;&lt;br /&gt;
Zweite Seite&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
Dritte Seite&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
Vierte Seite&lt;br /&gt;
}}&lt;br /&gt;
[[:Kategorie:Navigationsvorlagen|Liste aller Navigationsvorlagen]].&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Navigationsvorlagen| ]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>LGlaser</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=Checkliste_f%C3%BCr_Pr%C3%BCfungen_mit_JACK_3&amp;diff=12114</id>
		<title>Checkliste für Prüfungen mit JACK 3</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=Checkliste_f%C3%BCr_Pr%C3%BCfungen_mit_JACK_3&amp;diff=12114"/>
		<updated>2025-03-11T08:11:54Z</updated>

		<summary type="html">&lt;p&gt;LGlaser: Hinweis auf PC-Hall konkretisiert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hier finden Sie eine Checkliste zur erfolgreichen Durchführung von Prüfungen mit JACK3. Um eine möglichst reibungslose Prüfungsdurchführung zu ermöglichen, bitten wir Sie, folgende Punkte abzuarbeiten:&lt;br /&gt;
&lt;br /&gt;
Bis &#039;&#039;&#039;zwei Wochen&#039;&#039;&#039; vor der Klausur:&lt;br /&gt;
&lt;br /&gt;
* Die Klausur wurde über die [mailto:jack@paluno.uni-due.de Funktionsmail] angemeldet.&lt;br /&gt;
&lt;br /&gt;
* Falls die Prüfung in einer [https://www.uni-due.de/zim/services/pc-pruefungen/pc-hall PC-Hall der Universität Duisburg-Essen] stattfindet: Die Klausur wurde beim [https://www.uni-due.de/zim/klausuranmeldung ZIM] angemeldet.&lt;br /&gt;
&lt;br /&gt;
* Lehrende haben Editierrechte und einen Ordner in [[Verfügbare Kurse (JACK3)|&#039;&#039;Verfügbare Kurse&#039;&#039;]] auf dem/den Prüfungsserver/n erhalten.&lt;br /&gt;
&lt;br /&gt;
Bis &#039;&#039;&#039;eine Woche&#039;&#039;&#039; vor der Klausur:&lt;br /&gt;
&lt;br /&gt;
* Die Klausuraufgaben wurden auf den/die Prüfungsserver importiert.&lt;br /&gt;
&lt;br /&gt;
* Alle Bilder in den Aufgaben wurden erneut in der Aufgabe verlinkt.&lt;br /&gt;
&lt;br /&gt;
* Es wurde ein Kurs erstellt, die Aufgaben dort eingefügt und die Punkte für die Aufgaben angepasst.&lt;br /&gt;
&lt;br /&gt;
* Es wurde ein Kursangebot erstellt, der Kurs eingebunden und das Kursangebot konfiguriert.&lt;br /&gt;
&lt;br /&gt;
* Die Klausur wurde aus Studierendensicht auf technische Korrektheit geprüft.&lt;br /&gt;
&lt;br /&gt;
* Die Klausur wurde aus Studierendensicht auf inhaltliche Korrektheit geprüft.&lt;br /&gt;
&lt;br /&gt;
=== Weitere Hinweise ===&lt;br /&gt;
* Das JACK-Team übernimmt keine Verantwortung für die Korrektheit der Aufgaben, Kurse und Kursangebote.&lt;br /&gt;
&lt;br /&gt;
* Für neue Kunden wird einmalig ein Mitarbeiter vor Ort für die Betreuung der Klausur in der PC-Hall bereitgestellt.&lt;br /&gt;
&lt;br /&gt;
* Das JACK-Team steht im Zeitraum &#039;&#039;vor&#039;&#039; diesen zwei Wochen stets gerne für Beratungen und Schulungen zu allen Themen zur Verfügung, um eine störungsfreie und erfolgreiche Durchführung der Prüfungen zu gewährleisten.&lt;/div&gt;</summary>
		<author><name>LGlaser</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=IsNaN&amp;diff=12113</id>
		<title>IsNaN</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=IsNaN&amp;diff=12113"/>
		<updated>2025-03-11T08:08:13Z</updated>

		<summary type="html">&lt;p&gt;LGlaser: typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Navigation/Numberfunktionen}}&lt;br /&gt;
&lt;br /&gt;
=== Zugehörige Evaluatoren ===&lt;br /&gt;
*&#039;&#039;&#039;MathEvaluator&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Beschreibung ===&lt;br /&gt;
Die Funktion &#039;&#039;IsNaN&#039;&#039; prüft nach dem IEEE-Standard 754, ob eine Fließkommazahl &amp;quot;[https://de.wikipedia.org/wiki/NaN Not a Number]&amp;quot; ist.&lt;br /&gt;
&lt;br /&gt;
Siehe auch [[Übersicht Numberfunktionen]].&lt;br /&gt;
&lt;br /&gt;
=== Syntax ===&lt;br /&gt;
 isNaN(a)&lt;br /&gt;
&lt;br /&gt;
=== Parameter ===&lt;br /&gt;
* &#039;&#039;&#039;a&#039;&#039;&#039; - [[Objekt]]&lt;br /&gt;
&lt;br /&gt;
=== Return Value ===&lt;br /&gt;
*Gibt True (wahr) oder False (nicht wahr) zurück&lt;br /&gt;
&lt;br /&gt;
=== Beispiele ===&lt;br /&gt;
==== Standardfälle ====&lt;br /&gt;
 isNaN(4)  --&amp;gt; returns &#039;&#039;true&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 isNaN(-1245)   --&amp;gt; returns &#039;&#039;true&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 isNaN(2.5) --&amp;gt; returns &#039;&#039;false&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Math-Evaluatorfunktion]][[Kategorie:Testfunktionen]][[Kategorie:JACK3]]&lt;/div&gt;</summary>
		<author><name>LGlaser</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=%C3%9Cbersicht_Numberfunktionen&amp;diff=12112</id>
		<title>Übersicht Numberfunktionen</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=%C3%9Cbersicht_Numberfunktionen&amp;diff=12112"/>
		<updated>2025-03-11T08:07:29Z</updated>

		<summary type="html">&lt;p&gt;LGlaser: /* IsNaN */ typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Navigation/Numberfunktionen}}&lt;br /&gt;
&lt;br /&gt;
== Funktionsweise ==&lt;br /&gt;
Im Mathe-Evaluator gibt es sechs verschiedene Funktionen, mit denen getestet werden kann, ob die Eingabe zu einer bestimmten Zahlengruppe gehört:&lt;br /&gt;
&lt;br /&gt;
=== [[IsNumber]] ===&lt;br /&gt;
* Gibt &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; zurück, wenn&lt;br /&gt;
** die Eingabe eine Zahl ist oder&lt;br /&gt;
** sich die Eingabe zu einer Zahl ausrechnen lässt.&lt;br /&gt;
* &#039;&#039;&#039;Gibt auch für komplexe Zahlen true zurück.&#039;&#039;&#039;&lt;br /&gt;
=== [[IsIntegerNumber]] ===&lt;br /&gt;
* Gibt &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; zurück, wenn&lt;br /&gt;
** die Eingabe ein Integer ist.&lt;br /&gt;
* &#039;&#039;&#039;Die Eingabe wird nicht ausgerechnet.&#039;&#039;&#039;&lt;br /&gt;
=== [[IsNaturalNumber]] ===&lt;br /&gt;
* Gibt &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; zurück, wenn&lt;br /&gt;
** die Eingabe eine natürliche Zahl oder&lt;br /&gt;
** Null ist.&lt;br /&gt;
* &#039;&#039;&#039;Die Eingabe wird nicht ausgerechnet.&#039;&#039;&#039;&lt;br /&gt;
=== [[IsRationalNumber]] ===&lt;br /&gt;
* Gibt &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; zurück, wenn&lt;br /&gt;
** die Eingabe eine rationale Zahl ist.&lt;br /&gt;
* &#039;&#039;&#039;Die Eingabe wird nicht ausgerechnet.&#039;&#039;&#039;&lt;br /&gt;
=== [[IsRealNumber]] ===&lt;br /&gt;
* Gibt &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; zurück, wenn sich die Eingabe zu einer reellen Zahl ausrechnen lässt und&lt;br /&gt;
** es sich um eine ganze oder Fließkomma-Zahl handelt,&lt;br /&gt;
** es sich um &amp;lt;code&amp;gt;+/- e&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;+/- pi&amp;lt;/code&amp;gt; handelt,&lt;br /&gt;
** es sich um einen Bruch handelt, bei dem Zähler und Nenner eine ganze Zahl/Fließkommazahl/&amp;lt;code&amp;gt;e&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;pi&amp;lt;/code&amp;gt; sind oder&lt;br /&gt;
** es sich um eine Wurzel handelt und der Term unter der Wurzel obigen Kriterien entspricht.&lt;br /&gt;
=== [[IsMathematikerRealNumber]] ===&lt;br /&gt;
* Gibt &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; zurück, wenn&lt;br /&gt;
** die Eingabe sich nicht zu Unendlich ausrechnen lässt,&lt;br /&gt;
** die Eingabe sich zu einer reellen Zahl ausrechnen lässt und&lt;br /&gt;
** die Eingabe nicht weiter vereinfacht werden kann.&lt;br /&gt;
* Die Eingabe ist vereinfachbar, wenn&lt;br /&gt;
** sie mindesten einen Operanten enthält (&amp;lt;code&amp;gt;+, -, *, /, ^, sqrt&amp;lt;/code&amp;gt;) und&lt;br /&gt;
** sie sich zu einer Ganzzahl ausrechnen lässt.&lt;br /&gt;
=== [[IsNaN]] ===&lt;br /&gt;
* Gibt &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; zurück, wenn&lt;br /&gt;
** es sich bei der Eingabe um &#039;&#039;&#039;keine&#039;&#039;&#039; Zahl des [https://de.wikipedia.org/wiki/NaN IEEE-Standard 754] handelt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Vergleich ==&lt;br /&gt;
In folgender Tabelle wird verglichen, welche Rückgabe die Funktionen für verschiedene Eingaben liefern:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Ausgaben der Funktionen bei verschiedenen Eingaben&lt;br /&gt;
|-&lt;br /&gt;
! !! \(2\) !! \(0\) !! \(-4\) !! \(4.6\) !! \(\frac{2}{3}\) !! \(\sqrt{\frac{4}{4}}\) !! \(1+3\) !! \(i\) !! \(\infty\)&lt;br /&gt;
|-&lt;br /&gt;
| IsNumber || True || True || True || True || True || True  || True || True ||  style=&amp;quot;background-color: silver;&amp;quot; |False&lt;br /&gt;
|-&lt;br /&gt;
| IsIntegerNumber || True || True || True ||  style=&amp;quot;background-color: silver;&amp;quot; |False||  style=&amp;quot;background-color: silver;&amp;quot; |False||  style=&amp;quot;background-color: silver;&amp;quot; |False||  style=&amp;quot;background-color: silver;&amp;quot; |False||  style=&amp;quot;background-color: silver;&amp;quot; |False||  style=&amp;quot;background-color: silver;&amp;quot; |False&lt;br /&gt;
|-&lt;br /&gt;
| IsNaturalNumber || True || True ||  style=&amp;quot;background-color: silver;&amp;quot; |False||  style=&amp;quot;background-color: silver;&amp;quot; |False||  style=&amp;quot;background-color: silver;&amp;quot; |False||  style=&amp;quot;background-color: silver;&amp;quot; |False||  style=&amp;quot;background-color: silver;&amp;quot; |False||  style=&amp;quot;background-color: silver;&amp;quot; |False||  style=&amp;quot;background-color: silver;&amp;quot; |False&lt;br /&gt;
|-&lt;br /&gt;
| IsRationalNumber || True || True || True || True || True ||  style=&amp;quot;background-color: silver;&amp;quot; |False||  style=&amp;quot;background-color: silver;&amp;quot; |False||  style=&amp;quot;background-color: silver;&amp;quot; |False||  style=&amp;quot;background-color: silver;&amp;quot; |False&lt;br /&gt;
|-&lt;br /&gt;
| IsRealNumber || True || True || True || True || True || True ||  style=&amp;quot;background-color: silver;&amp;quot; |False||  style=&amp;quot;background-color: silver;&amp;quot; |False||  style=&amp;quot;background-color: silver;&amp;quot; |False&lt;br /&gt;
|-&lt;br /&gt;
| IsMathematikerRealNumber || True || True || True || True  || True ||  style=&amp;quot;background-color: silver;&amp;quot; |False||  style=&amp;quot;background-color: silver;&amp;quot; |False||  style=&amp;quot;background-color: silver;&amp;quot; |False||  style=&amp;quot;background-color: silver;&amp;quot; |False&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Math-Evaluatorfunktion]][[Kategorie:Testfunktionen]][[Kategorie:JACK2]][[Kategorie:JACK3]]&lt;/div&gt;</summary>
		<author><name>LGlaser</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=Formeleditor_(JACK3)&amp;diff=12111</id>
		<title>Formeleditor (JACK3)</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=Formeleditor_(JACK3)&amp;diff=12111"/>
		<updated>2025-03-06T13:37:24Z</updated>

		<summary type="html">&lt;p&gt;LGlaser: Kleine Korrekturen, &amp;#039;/&amp;#039; zu besonderen Zeichen hinzugefügt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;JACK3 bietet die Möglichkeit, [[Fill-In (JACK3)|Fill-In Aufgaben]] um einen Formeleditor zu erweitern. Dieser unterstützt bei der Eingabe von mathematischen und chemischen Ausdrücken.&lt;br /&gt;
&lt;br /&gt;
=== Allgemeine Informationen ===&lt;br /&gt;
Zum Einbinden des Formeleditors in einer Aufgabe muss in dem Aufgabenteil unter Formeleditor eine &#039;&#039;Palette&#039;&#039; ausgewählt werden und für das jeweilige Inputfeld in dem Drop-Down Feld &#039;&#039;Formeleditor&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[File:FillIn_Felder_Lehrender.JPG|center|thumb|800px|Einbinden des Formeleditors für Fill-In Felder]]{{Hinweis|In einer Aufgabe dürfen die beiden Formeleditoren Mathe und Chemie nicht gemischt werden.|Wichtig}}Der Formeleditor wird nur für ein Inputfeld angezeigt, wenn in dem Aufgabenteil ein Formeleditor ausgewählt wurde und bei dem Inputfeld &#039;&#039;Formeleditor&#039;&#039; gewählt wurde.&lt;br /&gt;
&lt;br /&gt;
Bei beiden, Mathematik und Chemie, kann man sich auch keine Palette anzeigen lassen, aber trotzdem die Funktionen nutzen. Für Mathematik wählt man dafür &amp;lt;code&amp;gt;invisible&amp;lt;/code&amp;gt; aus und für Chemie &amp;lt;code&amp;gt;invisibleChem&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Mathematik Formeleditor ===&lt;br /&gt;
====Mehrere Buchstaben werden zu einer Variable zusammengefasst====&lt;br /&gt;
Der Formeleditor erlaubt Variablen mit mehreren Buchstaben. Beispiele:&lt;br /&gt;
* Für &amp;lt;code&amp;gt;ca^4&amp;lt;/code&amp;gt; wird als die Variable &#039;&#039;ca&#039;&#039; hoch 4 interpretiert.&lt;br /&gt;
* &amp;lt;code&amp;gt;x*y^2&amp;lt;/code&amp;gt; führt zu &amp;lt;code&amp;gt;x*y*y&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;x*yz^2&amp;lt;/code&amp;gt; wird als die Variable &#039;&#039;x&#039;&#039; multipliziert mit der Variable &#039;&#039;yz&#039;&#039; hoch 2 interpretiert.&lt;br /&gt;
* &amp;lt;code&amp;gt;ab*ab&amp;lt;/code&amp;gt; führt zu &amp;lt;code&amp;gt;(ab)^2&amp;lt;/code&amp;gt;, wobei &amp;lt;code&amp;gt;ab&amp;lt;/code&amp;gt; wieder als &#039;&#039;&#039;eine&#039;&#039;&#039; Variable erkannt wird.&lt;br /&gt;
* &amp;lt;code&amp;gt;abc&amp;lt;/code&amp;gt; wird als Variable &#039;&#039;abc&#039;&#039; erkannt. Schreibt man aber &amp;lt;code&amp;gt;a*b*c&amp;lt;/code&amp;gt; werden alle drei Buchstaben als einzelne Variablen erkannt.&lt;br /&gt;
&lt;br /&gt;
====Besondere Zeichen====&lt;br /&gt;
&amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt;: Fügt in einem Fill-In-Feld mit Formeleditor einen Bruch ein.&lt;br /&gt;
&lt;br /&gt;
=== Chemie Formeleditor ===&lt;br /&gt;
[[File:Formeleditor-Chemie.jpg|thumb|Beispiel mit der Palette &amp;quot;palette_chemical_reaction_equation&amp;quot;]]&lt;br /&gt;
Für Chemie stehen die beiden Formeleditoren &#039;&#039;invisibleChem&#039;&#039; und &#039;&#039;palette_chemical_reaction_equation&#039;&#039; zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Durch Tippen von Großbuchstaben (optional gefolgt durch einen Kleinbuchstaben) können Atome angegeben werden.&lt;br /&gt;
* Durch &amp;lt;code&amp;gt;Shift + Pfeil unten&amp;lt;/code&amp;gt; kann die Anzahl der Atome in einem Molekül erreicht werden.&lt;br /&gt;
* Durch &amp;lt;code&amp;gt;Shift + Pfeil oben&amp;lt;/code&amp;gt; kann die Ladung des Moleküls angegeben werden.&lt;br /&gt;
* Operatoren &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; stehen zur Verfügung.&lt;br /&gt;
* Ganzzahlen können verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Die Palette &#039;&#039;palette_chemical_reaction_equation&#039;&#039; beinhaltet Elemente um Oxidationszahlen anzugeben und die Elemente, die mit &amp;lt;code&amp;gt;Shift + Pfeiltaste&amp;lt;/code&amp;gt; erzeugbar sind. Diese können mit einem Mausklick eingefügt werden.&lt;br /&gt;
&lt;br /&gt;
===Weitere Links===&lt;br /&gt;
* [[Formeleditor Paletten (JACK3)|Formeleditor-Paletten]]&lt;br /&gt;
* [[Fill-In (JACK3)|Fill-In]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Benutzerhandbuch]]&lt;/div&gt;</summary>
		<author><name>LGlaser</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=RandomUniqueIntegersBetween&amp;diff=12108</id>
		<title>RandomUniqueIntegersBetween</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=RandomUniqueIntegersBetween&amp;diff=12108"/>
		<updated>2025-03-04T07:34:43Z</updated>

		<summary type="html">&lt;p&gt;LGlaser: typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Vorlage:Warnung|Warnung=Diese Seite ist beinhaltet eine Evaluatorfunktion für JACK3.}}&lt;br /&gt;
&lt;br /&gt;
===Zugehörige Evaluatoren===&lt;br /&gt;
*&#039;&#039;&#039;MathEvaluator&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Beschreibung===&lt;br /&gt;
Die Funktion &#039;&#039;randomUniqueIntegersBetween&#039;&#039; zieht eine vorgegebene Anzahl an zufälligen und unterschiedlichen [[Ganzzahl|Ganzzahlen]] aus einem vorgegebenen Bereich. Es werden keine Zahlen doppelten gezogen. Die gezogenen [[Ganzzahl|Ganzzahlen]] sind dabei inklusiv der unteren Grenze und exklusiv der oberen Grenze. Die Anzahl zu ziehender Zahlen darf nicht größer als der Abstand zwischen der unteren und oberen Grenze sein.&lt;br /&gt;
&lt;br /&gt;
===Syntax===&lt;br /&gt;
 randomUniqueIntegersBetween(int anzahl, int untereGrenze, int obereGrenze)&lt;br /&gt;
&lt;br /&gt;
===Parameter===&lt;br /&gt;
* &#039;&#039;&#039;anzahl&#039;&#039;&#039; - [[Ganzzahl]] Anzahl an Zufallszahlen&lt;br /&gt;
* &#039;&#039;&#039;untereGrenze&#039;&#039;&#039; - [[Ganzzahl]] untere Grenze (inklusiv)&lt;br /&gt;
* &#039;&#039;&#039;obereGrenze&#039;&#039;&#039; - [[Ganzzahl]] obere Grenze (exklusiv)&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
* Gibt eine [[List|Liste]] zurück, welche aus [[Ganzzahl]]en besteht.&lt;br /&gt;
&lt;br /&gt;
===Beispiele===&lt;br /&gt;
 randomUniqueIntegersBetween(2, 2, 6)    --&amp;gt; returns (zum Beispiel) 2, 4 &lt;br /&gt;
 &lt;br /&gt;
 randomUniqueIntegersBetween(3, 1, 10)    --&amp;gt; returns (zum Beispiel) 3, 7, 8 &lt;br /&gt;
 &lt;br /&gt;
 randomUniqueIntegersBetween(1, 4, 10)    --&amp;gt; returns (zum Beispiel) 9&lt;br /&gt;
&lt;br /&gt;
===Hinweise===&lt;br /&gt;
* Weitere Funktionen die zufällig Zahlen ziehen sind: [[random]], [[randomBetween]], [[randomIntegerBetween]].&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Math-Evaluatorfunktion]]&lt;/div&gt;</summary>
		<author><name>LGlaser</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=Vorlage:Navigation/Geometriefunktionen&amp;diff=12107</id>
		<title>Vorlage:Navigation/Geometriefunktionen</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=Vorlage:Navigation/Geometriefunktionen&amp;diff=12107"/>
		<updated>2025-02-27T10:38:39Z</updated>

		<summary type="html">&lt;p&gt;LGlaser: Reihenfolge geändert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;{{Navigation&lt;br /&gt;
| TITEL  = Funktionen mit Koordinaten&lt;br /&gt;
| INHALT = &lt;br /&gt;
Geometrische Figuren:&lt;br /&gt;
[[Coordinate]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[Circle]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[Polygon]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[Rectangle]]&lt;br /&gt;
&lt;br /&gt;
Prüfen von Koordinaten:&lt;br /&gt;
[[IsCoordinateInCircle]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[IsCoordinateInPolygon]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[IsCoordinateInRectangle]]&lt;br /&gt;
}}&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Navigationsvorlagen|Koordinatenfunktionen]]&lt;/div&gt;</summary>
		<author><name>LGlaser</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=Benutzer:LGlaser/FAQ_(JACK3)&amp;diff=12106</id>
		<title>Benutzer:LGlaser/FAQ (JACK3)</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=Benutzer:LGlaser/FAQ_(JACK3)&amp;diff=12106"/>
		<updated>2025-02-24T08:43:26Z</updated>

		<summary type="html">&lt;p&gt;LGlaser: Funktionsaccount hinzugefügt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Hinweis|Diese Seite befindet sich noch im Aufbau}}&lt;br /&gt;
&lt;br /&gt;
Auf dieser Seite finden Sie häufige Fragen zu JACK3.&lt;br /&gt;
&lt;br /&gt;
==Allgemeines==&lt;br /&gt;
&lt;br /&gt;
=== Kann unsere Arbeitsgruppe einen Funktionsaccount bekommen, damit mehrere Personen an den Inhalten arbeiten können? ===&lt;br /&gt;
Das ist in JACK3 nicht vorgesehen. Nutzen Sie stattdessen die [[Rechte bearbeiten (JACK3)|Rechtevergabe]], um Inhalte mit anderen Personen zu teilen. Es gibt außerdem die Option, [[Benutzergruppe (JACK3)|Benutzergruppen]] anzulegen, über die Inhalte mit mehreren Benutzern gleichzeitig geteilt werden können.&lt;br /&gt;
&lt;br /&gt;
=== Warum kann ich Aufgaben / Kurse nicht löschen?===&lt;br /&gt;
Aufgaben und Kurse können nur dann gelöscht werden, wenn ...&lt;br /&gt;
&lt;br /&gt;
*sie nicht mehr in Benutzung sind, d.h. ein Kurs nicht in einem Kursangebot verwendet wird und eine Aufgabe nicht in einem Kurs.&lt;br /&gt;
*es keine Bearbeitungen von Studierenden mehr für die Aufgabe / den Kurs gibt.&lt;br /&gt;
&lt;br /&gt;
Sollte aus einem der beiden Gründe ein Löschen nicht möglich sein, können die entsprechenden Aufgaben/Kurse jederzeit umorganisiert werden, z.&amp;amp;nbsp;B. in einen &#039;&#039;Papierkorb&#039;&#039;-Ordner verschoben werden.&lt;br /&gt;
&lt;br /&gt;
==Aufgaben ==&lt;br /&gt;
&lt;br /&gt;
===Es ist ein Fehler aufgetreten und diese Aufgabe kann nicht mehr ordnungsgemäß angezeigt werden. - Wie erfahre ich, was den Fehler verursacht hat?===&lt;br /&gt;
In den Bearbeitungsdetails (Aufgabe bearbeiten → Details → über die Lupe gehen), anschließend wird der genaue Grund (z.&amp;amp;nbsp;B. fehlgeschlagenes Variablenupdate) im entsprechenden Aufgabenteil angezeigt. Auch im unteren Bereich unter &amp;quot;Verlauf der Bearbeitung&amp;quot; ist die genaue Fehlermeldung zu sehen.&lt;br /&gt;
&lt;br /&gt;
== Kurse==&lt;br /&gt;
&lt;br /&gt;
===Was ist der Unterschied zwischen Kursen und Kursangeboten?===&lt;br /&gt;
Siehe [[Glossar (JACK3)#Kursangebot|Glossar → Kursangebot]].&lt;br /&gt;
&lt;br /&gt;
==Kursangebote==&lt;br /&gt;
&lt;br /&gt;
=== Wie kann ich Anmeldedaten zu mehreren (parallelen) Kursangeboten exportieren?===&lt;br /&gt;
Gehen Sie zu den &amp;quot;Verfügbaren Kursen&amp;quot;, öffnen Sie mittels eines Rechtsklicks das Kontextmenü des Ordners, in dem die Kursangebote liegen und wählen Sie anschließend &amp;quot;Teilnehmerdaten anzeigen&amp;quot; aus. Die nun angezeigte Tabelle zeigt eine Übersicht über Teilnehmer aller Kursangebote innerhalb des markierten Ordners. Über die &amp;quot;Download&amp;quot;-Schaltfläche können Sie die Daten exportieren.&lt;br /&gt;
&lt;br /&gt;
===Warum ist mein Kursangebot für Studierende nicht sichtbar?===&lt;br /&gt;
Dies ist in der Regel auf die [[Kursangebot Einstellungen (JACK3)#Zugangsbeschränkung|Zugangsbeschränkungen]] zurückzuführen. Prüfen Sie den Sichtbarkeitszeitraum und die Filter-Einstellungen des Kursangebots. Stellen Sie zudem sicher, dass der Kurs über die korrekte URL (insb. die korrekte Serveradresse, z.&amp;amp;nbsp;B. &amp;lt;code&amp;gt;jack-server20.s3.uni-due.de&amp;lt;/code&amp;gt;) besucht wird.&lt;br /&gt;
&lt;br /&gt;
==Bearbeitungen==&lt;br /&gt;
&lt;br /&gt;
===Warum kann ich Bearbeitungen nicht löschen?===&lt;br /&gt;
JACK3 beinhaltet ein komplexes [[Rechtekonzept (JACK3)|Rechtekonzept]], bei dem detailliert festgelegt ist, welcher Benutzer welche Aktionen durchführen darf. Da es beim Löschen von Bearbeitungen um Daten geht, die relevant für eine Bewertung sind, sind &#039;&#039;Bewertungsrechte&#039;&#039; erforderlich, um Bearbeitungen von Studierenden zu löschen. Zusätzlich ist der &#039;&#039;Zugriffsweg&#039;&#039; relevant: Reguläre Bearbeitungen zu einem Kursangebot können nur in der Teilnehmerübersicht aus dem Kursangebot heraus gelöscht werden. Testbearbeitungen zu einem Kurs können nur in der Teilnehmerübersicht aus dem Kurs heraus gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
===Warum kann ich kein manuelles Feedback setzen?===&lt;br /&gt;
Prüfen Sie, ob Sie [[Rechtekonzept (JACK3)#Bewertungsrecht (B)|Bewertungsrecht]] am aufgerufenen Inhalt besitzen &#039;&#039;und&#039;&#039; ob Sie vom Kursangebot, nicht aus einer Aufgabe heraus kommen. Den aktuellen Zugriffsweg sehen Sie im Header der Seite.&lt;br /&gt;
&lt;br /&gt;
==Evaluator ==&lt;br /&gt;
&lt;br /&gt;
===Welche Funktionen kann ich im Evaluator nutzen?===&lt;br /&gt;
Eine Auflistung der unterstützten Funktionen finden Sie unter [[:Kategorie:Math-Evaluatorfunktion|Math-Evaluatorfunktion]] bzw. [[:Kategorie:Chem-Evaluatorfunktion|Chem-Evaluatorfunktion]]. Für jede Funktion gibt es auch diverse Beispiele. Überall dort, wo Evaluatorausdrücke erwartet werden, kann mit diesen Funktionen und [[Variablen (JACK3)|JACK-Variablen]] gerechnet werden.&lt;/div&gt;</summary>
		<author><name>LGlaser</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=Benutzerhandbuch_(JACK3)&amp;diff=12105</id>
		<title>Benutzerhandbuch (JACK3)</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=Benutzerhandbuch_(JACK3)&amp;diff=12105"/>
		<updated>2025-02-24T08:37:11Z</updated>

		<summary type="html">&lt;p&gt;LGlaser: Schnelleinstieg prominenter verlinkt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dies ist das Benutzerhandbuch der neuesten Version JACK3. Hier finden Sie alle wichtigen Information von &amp;quot;Wie erstelle ich eine Aufgabe?&amp;quot; über &amp;quot;Wie lasse ich meine Studierende die Aufgaben bearbeiten?&amp;quot; bis &amp;quot;Wie lässt sich in die studentische Abgaben einsehen?&amp;quot;.&lt;br /&gt;
Bitte beachten Sie, dass dies noch in Arbeit ist und noch nicht vollständig ist. Es kommen noch weitere Abschnitte hinzu und andere werden noch ausgebaut.&lt;br /&gt;
&lt;br /&gt;
==[[Schnelleinstieg (JACK3)|Schnelleinstieg]]==&lt;br /&gt;
[[Schnelleinstieg (JACK3)|Hier]] ist eine Anleitung für den Schnelleinstieg in JACK3. Mit dieser Anleitung lässt sich schnell eine Aufgabe erstellen und diese Studierenden zur Verfügung stellen. Dabei werden nur die wichtigsten Einstellungen betrachtet. Für weitere Details stehen die folgenden Seiten zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Zum schnellen Finden einzelner Seiten kann auch die [[:Category:Benutzerhandbuch|A-Z]] Liste genutzt werden.&lt;br /&gt;
&lt;br /&gt;
==Allgemeine Informationen und Hinweise zum Start==&lt;br /&gt;
Beschreibung der globalen Einstellungen, die ein Nutzer in JACK3 tätigen kann. &lt;br /&gt;
Nachdem Aufrufen von JACK3 erscheint zunächst die [[Login (JACK3)|Login]] Seite, auf der man sich in das e-Assessment System JACK3 einloggen können. JACK3 Terminologie kann im [[Glossar (JACK3)|Glossar]] nachgeschlagen werden.&lt;br /&gt;
* [[Hauptseite (JACK3)|Hauptseite]] - Erklärung der [[Hauptseite (JACK3)|Hauptseite]], die nach dem Einloggen in das E-Assessment System JACK erscheint.&lt;br /&gt;
* [[Mein Account (JACK3)|Mein Account]] - Einstellungsmöglichkeiten des eigenen Benutzerskontos.&lt;br /&gt;
* [[Verfügbare Kurse (JACK3)|Verfügbare Kurse]] - Unter [[Verfügbare Kurse (JACK3)|Verfügbare Kurse]] können Lehrende Kursangebote erstellen, die dann von den Studierenden bearbeitet werden. Studierende sehen hier alle [[Kursangebot (Studierendensicht)|Kursangebote]], die sie bearbeiten können.&lt;br /&gt;
* [[Meine Teilnahmen (JACK3)|Meine Teilnahmen]] - Hier erscheinen die aktuell laufenden Kurse.&lt;br /&gt;
* [[Mein Arbeitsbereich (JACK3)|Mein Arbeitsbereich]] - Kurse und Aufgaben werden in diesem Bereich erstellt.&lt;br /&gt;
* [[Spracheinstellung (JACK3)|Spracheinstellung]] - Die Spracheinstellung wirkt sich nur global auf die Seiten aus und nicht auf die Aufgaben selber.&lt;br /&gt;
* [[Glossar (JACK3)|Grundlegende Konzepte / Glossar]] - Erklärung der Grundlegenden Konzepte in JACK3, die zum Teil für die Benutzung sehr wichtig sind.&lt;br /&gt;
* [[Variablen (JACK3)|Variablen]] - Variablentypen von JACK3 (insb. Aufgaben-Variablen) und die Verwendung&lt;br /&gt;
&lt;br /&gt;
==Aufgaben erstellen / testen==&lt;br /&gt;
In diesem Abschnitt wird alles beschrieben, was sich mit einer einzelnen Aufgabe beschäftigt. Es beginnt mit globalen Einstellungen für eine Aufgabe, die Erstellung der verschiedenen Aufgabentypen, bis zum Testen der erstellten Aufgabe.&lt;br /&gt;
* [[Aufgaben Konfiguration (JACK3)|Aufgaben Konfigurationen / Einstellungen]]&lt;br /&gt;
** [[Aufgaben Einstellungen (JACK3)|Einstellungen]] - globalen Einstellungen der Aufgabe&lt;br /&gt;
** [[Variablenkonfiguration (JACK3)|Variablenkonfiguration]]&lt;br /&gt;
** [[JSXGraph (JACK3)|Dynamische, grafische Inhalte]]&lt;br /&gt;
** [[Aufgabenteile (JACK3)|Aufgabenteile]] - alle möglichen Aufgabenformate in JACK3 werden hier beschrieben&lt;br /&gt;
*** [[Atomorbitale (JACK3)|Atomorbitale]] - Erstellen von Atomorbitalschemas&lt;br /&gt;
*** [[Dateiupload (JACK3)|Dateiupload]] - Hochladen von Datei(en)&lt;br /&gt;
*** [[Fill-In (JACK3)|Fill-In / Drop-Down/ Molekül]] - Lückentext, Eingabefelder, Drop-Down und Molekül Felder&lt;br /&gt;
*** [[Freitext (JACK3)|Freitext]] - Textfeld für die Eingabe von Texten, ohne Checker&lt;br /&gt;
*** [[Gatterschaltung (JACK3)|Gatterschaltung]]&lt;br /&gt;
*** [[Java (JACK3)|Java]] - Programmieraufgaben in Java&lt;br /&gt;
*** [[Molekül (JACK3)|Molekül]]&lt;br /&gt;
*** [[Multiple-Choice (JACK3)|Multiple-Choice]] - Multiple-Choice und Single-Choice möglich&lt;br /&gt;
*** [[MC-Table (JACK3)|Multiple-Choice Tabelle]]&lt;br /&gt;
*** [[Nomenklaturen (JACK3)|Nomenklaturen]] - Abfrage von Fachterminologie mit manueller oder automatischer Überprüfung&lt;br /&gt;
*** [[Python (JACK3)|Python]] - Programmieraufgaben in Python&lt;br /&gt;
*** [[R (JACK3)|R]]&lt;br /&gt;
*** [[UML (JACK3)|UML]]&lt;br /&gt;
** [[Grafische Darstellung (JACK3)|Grafische Darstellung der Aufgabenteile]] - Ansicht wie die verschiedenen Aufgabenteile miteinander verbunden sind.&lt;br /&gt;
** [[Dateien (JACK3)|Dateien]]&lt;br /&gt;
** [[Aufgaben Statistik (JACK3)|Statistik]]&lt;br /&gt;
* [[Aufgaben testen (JACK3)|Aufgabe testen]] - Beschreibung wie eine Aufgabe getestet werden kann, bevor sie Studierenden gezeigt wird.&lt;br /&gt;
&lt;br /&gt;
==Kurse / Kursangebote erstellen==&lt;br /&gt;
In diesem Abschnitt werden Kurse und Kursangebote beschrieben. Wichtig hier ist auch das Zusammespiel der beiden.&lt;br /&gt;
* [[Kurs Einstellungen (JACK3)|Kurs Einstellungen]] - Im Kurs werden die Aufgaben zusammengestellt.&lt;br /&gt;
* [[Kursangebot Einstellungen (JACK3)|Kursangebot Einstellungen]] - Im Kursangebot werden die Sichtbarkeiten eingestellt.&lt;br /&gt;
&#039;&#039;&#039;Mögliche Szenarien&#039;&#039;&#039;: Kursangebote können für verschiedene Zwecke eingesetzt werden. Auf den folgenden Seiten werden gängige Einsatzszenarien mit Schritt-für-Schritt-Anleitungen erläutert. Es ist jedoch zu beachten, dass Einstellungen ggf. individuell angepasst und getestet werden müssen&lt;br /&gt;
*[[Kursanmeldung (JACK3)|Kursanmeldung]] - Reines Anmeldesystem ohne Aufgaben, z.B. für die Anmeldung zu einer mündlichen Prüfung.&lt;br /&gt;
*[[Übungskurs erstellen (JACK3)|Übungskurs]] - Übungsaufgaben, um Inhalte aus der Vorlesung zu üben.&lt;br /&gt;
*[[Prüfung erstellen (JACK3)|Prüfung]] - Prüfung oder Klausur mit JACK3 erstellen.&lt;br /&gt;
&lt;br /&gt;
==Statistiken / Prüfungsergebnisse==&lt;br /&gt;
Beschreibung der Einsicht in die Bearbeitungen von den Studierenden.&lt;br /&gt;
*[[Einsicht in Ergebnisse in Aufgaben (JACK3)|Ergebnisse ansehen in Aufgaben]]&lt;br /&gt;
*[[Manuelles Feedback (JACK3)|Manuelles Feedback]] - An jeder Einreichung einer Aufgabe und einer Kursbearbeitung kann das automatische Feedback von JACK und die vergebene Punktzahl überschrieben werden.&lt;br /&gt;
*[[Einsicht in Ergebnisse in Kursangeboten (JACK3)|Ergebnisse ansehen in Kursangeboten]]&lt;br /&gt;
&lt;br /&gt;
==Anmeldeoptionen / Nutzer Verwaltung / Rechte Konzept==&lt;br /&gt;
*[[Kursangebot Einstellungen (JACK3)#Zugangsbeschränkung|Verlinkung von Kursen über den öffentlichen Link]]&lt;br /&gt;
* [[LTI Anbindung (JACK3)|Moodle Anbindung]] - Erklärung wie sich ein Kursangebot in JACK3 in einen Moodle Kurs einbinden lässt.&lt;br /&gt;
*[[Rechtekonzept (JACK3)|Rechtekonzept]] und [[Rechte bearbeiten (JACK3)|Rechte bearbeiten]] - Erklärung der verschiedenen Rechte in JACK3.&lt;br /&gt;
*[[Verwaltung (JACK3)|Verwaltung]] - Verwaltungsmöglichkeiten eines Admins.&lt;br /&gt;
&lt;br /&gt;
==Import / Export==&lt;br /&gt;
*[[Inhalte exportieren (JACK3)|Inhalte exportieren]] - Es können nur Inhalte von [[Mein Arbeitsbereich (JACK3)|Mein Arbeitsbereich]] heruntergeladen werden.&lt;br /&gt;
*[[Aufgaben aus Jack2 importieren (JACK3)|Aufgaben aus JACK2 importieren]]&lt;br /&gt;
**[[Evaluator-Änderungen von JACK2 nach JACK3]]&lt;br /&gt;
*[[Inhalte importieren (JACK3)|Inhalte importieren]]&lt;br /&gt;
[[Kategorie:JACK3]]&lt;br /&gt;
[[Kategorie:Benutzerhandbuch]]&lt;br /&gt;
[[Kategorie:Hauptseiten]]&lt;/div&gt;</summary>
		<author><name>LGlaser</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=Vorlage:Navigation&amp;diff=12104</id>
		<title>Vorlage:Navigation</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=Vorlage:Navigation&amp;diff=12104"/>
		<updated>2025-02-24T08:22:04Z</updated>

		<summary type="html">&lt;p&gt;LGlaser: Hinweis auf optionalen Parameter&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&amp;lt;div style=&amp;quot;background: #eaf3ff; border: solid 1px #a3caff; padding-left: 10px; padding-right: 10px; line-height: 1.0em; text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
{{#if: {{{TITEL|}}} | &amp;lt;div style=&amp;quot;font-weight: bold;&amp;quot;&amp;gt;&lt;br /&gt;
{{{TITEL}}}&lt;br /&gt;
&amp;lt;/div&amp;gt; | }}&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-top: 10px;&amp;quot;&amp;gt;&lt;br /&gt;
{{{INHALT}}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;Diese Vorlage bildet eine Navigationsleiste, ähnlich zu der in der [https://de.wikipedia.org/wiki/Vorlage:Navigationsleiste Wikipedia].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Benutzung:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
{{Navigation&lt;br /&gt;
| TITEL  = Titel hier einfügen&lt;br /&gt;
| INHALT = &lt;br /&gt;
[[Erste Seite]]&amp;amp;amp;nbsp;&amp;amp;amp;bull;&lt;br /&gt;
[[Zweite Seite]]&amp;amp;amp;nbsp;&amp;amp;amp;bull;&lt;br /&gt;
[[Dritte Seite]]&amp;amp;amp;nbsp;&amp;amp;amp;bull;&lt;br /&gt;
[[Vierte Seite]]&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Parameter &amp;lt;code&amp;gt;TITEL&amp;lt;/code&amp;gt; ist optional.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ergibt:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Navigation&lt;br /&gt;
| TITEL  = Titel hier einfügen&lt;br /&gt;
| INHALT = &lt;br /&gt;
Erste Seite&amp;amp;nbsp;&amp;amp;bull; &amp;lt;!-- Dummy-Links entfernt --&amp;gt;&lt;br /&gt;
Zweite Seite&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
Dritte Seite&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
Vierte Seite&lt;br /&gt;
}}&lt;br /&gt;
[[:Kategorie:Navigationsvorlagen|Liste aller Navigationsvorlagen]].&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Vorlage]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>LGlaser</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=IsMathematikerRealNumber&amp;diff=12103</id>
		<title>IsMathematikerRealNumber</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=IsMathematikerRealNumber&amp;diff=12103"/>
		<updated>2025-02-24T08:18:58Z</updated>

		<summary type="html">&lt;p&gt;LGlaser: Navigationsvorlage eingefügt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Navigation/Numberfunktionen}}&lt;br /&gt;
&lt;br /&gt;
{{Vorlage:Warnung|Warnung=Diese Seite beinhaltet eine Evaluator-Funktion im JACK3 System.}}&lt;br /&gt;
&lt;br /&gt;
===Zugehörige Evaluatoren===&lt;br /&gt;
*&#039;&#039;&#039;MathEvaluator&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Beschreibung ===&lt;br /&gt;
Die Funktion &#039;&#039;isMathematikerRealNumber&#039;&#039; prüft, ob es sich bei einem gegebenen [[Objekt]] um eine reelle Zahl handelt &#039;&#039;&#039;und&#039;&#039;&#039; der eingegebene Term nicht weiter vereinfachbar ist. Die Funktion gibt einen Boolean zurück.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Nicht zu verwechseln mit [[isRealNumber|IsRealNumber]]. Siehe [[Übersicht Numberfunktionen]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Für diese Funktion ist die Eingabe dann eine reelle Zahl, wenn die folgenden Kriterien erfüllt sind:&#039;&#039;&#039;&lt;br /&gt;
* Die Eingabe lässt sich nicht zu Unendlich ausrechnen,&lt;br /&gt;
* Die Eingabe lässt sich zu einer reellen Zahl ausrechnen,&lt;br /&gt;
* Die Eingabe kann nicht weiter vereinfacht werden und&lt;br /&gt;
* Die Eingabe ist kein Doppelbruch oder ein Bruch mit Fließkommazahlen.&lt;br /&gt;
&lt;br /&gt;
Eine Eingabe ist weiter vereinfachbar, wenn&lt;br /&gt;
* sie mindestens einen Operanten enthält &amp;lt;code&amp;gt;(+, -, *, /, ^, sqrt)&amp;lt;/code&amp;gt; &#039;&#039;&#039;und&#039;&#039;&#039;&lt;br /&gt;
* sich zu einer Ganzzahl ausrechnen lässt.&lt;br /&gt;
&lt;br /&gt;
=== Syntax ===&lt;br /&gt;
 isMathematikerRealNumber(Objekt objekt)&lt;br /&gt;
&lt;br /&gt;
=== Parameter ===&lt;br /&gt;
* &#039;&#039;&#039;objekt&#039;&#039;&#039; - das zu überprüfende Objekt&lt;br /&gt;
&lt;br /&gt;
=== Return Value ===&lt;br /&gt;
* Gibt einen [[Boolean]] zurück. &amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt;, wenn es sich um eine reelle Zahl nach obigen Kriterien handelt.&lt;br /&gt;
&lt;br /&gt;
=== Beispiele ===&lt;br /&gt;
 //Kein Operant&lt;br /&gt;
 isMathematikerRealNumber(5.5)   --&amp;gt; returns &#039;&#039;true&#039;&#039;&lt;br /&gt;
 isMathematikerRealNumber(5)   --&amp;gt; returns &#039;&#039;true&#039;&#039;&lt;br /&gt;
 isMathematikerRealNumber(constE())   --&amp;gt; returns &#039;&#039;true&#039;&#039;&lt;br /&gt;
 isMathematikerRealNumber(constPi())   --&amp;gt; returns &#039;&#039;true&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 isMathematikerRealNumber(infinity())   --&amp;gt; returns &#039;&#039;false&#039;&#039;, da Unendlich nicht als Zahl definiert ist&lt;br /&gt;
 &lt;br /&gt;
 // Ein Operant&lt;br /&gt;
 isMathematikerRealNumber(sqrt(3))   --&amp;gt; returns &#039;&#039;true&#039;&#039;&lt;br /&gt;
 isMathematikerRealNumber(ln(4))   --&amp;gt; returns &#039;&#039;true&#039;&#039;&lt;br /&gt;
 isMathematikerRealNumber(cos(4))   --&amp;gt; returns &#039;&#039;true&#039;&#039;&lt;br /&gt;
 isMathematikerRealNumber(sin(2))   --&amp;gt; returns &#039;&#039;true&#039;&#039;&lt;br /&gt;
 isMathematikerRealNumber(tan(1))   --&amp;gt; returns &#039;&#039;true&#039;&#039;&lt;br /&gt;
 isMathematikerRealNumber(-6)   --&amp;gt; returns &#039;&#039;true&#039;&#039;&lt;br /&gt;
 isMathematikerRealNumber(constE()^2)   --&amp;gt; returns &#039;&#039;true&#039;&#039; &lt;br /&gt;
 isMathematikerRealNumber(constPi()/2)   --&amp;gt; returns &#039;&#039;true&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 isMathematikerRealNumber(2*3)   --&amp;gt; returns &#039;&#039;false&#039;&#039;, der Ausdruck lässt sich weiter vereinfachen&lt;br /&gt;
 isMathematikerRealNumber(0.5/0.5)   --&amp;gt; returns &#039;&#039;false&#039;&#039;, der Ausdruck lässt sich weiter vereinfachen&lt;br /&gt;
 isMathematikerRealNumber(sqrt(4))   --&amp;gt; returns &#039;&#039;false&#039;&#039;, der Ausdruck lässt sich weiter vereinfachen&lt;br /&gt;
 isMathematikerRealNumber(3^5)   --&amp;gt; returns &#039;&#039;false&#039;&#039;, der Ausdruck lässt sich weiter vereinfachen&lt;br /&gt;
 &lt;br /&gt;
 // Zwei Operanden&lt;br /&gt;
 isMathematikerRealNumber(-1/5)   --&amp;gt; returns &#039;&#039;true&#039;&#039;&lt;br /&gt;
 isMathematikerRealNumber(1/-5)   --&amp;gt; returns &#039;&#039;true&#039;&#039;&lt;br /&gt;
 isMathematikerRealNumber(-sqrt(3))   --&amp;gt; returns &#039;&#039;true&#039;&#039;&lt;br /&gt;
 isMathematikerRealNumber(sqrt(4/9))   --&amp;gt; returns &#039;&#039;true&#039;&#039;&lt;br /&gt;
 isMathematikerRealNumber(sqrt(3)/2)   --&amp;gt; returns &#039;&#039;true&#039;&#039;&lt;br /&gt;
 isMathematikerRealNumber(sqrt(sqrt(3)))   --&amp;gt; returns &#039;&#039;true&#039;&#039;&lt;br /&gt;
 isMathematikerRealNumber(((3)^0.5)^0.5)   --&amp;gt; returns &#039;&#039;true&#039;&#039;&lt;br /&gt;
 isMathematikerRealNumber(2^(1/3))   --&amp;gt; returns &#039;&#039;true&#039;&#039;&lt;br /&gt;
 isMathematikerRealNumber(sqrt(2)*constPi())   --&amp;gt; returns &#039;&#039;true&#039;&#039;&lt;br /&gt;
 isMathematikerRealNumber(1+sqrt(3))   --&amp;gt; returns &#039;&#039;true&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 isMathematikerRealNumber(sqrt(-1))   --&amp;gt; returns &#039;&#039;false&#039;&#039;, es handelt sich um eine komplexe Zahl&lt;br /&gt;
 isMathematikerRealNumber(sqrt(2^2))   --&amp;gt; returns &#039;&#039;false&#039;&#039;, der Ausdruck lässt sich weiter vereinfachen&lt;br /&gt;
 isMathematikerRealNumber(0.5/(1/2))   --&amp;gt; returns &#039;&#039;false&#039;&#039;, der Ausdruck lässt sich weiter vereinfachen&lt;br /&gt;
 &lt;br /&gt;
 // Drei Operanden&lt;br /&gt;
 isMathematikerRealNumber(1/2*sqrt(3))   --&amp;gt; returns &#039;&#039;true&#039;&#039;&lt;br /&gt;
 isMathematikerRealNumber(sqrt(3^2+5))   --&amp;gt; returns &#039;&#039;false&#039;&#039;, der Ausdruck lässt sich weiter vereinfachen&lt;br /&gt;
 isMathematikerRealNumber((1/2)/(1/2))   --&amp;gt; returns &#039;&#039;false&#039;&#039;, der Ausdruck lässt sich weiter vereinfachen&lt;br /&gt;
 &lt;br /&gt;
 // Vier Operanden&lt;br /&gt;
 isMathematikerRealNumber(-1/2*sqrt(3))   --&amp;gt; returns &#039;&#039;true&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Benutzung von Variablen ====&lt;br /&gt;
 isMathematikerRealNumber([input=fillin1])&lt;br /&gt;
 &lt;br /&gt;
 isMathematikerRealNumber([var=a])&lt;br /&gt;
&lt;br /&gt;
=== Hinweise ===&lt;br /&gt;
Für die Überprüfung von Fill-In Feldern kann der &#039;&#039;[[Formeleditor (JACK3)|Formeleditor]]&#039;&#039; verwendet werden oder &#039;&#039;Number&#039;&#039; für das Fill-In Feld eingestellt werden. Beispiel: &amp;lt;code&amp;gt;isMathematikerRealNumber([input=fillin1])&amp;lt;/code&amp;gt;&lt;br /&gt;
[[Kategorie:Math-Evaluatorfunktion]][[Kategorie:Testfunktionen]][[Kategorie:JACK3]]&lt;/div&gt;</summary>
		<author><name>LGlaser</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=IsRealNumber&amp;diff=12102</id>
		<title>IsRealNumber</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=IsRealNumber&amp;diff=12102"/>
		<updated>2025-02-24T08:18:36Z</updated>

		<summary type="html">&lt;p&gt;LGlaser: Navigationsvorlage eingefügt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Navigation/Numberfunktionen}}&lt;br /&gt;
&lt;br /&gt;
===Zugehörige Evaluatoren===&lt;br /&gt;
*&#039;&#039;&#039;MathEvaluator&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Beschreibung ===&lt;br /&gt;
Die Funktion &#039;&#039;isRealNumber&#039;&#039; prüft, ob es sich bei einem gegebenen [[Objekt]] um eine reelle Zahl handelt. Die Funktion gibt einen Boolean zurück.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; [[IsNumber|&#039;&#039;isNumber&#039;&#039;]] ist nun eine eigenständige Funktion und daher &#039;&#039;&#039;kein Alias&#039;&#039;&#039; mehr für &#039;&#039;isRealNumber&#039;&#039;. Siehe [[Übersicht Numberfunktionen]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Für diese Funktion ist die Eingabe dann eine reelle Zahl, wenn sich das eingegebene Objekt zu einer reellen Zahl evaluieren lässt und die folgenden Kriterien erfüllt:&#039;&#039;&#039;&lt;br /&gt;
* Es handelt sich um eine ganze oder Fließkomma-Zahl &#039;&#039;&#039;oder&#039;&#039;&#039;&lt;br /&gt;
* es handelt sich um &amp;lt;code&amp;gt;+/- e&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;+/- pi&amp;lt;/code&amp;gt; &#039;&#039;&#039;oder&#039;&#039;&#039;&lt;br /&gt;
* es handelt sich um einen Bruch, bei dem Zähler und Nenner eine ganze Zahl/Fließkommazahl/e/pi sind &#039;&#039;&#039;oder&#039;&#039;&#039;&lt;br /&gt;
* es handelt sich um eine Wurzel und der Term unter der Wurzel entspricht den Kriterien.&lt;br /&gt;
&lt;br /&gt;
Für alle anderen Objekte wird false zurückgeliefert. Dies schließt Exponenten, Logarithmus, trigonometrische Funktionen, Addition, Subtraktion und Multiplikation mit ein.&lt;br /&gt;
&lt;br /&gt;
[[Übersicht Numberfunktionen|Hier]] findet sich eine Übersicht aller Number-Funktionen.&lt;br /&gt;
&lt;br /&gt;
=== Syntax ===&lt;br /&gt;
 isRealNumber(Objekt objekt)&lt;br /&gt;
&lt;br /&gt;
=== Parameter ===&lt;br /&gt;
* &#039;&#039;&#039;objekt&#039;&#039;&#039; - das zu überprüfende Objekt&lt;br /&gt;
&lt;br /&gt;
=== Return Value ===&lt;br /&gt;
* Gibt einen [[Boolean]] zurück&lt;br /&gt;
&lt;br /&gt;
=== Beispiele ===&lt;br /&gt;
==== Standardfälle ====&lt;br /&gt;
 isRealNumber(15.3)   --&amp;gt; returns &#039;&#039;true&#039;&#039;&lt;br /&gt;
 isRealNumber(15)   --&amp;gt; returns &#039;&#039;true&#039;&#039;&lt;br /&gt;
 isRealNumber(constE())   --&amp;gt; returns &#039;&#039;true&#039;&#039;&lt;br /&gt;
 isRealNumber(constPi())   --&amp;gt; returns &#039;&#039;true&#039;&#039;&lt;br /&gt;
 isRealNumber(1/2)   --&amp;gt; returns &#039;&#039;true&#039;&#039;&lt;br /&gt;
 isRealNumber(sqrt(2))   --&amp;gt; returns &#039;&#039;true&#039;&#039;&lt;br /&gt;
 isRealNumber(sqrt(4))   --&amp;gt; returns &#039;&#039;true&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 isRealNumber((1/2)/0.5)   --&amp;gt; returns &#039;&#039;false&#039;&#039;, der Zähler enthält einen Bruch und keine ganze oder Fließkommazahl&lt;br /&gt;
 isRealNumber(sqrt(-1))   --&amp;gt; returns &#039;&#039;false&#039;&#039;, da komplexe Zahl&lt;br /&gt;
 isRealNumber(infinity())   --&amp;gt; returns &#039;&#039;false&#039;&#039;, da Unendlich nicht als Zahl definiert ist&lt;br /&gt;
 isRealNumber(2^(1/3))   --&amp;gt; returns &#039;&#039;false&#039;&#039;, da Exponenten nicht unterstützt werden&lt;br /&gt;
 isRealNumber(ln(3))   --&amp;gt; returns &#039;&#039;false&#039;&#039;, da Logarithmus nicht unterstützt werden&lt;br /&gt;
 isRealNumber(cos(4))   --&amp;gt; returns &#039;&#039;false&#039;&#039;, da trigonometrische Funktionen nicht unterstützt werden&lt;br /&gt;
 isRealNumber(3*3)   --&amp;gt; returns &#039;&#039;false&#039;&#039;, da Multiplikation nicht unterstützt wird&lt;br /&gt;
 isRealNumber(3+5)   --&amp;gt; returns &#039;&#039;false&#039;&#039;, da Addition nicht unterstützt wird&lt;br /&gt;
 isRealNumber(33-5)   --&amp;gt; returns &#039;&#039;false&#039;&#039;, da Subtraktion nicht unterstützt wird&lt;br /&gt;
&lt;br /&gt;
==== Benutzung von Variablen ====&lt;br /&gt;
 isRealNumber([input=fillin1])&lt;br /&gt;
 &lt;br /&gt;
 isRealNumber([var=a])&lt;br /&gt;
&lt;br /&gt;
=== Hinweise ===&lt;br /&gt;
&#039;&#039;&#039;JACK3:&#039;&#039;&#039; Für die Überprüfung von Fill-In Feldern kann der &#039;&#039;[[Formeleditor (JACK3)|Formeleditor]]&#039;&#039; verwendet werden oder &#039;&#039;Number&#039;&#039; für das Fill-In Feld eingestellt werden. Beispiel: &amp;lt;code&amp;gt;isRealNumber([input=fillin1])&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;JACK2:&#039;&#039;&#039; Die Überprüfung mit Textfeldern funktioniert nur, wenn man den [[Formeleditor]] verwendet. Gibt man keinen Editor an, wird für ein Textfeld (&amp;lt;code&amp;gt;[pos=1] usw.&amp;lt;/code&amp;gt;) ein OpenMath String zurückgegeben. Dadurch gibt &amp;lt;code&amp;gt;isRealNumber([pos=1])&amp;lt;/code&amp;gt; sowie &amp;lt;code&amp;gt;isRealNumber(&#039;[pos=1]&#039;)&amp;lt;/code&amp;gt; immer false zurück. Um ein richtiges Ergebnis zu erlangen, muss [[Matches]] genutzt werden.&lt;br /&gt;
[[Kategorie:Math-Evaluatorfunktion]][[Kategorie:Testfunktionen]][[Kategorie:JACK2]][[Kategorie:JACK3]]&lt;/div&gt;</summary>
		<author><name>LGlaser</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=IsRationalNumber&amp;diff=12101</id>
		<title>IsRationalNumber</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=IsRationalNumber&amp;diff=12101"/>
		<updated>2025-02-24T08:18:24Z</updated>

		<summary type="html">&lt;p&gt;LGlaser: Navigationsvorlage eingefügt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Navigation/Numberfunktionen}}&lt;br /&gt;
&lt;br /&gt;
===Zugehörige Evaluatoren===&lt;br /&gt;
*&#039;&#039;&#039;MathEvaluator&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Beschreibung ===&lt;br /&gt;
Die Funktion &#039;&#039;isRationalNumber&#039;&#039; prüft, ob es sich bei einem gegebenen [[Objekt]] um eine rationale Zahl handelt. Die Funktion gibt einen Boolean zurück.&lt;br /&gt;
&lt;br /&gt;
Siehe auch [[Übersicht Numberfunktionen]].&lt;br /&gt;
&lt;br /&gt;
=== Syntax ===&lt;br /&gt;
 isRationalNumber(Objekt objekt)&lt;br /&gt;
&lt;br /&gt;
=== Parameter ===&lt;br /&gt;
* &#039;&#039;&#039;objekt&#039;&#039;&#039; - das zu überprüfende Objekt&lt;br /&gt;
&lt;br /&gt;
=== Return Value ===&lt;br /&gt;
* Gibt einen [[Boolean]] zurück&lt;br /&gt;
&lt;br /&gt;
=== Beispiele ===&lt;br /&gt;
==== Standardfälle ====&lt;br /&gt;
 isRationalNumber(15.3)   --&amp;gt; returns &#039;&#039;true&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 isRationalNumber(3/4)   --&amp;gt; returns &#039;&#039;true&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 isRationalNumber(&#039;zahl&#039;)   --&amp;gt; returns &#039;&#039;false&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 isRationalNumber(sqrt(2))   --&amp;gt; returns &#039;&#039;false&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;JACK2:&#039;&#039;&#039;&lt;br /&gt;
 isRationalNumber([var=E])   --&amp;gt; returns &#039;&#039;false&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Jack3:&#039;&#039;&#039;&lt;br /&gt;
 isRationalNumber(constE())   --&amp;gt; returns &#039;&#039;false&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Benutzung mit Variablen ====&lt;br /&gt;
 isRationalNumber([var=a])&lt;br /&gt;
&lt;br /&gt;
==== Benutzung mit studentischen Eingaben ====&lt;br /&gt;
 &#039;&#039;&#039;JACK2:&#039;&#039;&#039;&lt;br /&gt;
 isRationalNumber([pos=1])&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;JACK3:&#039;&#039;&#039;&lt;br /&gt;
 isRationalNumber([input=field1])&lt;br /&gt;
&lt;br /&gt;
=== Hinweise ===&lt;br /&gt;
&#039;&#039;&#039;JACK3:&#039;&#039;&#039; Für die Überprüfung von Fill-In Feldern kann der &#039;&#039;[[Formeleditor (JACK3)|Formeleditor]]&#039;&#039; verwendet werden oder &#039;&#039;Number&#039;&#039; für das Fill-In Feld eingestellt werden. Beispiel: &amp;lt;code&amp;gt;isRationalNumber([input=fillin1])&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;JACK2:&#039;&#039;&#039; Die Überprüfung mit Textfeldern funktioniert nur, wenn man den [[Formeleditor]] verwendet. Gibt man keinen Editor an, wird für ein Textfeld (&amp;lt;code&amp;gt;[pos=1] usw.&amp;lt;/code&amp;gt;) ein OpenMath String zurückgegeben. Dadurch gibt &amp;lt;code&amp;gt;isRationalNumber([pos=1])&amp;lt;/code&amp;gt; sowie &amp;lt;code&amp;gt;isRationalNumber(&#039;[pos=1]&#039;)&amp;lt;/code&amp;gt; immer false zurück. Um ein richtiges Ergebnis zu erlangen, muss [[Matches#Benutzung von Textfeldern|Matches]] genutzt werden.&lt;br /&gt;
[[Kategorie:Math-Evaluatorfunktion]][[Kategorie:Testfunktionen]][[Kategorie:JACK2]][[Kategorie:JACK3]]&lt;/div&gt;</summary>
		<author><name>LGlaser</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=IsNaturalNumber&amp;diff=12100</id>
		<title>IsNaturalNumber</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=IsNaturalNumber&amp;diff=12100"/>
		<updated>2025-02-24T08:18:17Z</updated>

		<summary type="html">&lt;p&gt;LGlaser: Navigationsvorlage eingefügt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Navigation/Numberfunktionen}}&lt;br /&gt;
&lt;br /&gt;
===Zugehörige Evaluatoren===&lt;br /&gt;
*&#039;&#039;&#039;MathEvaluator&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Beschreibung ===&lt;br /&gt;
Die Funktion &#039;&#039;isNaturalNumber&#039;&#039; prüft, ob es sich bei einem gegeben Objekt um eine Natürliche Zahl handelt.&lt;br /&gt;
Die natürlichen Zahlen schließen dabei die Null mit ein.&lt;br /&gt;
&lt;br /&gt;
Siehe auch [[Übersicht Numberfunktionen]].&lt;br /&gt;
&lt;br /&gt;
=== Syntax ===&lt;br /&gt;
 isNaturalNumber([[Objekt]] objekt)&lt;br /&gt;
&lt;br /&gt;
=== Parameter ===&lt;br /&gt;
* &#039;&#039;&#039;objekt&#039;&#039;&#039; - das zu überprüfende [[Objekt]]&lt;br /&gt;
&lt;br /&gt;
=== Return Value ===&lt;br /&gt;
* Gibt einen [[Boolean]] zurück&lt;br /&gt;
&lt;br /&gt;
=== Beispiele ===&lt;br /&gt;
==== Standardfälle ====&lt;br /&gt;
 isNaturalNumber(15)   --&amp;gt; returns &#039;&#039;true&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 isNaturalNumber(-1)   --&amp;gt; returns &#039;&#039;false&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 isNaturalNumber(1)   --&amp;gt; returns &#039;&#039;true&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 isNaturalNumber(&#039;Eins&#039;)   --&amp;gt; returns &#039;&#039;false&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;JACK2:&#039;&#039;&#039;&lt;br /&gt;
 isNaturalNumber([var=E])   --&amp;gt; returns &#039;&#039;false&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;JACK3:&#039;&#039;&#039;&lt;br /&gt;
 isNaturalNumber(constE())   --&amp;gt; returns &#039;&#039;false&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Benutzung mit Variablen ====&lt;br /&gt;
 isNaturalNumber([var=a])&lt;br /&gt;
&lt;br /&gt;
==== Benutzung mit studentischen Eingaben ====&lt;br /&gt;
 &#039;&#039;&#039;JACK2:&#039;&#039;&#039;&lt;br /&gt;
 isNaturalNumber([pos=1])&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;JACK3:&#039;&#039;&#039;&lt;br /&gt;
 isNaturalNumber([input=field1])&lt;br /&gt;
&lt;br /&gt;
=== Hinweise ===&lt;br /&gt;
&#039;&#039;&#039;JACK3:&#039;&#039;&#039; Für die Überprüfung von Fill-In Feldern kann der &#039;&#039;[[Formeleditor (JACK3)|Formeleditor]]&#039;&#039; verwendet werden oder &#039;&#039;Number&#039;&#039; für das Fill-In Feld eingestellt werden. Beispiel: &amp;lt;code&amp;gt;isNaturalNumber([input=fillin1])&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;JACK2:&#039;&#039;&#039; Die Überprüfung mit Textfeldern funktioniert nur, wenn man den [[:Formeleditor]] verwendet. Gibt man keinen Editor an, wird für ein Textfeld (&amp;lt;code&amp;gt;[pos=1] usw.&amp;lt;/code&amp;gt;) ein OpenMath String zurückgegeben. Dadurch gibt &amp;lt;code&amp;gt;isNaturalNumber([pos=1])&amp;lt;/code&amp;gt; sowie &amp;lt;code&amp;gt;isNaturalNumber(&#039;[pos=1]&#039;)&amp;lt;/code&amp;gt; immer false zurück. Um ein richtiges Ergebnis zu erlangen, muss [[Matches#Benutzung von Textfeldern|Matches]] genutzt werden.&lt;br /&gt;
[[Kategorie:Math-Evaluatorfunktion]][[Kategorie:Testfunktionen]][[Kategorie:JACK2]][[Kategorie:JACK3]]&lt;/div&gt;</summary>
		<author><name>LGlaser</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=IsIntegerNumber&amp;diff=12099</id>
		<title>IsIntegerNumber</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=IsIntegerNumber&amp;diff=12099"/>
		<updated>2025-02-24T08:18:00Z</updated>

		<summary type="html">&lt;p&gt;LGlaser: Navigationsvorlage eingefügt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Navigation/Numberfunktionen}}&lt;br /&gt;
&lt;br /&gt;
=== Zugehörige Evaluatoren ===&lt;br /&gt;
*&#039;&#039;&#039;MathEvaluator&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Beschreibung ===&lt;br /&gt;
Die Funktion &#039;&#039;IsIntegerNumber&#039;&#039; gibt wahr aus falls die als Parameter eingegeben Zahl ein Integer ist.&lt;br /&gt;
&lt;br /&gt;
Siehe auch [[Übersicht Numberfunktionen]].&lt;br /&gt;
&lt;br /&gt;
=== Syntax ===&lt;br /&gt;
 isIntegerNumber(a)&lt;br /&gt;
&lt;br /&gt;
=== Parameter ===&lt;br /&gt;
* &#039;&#039;&#039;a&#039;&#039;&#039; - [[Objekt]]&lt;br /&gt;
&lt;br /&gt;
=== Return Value ===&lt;br /&gt;
*Gibt True(wahr) oder False(nicht wahr) zurück&lt;br /&gt;
&lt;br /&gt;
=== Beispiele ===&lt;br /&gt;
==== Standardfälle ====&lt;br /&gt;
 isIntegerNumber(4)  --&amp;gt; returns &#039;&#039;true&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 isIntegerNumber(-1245)   --&amp;gt; returns &#039;&#039;true&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 isIntegerNumber(2.5) --&amp;gt; returns &#039;&#039;false&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Benutzung mit Variablen ====&lt;br /&gt;
 &lt;br /&gt;
 isIntegerNumber([var=a]) --&amp;gt; returns &#039;&#039;true&#039;&#039;, wenn a ein Integer ist, &#039;&#039;false&#039;&#039; sonst&lt;br /&gt;
&lt;br /&gt;
===Hinweise===&lt;br /&gt;
&#039;&#039;&#039;JACK3:&#039;&#039;&#039; Für die Überprüfung von Fill-In Feldern kann der &#039;&#039;[[Formeleditor (JACK3)|Formeleditor]]&#039;&#039; verwendet werden oder &#039;&#039;Number&#039;&#039; für das Fill-In Feld eingestellt werden. Beispiel: &amp;lt;code&amp;gt;isIntegerNumber([input=fillin1])&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;JACK2:&#039;&#039;&#039; Die Überprüfung mit Textfeldern funktioniert nur, wenn man den [[Formeleditor]] verwendet. Gibt man keinen Editor an, wird für ein Textfeld (&amp;lt;code&amp;gt;[pos=1] usw.&amp;lt;/code&amp;gt;) ein OpenMath String zurückgegeben. Dadurch gibt &amp;lt;code&amp;gt;isIntegerNumber([pos=1])&amp;lt;/code&amp;gt; sowie &amp;lt;code&amp;gt;isIntegerNumber(&#039;[pos=1]&#039;)&amp;lt;/code&amp;gt; immer false zurück. Um ein richtiges Ergebnis zu erlangen, muss [[Matches#Benutzung von Textfeldern|Matches]] genutzt werden.&lt;br /&gt;
[[Kategorie:Math-Evaluatorfunktion]][[Kategorie:Testfunktionen]][[Kategorie:JACK2]][[Kategorie:JACK3]]&lt;/div&gt;</summary>
		<author><name>LGlaser</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=IsNumber&amp;diff=12098</id>
		<title>IsNumber</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=IsNumber&amp;diff=12098"/>
		<updated>2025-02-24T08:17:17Z</updated>

		<summary type="html">&lt;p&gt;LGlaser: Navigationsvorlage eingefügt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Navigation/Numberfunktionen}}&lt;br /&gt;
&lt;br /&gt;
===Zugehörige Evaluatoren===&lt;br /&gt;
*&#039;&#039;&#039;MathEvaluator&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Beschreibung ===&lt;br /&gt;
Die Funktion &#039;&#039;isNumber&#039;&#039; prüft, ob sich das übergebene [[Objekt]] zu einer Zahl evaluieren lässt. Die Funktion gibt einen Boolean zurück.&lt;br /&gt;
&lt;br /&gt;
Ist das Objekt eine Zahl oder lässt sich das Objekt zu einer Zahl evaluieren, wird true zurückgegeben. &#039;&#039;&#039;Auch für komplexe Zahlen gibt die Funktion &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; zurück.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; &#039;&#039;isNumber&#039;&#039; ist nun eine eigenständige Funktion und daher &#039;&#039;&#039;kein Alias&#039;&#039;&#039; mehr für [[IsRealNumber|&#039;&#039;isRealNumber&#039;&#039;]].&lt;br /&gt;
&lt;br /&gt;
Siehe auch [[Übersicht Numberfunktionen]].&lt;br /&gt;
&lt;br /&gt;
=== Syntax ===&lt;br /&gt;
 isNumber(Objekt objekt)&lt;br /&gt;
&lt;br /&gt;
=== Parameter ===&lt;br /&gt;
* &#039;&#039;&#039;objekt&#039;&#039;&#039; - das zu überprüfende Objekt&lt;br /&gt;
&lt;br /&gt;
=== Return Value ===&lt;br /&gt;
* Gibt einen [[Boolean]] zurück&lt;br /&gt;
&lt;br /&gt;
=== Beispiele ===&lt;br /&gt;
==== Standardfälle ====&lt;br /&gt;
 isNumber(2) -&amp;gt; returns &#039;&#039;true&#039;&#039;&lt;br /&gt;
 isNumber(4.6) -&amp;gt; returns &#039;&#039;true&#039;&#039;&lt;br /&gt;
 isNumber(4/3) -&amp;gt; returns &#039;&#039;true&#039;&#039;&lt;br /&gt;
 isNumber(sqrt(3)) -&amp;gt; returns &#039;&#039;true&#039;&#039;&lt;br /&gt;
 isNumber(sqrt(-1)) -&amp;gt; returns &#039;&#039;true&#039;&#039;&lt;br /&gt;
 isNumber(3+5) -&amp;gt; returns &#039;&#039;true&#039;&#039;&lt;br /&gt;
 isNumber(4*88) -&amp;gt; returns &#039;&#039;true&#039;&#039;&lt;br /&gt;
 isNumber(6-8) -&amp;gt; returns &#039;&#039;true&#039;&#039;&lt;br /&gt;
 isNumber(ln(2)) -&amp;gt; returns &#039;&#039;true&#039;&#039;&lt;br /&gt;
 isNumber(cos(3)) -&amp;gt; returns &#039;&#039;true&#039;&#039;&lt;br /&gt;
 isNumber(2^7) -&amp;gt; returns &#039;&#039;true&#039;&#039;&lt;br /&gt;
 isNumber(1+imaginary()) -&amp;gt; returns &#039;&#039;true&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 isNumber(infinity()) -&amp;gt; returns &#039;&#039;false&#039;&#039;, da Unendlich nicht als Zahl gewertet wird&lt;br /&gt;
 isNumber(&amp;quot;text&amp;quot;) -&amp;gt; returns &#039;&#039;false&#039;&#039;, eine Zeichenkette kann nicht zu einer Zahl evaluiert werden&lt;br /&gt;
 isNumber(&amp;quot;1+1&amp;quot;) -&amp;gt; returns &#039;&#039;false&#039;&#039;, eine Zeichenkette kann nicht zu einer Zahl evaluiert werden&lt;br /&gt;
 isNumber(x+y) -&amp;gt; returns &#039;&#039;false&#039;&#039;, ein Term mit mathematischen Variablen kann nicht zu einer Zahl evaluiert werden&lt;br /&gt;
 isNumber(2*x+5) -&amp;gt; returns &#039;&#039;false&#039;&#039;,  ein Term mit mathematischen Variablen kann nicht zu einer Zahl evaluiert werden&lt;br /&gt;
 isNumber(6/y) -&amp;gt; returns &#039;&#039;false&#039;&#039;,  ein Term mit mathematischen Variablen kann nicht zu einer Zahl evaluiert werden&lt;br /&gt;
&lt;br /&gt;
==== Benutzung von Variablen ====&lt;br /&gt;
 isNumber([input=fillin1])&lt;br /&gt;
 &lt;br /&gt;
 isNumber([var=a])&lt;br /&gt;
&lt;br /&gt;
=== Hinweise ===&lt;br /&gt;
&#039;&#039;&#039;JACK3:&#039;&#039;&#039; Für die Überprüfung von Fill-In Feldern kann der &#039;&#039;[[Formeleditor (JACK3)|Formeleditor]]&#039;&#039; verwendet werden oder &#039;&#039;Number&#039;&#039; für das Fill-In Feld eingestellt werden. Beispiel: &amp;lt;code&amp;gt;isNumber([input=fillin1])&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;JACK2:&#039;&#039;&#039; Die Überprüfung mit Textfeldern funktioniert nur, wenn man den [[Formeleditor]] verwendet. Gibt man keinen Editor an, wird für ein Textfeld (&amp;lt;code&amp;gt;[pos=1] usw.&amp;lt;/code&amp;gt;) ein OpenMath String zurückgegeben. Dadurch gibt &amp;lt;code&amp;gt;isNumber([pos=1])&amp;lt;/code&amp;gt; sowie &amp;lt;code&amp;gt;isNumber(&#039;[pos=1]&#039;)&amp;lt;/code&amp;gt; immer false zurück. Um ein richtiges Ergebnis zu erlangen, muss [[Matches#Benutzung von Textfeldern|Matches]] genutzt werden. &lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Math-Evaluatorfunktion]][[Kategorie:Testfunktionen]][[Kategorie:JACK2]][[Kategorie:JACK3]]&lt;/div&gt;</summary>
		<author><name>LGlaser</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=%C3%9Cbersicht_Numberfunktionen&amp;diff=12097</id>
		<title>Übersicht Numberfunktionen</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=%C3%9Cbersicht_Numberfunktionen&amp;diff=12097"/>
		<updated>2025-02-24T08:16:56Z</updated>

		<summary type="html">&lt;p&gt;LGlaser: Navigationsvorlage eingefügt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Navigation/Numberfunktionen}}&lt;br /&gt;
&lt;br /&gt;
== Funktionsweise ==&lt;br /&gt;
Im Mathe-Evaluator gibt es sechs verschiedene Funktionen, mit denen getestet werden kann, ob die Eingabe zu einer bestimmten Zahlengruppe gehört:&lt;br /&gt;
&lt;br /&gt;
=== [[IsNumber]] ===&lt;br /&gt;
* Gibt &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; zurück, wenn&lt;br /&gt;
** die Eingabe eine Zahl ist oder&lt;br /&gt;
** sich die Eingabe zu einer Zahl ausrechnen lässt.&lt;br /&gt;
* &#039;&#039;&#039;Gibt auch für komplexe Zahlen true zurück.&#039;&#039;&#039;&lt;br /&gt;
=== [[IsIntegerNumber]] ===&lt;br /&gt;
* Gibt &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; zurück, wenn&lt;br /&gt;
** die Eingabe ein Integer ist.&lt;br /&gt;
* &#039;&#039;&#039;Die Eingabe wird nicht ausgerechnet.&#039;&#039;&#039;&lt;br /&gt;
=== [[IsNaturalNumber]] ===&lt;br /&gt;
* Gibt &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; zurück, wenn&lt;br /&gt;
** die Eingabe eine natürliche Zahl oder&lt;br /&gt;
** Null ist.&lt;br /&gt;
* &#039;&#039;&#039;Die Eingabe wird nicht ausgerechnet.&#039;&#039;&#039;&lt;br /&gt;
=== [[IsRationalNumber]] ===&lt;br /&gt;
* Gibt &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; zurück, wenn&lt;br /&gt;
** die Eingabe eine rationale Zahl ist.&lt;br /&gt;
* &#039;&#039;&#039;Die Eingabe wird nicht ausgerechnet.&#039;&#039;&#039;&lt;br /&gt;
=== [[IsRealNumber]] ===&lt;br /&gt;
* Gibt &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; zurück, wenn sich die Eingabe zu einer reellen Zahl ausrechnen lässt und&lt;br /&gt;
** es sich um eine ganze oder Fließkomma-Zahl handelt,&lt;br /&gt;
** es sich um &amp;lt;code&amp;gt;+/- e&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;+/- pi&amp;lt;/code&amp;gt; handelt,&lt;br /&gt;
** es sich um einen Bruch handelt, bei dem Zähler und Nenner eine ganze Zahl/Fließkommazahl/&amp;lt;code&amp;gt;e&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;pi&amp;lt;/code&amp;gt; sind oder&lt;br /&gt;
** es sich um eine Wurzel handelt und der Term unter der Wurzel obigen Kriterien entspricht.&lt;br /&gt;
=== [[IsMathematikerRealNumber]] ===&lt;br /&gt;
* Gibt &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; zurück, wenn&lt;br /&gt;
** die Eingabe sich nicht zu Unendlich ausrechnen lässt,&lt;br /&gt;
** die Eingabe sich zu einer reellen Zahl ausrechnen lässt und&lt;br /&gt;
** die Eingabe nicht weiter vereinfacht werden kann.&lt;br /&gt;
* Die Eingabe ist vereinfachbar, wenn&lt;br /&gt;
** sie mindesten einen Operanten enthält (&amp;lt;code&amp;gt;+, -, *, /, ^, sqrt&amp;lt;/code&amp;gt;) und&lt;br /&gt;
** sie sich zu einer Ganzzahl ausrechnen lässt.&lt;br /&gt;
&lt;br /&gt;
== Vergleich ==&lt;br /&gt;
In folgender Tabelle wird verglichen, welche Rückgabe die Funktionen für verschiedene Eingaben liefern:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Ausgaben der Funktionen bei verschiedenen Eingaben&lt;br /&gt;
|-&lt;br /&gt;
! !! \(2\) !! \(0\) !! \(-4\) !! \(4.6\) !! \(\frac{2}{3}\) !! \(\sqrt{\frac{4}{4}}\) !! \(1+3\) !! \(i\) !! \(\infty\)&lt;br /&gt;
|-&lt;br /&gt;
| IsNumber || True || True || True || True || True || True  || True || True ||  style=&amp;quot;background-color: silver;&amp;quot; |False&lt;br /&gt;
|-&lt;br /&gt;
| IsIntegerNumber || True || True || True ||  style=&amp;quot;background-color: silver;&amp;quot; |False||  style=&amp;quot;background-color: silver;&amp;quot; |False||  style=&amp;quot;background-color: silver;&amp;quot; |False||  style=&amp;quot;background-color: silver;&amp;quot; |False||  style=&amp;quot;background-color: silver;&amp;quot; |False||  style=&amp;quot;background-color: silver;&amp;quot; |False&lt;br /&gt;
|-&lt;br /&gt;
| IsNaturalNumber || True || True ||  style=&amp;quot;background-color: silver;&amp;quot; |False||  style=&amp;quot;background-color: silver;&amp;quot; |False||  style=&amp;quot;background-color: silver;&amp;quot; |False||  style=&amp;quot;background-color: silver;&amp;quot; |False||  style=&amp;quot;background-color: silver;&amp;quot; |False||  style=&amp;quot;background-color: silver;&amp;quot; |False||  style=&amp;quot;background-color: silver;&amp;quot; |False&lt;br /&gt;
|-&lt;br /&gt;
| IsRationalNumber || True || True || True || True || True ||  style=&amp;quot;background-color: silver;&amp;quot; |False||  style=&amp;quot;background-color: silver;&amp;quot; |False||  style=&amp;quot;background-color: silver;&amp;quot; |False||  style=&amp;quot;background-color: silver;&amp;quot; |False&lt;br /&gt;
|-&lt;br /&gt;
| IsRealNumber || True || True || True || True || True || True ||  style=&amp;quot;background-color: silver;&amp;quot; |False||  style=&amp;quot;background-color: silver;&amp;quot; |False||  style=&amp;quot;background-color: silver;&amp;quot; |False&lt;br /&gt;
|-&lt;br /&gt;
| IsMathematikerRealNumber || True || True || True || True  || True ||  style=&amp;quot;background-color: silver;&amp;quot; |False||  style=&amp;quot;background-color: silver;&amp;quot; |False||  style=&amp;quot;background-color: silver;&amp;quot; |False||  style=&amp;quot;background-color: silver;&amp;quot; |False&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Math-Evaluatorfunktion]][[Kategorie:Testfunktionen]][[Kategorie:JACK2]][[Kategorie:JACK3]]&lt;/div&gt;</summary>
		<author><name>LGlaser</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=Checkliste_f%C3%BCr_Pr%C3%BCfungen_mit_JACK_3&amp;diff=12096</id>
		<title>Checkliste für Prüfungen mit JACK 3</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=Checkliste_f%C3%BCr_Pr%C3%BCfungen_mit_JACK_3&amp;diff=12096"/>
		<updated>2025-02-18T12:48:22Z</updated>

		<summary type="html">&lt;p&gt;LGlaser: k&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hier finden Sie eine Checkliste zur erfolgreichen Durchführung von Prüfungen mit JACK3. Um eine möglichst reibungslose Prüfungsdurchführung zu ermöglichen bitten wir Sie folgende Punkte abzuarbeiten:&lt;br /&gt;
&lt;br /&gt;
Bis &#039;&#039;&#039;zwei Wochen&#039;&#039;&#039; vor der Klausur:&lt;br /&gt;
&lt;br /&gt;
* Die Klausur wurde über die [mailto:jack@paluno.uni-due.de Funktionsmail] angemeldet.&lt;br /&gt;
&lt;br /&gt;
* Die Klausur wurde beim [https://www.uni-due.de/zim/klausuranmeldung ZIM] angemeldet. (Falls sie in der PC-Hall stattfindet)&lt;br /&gt;
&lt;br /&gt;
* Lehrende haben Editierrechte und einen Ordner in [[Verfügbare Kurse (JACK3)|&#039;&#039;Verfügbare Kurse&#039;&#039;]] auf dem/den Prüfungsserver/n erhalten.&lt;br /&gt;
&lt;br /&gt;
Bis &#039;&#039;&#039;eine Woche&#039;&#039;&#039; vor der Klausur:&lt;br /&gt;
&lt;br /&gt;
* Die Klausuraufgaben wurden auf den/die Prüfungsserver importiert.&lt;br /&gt;
&lt;br /&gt;
* Alle Bilder in den Aufgaben wurden erneut in der Aufgabe verlinkt.&lt;br /&gt;
&lt;br /&gt;
* Es wurde ein Kurs erstellt, die Aufgaben dort eingefügt und die Punkte für die Aufgaben angepasst.&lt;br /&gt;
&lt;br /&gt;
* Es wurde ein Kursangebot erstellt, der Kurs eingebunden und das Kursangebot konfiguriert.&lt;br /&gt;
&lt;br /&gt;
* Die Klausur wurde aus Studierendensicht auf technische Korrektheit geprüft.&lt;br /&gt;
&lt;br /&gt;
* Die Klausur wurde aus Studierendensicht auf inhaltliche Korrektheit geprüft.&lt;br /&gt;
&lt;br /&gt;
=== Weitere Hinweise ===&lt;br /&gt;
* Das JACK-Team übernimmt keine Verantwortung für die Korrektheit der Aufgaben, Kurse und Kursangebote.&lt;br /&gt;
&lt;br /&gt;
* Für neue Kunden wird einmalig ein Mitarbeiter vor Ort für die Betreuung der Klausur in der PC-Hall bereitgestellt.&lt;br /&gt;
&lt;br /&gt;
* Das JACK-Team steht im Zeitraum &#039;&#039;vor&#039;&#039; diesen zwei Wochen stets gerne für Beratungen und Schulungen zu allen Themen zur Verfügung, um eine störungsfreie und erfolgreiche Durchführung der Prüfungen zu gewährleisten.&lt;/div&gt;</summary>
		<author><name>LGlaser</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=Vorlage:Navigation/Geometriefunktionen&amp;diff=12086</id>
		<title>Vorlage:Navigation/Geometriefunktionen</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=Vorlage:Navigation/Geometriefunktionen&amp;diff=12086"/>
		<updated>2025-02-12T09:46:22Z</updated>

		<summary type="html">&lt;p&gt;LGlaser: Polygon hinzugefügt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;{{Navigation&lt;br /&gt;
| TITEL  = Funktionen mit Koordinaten&lt;br /&gt;
| INHALT = &lt;br /&gt;
Geometrische Figuren:&lt;br /&gt;
[[Circle]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[Coordinate]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[Polygon]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[Rectangle]]&lt;br /&gt;
&lt;br /&gt;
Prüfen von Koordinaten:&lt;br /&gt;
[[IsCoordinateInCircle]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[IsCoordinateInPolygon]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[IsCoordinateInRectangle]]&lt;br /&gt;
}}&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Navigationsvorlagen|Koordinatenfunktionen]]&lt;/div&gt;</summary>
		<author><name>LGlaser</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=Round&amp;diff=12085</id>
		<title>Round</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=Round&amp;diff=12085"/>
		<updated>2025-02-11T13:50:37Z</updated>

		<summary type="html">&lt;p&gt;LGlaser: Navigationsvorlage eingefügt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Navigation/Rundungsfunktionen}}&lt;br /&gt;
&lt;br /&gt;
===Zugehörige Evaluatoren===&lt;br /&gt;
*&#039;&#039;&#039;MathEvaluator&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Beschreibung ===&lt;br /&gt;
Die Funktion &#039;&#039;round&#039;&#039; rundet eine Gleitkommazahl zu einer Ganzzahl. Die Funktion erwartet eine Zahl und gibt die nächst gelegene Ganzzahl zurück.&lt;br /&gt;
&lt;br /&gt;
Alternativ kann die Funktion &#039;&#039;round&#039;&#039; eine Gleitkommazahl auf eine bestimmt Nachkommastelle runden. Das zweite optionale Argument gibt die Nachkommastelle an. 0 entspricht einem Aufruf ohne zweitem Parameter.&lt;br /&gt;
&lt;br /&gt;
=== Syntax ===&lt;br /&gt;
 round([[Gleitkommazahl]] zahl, [ [[Ganzzahl]] index ])&lt;br /&gt;
&lt;br /&gt;
=== Parameter ===&lt;br /&gt;
* &#039;&#039;&#039;zahl&#039;&#039;&#039; - die zu rundene Zahl&lt;br /&gt;
* &#039;&#039;&#039;index&#039;&#039;&#039; - die Nachkommastelle - optional (default = 0)&lt;br /&gt;
&lt;br /&gt;
=== Return Value ===&lt;br /&gt;
*Gibt die gerundete [[Ganzzahl]] zurück&lt;br /&gt;
&lt;br /&gt;
=== Beispiele ===&lt;br /&gt;
==== Standardfälle ====&lt;br /&gt;
 round(12.4)   --&amp;gt; returns 12&lt;br /&gt;
 &lt;br /&gt;
 round(15.678)   --&amp;gt; returns 16&lt;br /&gt;
 &lt;br /&gt;
 round(15.678, 2)   --&amp;gt; returns 15.68&lt;br /&gt;
 &lt;br /&gt;
 round(3.21, 2)   --&amp;gt; returns 3.21&lt;br /&gt;
 &lt;br /&gt;
 round(3.1, 0)   --&amp;gt; returns 3&lt;br /&gt;
 &lt;br /&gt;
 round(27/4, 2)    --&amp;gt; returns 6.75&lt;br /&gt;
&lt;br /&gt;
==== Benutzung mit Variablen ====&lt;br /&gt;
 round([var=a])&lt;br /&gt;
 &lt;br /&gt;
 round([var=a], [var=b])&lt;br /&gt;
&lt;br /&gt;
==== Benutzung mit studentischen Eingaben ====&lt;br /&gt;
 &#039;&#039;&#039;JACK2:&#039;&#039;&#039;&lt;br /&gt;
 round([pos=1])&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;JACK3:&#039;&#039;&#039;&lt;br /&gt;
 round([input=field1])&lt;br /&gt;
&lt;br /&gt;
=== Hinweise ===&lt;br /&gt;
* Die Funktion kann auch genutzt werden, um aus einem Bruch eine Dezimalzahl zu erzeugen.&lt;br /&gt;
* Weitere Funktionen zum Thema runden sind [[ceil]], [[floor]] und [[rint]].&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Math-Evaluatorfunktion]][[Kategorie:Operator]][[Kategorie:JACK2]][[Kategorie:JACK3]]&lt;/div&gt;</summary>
		<author><name>LGlaser</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=Rint&amp;diff=12084</id>
		<title>Rint</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=Rint&amp;diff=12084"/>
		<updated>2025-02-11T13:50:27Z</updated>

		<summary type="html">&lt;p&gt;LGlaser: Navigationsvorlage eingefügt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Navigation/Rundungsfunktionen}}&lt;br /&gt;
&lt;br /&gt;
=== Zugehörige Evaluatoren ===&lt;br /&gt;
*&#039;&#039;&#039;MathEvaluator&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Beschreibung ===&lt;br /&gt;
Die Funktion &#039;&#039;rint&#039;&#039; ermittelt eine [[Ganzzahl]], die am nächsten an der übergebenen Zahl liegt. Die Funktion erwartet eine Zahl und gibt die nächst gelegenen [[Ganzzahl]] zurück&lt;br /&gt;
&lt;br /&gt;
=== Syntax ===&lt;br /&gt;
 rint([[Gleitkommazahl]] zahl)&lt;br /&gt;
&lt;br /&gt;
=== Parameter ===&lt;br /&gt;
* &#039;&#039;&#039;zahl&#039;&#039;&#039; - die Zahl, zu der die naheliegenste [[Ganzzahl]] ermittelt werden soll&lt;br /&gt;
&lt;br /&gt;
=== Return Value ===&lt;br /&gt;
* Gibt die naheliegenste [[Ganzzahl]] zurück&lt;br /&gt;
&lt;br /&gt;
=== Beispiele ===&lt;br /&gt;
==== Standardfälle ====&lt;br /&gt;
 rint(12.4)   --&amp;gt; returns 12&lt;br /&gt;
 &lt;br /&gt;
 rint(15.678)   --&amp;gt; returns 16&lt;br /&gt;
&lt;br /&gt;
==== Benutzung mit Variablen ====&lt;br /&gt;
 rint([var=a])&lt;br /&gt;
&lt;br /&gt;
==== Benutzung mit studentischen Eingaben ====&lt;br /&gt;
 &#039;&#039;&#039;JACK2:&#039;&#039;&#039;&lt;br /&gt;
 rint([pos=1])&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;JACK3:&#039;&#039;&#039;&lt;br /&gt;
 rint([input=field1])&lt;br /&gt;
&lt;br /&gt;
=== Hinweise ===&lt;br /&gt;
* Weitere Funktionen zum Thema runden sind [[ceil]], [[floor]] und [[round]].&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Math-Evaluatorfunktion]][[Kategorie:Operator]][[Kategorie:JACK2]][[Kategorie:JACK3]]&lt;/div&gt;</summary>
		<author><name>LGlaser</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=Ceil&amp;diff=12083</id>
		<title>Ceil</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=Ceil&amp;diff=12083"/>
		<updated>2025-02-11T13:50:25Z</updated>

		<summary type="html">&lt;p&gt;LGlaser: Navigationsvorlage eingefügt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Navigation/Rundungsfunktionen}}&lt;br /&gt;
&lt;br /&gt;
===Zugehörige Evaluatoren===&lt;br /&gt;
*&#039;&#039;&#039;MathEvaluator&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Beschreibung ===&lt;br /&gt;
&lt;br /&gt;
Die Funktion &#039;&#039;ceil&#039;&#039; rundet eine rationale Zahl auf die nächstgrößere ganze Zahl auf. Die Funktion erwartet eine Zahl als Parameter und gibt eine Zahl zurück.&lt;br /&gt;
&lt;br /&gt;
=== Syntax ===&lt;br /&gt;
 ceil([[Gleitkommazahl]] zahl)&lt;br /&gt;
&lt;br /&gt;
=== Parameter ===&lt;br /&gt;
* &#039;&#039;&#039;zahl&#039;&#039;&#039; - eine aufzurundende rationale Zahl&lt;br /&gt;
&lt;br /&gt;
=== Return Value ===&lt;br /&gt;
*Gibt eine Ganzzahl zurück&lt;br /&gt;
&lt;br /&gt;
=== Beispiele ===&lt;br /&gt;
==== Standardfälle ====&lt;br /&gt;
 ceil(7.3)   --&amp;gt; returns 8&lt;br /&gt;
 &lt;br /&gt;
 ceil(-2.4)   --&amp;gt; returns -2&lt;br /&gt;
&lt;br /&gt;
==== Benutzung mit Variablen ====&lt;br /&gt;
&lt;br /&gt;
 ceil([var=a])&lt;br /&gt;
 ceil([var=b])&lt;br /&gt;
&lt;br /&gt;
==== Benutzung mit studentischen Eingaben ====&lt;br /&gt;
 &#039;&#039;&#039;Jack2:&#039;&#039;&#039;&lt;br /&gt;
 ceil([pos=1])&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Jack3:&#039;&#039;&#039;&lt;br /&gt;
 ceil([input=field1])&lt;br /&gt;
&lt;br /&gt;
=== Hinweise ===&lt;br /&gt;
* Weitere Funktionen zum Thema runden sind [[floor]], [[rint]] und [[round]].&lt;br /&gt;
* Wenn Variablen genutzt werden muss darauf geachtet werden, dass diese die Voraussetzung erfüllen.&lt;br /&gt;
* Wenn die Eingabe der Studierenden genutzt wird muss auch hier darauf geachtet werden, dass die Voraussetzungen erfüllt sind und ob diese an der Stelle genutzt werden können.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Math-Evaluatorfunktion]][[Kategorie:Operator]][[Kategorie:JACK2]][[Kategorie:JACK3]]&lt;/div&gt;</summary>
		<author><name>LGlaser</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=Floor&amp;diff=12082</id>
		<title>Floor</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=Floor&amp;diff=12082"/>
		<updated>2025-02-11T13:50:22Z</updated>

		<summary type="html">&lt;p&gt;LGlaser: Navigationsvorlage eingefügt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Navigation/Rundungsfunktionen}}&lt;br /&gt;
&lt;br /&gt;
===Zugehörige Evaluatoren===&lt;br /&gt;
*&#039;&#039;&#039;MathEvaluator&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Beschreibung ===&lt;br /&gt;
Die Funktion &#039;&#039;floor&#039;&#039; rundet eine rationale Zahl auf die nächstkleinere ganze Zahl ab. Die Funktion erwartet eine Zahl als Parameter und gibt eine Zahl zurück.&lt;br /&gt;
&lt;br /&gt;
=== Syntax ===&lt;br /&gt;
 floor([[Gleitkommazahl]] zahl)&lt;br /&gt;
&lt;br /&gt;
=== Parameter ===&lt;br /&gt;
* &#039;&#039;&#039;zahl&#039;&#039;&#039; - eine abzurundende rationale Zahl&lt;br /&gt;
&lt;br /&gt;
=== Return Value ===&lt;br /&gt;
*Gibt eine [[Ganzzahl]] zurück.&lt;br /&gt;
&lt;br /&gt;
=== Beispiele ===&lt;br /&gt;
==== Standardfälle ====&lt;br /&gt;
 floor(7.3)   --&amp;gt; returns 7&lt;br /&gt;
 &lt;br /&gt;
 floor(-2.4)   --&amp;gt; returns -3&lt;br /&gt;
&lt;br /&gt;
==== Benutzung mit Variablen ====&lt;br /&gt;
 floor([var=a])&lt;br /&gt;
&lt;br /&gt;
==== Benutzung mit studentischen Eingaben ====&lt;br /&gt;
 &#039;&#039;&#039;Jack2:&#039;&#039;&#039;&lt;br /&gt;
 floor([pos=1])&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Jack3:&#039;&#039;&#039;&lt;br /&gt;
 floor([input=fillin1])&lt;br /&gt;
&lt;br /&gt;
=== Hinweise ===&lt;br /&gt;
* Weitere Funktionen zum Thema runden sind [[ceil]], [[rint]] und [[round]].&lt;br /&gt;
* Wenn Variablen genutzt werden muss darauf geachtet werden, dass diese die Voraussetzung erfüllen.&lt;br /&gt;
* Wenn die Eingabe der Studierenden genutzt wird muss auch hier darauf geachtet werden, dass die Voraussetzungen erfüllt sind und ob diese an der Stelle genutzt werden können.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Math-Evaluatorfunktion]][[Kategorie:Operator]][[Kategorie:JACK2]][[Kategorie:JACK3]]&lt;/div&gt;</summary>
		<author><name>LGlaser</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=Checkliste_f%C3%BCr_Pr%C3%BCfungen_mit_JACK_3&amp;diff=12081</id>
		<title>Checkliste für Prüfungen mit JACK 3</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=Checkliste_f%C3%BCr_Pr%C3%BCfungen_mit_JACK_3&amp;diff=12081"/>
		<updated>2025-02-11T12:38:58Z</updated>

		<summary type="html">&lt;p&gt;LGlaser: Kleinere stilistische Änderungen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hier finden Sie eine Checkliste zur erfolgreichen Durchführung von Prüfungen mit JACK3. Um eine möglichst reibungslose Prüfungsdurchführung zu ermöglichen bitten wir Sie folgende Punkte abzuarbeiten:&lt;br /&gt;
&lt;br /&gt;
Bis &#039;&#039;&#039;zwei Wochen&#039;&#039;&#039; vor der Klausur:&lt;br /&gt;
&lt;br /&gt;
* Ich habe die Klausur über die [mailto:jack@paluno.uni-due.de Funktionsmail] angemeldet.&lt;br /&gt;
&lt;br /&gt;
* Falls die Klausur in der PC-Hall stattfindet: Ich habe die Klausur beim [https://www.uni-due.de/zim/klausuranmeldung ZIM] angemeldet.&lt;br /&gt;
&lt;br /&gt;
* Ich habe Editierrechte und einen Ordner in [[Verfügbare Kurse (JACK3)|&#039;&#039;Verfügbare Kurse&#039;&#039;]] auf dem/den Prüfungsserver/n erhalten.&lt;br /&gt;
&lt;br /&gt;
Bis &#039;&#039;&#039;eine Woche&#039;&#039;&#039; vor der Klausur:&lt;br /&gt;
&lt;br /&gt;
* Ich habe die Klausuraufgaben auf den/die Prüfungsserver importiert.&lt;br /&gt;
&lt;br /&gt;
* Ich habe alle Bilder in den Aufgaben erneut in der Aufgabe verlinkt.&lt;br /&gt;
&lt;br /&gt;
* Ich habe einen Kurs erstellt, die Aufgaben eingefügt und die Punkte für die Aufgaben angepasst.&lt;br /&gt;
&lt;br /&gt;
* Ich habe ein Kursangebot erstellt, den Kurs eingebunden und das Kursangebot konfiguriert.&lt;br /&gt;
&lt;br /&gt;
* Ich habe die Klausur aus Studierendensicht auf technische Korrektheit geprüft.&lt;br /&gt;
&lt;br /&gt;
* Ich habe die Klausur aus Studierendensicht auf inhaltliche Korrektheit geprüft.&lt;br /&gt;
&lt;br /&gt;
=== Weitere Hinweise ===&lt;br /&gt;
* Das JACK-Team übernimmt keine Verantwortung für die Korrektheit der Aufgaben, Kurse und Kursangebote.&lt;br /&gt;
&lt;br /&gt;
* Für Neukunden wird einmalig ein Mitarbeiter vor Ort für die Klausur in der PC-Hall bereitgestellt.&lt;br /&gt;
&lt;br /&gt;
* Das JACK-Team steht im Zeitraum &#039;&#039;vor&#039;&#039; diesen zwei Wochen stets gerne für Beratungen und Schulungen zu allen Themen zur Verfügung, um eine störungsfreie und erfolgreiche Durchführung der Prüfungen zu gewährleisten.&lt;/div&gt;</summary>
		<author><name>LGlaser</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=Vorlage:Navigation/Numberfunktionen&amp;diff=12069</id>
		<title>Vorlage:Navigation/Numberfunktionen</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=Vorlage:Navigation/Numberfunktionen&amp;diff=12069"/>
		<updated>2025-02-04T09:08:32Z</updated>

		<summary type="html">&lt;p&gt;LGlaser: Sortierschlüssel&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;{{Navigation&lt;br /&gt;
| TITEL  = Numberfunktionen ([[Übersicht Numberfunktionen|Übersicht]])&lt;br /&gt;
| INHALT = &lt;br /&gt;
[[IsNumber]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[IsIntegerNumber]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[IsNaturalNumber]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[IsRationalNumber]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[IsRealNumber]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[IsMathematikerRealNumber]]&lt;br /&gt;
}}&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Navigationsvorlagen|Numberfunktionen]]&lt;/div&gt;</summary>
		<author><name>LGlaser</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=Vorlage:Navigation/Geometriefunktionen&amp;diff=12068</id>
		<title>Vorlage:Navigation/Geometriefunktionen</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=Vorlage:Navigation/Geometriefunktionen&amp;diff=12068"/>
		<updated>2025-02-04T09:08:30Z</updated>

		<summary type="html">&lt;p&gt;LGlaser: Sortierschlüssel&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;{{Navigation&lt;br /&gt;
| TITEL  = Funktionen mit Koordinaten&lt;br /&gt;
| INHALT = &lt;br /&gt;
Geometrische Figuren:&lt;br /&gt;
[[Circle]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[Coordinate]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[Rectangle]]&lt;br /&gt;
&lt;br /&gt;
Prüfen von Koordinaten:&lt;br /&gt;
[[IsCoordinateInCircle]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[IsCoordinateInPolygon]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[IsCoordinateInRectangle]]&lt;br /&gt;
}}&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Navigationsvorlagen|Koordinatenfunktionen]]&lt;/div&gt;</summary>
		<author><name>LGlaser</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=Vorlage:Navigation/Rundungsfunktionen&amp;diff=12067</id>
		<title>Vorlage:Navigation/Rundungsfunktionen</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=Vorlage:Navigation/Rundungsfunktionen&amp;diff=12067"/>
		<updated>2025-02-04T09:08:27Z</updated>

		<summary type="html">&lt;p&gt;LGlaser: Sortierschlüssel&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;{{Navigation&lt;br /&gt;
| TITEL  = Rundungsfunktionen&lt;br /&gt;
| INHALT = &lt;br /&gt;
[[Round]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[Rint]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[Ceil]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[Floor]]&lt;br /&gt;
}}&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Navigationsvorlagen|Rundungsfunktionen]]&lt;/div&gt;</summary>
		<author><name>LGlaser</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=Vorlage:Navigation/Rundungsfunktionen&amp;diff=12066</id>
		<title>Vorlage:Navigation/Rundungsfunktionen</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=Vorlage:Navigation/Rundungsfunktionen&amp;diff=12066"/>
		<updated>2025-02-04T09:03:44Z</updated>

		<summary type="html">&lt;p&gt;LGlaser: LGlaser verschob die Seite Vorlage:Vorlage:Navigation/Rundungsfunktionen nach Vorlage:Navigation/Rundungsfunktionen, ohne dabei eine Weiterleitung anzulegen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;{{Navigation&lt;br /&gt;
| TITEL  = Rundungsfunktionen&lt;br /&gt;
| INHALT = &lt;br /&gt;
[[Round]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[Rint]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[Ceil]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[Floor]]&lt;br /&gt;
}}&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Navigationsvorlagen]]&lt;/div&gt;</summary>
		<author><name>LGlaser</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=Vorlage:Navigation/Rundungsfunktionen&amp;diff=12065</id>
		<title>Vorlage:Navigation/Rundungsfunktionen</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=Vorlage:Navigation/Rundungsfunktionen&amp;diff=12065"/>
		<updated>2025-02-04T09:03:25Z</updated>

		<summary type="html">&lt;p&gt;LGlaser: LGlaser verschob die Seite Vorlage:Rundungsfunktionen nach Vorlage:Vorlage:Navigation/Rundungsfunktionen, ohne dabei eine Weiterleitung anzulegen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;{{Navigation&lt;br /&gt;
| TITEL  = Rundungsfunktionen&lt;br /&gt;
| INHALT = &lt;br /&gt;
[[Round]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[Rint]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[Ceil]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[Floor]]&lt;br /&gt;
}}&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Navigationsvorlagen]]&lt;/div&gt;</summary>
		<author><name>LGlaser</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=Vorlage:Navigation/Rundungsfunktionen&amp;diff=12064</id>
		<title>Vorlage:Navigation/Rundungsfunktionen</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=Vorlage:Navigation/Rundungsfunktionen&amp;diff=12064"/>
		<updated>2025-02-04T08:59:40Z</updated>

		<summary type="html">&lt;p&gt;LGlaser: Vorlage angelegt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;{{Navigation&lt;br /&gt;
| TITEL  = Rundungsfunktionen&lt;br /&gt;
| INHALT = &lt;br /&gt;
[[Round]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[Rint]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[Ceil]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[Floor]]&lt;br /&gt;
}}&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Navigationsvorlagen]]&lt;/div&gt;</summary>
		<author><name>LGlaser</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=Datei:TracingFramework.java&amp;diff=12063</id>
		<title>Datei:TracingFramework.java</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=Datei:TracingFramework.java&amp;diff=12063"/>
		<updated>2025-02-03T12:10:36Z</updated>

		<summary type="html">&lt;p&gt;LGlaser: Kategorie hinzugefügt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Werkzeuge (JACK3)]]&lt;/div&gt;</summary>
		<author><name>LGlaser</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=Vorlage:Navigation&amp;diff=12062</id>
		<title>Vorlage:Navigation</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=Vorlage:Navigation&amp;diff=12062"/>
		<updated>2025-01-31T10:36:09Z</updated>

		<summary type="html">&lt;p&gt;LGlaser: Schmalere Formatierung&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&amp;lt;div style=&amp;quot;background: #eaf3ff; border: solid 1px #a3caff; padding-left: 10px; padding-right: 10px; line-height: 1.0em; text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
{{#if: {{{TITEL|}}} | &amp;lt;div style=&amp;quot;font-weight: bold;&amp;quot;&amp;gt;&lt;br /&gt;
{{{TITEL}}}&lt;br /&gt;
&amp;lt;/div&amp;gt; | }}&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-top: 10px;&amp;quot;&amp;gt;&lt;br /&gt;
{{{INHALT}}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;Diese Vorlage bildet eine Navigationsleiste, ähnlich zu der in der [https://de.wikipedia.org/wiki/Vorlage:Navigationsleiste Wikipedia].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Benutzung:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
{{Navigation&lt;br /&gt;
| TITEL  = Titel hier einfügen&lt;br /&gt;
| INHALT = &lt;br /&gt;
[[Erste Seite]]&amp;amp;amp;nbsp;&amp;amp;amp;bull;&lt;br /&gt;
[[Zweite Seite]]&amp;amp;amp;nbsp;&amp;amp;amp;bull;&lt;br /&gt;
[[Dritte Seite]]&amp;amp;amp;nbsp;&amp;amp;amp;bull;&lt;br /&gt;
[[Vierte Seite]]&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ergibt:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Navigation&lt;br /&gt;
| TITEL  = Titel hier einfügen&lt;br /&gt;
| INHALT = &lt;br /&gt;
Erste Seite&amp;amp;nbsp;&amp;amp;bull; &amp;lt;!-- Dummy-Links entfernt --&amp;gt;&lt;br /&gt;
Zweite Seite&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
Dritte Seite&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
Vierte Seite&lt;br /&gt;
}}&lt;br /&gt;
[[:Kategorie:Navigationsvorlagen|Liste aller Navigationsvorlagen]].&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Vorlage]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>LGlaser</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=Vorlage:Navigation/Geometriefunktionen&amp;diff=12061</id>
		<title>Vorlage:Navigation/Geometriefunktionen</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=Vorlage:Navigation/Geometriefunktionen&amp;diff=12061"/>
		<updated>2025-01-31T10:26:15Z</updated>

		<summary type="html">&lt;p&gt;LGlaser: Vorlage angelegt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;{{Navigation&lt;br /&gt;
| TITEL  = Funktionen mit Koordinaten&lt;br /&gt;
| INHALT = &lt;br /&gt;
Geometrische Figuren:&lt;br /&gt;
[[Circle]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[Coordinate]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[Rectangle]]&lt;br /&gt;
&lt;br /&gt;
Prüfen von Koordinaten:&lt;br /&gt;
[[IsCoordinateInCircle]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[IsCoordinateInPolygon]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[IsCoordinateInRectangle]]&lt;br /&gt;
}}&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Navigationsvorlagen]]&lt;/div&gt;</summary>
		<author><name>LGlaser</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=Vorlage:Navigation&amp;diff=12060</id>
		<title>Vorlage:Navigation</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=Vorlage:Navigation&amp;diff=12060"/>
		<updated>2025-01-31T10:17:53Z</updated>

		<summary type="html">&lt;p&gt;LGlaser: Link hinzugefügt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&amp;lt;div style=&amp;quot;background: #eaf3ff; border: solid 1px #a3caff; padding: 10px;&amp;quot;&amp;gt;&lt;br /&gt;
{{#if: {{{TITEL|}}} | &amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;&lt;br /&gt;
{{{TITEL}}}&lt;br /&gt;
&amp;lt;/strong&amp;gt;&amp;lt;/div&amp;gt; | }}&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
{{{INHALT}}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;Diese Vorlage bildet eine Navigationsleiste, ähnlich zu der in der [https://de.wikipedia.org/wiki/Vorlage:Navigationsleiste Wikipedia].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Benutzung:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
{{Navigation&lt;br /&gt;
| TITEL  = Titel hier einfügen&lt;br /&gt;
| INHALT = &lt;br /&gt;
[[Erste Seite]]&amp;amp;amp;nbsp;&amp;amp;amp;bull;&lt;br /&gt;
[[Zweite Seite]]&amp;amp;amp;nbsp;&amp;amp;amp;bull;&lt;br /&gt;
[[Dritte Seite]]&amp;amp;amp;nbsp;&amp;amp;amp;bull;&lt;br /&gt;
[[Vierte Seite]]&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ergibt:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Navigation&lt;br /&gt;
| TITEL  = Titel hier einfügen&lt;br /&gt;
| INHALT = &lt;br /&gt;
Erste Seite&amp;amp;nbsp;&amp;amp;bull; &amp;lt;!-- Dummy-Links entfernt --&amp;gt;&lt;br /&gt;
Zweite Seite&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
Dritte Seite&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
Vierte Seite&lt;br /&gt;
}}&lt;br /&gt;
[[:Kategorie:Navigationsvorlagen|Liste aller Navigationsvorlagen]].&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Vorlage]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>LGlaser</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=Vorlage:Navigation/Numberfunktionen&amp;diff=12059</id>
		<title>Vorlage:Navigation/Numberfunktionen</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=Vorlage:Navigation/Numberfunktionen&amp;diff=12059"/>
		<updated>2025-01-31T10:15:07Z</updated>

		<summary type="html">&lt;p&gt;LGlaser: Vorlage angelegt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;{{Navigation&lt;br /&gt;
| TITEL  = Numberfunktionen ([[Übersicht Numberfunktionen|Übersicht]])&lt;br /&gt;
| INHALT = &lt;br /&gt;
[[IsNumber]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[IsIntegerNumber]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[IsNaturalNumber]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[IsRationalNumber]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[IsRealNumber]]&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
[[IsMathematikerRealNumber]]&lt;br /&gt;
}}&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Navigationsvorlagen]]&lt;/div&gt;</summary>
		<author><name>LGlaser</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=Kategorie:Navigationsvorlagen&amp;diff=12058</id>
		<title>Kategorie:Navigationsvorlagen</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=Kategorie:Navigationsvorlagen&amp;diff=12058"/>
		<updated>2025-01-31T10:14:18Z</updated>

		<summary type="html">&lt;p&gt;LGlaser: Seite angelegt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Diese Kategorie enthält alle [[Vorlage:Navigation|Navigationsvorlagen]].&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Interne Seiten]][[Kategorie:Vorlage]]&lt;/div&gt;</summary>
		<author><name>LGlaser</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=Vorlage:Navigation&amp;diff=12057</id>
		<title>Vorlage:Navigation</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=Vorlage:Navigation&amp;diff=12057"/>
		<updated>2025-01-31T10:08:06Z</updated>

		<summary type="html">&lt;p&gt;LGlaser: Die Seite wurde neu angelegt: „&amp;lt;includeonly&amp;gt;&amp;lt;div style=&amp;quot;background: #eaf3ff; border: solid 1px #a3caff; padding: 10px;&amp;quot;&amp;gt; {{#if: {{{TITEL|}}} | &amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt; {{{TITEL}}} &amp;lt;/strong&amp;gt;&amp;lt;/div&amp;gt; | }} &amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt; {{{INHALT}}} &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;&amp;lt;/includeonly&amp;gt; &amp;lt;noinclude&amp;gt;Diese Vorlage bildet eine Navigationsleiste, ähnlich zu der in der [https://de.wikipedia.org/wiki/Vorlage:Navigationsleiste Wikipedia].  &amp;#039;&amp;#039;&amp;#039;Benutzung:&amp;#039;&amp;#039;&amp;#039;  &amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt; {{Navigation | T…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&amp;lt;div style=&amp;quot;background: #eaf3ff; border: solid 1px #a3caff; padding: 10px;&amp;quot;&amp;gt;&lt;br /&gt;
{{#if: {{{TITEL|}}} | &amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;&lt;br /&gt;
{{{TITEL}}}&lt;br /&gt;
&amp;lt;/strong&amp;gt;&amp;lt;/div&amp;gt; | }}&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
{{{INHALT}}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;Diese Vorlage bildet eine Navigationsleiste, ähnlich zu der in der [https://de.wikipedia.org/wiki/Vorlage:Navigationsleiste Wikipedia].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Benutzung:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
{{Navigation&lt;br /&gt;
| TITEL  = Titel hier einfügen&lt;br /&gt;
| INHALT = &lt;br /&gt;
[[Erste Seite]]&amp;amp;amp;nbsp;&amp;amp;amp;bull;&lt;br /&gt;
[[Zweite Seite]]&amp;amp;amp;nbsp;&amp;amp;amp;bull;&lt;br /&gt;
[[Dritte Seite]]&amp;amp;amp;nbsp;&amp;amp;amp;bull;&lt;br /&gt;
[[Vierte Seite]]&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ergibt:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Navigation&lt;br /&gt;
| TITEL  = Titel hier einfügen&lt;br /&gt;
| INHALT = &lt;br /&gt;
Erste Seite&amp;amp;nbsp;&amp;amp;bull; &amp;lt;!-- Dummy-Links entfernt --&amp;gt;&lt;br /&gt;
Zweite Seite&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
Dritte Seite&amp;amp;nbsp;&amp;amp;bull;&lt;br /&gt;
Vierte Seite&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Vorlage]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>LGlaser</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=Concat&amp;diff=12014</id>
		<title>Concat</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=Concat&amp;diff=12014"/>
		<updated>2025-01-20T12:28:15Z</updated>

		<summary type="html">&lt;p&gt;LGlaser: Klarstellung bzgl. mehr Parametern&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Zugehörige Evaluatoren===&lt;br /&gt;
*&#039;&#039;&#039;MathEvaluator&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Beschreibung ===&lt;br /&gt;
Die Funktion &#039;&#039;concat&#039;&#039; fügt Zeichenketten unmittelbar aneinander, so dass eine einzige Zeichenkette entsteht. Die Funktion erwartet mindestens zwei Zeichenketten und gibt eine Zeichenkette zurück.&lt;br /&gt;
&lt;br /&gt;
=== Syntax ===&lt;br /&gt;
 concat([[Zeichenkette]] zeichenkette1, [[Zeichenkette]] zeichenkette2, ...)&lt;br /&gt;
&lt;br /&gt;
=== Parameter ===&lt;br /&gt;
* &#039;&#039;&#039;zeichenkette1&#039;&#039;&#039; - erste Zeichenkette&lt;br /&gt;
* &#039;&#039;&#039;zeichenkette2&#039;&#039;&#039; - zweite Zeichenkette, die der ersten angehängt werden soll&lt;br /&gt;
* Weitere Zeichenketten (optional)&lt;br /&gt;
&lt;br /&gt;
=== Return Value ===&lt;br /&gt;
* Gibt einen String zurück&lt;br /&gt;
&lt;br /&gt;
=== Beispiele ===&lt;br /&gt;
==== Standardfälle ====&lt;br /&gt;
 concat(&#039;hallo&#039;,&#039;welt&#039;)   --&amp;gt; returns &#039;hallowelt&#039;&lt;br /&gt;
 &lt;br /&gt;
 concat(&#039;hallo&#039;,&#039;welt&#039;,&#039;!&#039;)   --&amp;gt; returns &#039;hallowelt!&#039;&lt;br /&gt;
&lt;br /&gt;
==== Benutzung mit Variablen ====&lt;br /&gt;
&lt;br /&gt;
 concat(&#039;anfang&#039;, [var=a])&lt;br /&gt;
 concat([var=b], &#039;welt&#039;)&lt;br /&gt;
&lt;br /&gt;
==== Benutzung mit studentischen Eingaben ====&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Jack2:&#039;&#039;&#039;&lt;br /&gt;
 concat([pos=1],&#039;ende&#039;)&lt;br /&gt;
 concat([var=b],[pos=2])&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Jack3:&#039;&#039;&#039;&lt;br /&gt;
 concat([input=field1],&#039;ende&#039;)&lt;br /&gt;
 concat([var=b],[input=field2])&lt;br /&gt;
&lt;br /&gt;
=== Hinweise ===&lt;br /&gt;
* Wenn Variablen genutzt werden muss darauf geachtet werden, dass diese die Voraussetzung erfüllen.&lt;br /&gt;
* Wenn die Eingabe der Studierenden genutzt wird muss auch hier darauf geachtet werden, dass die Voraussetzungen erfüllt sind und ob diese an der Stelle genutzt werden können.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Math-Evaluatorfunktion]][[Kategorie:Zeichenkettenfunktionen]][[Kategorie:JACK2]][[Kategorie:JACK3]]&lt;/div&gt;</summary>
		<author><name>LGlaser</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=MergeLists&amp;diff=12013</id>
		<title>MergeLists</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=MergeLists&amp;diff=12013"/>
		<updated>2025-01-14T18:46:54Z</updated>

		<summary type="html">&lt;p&gt;LGlaser: Klarstellung bzgl. leerer Listen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Vorlage:Warnung|Warnung=Diese Seite beinhaltet eine Evaluator-Funktion im JACK3 System.}}&lt;br /&gt;
&lt;br /&gt;
===Zugehörige Evaluatoren===&lt;br /&gt;
*&#039;&#039;&#039;MathEvaluator&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Beschreibung===&lt;br /&gt;
Die Funktion &#039;&#039;mergeLists&#039;&#039; fügt die Elemente mehrerer [[List|Listen]] zu einer [[List|Liste]] zusammen, wobei die ursprüngliche Reihenfolge beibehalten wird. Leere [[List|Listen]] werden entweder bei einem Parameterwert &#039;&#039;false&#039;&#039; ignoriert oder bei &#039;&#039;true&#039;&#039; durch ein leeres Element ersetzt.&lt;br /&gt;
&lt;br /&gt;
Die Funktion erwartet, dass der erste Parameter ein Boolean ist, der angibt, ob leere [[List|Listen]] ignoriert werden sollen. Die nachfolgenden Parameter sind die [[List|Listen]], die zusammengefügt werden sollen.&lt;br /&gt;
&lt;br /&gt;
===Syntax===&lt;br /&gt;
 mergeLists(Boolean parameter, [[List]] list1, [[List]] list2...)&lt;br /&gt;
&lt;br /&gt;
===Parameter===&lt;br /&gt;
* &#039;&#039;&#039;parameter&#039;&#039;&#039; - ein Boolean, der angibt, ob leere [[List|Listen]] mit dem leeren Element ausgewertet werden sollen&lt;br /&gt;
* &#039;&#039;&#039;list&#039;&#039;&#039; - die [[List|Listen]], welche zusammengefügt werden sollen&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
* Gibt eine zusammengefügte [[List|Liste]] zurück, welche aus den eingegebenen [[List|Listen]] besteht.&lt;br /&gt;
&lt;br /&gt;
===Beispiele===&lt;br /&gt;
==== Standardfälle ====&lt;br /&gt;
 mergeLists(false(), list(1,3,4), list(2,3))    --&amp;gt; returns list(1,3,4,2,3)&lt;br /&gt;
 mergeLists(false(), list(1,2), list(), list(4,6,7))    --&amp;gt; returns list(1,2,4,6,7)&lt;br /&gt;
 mergeLists(true(), list(1,2), list(), list(4,6,7))    --&amp;gt; returns list(1,2,empty,4,6,7)&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Math-Evaluatorfunktion]][[Kategorie:Testfunktionen]][[Kategorie:Listfunktionen]][[Kategorie:JACK3]]&lt;/div&gt;</summary>
		<author><name>LGlaser</name></author>
	</entry>
</feed>