Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
faecher:informatik:oberstufe:graphen:zpg:hilfekarten:start [17.11.2022 08:16] – [info()] Frank Schiebel | faecher:informatik:oberstufe:graphen:zpg:hilfekarten:start [09.04.2025 10:54] (aktuell) – [Bearbeiten - Panel] Frank Schiebel | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ~~NOTOC~~ | ||
+ | |||
====== Hilfestellung zur Programmierung mit dem Graphentester ====== | ====== Hilfestellung zur Programmierung mit dem Graphentester ====== | ||
Zeile 5: | Zeile 7: | ||
</ | </ | ||
+ | ===== Grundsätzliche Strukur ===== | ||
+ | |||
+ | Damit deine Algorithmen überhaupt kompilieren können und vom Graphentester erkannt werden, muss jede Klasse ein paar bestimmte Befehle enthalten. Grundsätzlich gilt folgende Struktur. | ||
+ | |||
+ | <code java> | ||
+ | package eigeneAlgorithmen; | ||
+ | |||
+ | import graph.*; | ||
+ | import algorithmen.*; | ||
+ | |||
+ | public class GraphAlgo_MeineKlasse extends GraphAlgo | ||
+ | { | ||
+ | Graph g; | ||
+ | |||
+ | public String getBezeichnung() { | ||
+ | return " | ||
+ | } | ||
+ | |||
+ | public void fuehreAlgorithmusAus() { | ||
+ | g = getGraph(); | ||
+ | // ... | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Folgende Punkte sind dabei wichtig: | ||
+ | * Das '' | ||
+ | * Die beiden import-Statements benötigt man, um die bereits vorgefertigten Graphen-Algorithmen nutzen zu können. | ||
+ | * **Der Klassenname muss mit GraphAlgo_ beginnen** | ||
+ | * Die Klasse muss die Elternklasse GraphAlgo erweitern | ||
+ | * Wegen der Vererbung müssen die folgenden zwei Methoden geerbt werden: | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | ===== Wichtige Tasks ===== | ||
< | < | ||
Zeile 23: | Zeile 60: | ||
| | ||
// Ausführung unterbrechen | // Ausführung unterbrechen | ||
- | | + | |
} | } | ||
</ | </ | ||
Zeile 217: | Zeile 254: | ||
</ | </ | ||
<panel title=" | <panel title=" | ||
- | Um Infos oder Ergebnisse auszugeben, bietet der Graphentester drei Möglichkeiten an: | + | Um Informationen |
==== Java Konsole ==== | ==== Java Konsole ==== | ||
Zeile 235: | Zeile 272: | ||
{{ : | {{ : | ||
- | Mit Hilfe der Methoden '' | + | Mit Hilfe der Methoden '' |
+ | Beispiel: | ||
+ | <code java> | ||
+ | info(" | ||
+ | infoIndentMore(); | ||
+ | for(Knoten k: alleKnoten) { | ||
+ | int Eingangsgrad = g.getEingehendeKanten(k).size(); | ||
+ | info(" | ||
+ | k.setWert(Eingangsgrad); | ||
+ | } | ||
+ | infoIndentLess(); | ||
+ | info(" | ||
+ | </ | ||
+ | |||
+ | {{: | ||
</ | </ | ||
</ | </ | ||
+ | |||
+ | ==== Code-Beispiele ==== | ||
+ | |||
+ | === Setze alle Knotenwerte === | ||
+ | |||
+ | Alle Knoten kann man direkt in einer Schleife verarbeiten: | ||
+ | |||
+ | <code java> | ||
+ | // Setze alle Knotenwerte auf 0 | ||
+ | for(Knoten k : g.getAlleKnoten()) { | ||
+ | k.setWert(0); | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | <code java> | ||
+ | // Setze alle Knotenwerte auf " | ||
+ | for(Knoten k : g.getAlleKnoten()) { | ||
+ | k.setWert(Double.POSITIVE_INFINITY); | ||
+ | } | ||
+ | </ |