====== Programmieren im Graphentester: Einstieg ======
Innerhalb des Graphentesters kann man eigene Algorithmen implementieren, die anschließend auf die im Graphentester geladenen Graphen angewandt werden.
===== Erste Schritte =====
Ein Überblick mit Beispielen zur Verwendung des Graphentesters zur Implementation eigener Algorithmen findet sich [[..:hilfekarten:start|auf dieser Wikiseite]].
----
{{:aufgabe.png?nolink |}}
=== (A1) ===
* Lege im Unterordner ''eigene Algorithmen'' eine neue Klasse für deinen ersten Algorithmus an.
* Lasse dir als Test die Zahl der Knoten eines geladenen Graphen auf der Konsole ausgeben.
* Lade einen Graphen und teste deinen Algorithmus.
++++ Beispielausgabe |
Knotenzahl: 12
++++
----
{{:aufgabe.png?nolink |}}
=== (A2) ===
Erweitere deinen Algorithmus so, dass für alle Knoten des Graphen die Koordinaten ausgegeben werden.
++++ Beispielausgabe |
Knotenzahl: 12
Knoten 0 x=122 y=257
Knoten 1 x=284 y=196
Knoten 2 x=191 y=353
Knoten 3 x=332 y=293
Knoten 4 x=438 y=240
Knoten 5 x=448 y=402
Knoten 6 x=218 y=273
Knoten 7 x=198 y=431
Knoten 8 x=334 y=382
Knoten 9 x=107 y=365
Knoten 10 x=488 y=195
Knoten 11 x=488 y=326
++++
----
{{:aufgabe.png?nolink |}}
=== (A3) ===
Erweitere deinen Algorithmus so, dass du alle Knoten mit der Farbe mit dem Index 9 einfärbst, indem du von einem Startknoten ausgehst.
Lege eine ToDo-Liste an, gehe von einem Start-Knoten aus, füge jeweils Nachbarknoten, die noch nicht gefärbt sind und noch nicht in der Liste der zu bearbeitenden Knoten sind, der Liste hinzu - solange bis alle Knoten eingefärbt sind.
Verwende die ''step()''-Anweisung des Graphentesters, um nachvollziehen zu können, wie der Algorithmus die Knoten färbt.
Teste deinen Algorithmus mit den beiden Beispielgraphen
* ''01_eulerkreis/03_zusammenhang_beispiel1.csv''
* ''01_eulerkreis/04_zusammenhang_beispiel2.csv''
und unterschiedlichen Startknoten.
++++ Beispielausgabe |
{{ :faecher:informatik:oberstufe:graphen:zpg:gt_prog:floodfill.gif |}}
++++
----
{{:aufgabe.png?nolink |}}
=== (A4) ===
Schreibe einen Algorithmus, der einen gegebenen Graphen auf die Existenz eines Eulerzugs sowie die Existenz eines Eulerkreises untersucht und seine Ergebnisse auf der Konsole ausgibt.