Menu
Willkommen bei XWizard: Das Online-Informatik-Tool

End of animation. Click to restart at step 0.End - click to restart (0) Click to animate!
Keine PDFs im Cache-Modus erzeugt. Klicke auf DRAW! um PDFs zu erstellen.

LaTeX

→ Skript diskutieren
Konversions-
methoden
Für Lehrende Erzeuge Aufgabe aus Skript...
X

Erzeuge ein Aufgaben-Skript aus diesem Skript. Bitte Parameter eingeben:

arg0: (String: Eine kurze Beschreibung oder einen Titel für die Aufgabe.)
arg1: (String: Eine lange Beschreibung der Aufgabe ein (HTML erlaubt).)
arg2: (String: Optional kann hier ein Lösungs-String für die Aufgabe angegeben werden.)
arg3: (String: Optionaler Belohnungscode, den der Benutzer durch das Lösen der Aufgabe verdienen kann.)
arg4: (String: Optionaler → Regulärer Ausdruck (Java) zum Einschränken der angezeigten Konversionsmethoden - Methodenname.)
arg5: (String: Optionaler → Regulärer Ausdruck (Java) zum Einschränken der angezeigten Konversionsmethoden - Skript-Klasse.)
arg6: (String: Optionaler → Regulärer Ausdruck (Java) zum Einschränken der angezeigten Konversionsmethoden - Zielklasse.)
arg7: (String: Optionaler Erklärungstext, der zusammen mit der Lösung angezeigt wird.)
arg8: (boolean: Auf true gesetzt wird die Verschlüsselung der Aufgabe - nicht des gesamten Skripts - veranlasst.)
arg9: (boolean: Auf true gesetzt wird die Verschlüsselung des gesamten Skripts veranlasst.)

Beispiele

Kurzeinführung

  • Tippe ein Skript in das Textfeld und klicke auf Draw! Das Ergebnis wird im Ausgabebereich angezeigt.
  • Nutze die Beispiele ganz unten zum Einstieg.
  • Durch die Konversions-Methoden können Algorithmen auf das Skript angewendet werden.
  • Oder löse die Übungsaufgabe, falls eine angezeigt wird.

Überfordert...? Gelangweilt...? → Beteilige Dich an Diskussionen oder sage uns, was gut bzw. schlecht ist, in der → 3-Minuten-Umfrage.

Endlicher Automat

Eine Transition 'von s0 nach s1, beim Lesen des Eingabesymbols a' wird definiert als (s0, a) => s1;

Definiere den Startzustand s0, Endzustände F und das input-Wort im Deklarationsbereich.

Tipp: Regeln können zusammengefasst werden, auf der rechten Seite, der linken oder beiden:

A => B | C;
A | B => C;
A | B => C | D;

→ Mehr Hilfe zu 'Endlicher-Automat'...

Kellerautomat

Eine Transition 'von s0, wobei das Eingabesymbol a und das Kellersymbol k eingelesen werden, nach s1, wobei ak auf den Keller geschrieben wird' wird definiert als: (s0, a, k) => (s1, ak);

oder 'von s0 ohne die Eingabe zu lesen...' als: (s0, lambda, k) => (s1, abck);

Definiere den Startzustand s0, Endzustände F, das Kellersymbol kSymb und input-Wörter im Deklarationsbereich.

Tipp: Regeln können zusammengefasst werden, auf der rechten Seite, der linken oder beiden:

A => B | C;
A | B => C;
A | B => C | D;

→ Mehr Hilfe zu 'Kellerautomat'...

Turingmaschine

Eine Transition 'von s0, wobei das Eingabesymbol * gelesen wird, nach s1, wobei a auf das Band geschrieben wird und der Kopf nach links läuft,' wird definiert als: (s0, *) => (s1, a, L);

Definiere den Startzustand s0, Endzustände F, das blank-Symbol und input-Wörter im Deklarationsbereich.

Tipp: Regeln können zusammengefasst werden, auf der rechten Seite, der linken oder beiden:

A => B | C;
A | B => C;
A | B => C | D;

→ Mehr Hilfe zu 'Turingmaschine'...

Grammatiken können in zwei Modi betrieben werden (Gesamtbaum oder Parsebaum).

Gesamtbaum

Definiere eine Produktionsregel als: S => a, S, b; oder S => epsilon; Definiere N (Nonterminalsymbole), T (Terminalsymbole) und S (das Startsymbol) im Deklarationsbereich. Jeder Ast des Gesamtbaums zeigt für ein terminales Wort, wie es durch die Grammatik abgeleitet werden kann.

Parsebaum (kontextfreie Grammatiken)

Es kann ein Parsebaum durch Klicken auf   parse einzelnes wort   oder Hinzufügen von parse(w, o, r, d)--0 (vor dem Doppelpunkt am Beginn des Skripts) erzeugt werden. Ein Parsebaum zeigt für ein einzelnes terminales Wort an, wie es durch die Grammatik abgeleitet werden kann. Durchlaufe die Parsebäume durch Klicken auf den   durchlaufe...  -Button.

Beachte: Das leere Wort heißt epsilon, nicht lambda, in Grammatik-Skripten.

Tipp: Regeln können zusammengefasst werden, auf der rechten Seite, der linken oder beiden:

A => B | C;
A | B => C;
A | B => C | D;

→ Mehr Hilfe zu 'Grammatik'...

Regulärer Ausdruck

Die Skripteingabe ist ein regulärer Ausdruck, der in der üblichen Weise abgekürzt werden darf. Alle Kleinbuchstaben (a, b, c, ...) und Ziffern (0, 1, 2, ...) sind Teil des Terminalalphabets. Vereinigung ist kodiert als +, Konkatenation als . (kann weggelassen werden), die Kleene'sche Stern-Operation als *. O (der Großbuchstabe, nicht die Zahl) ist die leere Menge ∅, O* (entsprechend) das leere Wort λ.

Beispiel: (((((a+b).b)*.c).d)+O)
oder äquivalent: ((a+b)b)*cd

Die Ausgabe wird automatisch durch einige Standard-Operationen vereinfacht. Um auch das Skript zu vereinfachen, klicke auf   vereinfache (ein bisschen)  .

→ Mehr Hilfe zu 'Regulärer-Ausdruck'...

2-3-4-Baum

Schreibe eine Sequenz von ganzen Zahlen, die durch Leerzeichen getrennt sind. +Die Reihenfolge der Zahlen von links nach rechts gibt deren Einfügereihenfolge im Baum ein.

Tipp: Regeln können zusammengefasst werden, auf der rechten Seite, der linken oder beiden:

A => B | C;
A | B => C;
A | B => C | D;

→ Mehr Hilfe zu '2-3-4-Baum'...

Rot-Schwarz-Baum

Schreibe eine Sequenz von ganzen Zahlen, die durch Leerzeichen getrennt sind. +Die Reihenfolge der Zahlen von links nach rechts gibt deren Einfügereihenfolge im Baum ein.

Tipp: Regeln können zusammengefasst werden, auf der rechten Seite, der linken oder beiden:

A => B | C;
A | B => C;
A | B => C | D;

→ Mehr Hilfe zu 'Rot-Schwarz-Baum'...

Pat tree

Gib einen beliebigen Text ein, der als Basis für die Berechnung des PatTrees genommen werden soll. Leerzeichen sind erlaubt, allerdings keine Zeilenumbrüche.

Schriftliches Rechnen mit natürlichen Zahlen: algebra:, danach eine Rechnung, z.B. 587 + 768, 1000 - 487, 234 * 56 oder 1234 : 12. Rechnung animieren erzeugt eine Klickanimation.

→ Mehr Hilfe zu 'Grundlagen der Algebra'...

Beginne mit linalg: und schreibe eine Anweisung pro Zeile: Matrizen als A = [1 2; 3 4], Spaltenvektoren als v = (1, 2), verknuepft mit +, -, *, ^T und ^-1.

Funktionen wie det(A), rank(A) oder eigenvalues(A) liefern Ergebnisse, die zugewiesen und weiterverwendet werden koennen, z.B. d = det(A) + rank(A). Ein grosser Anfangsbuchstabe (Det(A)) zeigt zusaetzlich die Rechnung Schritt fuer Schritt.

Markiere einen Operator mit einem eindeutigen Namen, um ihn zu animieren: C = A * @product B. Im Deklarationsblock waehlt operation=product; step=0; die markierte Operation und den angezeigten Schritt (step=-1 ist das Endergebnis). Die Konversionsbuttons ... animieren erzeugen daraus eine klickbare Animation.

linalg:
A = [1 2; 3 4]
B = [0 1; 1 0]
d = Det(A)
C = A * @product B
--declarations--
operation=product;
step=0;
--declarations-end--

→ Mehr Hilfe zu 'Lineare Algebra'...

Enthalten ist das moderne lateinische Alphabet mit 26 Buchstaben (A–Z), nicht ein einzelner antiker Inschriftenstand. Es entstand in Italien bis zum 7. Jh. v. Chr. aus einer westgriechischen Schrift über das Etruskische; die heutige 26-Buchstaben-Auswahl ist jünger. Siehe die → Unicode-Tabelle Basic Latin.

→ Mehr Hilfe zu 'Latein'...

Die griechischen Buchstaben gehen auf die um das 8. Jh. v. Chr. übernommene phönizische Schrift zurück. Verwendet wird die übliche Auswahl von 24 Buchstaben, nicht eine epochenspezifische archaische Regionalform; siehe die → Unicode-Tabelle für Griechisch. Die Auswahl rekonstruiert kein einzelnes antikes Regionalalphabet.

→ Mehr Hilfe zu 'Altgriechisch'...

Das 22-buchstabige hebräische Alphabet verwendet die jüdischen Quadratschriftformen aus → Unicode U+05D0–U+05EA. Diese aus dem Aramäischen abgeleitete Schrift setzte sich im Judentum in der Zeit des Zweiten Tempels (ab dem 5. Jh. v. Chr.) durch und unterscheidet sich von paläohebräisch. Schlussformen werden als Eingabe erkannt, sind aber keine eigenen Alphabet-Einträge.

→ Mehr Hilfe zu 'Biblisches Hebräisch'...

Diese 22 Zeichen sind paläohebräische Buchstaben aus dem phönizischen Unicode-Block → U+10900–U+10915. Sie stehen für die Schrift im eisenzeitlichen Israel/Juda (etwa 10.–6. Jh. v. Chr.); die Unicode-Kodierung ist modern und datiert nicht die Schrift.

→ Mehr Hilfe zu 'Paläohebräisch'...

Dies ist eine Auswahl von 46 Devanagari-Zeichen (Vokale und Konsonanten), kein vollständiges oder eindeutig antikes „Sanskrit-Alphabet“. Devanagari entwickelte sich etwa vom 7.–11. Jh. n. Chr., lange nach dem Ursprung des Sanskrit; siehe die → Unicode-Tabelle Devanagari. Vokalzeichen und Virama sind nicht enthalten.

→ Mehr Hilfe zu 'Sanskrit'...

Enthalten ist das syrische Alphabet mit 22 Buchstaben aus U+0710–U+072C (Unicode Syriac-Block), eine kursive Nachfolge der aramäischen Schrift für die syrische Sprache. Syrische Schrift ist ab dem 1. Jh. n. Chr. im Raum Edessa belegt; siehe die → Unicode-Tabelle Syriac.

→ Mehr Hilfe zu 'Syrisch'...

Dies ist ausdrücklich das 22-buchstabige Reichsaramäische Alphabet, Unicode U+10840–U+10855, aus der Zeit des Achämenidenreichs (5.–3. Jh. v. Chr.) – kein allgemeines Alphabet für alle Epochen des Aramäischen. Siehe die → Unicode-Tabelle Imperial Aramaic.

→ Mehr Hilfe zu 'Aramäisch'...

Dies sind die üblichen 28 arabischen Grundbuchstaben im Unicode-Block Arabic U+0600–U+06FF; Hamza, Vokalzeichen und Erweiterungsbuchstaben gehören nicht zu dieser Auswahl. Die arabische Schrift entwickelte sich aus dem nabatäischen Aramäisch; frühe arabische Inschriften stammen etwa aus dem 4.–6. Jh. n. Chr. Siehe die → Unicode-Tabelle Arabic.

→ Mehr Hilfe zu 'Arabisch'...

Binary-Decision-Diagram

Schreibe eine Reihe von 0en und 1en in der Reihenfolge wie sie in einer Standard-Wahrheitstabelle der gewünschten Funktion auftauchen würden, um ein BDD zu definieren. Wenn die Länge nicht 2n für irgendein n ist, werden 0en am Ende aufgefüllt.

Die Benennung der Variablen kann angepasst werden, indem vorne a,b,c,... eingefügt wird.

→ Mehr Hilfe zu 'BDD'...

Huffman-Baum

Gib einen beliebigen Text ein, der als Basis für die Berechnung des Huffman-Baums genommen werden soll. Zu beachten ist, dass Leerzeichen und Zeilenumbrüche auch gezählt werden.

→ Mehr Hilfe zu 'Huffman-Code'...

Logischer Schaltkreis

Ein logischer Schaltkreis wird definiert durch eine Liste von Verbindungen:
  • von einem Gatter X zum Eingang n eines anderen Gatters Y als:
    X => Y.n;
  • oder von einem Schaltungseingang I zum Eingang n eines Gatters Y als:
    I => Y.n;
  • oder von einem Gatter X zu einem Schaltungsausgang O als:
    X => O;
Undefinierte Elemente I,O werden jeweils als Schaltungseingang oder Schaltungsausgang behandelt. Die übrigen Elemente, d.h. Gatter, werden im Deklarationsbereich definiert, bspw.:
components = A:NOT, B:XOR-nnin, C:XOR, D:AND, E:AND, F:OR;
Soll ein Gatter mehr als zwei Eingänge haben, kann eine Sequenz aus n und i (vgl. B im Beispiel) für 'normale' bzw. 'invertierte' Eingänge angegeben werden.

Tipp: Regeln können zusammengefasst werden, auf der rechten Seite, der linken oder beiden:

A => B | C;
A | B => C;
A | B => C | D;

→ Mehr Hilfe zu 'Schaltkreis'...

Zahlendarstellung

Eine Zahlendarstellung wird angegeben durch den Namen der Darstellung, gefolgt von einer Parameterliste, bspw.:
excessq[value=230, q=128, radix=2, *length=10];
complement[code=111100, complementType=2];
Gib eine Dezimalzahl (Parameter value) an, um den zugehörigen Code zu berechnen.
Gib einen code in der Syntax der entsprechenden Darstellung an, um die zugehörige Dezimalzahl zu berechnen.
Wenn verfügbar, kann durch den Parameter radix eine Zahlenbasis zwischen 2 und 36 angegeben werden.
Derzeit verfügbare Darstellungen: excessq, complement, fixedpoint, floatingpoint.

→ Mehr Hilfe zu 'Zahlen'...

Latex-Prozessor

Gib ein beliebiges vollständiges Latex-Dokument ein und klicke auf   draw!  , um es zu kompilieren. Latex ist ein komplexes und sehr mächtiges Textsatzsystem. Siehe → Wikipedia zum Einstieg.

Wenn formulaMode=true eingestellt ist (im Deklarations-Bereich), dann ist der Mathe-Modus eingeschaltet. Alles außen herum (Package-Deklarationen, \documentclass, \begin{document} usw.) fallen in diesem Fall weg.

Latex-Code kann aus allen auf Latex basierenden Skripten generiert werden, indem auf den Button   zeige generator-code   geklickt wird.

→ Mehr Hilfe zu 'LaTeX'...

Einfacher Graphviz-DOT-Code

Dieser Skript-Typ akzeptiert reinen Graphviz-Code und generiert den entsprechenden Graphen. Der Code kann eingetippt oder aus allen auf Graphviz basierenden Skripten generiert werden, indem auf den Button   zeige generator-code   geklickt wird. Der Code muss der Syntax entsprechen, die in der Graphviz-Dokumentation beschrieben wird, siehe: → http://www.graphviz.org/Documentation.php

Beachte: Im Augenblick kann nur der Graphviz-'dot'-Prozessor genutzt werden.

Lieber Programmierer, du hast keinen deutschen Hilfetext zu deiner tollen Klasse geschrieben. Bitte füge einen zur HashMap in der Klasse 'HelpTexts' hinzu oder implementiere die 'requestHelpText' Methode deiner 'RepresentableAsPDF'-Klasse.
Dieser Objekttyp ist dazu da, einige Meta-Eigenschaften über den XWizard anzuzeigen. Bisher werden alle verfügbaren Objekte aufgelistet und ihre Beziehung untereinander durch Pfeile verdeutlicht. Ein Pfeil von Objekt X zu Objekt Y bedeutet dabei, dass es Konversionsmethoden gibt, die X in Y transformieren.