faecher:informatik:oberstufe:graphen:zpg:hilfekarten:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

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 Schiebelfaecher: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:
 </WRAP> </WRAP>
  
 +===== 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 "MeineKlasse";
 +    }
 +
 +    public void fuehreAlgorithmusAus() {
 +        g = getGraph();
 +        // ...
 +    }
 +}
 +</code>
 +
 +Folgende Punkte sind dabei wichtig:
 +  * Das ''package'' ergibt sich automatisch aus dem Verzeichnis
 +  * 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:
 +    * ''public String getBezeichnung()'': Darin wird der leserliche Name definiert/zurückgegeben, der in der GUI auf deinen Algorithmus verweist.
 +    * ''public void fuehreAlgorithmusAus()'': Hierin schreibst du deinen Algorithmus (das ersetzt sozusagen die main-Methode).
 +
 +===== Wichtige Tasks =====
  
 <accordion id="hilfekarte"> <accordion id="hilfekarte">
Zeile 23: Zeile 60:
    aktuellerKnoten.setMarkiert(true);    aktuellerKnoten.setMarkiert(true);
    // Ausführung unterbrechen    // Ausführung unterbrechen
-   step();Hilfestellung zur Programmierung mit dem Graphentester+   step();
 } }
 </code> </code>
Zeile 217: Zeile 254:
 </panel> </panel>
 <panel title="Ausgabe von Informationen/Ergebnissen"> <panel title="Ausgabe von Informationen/Ergebnissen">
-Um Infos oder Ergebnisse auszugeben, bietet der Graphentester drei Möglichkeiten an:+Um Informationen oder Ergebnisse eigener Algorithmen auszugeben, bietet der Graphentester drei Möglichkeiten an:
  
 ==== Java Konsole ==== ==== Java Konsole ====
Zeile 235: Zeile 272:
 {{ :faecher:informatik:oberstufe:graphen:zpg:hilfekarten:help.png?320|}} {{ :faecher:informatik:oberstufe:graphen:zpg:hilfekarten:help.png?320|}}
  
-Mit Hilfe der Methoden ''info(String s)'', ''resetInfo()'', ''infoIndentMore()'' und ''infoIndentLess()'' kann man Informationen -- auch während des Programmablaufs -- innerhalb des Hilfefensters ausgeben. Das Hilfe-Fenster kann man im Graphentester im Menü ''Hilfe->Hilfefenster'' anzeigen aktivieren+Mit Hilfe der Methoden ''info(String s)'', ''resetInfo()'', ''infoIndentMore()'' und ''infoIndentLess()'' kann man Informationen -- auch während des Programmablaufs -- innerhalb des Hilfefensters ausgeben. Das Hilfe-Fenster kann man im Graphentester im Menü ''Hilfe->Hilfefenster anzeigen'' aktivieren
  
 +Beispiel: 
  
 +<code java>
 +info("Setze Eingangsgrad aller Knoten.");
 +infoIndentMore();
 +for(Knoten k: alleKnoten) {
 +    int Eingangsgrad = g.getEingehendeKanten(k).size();
 +    info("Setze Eingangsgrad von " + k.getInfotext());
 +    k.setWert(Eingangsgrad);
 +}
 +infoIndentLess();
 +info("Eingangsgrade gesetzt");
 +</code>
 +
 +{{:faecher:informatik:oberstufe:graphen:zpg:hilfekarten:hilfefenster.png |}}
 </panel> </panel>
 </accordion> </accordion>
 +
 +==== 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>
 +
 +<code java>
 +// Setze alle Knotenwerte auf "unendlich"
 +for(Knoten k : g.getAlleKnoten()) {
 +    k.setWert(Double.POSITIVE_INFINITY);
 +}
 +</code>
  • faecher/informatik/oberstufe/graphen/zpg/hilfekarten/start.1668673003.txt.gz
  • Zuletzt geändert: 17.11.2022 08:16
  • von Frank Schiebel