From 7e11c6835243285cd160f5ef7f33d796de6c06ea Mon Sep 17 00:00:00 2001 From: Jordi Date: Wed, 19 Apr 2023 12:04:11 +0200 Subject: [PATCH] aa --- {untitled/.idea => .idea}/.gitignore | 0 .idea/misc.xml | 6 + .idea/modules.xml | 9 + .idea/uiDesigner.xml | 124 +++++++++++ .idea/vcs.xml | 6 + .../UEB03/BSP03-ListeMitVerkettung/Main.java | 6 + {untitled => AuD}/.gitignore | 0 {untitled => AuD}/.idea/misc.xml | 0 {untitled => AuD}/.idea/modules.xml | 0 {untitled => AuD}/.idea/vcs.xml | 0 untitled/untitled.iml => AuD/AuD.iml | 0 {untitled/src => AuD/src/UEB01}/Main.java | 2 + {untitled/src => AuD/src/UEB01}/StopUhr.java | 2 + .../src => AuD/src/UEB01}/Zeitmessung.java | 2 + AuD/src/UEB03/Link.java | 20 ++ AuD/src/UEB03/Liste.java | 189 ++++++++++++++++ AuD/src/UEB03/ListeCanvas.java | 47 ++++ AuD/src/UEB03/ListeGUI.java | 202 ++++++++++++++++++ AuD/src/UEB03/ListeIterator.java | 33 +++ AuD/src/UEB03/ListeTest.java | 9 + AuD/src/UEB03/Main.java | 10 + FH.iml | 12 ++ out/production/AuD/UEB01/Main.class | Bin 0 -> 367 bytes out/production/AuD/UEB01/StopUhr.class | Bin 0 -> 601 bytes out/production/AuD/UEB01/Zeitmessung.class | Bin 0 -> 2143 bytes out/production/AuD/UEB03/Link.class | Bin 0 -> 1012 bytes out/production/AuD/UEB03/Liste.class | Bin 0 -> 3250 bytes out/production/AuD/UEB03/ListeCanvas.class | Bin 0 -> 1949 bytes out/production/AuD/UEB03/ListeGUI$1.class | Bin 0 -> 641 bytes .../AuD/UEB03/ListeGUI$AktionsAbhoerer.class | Bin 0 -> 4091 bytes out/production/AuD/UEB03/ListeGUI.class | Bin 0 -> 3181 bytes out/production/AuD/UEB03/ListeIterator.class | Bin 0 -> 1231 bytes out/production/AuD/UEB03/ListeTest.class | Bin 0 -> 452 bytes out/production/AuD/UEB03/Main.class | Bin 0 -> 688 bytes 34 files changed, 679 insertions(+) rename {untitled/.idea => .idea}/.gitignore (100%) create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/uiDesigner.xml create mode 100644 .idea/vcs.xml create mode 100644 Algorithmen und Datenstrukturen/UEB03/BSP03-ListeMitVerkettung/Main.java rename {untitled => AuD}/.gitignore (100%) rename {untitled => AuD}/.idea/misc.xml (100%) rename {untitled => AuD}/.idea/modules.xml (100%) rename {untitled => AuD}/.idea/vcs.xml (100%) rename untitled/untitled.iml => AuD/AuD.iml (100%) rename {untitled/src => AuD/src/UEB01}/Main.java (93%) rename {untitled/src => AuD/src/UEB01}/StopUhr.java (87%) rename {untitled/src => AuD/src/UEB01}/Zeitmessung.java (93%) create mode 100644 AuD/src/UEB03/Link.java create mode 100644 AuD/src/UEB03/Liste.java create mode 100644 AuD/src/UEB03/ListeCanvas.java create mode 100644 AuD/src/UEB03/ListeGUI.java create mode 100644 AuD/src/UEB03/ListeIterator.java create mode 100644 AuD/src/UEB03/ListeTest.java create mode 100644 AuD/src/UEB03/Main.java create mode 100644 FH.iml create mode 100644 out/production/AuD/UEB01/Main.class create mode 100644 out/production/AuD/UEB01/StopUhr.class create mode 100644 out/production/AuD/UEB01/Zeitmessung.class create mode 100644 out/production/AuD/UEB03/Link.class create mode 100644 out/production/AuD/UEB03/Liste.class create mode 100644 out/production/AuD/UEB03/ListeCanvas.class create mode 100644 out/production/AuD/UEB03/ListeGUI$1.class create mode 100644 out/production/AuD/UEB03/ListeGUI$AktionsAbhoerer.class create mode 100644 out/production/AuD/UEB03/ListeGUI.class create mode 100644 out/production/AuD/UEB03/ListeIterator.class create mode 100644 out/production/AuD/UEB03/ListeTest.class create mode 100644 out/production/AuD/UEB03/Main.class diff --git a/untitled/.idea/.gitignore b/.idea/.gitignore similarity index 100% rename from untitled/.idea/.gitignore rename to .idea/.gitignore diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..dbb096c --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..d2787ab --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml new file mode 100644 index 0000000..2b63946 --- /dev/null +++ b/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Algorithmen und Datenstrukturen/UEB03/BSP03-ListeMitVerkettung/Main.java b/Algorithmen und Datenstrukturen/UEB03/BSP03-ListeMitVerkettung/Main.java new file mode 100644 index 0000000..803a479 --- /dev/null +++ b/Algorithmen und Datenstrukturen/UEB03/BSP03-ListeMitVerkettung/Main.java @@ -0,0 +1,6 @@ + public class Main{ + public static void main(String[] args) { + Link mittleresElement = new Link(T,"Test"); + + } + } \ No newline at end of file diff --git a/untitled/.gitignore b/AuD/.gitignore similarity index 100% rename from untitled/.gitignore rename to AuD/.gitignore diff --git a/untitled/.idea/misc.xml b/AuD/.idea/misc.xml similarity index 100% rename from untitled/.idea/misc.xml rename to AuD/.idea/misc.xml diff --git a/untitled/.idea/modules.xml b/AuD/.idea/modules.xml similarity index 100% rename from untitled/.idea/modules.xml rename to AuD/.idea/modules.xml diff --git a/untitled/.idea/vcs.xml b/AuD/.idea/vcs.xml similarity index 100% rename from untitled/.idea/vcs.xml rename to AuD/.idea/vcs.xml diff --git a/untitled/untitled.iml b/AuD/AuD.iml similarity index 100% rename from untitled/untitled.iml rename to AuD/AuD.iml diff --git a/untitled/src/Main.java b/AuD/src/UEB01/Main.java similarity index 93% rename from untitled/src/Main.java rename to AuD/src/UEB01/Main.java index 0afa126..cae9f59 100644 --- a/untitled/src/Main.java +++ b/AuD/src/UEB01/Main.java @@ -1,3 +1,5 @@ +package UEB01; + // Press Shift twice to open the Search Everywhere dialog and type `show whitespaces`, // then press Enter. You can now see whitespace characters in your code. public class Main { diff --git a/untitled/src/StopUhr.java b/AuD/src/UEB01/StopUhr.java similarity index 87% rename from untitled/src/StopUhr.java rename to AuD/src/UEB01/StopUhr.java index 3dd7d4f..ef00ef2 100644 --- a/untitled/src/StopUhr.java +++ b/AuD/src/UEB01/StopUhr.java @@ -1,3 +1,5 @@ +package UEB01; + public class StopUhr { private long startTime, stopTime; diff --git a/untitled/src/Zeitmessung.java b/AuD/src/UEB01/Zeitmessung.java similarity index 93% rename from untitled/src/Zeitmessung.java rename to AuD/src/UEB01/Zeitmessung.java index 86d3b37..9c49368 100644 --- a/untitled/src/Zeitmessung.java +++ b/AuD/src/UEB01/Zeitmessung.java @@ -1,3 +1,5 @@ +package UEB01; + public class Zeitmessung { static int tuWasCounter = 0; diff --git a/AuD/src/UEB03/Link.java b/AuD/src/UEB03/Link.java new file mode 100644 index 0000000..53ac8f7 --- /dev/null +++ b/AuD/src/UEB03/Link.java @@ -0,0 +1,20 @@ +package UEB03; + +public class Link +{ + public T daten; + public Link naechster; + + public Link(T daten, Link naechster) + { + assert(daten != null); + + this.daten = daten; + this.naechster = naechster; + } + + public String toString() + { + return daten.toString(); + } +} \ No newline at end of file diff --git a/AuD/src/UEB03/Liste.java b/AuD/src/UEB03/Liste.java new file mode 100644 index 0000000..30c9d31 --- /dev/null +++ b/AuD/src/UEB03/Liste.java @@ -0,0 +1,189 @@ +package UEB03; + +import java.util.*; + +public class Liste +{ + protected Link anfang; + protected Link ende; + + public Liste() + { + // Leere Liste: alle Zeiger sind null (Standardwerte) + } + + // Einfachster Fall und gleichzeitig Sonderfall: + // Element am Anfang einf�gen + public void einfuegen(final T daten) + { + // Funktioniert immer + anfang = new Link(daten, anfang); + + // Bei einer leeren Liste muss auch ende gesetzt werden + if (ende == null) + ende = anfang; + } + + // Einfachster Fall und gleichzeitig Sonderfall: + // Element am Anfang entfernen + public T entfernen() + { + T opfer = null; + + // Clowns k�nnten diese Methode bei leerer Liste aufrufen + if (!istLeer()) + { + // Bei einer Liste mit nur noch einem Element muss + // auch ende gel�scht werden + if (anfang == ende) + ende = null; + + opfer = anfang.daten; + anfang = anfang.naechster; + } + + return opfer; + } + + // Einfacher Fall: Anf�gen am Ende der Liste + public void anfuegen(final T daten) + { + // Neuen Link anlegen + Link neu = new Link(daten, null); + + // Wenn die Liste leer ist, m�ssen anfang und ende gesetzt werden + if (istLeer()) + { + // Neuen Link als anfang der Liste + anfang = ende = neu; + } + else + { + // Anf�gen des Elements an das bisherige ende + ende = ende.naechster = neu; + } + } + + // EINF�GEN AN EINER BESTIMMTEN STELLE + // Der Programmcode ist so gestaltet, dass er fehlerhafte Eingaben + // (z.B. eine negative oder zu hohe Position) elegant verarbeitet + // ohne abzust�rzen. + public void einfuegen(final T daten, int position) + { + // Wenn die Liste leer oder die Position 0 ist, entspricht dies + // einem Einf�gen am Anfang + if (istLeer() || (position <= 0)) + { + einfuegen(daten); + + return; + } + + // VORG�NGER ZUR POSITION FINDEN + // Dessen Vorg�nger muss es geben: lediglich bei einer leeren + // Liste oder f�r position==0 gibt es keinen. Genau diese F�lle + // wurden aber oben bereits behandelt! Wird eine zu hohe position + // �bergeben, wird automatisch das letzte Element zum Vorg�nger. + Link vorgaenger = anfang; + + while ((--position > 0) && (vorgaenger.naechster != null)) + vorgaenger = vorgaenger.naechster; + + // Neues Element erzeugen + vorgaenger.naechster = new Link(daten, vorgaenger.naechster); + + // Beim Einf�gen als letztes Element muss auch ende gesetzt werden + if (vorgaenger == ende) + ende = vorgaenger.naechster; + } + + public T entfernen(int position) + { + // Wenn die Liste leer oder die position < 0 ist, wird kein Element + // entfernt + if (istLeer() || (position < 0)) + return null; + + // Wenn die position 0 ist, wird am Anfang der Liste gel�scht + if (position == 0) + return entfernen(); + + // VORG�NGER ZUR POSITION FINDEN + // Bei einer leeren Liste oder f�r position==0 gibt es keinen Vorg�nger; + // genau diese F�lle wurden oben bereits behandelt. Es gibt aber auch + // keinen Vorg�ner, wenn position zu gro� ist! In diesem Fall wird das + // letzte Element NICHT Vorg�nger, damit nur tats�chlich existierende + // Elemente aus der Liste entfernt werden. + Link vorgaenger = anfang; + + while ((--position > 0) && (vorgaenger != null)) + vorgaenger = vorgaenger.naechster; + + // Gibt es ein Element zum l�schen? + if ((vorgaenger == null) || (vorgaenger.naechster == null)) + return null; + + final T opfer = vorgaenger.naechster.daten; + + // Element l�schen und ggf. ende anpassen beim L�schen des letzten + // Listen-Elements + if ((vorgaenger.naechster = vorgaenger.naechster.naechster) == null) + ende = vorgaenger; + + return opfer; + } + + // Liefert die Position eines bestimmten Elements oder -1 zur�ck. + // Existiert ein Element mehrfach, wird die Position des ersten Vorkommens + // zur�ckgegeben. + public int suchen(final T daten) + { + // Liste leer? + if (istLeer()) + return -1; + + Link zeiger = anfang; + int position = 0; + + // Abfrage auf Gleichheit ist m�glich mit equals (Operation von der Klasse Object) + while ((zeiger != null) && !zeiger.daten.equals(daten)) + { + position++; + zeiger = zeiger.naechster; + } + + return (zeiger == null) ? -1 : position; + } + + public ListeIterator iterator() + { + return new ListeIterator(anfang, ende); + } + + // Pr�fen, ob Liste leer ist + public boolean istLeer() + { + return anfang==null; + } + + public void verketten(Liste zweiteListe) + { + assert(zweiteListe != null); + + ende.naechster = zweiteListe.anfang; + ende= zweiteListe.ende; + zweiteListe.anfang = null; + zweiteListe.ende = null; + + } + + public int entferneWerte(final T opfer) + { + int anzGeloeschte = 0; + + // Diese Methode wird im Praktikum implementiert + // TODO + + return anzGeloeschte; + } +} \ No newline at end of file diff --git a/AuD/src/UEB03/ListeCanvas.java b/AuD/src/UEB03/ListeCanvas.java new file mode 100644 index 0000000..0c4105f --- /dev/null +++ b/AuD/src/UEB03/ListeCanvas.java @@ -0,0 +1,47 @@ +package UEB03; + +import java.awt.*; + +public class ListeCanvas extends Canvas +{ + private Liste eineListe; + + public void zeichneNeu(Liste eineListe) + { + this.eineListe = eineListe; + + repaint(); + } + + public void paint(Graphics g) + { + ListeIterator it = eineListe.iterator(); + int x = 0; + int y = 30; + int position = 0; + + while (it.hasNext()) + { + g.setColor(new Color(0xE8, 0xE8, 0xFF)); + g.fillRect(x+1, y+1, 30, 20); + + g.setColor(Color.blue); + g.drawRect(x, y, 30, 20); + + g.drawString(it.next().toString(), x + 1, y + 19); + + if (it.hasNext()) + { + g.setColor(Color.black); + g.drawLine(x + 30, y + 10, x + 45, y + 10); + g.drawLine(x + 45, y + 10, x + 40, y + 5); + g.drawLine(x + 45, y + 10, x + 40, y + 15); + } + + g.setColor(Color.gray); + g.drawString("" + position++, x - 1, y + 35); + + x = x + 45; + } + } +} \ No newline at end of file diff --git a/AuD/src/UEB03/ListeGUI.java b/AuD/src/UEB03/ListeGUI.java new file mode 100644 index 0000000..78e7df0 --- /dev/null +++ b/AuD/src/UEB03/ListeGUI.java @@ -0,0 +1,202 @@ +package UEB03; + +import java.awt.*; +import java.awt.event.*; +import java.applet.*; +import java.util.*; + +public class ListeGUI extends Frame +{ + //Attribute + protected Label wertFuehrungstext; + protected TextField wertTextfeld; + protected Label positionFuehrungstext; + protected TextField positionTextfeld; + protected Button einfuegenDruckknopf; + protected Button anhaengenDruckknopf; + protected Button entfernenDruckknopf; + protected Button alleEntfernenDruckknopf; + protected Button traversierenDruckknopf; + protected Button suchenDruckknopf; + protected Label ausgabeFuehrungstext; + protected TextArea ausgabeTextbereich; + + protected Liste eineListe; + protected ListeCanvas eineZeichenflaeche; //Zeichenfl�che f�r die Animation + + //Operationen + public ListeGUI() + { + setTitle("Verkettete Liste"); + setLayout(null); + setSize(492,315); + add(eineZeichenflaeche = new ListeCanvas()); + eineZeichenflaeche.setBounds(32,32,430,80); + add(wertFuehrungstext= new Label()); + wertFuehrungstext.setText("Wert:"); + wertFuehrungstext.setBounds(30,112,58,23); + add(wertTextfeld = new TextField()); + wertTextfeld.setBounds(90,112,45,23); + add(positionFuehrungstext= new Label()); + positionFuehrungstext.setText("Position:"); + positionFuehrungstext.setBounds(30,137,58,23); + add(positionTextfeld = new TextField()); + positionTextfeld.setBounds(90,137,45,23); + add(einfuegenDruckknopf = new Button()); + einfuegenDruckknopf.setLabel("Einf�gen"); + einfuegenDruckknopf.setBounds(30,170,100,23); + add(anhaengenDruckknopf = new Button()); + anhaengenDruckknopf.setLabel("Anh�ngen"); + anhaengenDruckknopf.setBounds(140,170,100,23); + add(entfernenDruckknopf = new Button()); + entfernenDruckknopf.setLabel("Entfernen"); + entfernenDruckknopf.setBounds(250,170,100,23); + add(alleEntfernenDruckknopf = new Button()); + alleEntfernenDruckknopf.setLabel("Alle entfernen"); + alleEntfernenDruckknopf.setBounds(360,170,100,23); + add(traversierenDruckknopf = new Button()); + traversierenDruckknopf.setLabel("Traversieren"); + traversierenDruckknopf.setBounds(30,220,100,23); + add(suchenDruckknopf = new Button()); + suchenDruckknopf.setLabel("Suchen"); + suchenDruckknopf.setBounds(140,220,100,23); + add(ausgabeFuehrungstext= new Label()); + ausgabeFuehrungstext.setText("Ausgabe:"); + ausgabeFuehrungstext.setBounds(30,255,58,23); + add(ausgabeTextbereich = new TextArea("", 1, 1000, TextArea.SCROLLBARS_NONE)); + ausgabeTextbereich.setBounds(90,255,370,23); + ausgabeTextbereich.setEnabled(false); + + // Registrieren der Ereignisabh�rer + AktionsAbhoerer einAktionsAbhoerer = new AktionsAbhoerer(); + einfuegenDruckknopf.addActionListener(einAktionsAbhoerer); + anhaengenDruckknopf.addActionListener(einAktionsAbhoerer); + entfernenDruckknopf.addActionListener(einAktionsAbhoerer); + alleEntfernenDruckknopf.addActionListener(einAktionsAbhoerer); + suchenDruckknopf.addActionListener(einAktionsAbhoerer); + traversierenDruckknopf.addActionListener(einAktionsAbhoerer); + + // Test f�r Verkettung zweier Listen + eineListe = new Liste(); + eineListe.anfuegen(new Character('A')); + eineListe.anfuegen(new Character('B')); + Liste zweiteListe = new Liste(); + zweiteListe.anfuegen(new Character('C')); + zweiteListe.anfuegen(new Character('D')); + eineListe.verketten(zweiteListe); + + eineZeichenflaeche.zeichneNeu(eineListe); + + addWindowListener( + new WindowAdapter() + { + public void windowClosing(WindowEvent e) + { + System.exit(0); + } + } + ); + } + + //Innere Klasse f�r die Ereignisabh�rer + class AktionsAbhoerer implements ActionListener + { + private Character getCharacter() + { + final String s = wertTextfeld.getText(); + + return (s.length() > 0) ? s.charAt(0) : '?'; + } + + private int getPosition() + { + try + { + return Integer.valueOf(positionTextfeld.getText()); + } + catch(NumberFormatException e) + { + ausgabeTextbereich.setText("Es wurde kein Position angegeben. Standardwert: 0 (Listenanfang)"); + } + + return 0; + } + + private void finish() + { + wertTextfeld.setText(""); + positionTextfeld.setText(""); + + eineZeichenflaeche.zeichneNeu(eineListe); + } + + private void finish(final String ausgabe) + { + ausgabeTextbereich.setText(ausgabe); + + finish(); + } + + public void actionPerformed(ActionEvent event) + { + Object o = event.getSource(); + ausgabeTextbereich.setText(""); + + if (o == einfuegenDruckknopf) + { + eineListe.einfuegen(getCharacter(), getPosition()); + finish(); + + return; + } + + if (o == anhaengenDruckknopf) + { + eineListe.anfuegen(getCharacter()); + finish(); + + return; + } + + if (o == entfernenDruckknopf) + { + if (eineListe.entfernen(getPosition()) == null) + ausgabeTextbereich.setText("Es wurde kein Opfer gefunden!"); + + finish(); + + return; + } + + if (o == suchenDruckknopf) + { + final int position = eineListe.suchen(getCharacter()); + finish(position == -1 ? "Der Wert wurde nicht gefunden." : "Der gesuchte Wert wird zum ersten Mal an Position " + position + " gefunden."); + + return; + } + + if (o == alleEntfernenDruckknopf) + { + finish(eineListe.entferneWerte(getCharacter()) + " Elemente wurden entfernt."); + + return; + } + + if (o == traversierenDruckknopf) + { + String ausgabe = ""; + + ListeIterator e = eineListe.iterator(); + while (e.hasNext()) + ausgabe += e.next() + " "; + + finish(ausgabe); + + return; + } + + finish(); + } + } +} \ No newline at end of file diff --git a/AuD/src/UEB03/ListeIterator.java b/AuD/src/UEB03/ListeIterator.java new file mode 100644 index 0000000..bfc57c7 --- /dev/null +++ b/AuD/src/UEB03/ListeIterator.java @@ -0,0 +1,33 @@ +package UEB03; + +import java.util.*; + +public class ListeIterator implements Iterator +{ + private Link zeiger; + private Link ende; + + ListeIterator(Link start, Link ende) + { + zeiger = start; + this.ende = ende; + } + + public boolean hasNext() + { + return zeiger != null; + } + + public T next() + { + final T daten = zeiger.daten; + zeiger = zeiger.naechster; + + return daten; + } + + public void remove() + { + throw new UnsupportedOperationException(); + } +} \ No newline at end of file diff --git a/AuD/src/UEB03/ListeTest.java b/AuD/src/UEB03/ListeTest.java new file mode 100644 index 0000000..e27c504 --- /dev/null +++ b/AuD/src/UEB03/ListeTest.java @@ -0,0 +1,9 @@ +package UEB03; + +public class ListeTest +{ + public static void main(String[] args) + { + new ListeGUI().setVisible(true); + } +} \ No newline at end of file diff --git a/AuD/src/UEB03/Main.java b/AuD/src/UEB03/Main.java new file mode 100644 index 0000000..fbde1ea --- /dev/null +++ b/AuD/src/UEB03/Main.java @@ -0,0 +1,10 @@ +package UEB03; + +public class Main { + public static void main(String[] args) { + Link ende = new Link("Letzter", null); + Link mittleresElement = new Link("Test", ende); + Link anfang= new Link("TErster", mittleresElement); + + } +} diff --git a/FH.iml b/FH.iml new file mode 100644 index 0000000..2d81a35 --- /dev/null +++ b/FH.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/out/production/AuD/UEB01/Main.class b/out/production/AuD/UEB01/Main.class new file mode 100644 index 0000000000000000000000000000000000000000..7332e856b9327abfb93c83cb28bba4cee7e0973d GIT binary patch literal 367 zcmZut!AiqG5Pg%Tjfv4}E8e}e3P#Tr5k*f?57k^eZQ>HQq#IaM|Enj#gCF2Wi8G;4 zK^Jyr=e?OXGyC=Z@d@Apdl5Wz0{Ahy=n-~i>P;n;vSo6g&velcdS}L(=A6(Ojk5q7 zgy`}5^5itRRmKwhtNK|J`l+${ZZXfbdr*1B$RMo?Rb|QBep^_h)uTf>K$W?qY&HZGa|)Dd?oKsVfd?%zY)7_;()D(;SaF^K-K^N literal 0 HcmV?d00001 diff --git a/out/production/AuD/UEB01/StopUhr.class b/out/production/AuD/UEB01/StopUhr.class new file mode 100644 index 0000000000000000000000000000000000000000..62f7f2124b23fb01931b9dc1910f1452f8ae2f13 GIT binary patch literal 601 zcmZ{h$xg#S42J(n(`IS9(6aB`pa%jH;sQd5?SLvcbh%GU)TU|^luVI$C=N&<5CA!?Yk8b-q+d@ zgB1%NiGiFc@vMV6sWfBK3=Z`3@Q!e~vLARi{a(Y1s=U#qOrab$dAH6ZU&h0vF4}%9 z)l*j;F(lPp47wyUq+6c2=to@mVZdNl!hY2Bu6)ULhW+izZD5N=&}ds4Jv4;+q87>P zASzO1=P7c@GxEvO8`!gwEs&MRKmvCJdgl+`evq&PvaM_sHd)y5D1-&igH literal 0 HcmV?d00001 diff --git a/out/production/AuD/UEB01/Zeitmessung.class b/out/production/AuD/UEB01/Zeitmessung.class new file mode 100644 index 0000000000000000000000000000000000000000..460d6d9351bcbff26bb93762859e5be95a5abaf1 GIT binary patch literal 2143 zcmah}TT>KA6#jZ=mw{#EvcMul2qp*%CN3C7WkFHU09n*zRlMY4vy3pZJF_*@%JX+@R_3Q-KS}N|;cK4h<^PTT}=XC$}_w!!?EMO~* z1Pl{N3n{b+blsN^WWFNZt^AdZ`*v9gw9GlKqs|H#xrrNXXhoZew1sw90^QdyUYMHB z-?kl9wSypZw*)K|uFGK23teUV0%9eN4s@F6ve1o;K*y^PYf^19fG^!muNnndN;5#O zg+A?>QsF}xnCKTcP!Cj6UhVp}pGFpj0rAy$di9otLz;UkP|{Z#VA#Uj7@_4}=$5Ai zlDU-$B4_cAg?F`UG9XYJj$q8hxP=@hUQ507I8e4GM4&Ac3JNqTTed%xMAp2}n<#3zb)fp3r8-u}H=gO71 zVbdiq^vm`oN2k%%(4@z-qBLFbJQXNk*4Avb?QI5~Eue1exM|{+F5Yc{(O2E-xDUJ? zJ6|tSy`Gn3S$Y0rfv+2D5IfdEm)YDEI~Xl`-cDF6G-ujidF{h%k8Acm?u}y9k7%K> zg<^ z`->GB1U8RyS>Q;MqWcMDf;Aide^*`|byabgU7g^OWBK*P#Ffc4Z#0ez`Y3W1oKus} zAb#Q^f%6>oHelcaN2~6DMJ(|xt#2S&7P!tu(DZl$GkN!Cn7cUeBkdx>&=)8emiHnb zUOVwuA(DK6{*Gni?9kx%=p5fgPkH%EL;Ud1pW_<9hyb$W33L*sn*bTEx*5DTA~iyv zB;PNRo}s~TDatNEj}NiTP%E^O!e2-l;sv^hz!M)+_=ewV?6LnS3>!1azGMTJB)R+% zG5WoM(J<8m2Fd6U@rKB07za5I^L>=)TCPcATijXYs1qI8<2bg*akPPBH02nKdXEq~!M={=!Ee!3mufIoDeR}!7@6f*yh+ABiXI$`7-geE^zB9OX^3tj z@e&C`%kvS6am*KS%tyZ}?iW6+#lWc(*rgaJfI8E8luzhE_TcBkQ^L)-zxf0It zrdq%qzDWvTvvVJ^cXe@e+W?QShRd8=QNtBnW!CMeM)D+R`*`ng3~@*QQaUkBs@~Z3 l!;vD?C$uFP@EYe{zF()uooM_l8owX`-Gu@h*u*^y{0k&twfX=6 literal 0 HcmV?d00001 diff --git a/out/production/AuD/UEB03/Link.class b/out/production/AuD/UEB03/Link.class new file mode 100644 index 0000000000000000000000000000000000000000..db7775eff9e437e4d17a59ebbbe5ad3d7dc1501a GIT binary patch literal 1012 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 literal 0 HcmV?d00001 diff --git a/out/production/AuD/UEB03/ListeGUI$1.class b/out/production/AuD/UEB03/ListeGUI$1.class new file mode 100644 index 0000000000000000000000000000000000000000..602dcc8c2325f73840c945a8ad1460a4e1ce6ad4 GIT binary patch literal 641 zcmaJTdVca`c|LmL+im3PvRqJiYCho>P5n6CyZ=oWp^k)%Mtb7)b~9h2 z&KqMIsG{m0r|k)S88mE6G4!;z&5+s`k=_j=y1R5$DG`=^9z`O;G&1zP%rdbPy`Z`1 zZJ97;<{rTwV!5AUl4#%rS&BoSB{>Yx&J+(4$LJZx2t{MFMi|>9o?w65n12K~g@v;} htVS_Lr5461uLF5Z5L%c-f;u+LBxVR5%E=JYdIxn7fV2Pr literal 0 HcmV?d00001 diff --git a/out/production/AuD/UEB03/ListeGUI$AktionsAbhoerer.class b/out/production/AuD/UEB03/ListeGUI$AktionsAbhoerer.class new file mode 100644 index 0000000000000000000000000000000000000000..7bd375601e993b3c2b4a926b597f24ff221fa942 GIT binary patch literal 4091 zcmaJ^ZFCe@8Gi0&li6$rvMk?$l%xZ_}rP<>@0~rC)u63_r1^i z^}O$U_tpQ-Tmf)9{!)(!YBWT3)S^z{hJ*dRo40mm@{TKa9Za|MjJtWubb5w!mb9fU zQ0M0IPRnM2M5bD_D~=fIHN+;?6u*sd5RHYFMUYIaUZH=ZXku zW72~mL~EN5;u*Eywe#i}A)2sC!)hJPxS`5wUw~E@q&ep1Jgd`6Jf&kTZsbNbXV^XT zE83cF>x-iW>onY?V?A007FXQwqnMF(RrIteqfnH4Mg>;1_JysPmFZG(Y1gqq1tl?Q zIeC?Uavb8=gbodzN(pnYsG=lox^hgZSl>F=$*`tCkdAM{79Cra*Rj0m4k^ntyj@^T z1$D4EF)Zz!mOWv({l~L%QW>Kxe20!(@J@!@C^}=tuv7+8Qs%P^)Z*$~_1MzrilIy3 z_I@XItZ0wO)VR!>sl9=BDUyW74@k;}G7f;e9#|;|_tQS+>h5X}X;~S(TiA^-Rmi`u$eX&eDr&-uuPq zx$%A-AHWCcCfyhnrjvDPU*N?DNHy;#kor4mFXYV@iE-X%=?@F$MAFvpJ2=0LFhv)m!Pyv zvdW#+)sbYMzfZ@faGF_~Fvew{Wo8ZcP~Oe)$zi#9#MubD2GWICX*1jPeDAU<8umPnQI$U(suG}8P~b~c^zkPR`n!y zOvAO<(iFKu1W5-QB-c4Sq2Y@lJa3MguFSvB-$ zRXhEPz)kaTEu7#WDoK{Xc@@#;1a1i*3HIN-{{})DzDAbJTf%w;pjb)8>Y$yNEC+7mdu=P zP6pGmPY9d|lP?hTL3eYA7NpaXv8?gpWLL=Oxg4!Jc!2)TBYsB+q1-k@O94b58^eB< zErKzcrSD2JHDDAt`z!YVQE6K-ye61Fdeg);4OrjEyC{^+LwCMLW#0H$_o0tPa{G^U3>xyj_^&% zwFiDDdrR2iKevUR`~9VK2?LcF`!?K7tb4G6Bef0pdNwF*A_kFA+Ij+QnZVyf;2k5p zy}g9}70iY7k0X^)J&i`(KkJk7zMQ`VN?v3IUchA^Inv8>wSZ_OuN>IE(SNyf z8cl%{)OdvdBPEP^$^(gsX)Fs#lrS0Ib*Hhevdgo_uABiik*5$#e*8S@n`iJz(1-gk2I3D+V^xrVv@))QhiCBFDv?L0u_f6%7=V`W__pZE zXbE39i=~^?!&8^>%nYW1!SmPt-o8nJd)70UQID>tu!heMF-Q-SG>>349z_Qp!xlWw zpDAZqOy`in6WGgfzYkC2PCSDNJj;98H15K4IK{F%O{6nS$pseD^Cb3VlI%4m;dRX5 zuXquE!xj7kKg2)rl8EAEQIA(d99P9cHegkV-K5|d7RL7|Uqk7QULtFFCPl)2Ur|~# zmeb6q7x4q8x0V=Jh#J95#8Bk&<$pwZMeAK?cmrEC#G2Pfukm+cR6|6=Auez*@%b8k z4zF>Oe@*{J&5i%TN~2rm;Zf*<1*?|UJB!tW(C^`}(&OYig7-skK1EqBya SCBl2x@A&+C{1Jb~%Krgum@(!6 literal 0 HcmV?d00001 diff --git a/out/production/AuD/UEB03/ListeGUI.class b/out/production/AuD/UEB03/ListeGUI.class new file mode 100644 index 0000000000000000000000000000000000000000..3d0f8c20752b84869bd4718cece98a6274665f83 GIT binary patch literal 3181 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 Qh*cS}D$EMZk(a{!Z+#wwIRF3v literal 0 HcmV?d00001