Während dem vergangenen ersten Semester hatten wir als eines der Fächer Formale Methoden. Bestandteil des Unterrichts war, die verschiedenen Operatoren für die Berechnung von Mengen sowie logische Operationen kennen zu lernen. Wir haben unter anderem am Anfang gelernt das mit verschiedenen Rechenoperatoren die Mengen nach unterschiedlichen Gesichtspunkten verknüpft werden können.
Bsp: Eine Menge A={1,2,3} und eine Menge B={3,4,5}.
Sie können mit U Vereinigt werden zu: A U B = {1,2,3,4,5}
oder mit ∩ eine Schnittmenge ergeben: A ∩ B = {3}
oder durch \ Maskiert werden: A \ B={1,2} oder B \ A={4,5} (Sprich: A ohne B)
Soviel mal zur Theorie. Ich hatte in den vergangenen Monaten ein konkretes Anwendungsproblem, ich wollte zwei verschiedene Mengen (Meine Steam Spiele mit denen von einem Kommilitonen) vergleichen, um Unterschiede und Gemeinsamkeiten sichtbar zu machen. Da ich bereits etwas Erfahrung mit C# gesammelt habe (durch meinen Primezahlen Rechner oder durch das Tic Tac Toe Spiel) habe ich mich für diese Programmiersprache und die Entwicklungsumgebung entschieden. Der Nachteil an C# ist, das es sich nicht ohne weites unter Linux oder Mac ausführen lässt.
Also habe ich mich entschieden den Mengenrechner mit der Hilfe von Javascript umzusetzen. Das umschreiben war nicht weiter schwierig, da das Programm nur mit dem Auslesen von Zeichenketten aus einem Textfeld und dem Zerlegen der Zeichenketten nach dem \n arbeitet. Um genauer zu sein Jede Zeile ist ein Element, wobei eine eventuell letzte leere Ziele auch als ein Element zählt. Und der gesamte Text aus einem Textfeld wird nach dem „Neue Zeile“ Steuerzeichen \n in ein Array aufgeteilt. Diese Arrays werden dann an Funktionen übergeben, die eine neue Menge in die Ausgabebox ausgeben.
So können Beliebige listen vereinigt oder geschnitten werden, das Script arbeitet mit dem vergleichen von Strings (Zeichenketten) so können auch Namen oder Buchstaben verwendet werden. Ich habe gerade eben, während ich diesen Artikel schreibe, kurz nach einem „Set Calculator“ gesucht. Ich habe aber nur einfache Gefunden, die nur einzeilige mengen annehmen.
Die Javascript Version könnt ihr über drücken auf das zweite Bild oder über diesen Link Erreichen