====== 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.