Schülerlabor Informatik. Info Sphere. Die Suche nach dem KÜRZESTEN WEG

Größe: px
Ab Seite anzeigen:

Download "Schülerlabor Informatik. Info Sphere. Die Suche nach dem KÜRZESTEN WEG"

Transkript

1 Schülerlabor Informatik Info Sphere ie Suche nach dem KÜRZESTEN WEG 9 Januar rtur Nowak Manuel Froitzheim

2

3 Inhaltsverzeichnis Modulbeschreibung 7 Themenbereich Jahrgangsstufe/Kursart Lehrplanbezug Einbindung in den Unterricht auer Vorkenntnisse Lernziel Inhalt Leitfragen Was lernt man in eurem Modul? Wie lässt sich euer Thema fachwissenschaftlich einordnen? Welche informatische Kompetenz/Kompetenzen müssen die Schüler in eurem Modul anwenden? Schülerinnen und 7 Lehrplanbezug 7 blauf blaufdiagramm blauftabelle SEE-Phase TRY-Phase TRY-Phase O-Phase EXPLIN-Phase usführliche eschreibung Vorbereitung SEE-Phase TRY-Phase O-Phase EXPLIN-Phase des blaufs Materialliste Gebrauchsmaterialien Verbrauchsmaterialien Moodle-Kurs Übersicht nimation uf chse Straßenkarte in einem omputer darstellen Verbindungstabelle Programmieren 7 9

4 7 7 Präsentationen Gruppenschilder uf chse Spielanleitung Straßenkarte im omputer darstellen Java in Minuten lernen 9 9 Floyd Warshall Java ++ elphi Pascal Visual asic Visual asic for pplication mit Excel 7 usgabe des lgorithmus von Floyd ijkstra Java ++ elphi Pascal Visual asic Visual asic for pplication mit Excel Kopiervorlagen Spielanleitung Straßenkarte in einem omputer darstellen Floyd Warshall ijkstra Wissenschaftlicher usblick Programmcode Lösungen 9 Hilfestellung zum Programmieren Wissenschaftlicher usblick

5 Modulbeschreibung Themenbereich Theoretische Informatik Jahrgangsstufe/Kursart bis (ifferenzierungsbereich/wahlpflichtbereich) Lehrplanbezug bgedeckt durch: Lehrplan NRW: ildungsstandards: Ja Ja Einbindung in den Unterricht ieses Modul bietet sich ideal als Einführung in die Graphentheorie an auer irca bis Zeitstunden Vorkenntnisse Grundkenntnisse in einer der Programmiersprachen: Java ++ Pascal elphi Visual asic Visual asic for pplication (V) mit Excel

6 7 Lernziel as Lernziel, das von den Schülerinnen und Schülern in dem SLI-Modul erreicht werden soll, ist zum einen das eschreiben der Probleme bei der erechnung des kürzesten Weges in einem Graphen abei sollen die Schülerinnen und Schüler jeden Schritt ihrer earbeitung dokumentieren ie Schülerinnen und Schüler sollen nach der Lerneinheit eine beliebige Straßenkarte in eine djazenzmatrix überführen und erläutern können nhand ihrer okumentation sollen die Schüler und Schülerinnen eine Methode oder Klasse entwerfen und implementieren, um ein gegebenes Wegproblem zu lösen er lgorithmus von Floyd-Warshall und der ijkstra lgorithmus werden den Schülern und Schülerinnen vorgestellt ie Zeitkomplexität der lgorithmen wird erwähnt, spielt allerdings für dieses Modul eine untergeordnete Rolle Inhalt In diesem Modul geht es um das eigenständige finden einer Lösung des Problems der kürzesten Wege zwischen bestimmten Punkten in einem Graphen/ Straßennetz Ein Motivationsfaktor ist dabei, dass das Problem der kürzesten Wege im täglichen Leben auftaucht Sei es auf dem Schulweg, auf dem Weg zum Einkaufen oder bei der Fahrt von einem Punkt zu einem Punkt mit dem Fahrrad Nach einer nimation in welcher der Kürzeste Weg gefunden werden soll, wird anhand einer Logistik-Unternehmens-Simulation auf spielerische rt und Weise ein lgorithmus entwickelt um kürzeste Wege zu berechnen und dementsprechend eine Graphenstruktur aufzubauen In diesem Modul werden die Schüler und Schülerinnen selbst arbeiten und die theoretischen Hintergründe hinter dem Konzept kennenlernen Leitfragen Was lernt man in eurem Modul? In unserem Modul lernt man die arstellung von Straßenkarten als djazenzmatrix, die Entwicklung einer Problemlösung zum Problem der kürzesten Wege und erhält einen usblick auf wissenschaftliche Lösungen zu diesem Problem Wie lässt sich euer Thema fachwissenschaftlich einordnen? as Thema der kürzesten Wege lässt sich fachwissenschaftlich in den ereich der theoretischen Informatik einordnen as Modul beschränkt sich im eigentlichen auf die Graphentheorie ie praktische Informatik hat durch die Umsetzung auf ein spezielles Problem ein wenig Einfluss auf das Modul

7 Welche informatische Kompetenz/Kompetenzen müssen die Schülerinnen und Schüler in eurem Modul anwenden? ie Schüler und Schülerinnen müssen in diesem Modul Grundkenntnisse in einer Programmiersprache haben Zur uswahl stehen Java, ++, Pascal, elphi, Visual asic und Visual asic for pplication arüber hinaus werden alle notwendigen Kenntnisse während der urchführung des Moduls vermittelt Lehrplanbezug er Lehrplan Informatik für die Sekundarstufe enthält die Themen Methoden der Softwareentwicklung nwendersysteme Informations-und Kommunikationssysteme rbeitsweise von omputersystemen Messen, Steuern, Regeln bei technischen Prozessen Simulation welche von dem Modul kürzeste Wege vollständig abgedeckt werden ie Gesellschaft für Informatik konkretisierte die Vorgaben im Jahr mit den ildungsstandards für den Informatikunterricht der Sekundarstufe as Modul kürzeste Wege erfüllt zahlreiche vorgeschlagene ildungsstandards Schwerpunktmäßig werden die drei Kernbereiche Information und aten, lgorithmen und arstellen und Interpretieren in diesem Modul gefördert er ereich Information und aten wird vor allem in der Try-Phase gefördert ie Schüler und Schülerinnen sollen in dieser Phase die arstellung eines Graphen in einer djazenzmatrix einüben azu sollen die Schüler und Schülerinnen den Zusammenhang von verschiedenen arstellungsformen für aten erkennen er ereich arstellen und Interpretieren hat auf diesen Prozess einen großen Einfluss ußerdem sollen die Schüler und Schülerinnen die Wege beim Spiel uf chse verdeutlichen und dazu selbstständig eine geeignete arstellungsform wählen Ein weiteres zentrales Thema im Modul ist der lgorithmus as Ergebnis in der Explain-Phase ist die Entwicklung eines lgorithmus, der den kürzesten Weg findet abei sollen die Schüler und Schülerinnen diesen lgorithmus entwerfen und realisieren 7

8 blauf blaufdiagramm egrüßung Min nimation SEE nimation mit unterschiedlichen Wegen auf einer Karte wird gezeigt Problemstellung Problem anhand der nimation erkennen und formulieren Min Vorstellen der Regeln Erklärung der Regeln des folgenden Teilabschnitts und Einteilung in Gruppen Spielerische Lösungsfindung okumentation Notieren eines blaufs des lgorithmus Selbständiges finden einer Lösung für das vorliegende Graphen-Problem TRY Min Präsentation/ iskussion Vorstellen der gefundenen Lösungen aus den verschiedenen Gruppen Erstellen der Verbindungstabelle 7 Min Übertragen der Werte vom Spielbrett in die Tabelle iskussion Min Vor- und Nachteile der djazenzmatrix besprechen Min Vorstellung der rbeitsumgebung Programmierkenntnisse Nein Nein Hilfe benötigt? O Ja Nein Pseudocode Implementierung Ja Hilfe benötigt? Vorstellen der lgorithmen von Floyd-Warshall und ijkstra Min Ja Vorstellen der lgorithmen von Floyd-Warshall und ijkstra Min Implementierung der eigenen Idee Pseudocode Implementierung eines lgorithmus Implementierung eines lgorithmus bschlusspräsentation EXPLIN Vorstellung der Ergebnisse im Plenum Wissenschaftlicher usblick Kurzer Vergleich der lgorithmen von Floyd-Warshall und ijkstra Min

9 blauftabelle SEE-Phase Zeit Phase 9: egrüßung 9: nimation 9: Problemstellung Inhalt Vorstellung der Tagesordnung und Einteilung der Gruppen SuS arbeiten an der nimation und suchen dort die kürzesten Wege zwischen den Punkten aus der ufgabenstellung SuS tragen Ihre Erfahrungen vor und können dabei auf die Wiki-Seite in Moodle zurückgreifen Medien Sozialform Präsentation ozenten Vorzur Einleitrag tung Inhalt Präsentation der Spielregeln des Gesellschaftsspiels uf chse Teillernziel Einzelarbeit Erkennen der Problemstellung Smart oard Plenum Erste Formulierung einer Problemstellung Medien Sozialform Teillernziel nimation TRY-Phase Zeit Phase 9: Vorstellen der Regeln ie SuS spielen in den vorher eingeteilten Gruppen das Gesellschaftsspiel er Spielverlauf soll protokolliert werden 9: Spiel 9: SuS tragen Ihre Erfahrungen vor und Präsentation können dabei auf die iskussion Lösungsstrategie in Moodle zurückgreifen Präsentation ozenten Vorder Spieltrag regeln Spielbrett, Spielfiguren, Würfel, nleitung, Stift bzw omputer Gruppenarbeit Verifikation der Problemstellung Smart oard Plenum Formulierung einer Problemstellung Schülerinnen und Schüler 9

10 TRY-Phase Zeit Phase Inhalt : Einführung in die arstellung von VerPräsentation bindungstabellen im omputer SuS übertragen die Werte vom Spielbrett uf chse in die Verbindungstabelle Vor- und Nachteile der djazenzmatrix besprechen Medien Sozialform Präsentation zur Straßenozenten Vorkarte in trag einem omputer darstellen Teillernziel djazenzmatrizen kennenlernen VerbindungsPartnerarbeit tabelle Eigenschaften von djazenzmatrizen erkennen Smart oard Plenum Probleme erkennen Inhalt Medien Sozialform Teillernziel Phase Inhalt Medien Sozialform Programm erstellen Vorstellung der rbeitsumgebung in der jeweiligen Programmiersprache omputer, Programmier Umgebung, Java Tutorial Partnerarbeit Teillernziel Lauffähiges Programm in beliebiger Programmiersprache erstellen : nimation : iskussion Zeit : Phase Pause O-Phase Zeit :

11 EXPLIN-Phase Zeit Phase : : Medien Sozialform bschlussvorstellung der Löpräsentation sungen Smart oard Plenum Kurzer Vergleich der lgorithmen von Floyd-Warshall und ijkstra Smart oard Plenum usblick Inhalt Teillernziel Verschiedene Lösungsmöglichkeiten erkennen und vergleichen können Zeitkomplexität

12 usführliche eschreibung des blaufs Vorbereitung Für dieses Modul werden der Experimentierraum und der Lehrraum (Teachingraum) des Schülerlabors benötigt er Lehrraum wird mit einem Stuhlhalbkreis um das Smart oard hergerichtet und für die esprechungen zwischen den rbeitsphasen verwendet ie Schülerinnen und Schüler bewegen sich für die esprechungen in diesen Raum und werden dadurch nicht von den Laptops oder den Spielmaterialien abgelenkt er Zeitverlust der räumlichen Veränderung wird ausgeglichen durch die volle ufmerksamkeit der Schülerinnen und Schüler bei der rbeit am Smart oard Im Experimentierraum werden die Tische als Gruppentischen aufgestellt ie Gruppen für das Modul haben eine maximale Größe von vier Teilnehmerinnen oder Teilnehmern ei zu geringer Gruppentischanzahl können auch zwei Gruppen an einen Tisch gesetzt werden uf den Tischen können die Gruppenschilder angebracht werden um durcheinander bei der Platzwahl zu vermeiden (Siehe bschnitt 9 auf Seite 9) ie Smart oards in den Lernräumen können mit der Software SMRT Notebook angesteuert werden Mit der Funktion Konferenz starten von der Einführungsseite der Software ist es möglich, den gleichen Inhalt in den Räumen anzuzeigen er Timer der Software SMRT Notebook kann genutzt werden, um den Teilnehmerinnen und Teilnehmern die verbleibende rbeitszeit für die jeweilige rbeitsphase anzuzeigen lle anderen Materialien zur urchfüh-

13 rung sind im Moodle Kurs enthalten er Moodle Kurs ist die zentrale Stelle für die Materialien des Moduls (Vergleiche mit bschnitt auf Seite ) ie Teilnehmer und Teilnehmerinnen sollen im Vorfeld im Moodle System angemeldet werden Im dministrationsbereich des Moodle Kurs kann beim Menüpunkt Gruppen das Feld automatisch erstellte Gruppen genutzt werden, um zügig eine unabhängige Gruppeneinteilung zu gestalten abei ist darauf zu achten, dass maximal vier Teilnehmerinnen und Teilnehmer in einer Gruppe sind SEE-Phase ie egrüßung zum Schülerlabor Modul findet im Lehrraum statt ei der egrüßung sind vor allem die örtlichen Gegebenheiten, der Zugang zu Moodle, die Gruppeneinteilung und die Strukturierung des Tages zu erklären (Vergleiche mit bschnitt auf Seite ) nschließend können die Schülerinnen und Schüler im Experimentierraum in Einzelarbeit an den Laptops die nimation durchführen ie nimation ist im Moodle Kurs zu finden (Vergleiche mit bschnitt auf Seite 7) uf der okumentation der Ergebnisse in der Wiki-Seite der jeweiligen Gruppe sollte ein besonderes ugenmerk gelegt werden us dieser okumentation wird der lgorithmus von den Teilnehmerinnen und Teilnehmern entwickelt In der anschließenden esprechung sollten die Ergebnisse exemplarisch von zwei bis drei Gruppen vorgestellt und diskutiert werden Mithilfe des Moodle Kurses und des Smart oards ist es möglich den Schülerinnen und Schülern die Ergebnisse einer Gruppe zu zeigen TRY-Phase In der TRY-Phase sollen die unterschiedlichen Lösungsmöglichkeiten von den Teilnehmerinnen und Teilnehmern weiter ausgearbeitet werden Im Gesellschaftsspiel uf chse sollen die Teilnehmerinnen und Teilnehmer weitere Ideen für einen möglichen lgorithmus zum finden des kürzesten Weges entwickeln ie Spielregeln werden zunächst mit Hilfe einer Präsentation vorgestellt (Siehe bschnitt 7 auf Seite ) nschließend können die Teilnehmerinnen und Teilnehmer im Experimentierraum das Spiel ausführen und die okumentation erweitern Im nschluss an die Lernphase werden im Lehrraum die Ergebnisse der unterschiedlichen Gruppen dargestellt und diskutiert In dieser iskussion sollen die Schülerinnen und die Schüler eine genaue Vorstellung eines eigenen lgorithmus erhalten Wenn die Vorschläge der Teilnehmerinnen und Teilnehmer nicht zielführend wirken, kann vor der Programmierphase der lgorithmus von Floyd Warshall vorgestellt werden llerdings wird hier an dieser Stelle auf jeden Fall mit der arstellung der Straßenkarte im omputer weiter gemacht (Siehe bschnitt 7 auf Seite ) Im nschluss sollen die Teilnehmerinnen und Teilnehmer die Verbindungstabelle im Moodle Kurs mithilfe der Java nimation ausschnittsweise erstellen ie Schülerinnen und Schüler sollen nur die gelben Felder in der Verbindungstabelle ausfüllen (Vergleiche mit bschnitt auf Seite ) In einer anschließenden iskussion im Lehrraum können die Vor- und Nachteile der arstellung als djazenzmatrix erläutert werden

14 O-Phase ie o-phase ist offen gestaltet und kann flexibel durchgeführt werden ie Teilnehmerinnen und Teilnehmer sollen eine Problemlösung in algorithmischer Form umsetzen abei können die Teilnehmerinnen und Teilnehmer zwischen Pseudocode oder einer Programmiersprache wählen ie möglichen Lösungen stehen in den Sprachen Java, ++, elphi, Pascal, V und V zur Verfügung (Siehe bschnitt auf Seite ) Wenn die Schülerinnen und Schüler keine zielführenden Vorstellungen einer Lösung haben, kann an dieser Stelle die Präsentationen zum FloydWarshall lgorithmus (Siehe bschnitt 7 auf Seite ) und zum ijkstra lgorithmus (Siehe bschnitt 7 auf Seite 9) gezeigt werden nschließend können die Schülerinnen und Schüler eine eigene Lösung erstellen esonders in dieser Phase ist die Unterstützung sehr wichtig EXPLIN-Phase ie Explain-Phase beginnt mit der Vorstellung der rbeitsergebnisse der einzelnen Gruppen uch Lösungen, die noch kleine Fehler enthalten, können die Schülerinnen und Schüler vorstellen und diskutieren Falls zuvor noch nicht geschehen, können die Präsentationen zum FloydWarshall lgorithmus (Siehe bschnitt 7 auf Seite ) und zum ijkstra lgorithmus (Siehe bschnitt 7 auf Seite 9) der gesamten Gruppe gezeigt werden Zum bschluss des Moduls wird optional die Präsentation wissenschaftlicher usblick gezeigt, damit die Teilnehmerinnen und Teilnehmern einen tieferen Eindruck in das rbeitsfeld eines Informatikers erhalten (Siehe bschnitt 7 auf Seite 9)

15 Materialliste ngegeben ist die nzahl für n Schüler und Schülerinnen Gebrauchsmaterialien Smart oards n Laptops mit Programmierumgebung in gewünschter Programmiersprache Zugang zur Moodle-Plattform Vollständig Java fähiger rowser (Getestet mit Google hrome 7, Internet Explorer und 9) Spiellastwagen n Sätze Ladegüter mit je Stück n Spielbretter des Spiels auf chse n Würfel n Sätze uftragsplättchen mit je Plättchen Gruppenschilder (Siehe bschnitt 9 auf Seite 9) Verbrauchsmaterialien n Spielanleitungen (Siehe bschnitt 9 auf Seite ) n rbeitsblätter Straßenkarte im omputer darstellen (Siehe bschnitt 9 auf Seite ) n rbeitsblätter Java in Minuten lernen (Siehe bschnitt 9 auf Seite )

16 Moodle-Kurs er Moodle-Kurs ist die zentrale Stelle zur Verwaltung aller ateien und Materialien des Moduls ie Schülerinnen und Schüler können die Präsentationen noch einmal anschauen und alle ufgaben auch online abgeben ie Ergebnisse können in der esprechungsrunden interaktive auf den Start oards von allen Teilnehmern angeschaut werden

17 7

18

19 9

20

21

22

23 7 Präsentationen 7 Spielanleitung ie Präsentation Spielanleitung vermittelt den Teilnehmerinnen und Teilnehmern die Spielregeln für das Gesellschaftsspiel uf chse uf chse

24 as Spielbrett kann parallel in ausgedruckter Form gezeigt werden, dazu ist das Spielbrett in IN vorhanden ei der Folie sollen die Teilnehmerinnen und Teilnehmer einen Eindruck vom gesamten Konstrukt erhalten adurch können die einzelnen etails auf den folgenden Folien besser Eingeordnet werden Jeder Spieler erhält einen LKW und Pakete in derselben Farbe er LKW wird auf einer der gelben Flächen in der Mitte platziert ie uftragsplättchen werden gemischt und auf jeden blauen Kreis wird ein Plättchen gelegt ufladeplättchen: Ein Paket muss auf den eigenen LKW aufgeladen werden bladeplättchen: Ein Paket muss vom eigenen LKW entladen werden

25 Zum eispiel: ei dieser Folie soll ausdrücklich darauf hingewiesen werden, dass die Zuordnung ein eispiel darstellt für die möglichen Zuordnungen der Plättchen Jeder Spieler legt ein Paket in seiner Farbe auf jedes ufladeplättchen

26 ie Spieler würfeln reihum und müssen ihren LKW um die genaue ugenzahl auf den Straßen in eine Richtung bewegen Zu beginn des Spielzuges darf der LKW wenden Überholen und aneinander vorbei fahren ist jederzeit gestattet as uffahren auf einen uf- oder bladeplatz kostet einen Würfelpunkt er Zug endet an dieser Stelle und die restlichen Würfelpunkte verfallen as bfahren von einem uf- oder bladeplatz kostet einen Würfelpunkt er LKW kann maximal ein Paket laden ei dieser Folie ist ausdrücklich zu erwähnen, dass das uffahren und bfahren jeweils einen Würfelpunkt kostet ies wird häufig von den Teilnehmerinnen und Teilnehmer missachtet, was zur Folge hat, dass das Spiel einen unfairen harakter erhält

27 Landet ein Spieler mit seinem LKW auf einem mpelfeld, muss er in der nächsten Runde aussetzen Jeder Spieler versucht mit seinem LKW möglichst schnell seine Pakete von den ufladestationen zu den bladestationen zu befördern ie Reihenfolge kann der Spieler selbst wählen as Spiel endet, sobald der erste Spieler seine Pakete zu den bladestationen gebracht hat Manchmal entsteht ein Missverständnis, dass die Schülerinnen und Schüler zwischen zwei Punkten die Pakete transportieren wollen ei dem Spiel sollen von allen sechs ufladestationen zu den sechs bladestationen jeweils ein Paket befördert werden 7

28 as Gesellschaftsspiel uf chse soll in der Gruppe gespielt werden Erweitert die bisherige okumentation auf der Wiki-Seite des Problems kürzeste Wege mit Ergänzungen die euch beim Spiel einfallen Überlegt euch eine gute Lösungsstrategie und notiert diese im ufgabenbereich Lösungsstrategie von Moodle ie ufgabe zwei und drei sind für den weiteren Verlauf des Moduls von großer edeutung eswegen sollte ein ugenmerk auf diese ufgaben gelegt werden 7 Straßenkarte in einem omputer darstellen Mit der Präsentation soll der Übergang von einer graphischen arstellung zu einer tabellarischen Repräsentation im omputer vermittelt werden ie Entwicklung der Repräsentationsform kann auch in einem Fragen entwickelnden Unterrichtsgespräch im Sinne von Hilbert Meyer erfolgen ie einzelnen Schritte können mit gezielten Fragen interaktiv zusammengetragen werden Wenn der nächste Schritt genannt wurde kann jeweils die folgende Folie aufgedeckt werden

29 Straßenkarte in einem omputer darstellen Zu eginn sollen die Elemente der Straßenkarte benannt und zur Klarheit der beteiligten Personen einheitliche egriffe erhalten azu kann auch das eispiel Straßennamen und Hausnummern aus dem alltäglichen Leben angeführt werden 9

30

31 ie roten Punkte auf der Karte befinden sich an den Einfahrten zu den benannten Orten iese werden aus Vereinfachungsgründen weggelassen um den Graphen zu verkleinern

32

33 iese Karte bekommen die Teilnehmerinnen und Teilnehmer auch in gedruckter Form als rbeitsblatt ausgeteilt um die Verbindungstabelle zu erstellen (Vergleiche mit bschnitt 9 auf Seite )

34 : unendlich : unendlich er egriff der Unendlichkeit ist für Schülerinnen und Schüler in der Mittelstufe schwer vorstellbar Zum einen kann als eispiel das Weltall mit unendlichen bständen angegeben werden und zum anderen kann erklärt werden, dass in diesem Graph kein kürzester Weg länger als Einheiten sein kann er kürzeste Weg zu einem bisher unbekannten Knoten ist in diesem Fall immer kürzer als Einheiten

35 Überführt die Straßenkarte des Spiels uf chse in eine Verbindungstabelle und überlegt euch die edeutung der Zahlen in der Tabelle 7 Floyd Warshall ie Präsentation kann an zwei Stellen im Modul gezeigt werden Zum einen kann sie die Einführung in die Programmieraufgabe vereinfachen und zum anderen als Vorbereitung zum wissenschaftlichen usblick dienen abei ist die Präsentation als nimation des lgorithmus gedacht und nicht jede Folie konkret zu betrachten

36 Floyd-Warshall lgorithmus as gesamte eispiel zum Floyd-Warshall lgorithmus basiert auf diesem eispiel

37 er systematische urchlauf in einem rray bzw einer Tabelle soll gezeigt werden Zunächst mit einer einzelnen Schleife und im nschluss mit einer verschachtelten Schleife 7

38

39 9

40

41 Position in der Tabelle: graph[i ][ j] j= i= Position in der Tabelle: graph[][] j= i=

42 Für i= bis Für j= bis graph[i][j] Nächstes j Nächstes i j i Für i= bis Für j= bis graph[][] Nächstes j Nächstes i j= i=

43 Für i= bis Für j= bis graph[][] Nächstes j Nächstes i j= i= Für i= bis Für j= bis graph[][] Nächstes j Nächstes i j= i=

44 Für i= bis Für j= bis graph[][] Nächstes j Nächstes i j= i= Für i= bis Für j= bis graph[][] Nächstes j Nächstes i j= i=

45 Für i= bis Für j= bis graph[][] Nächstes j Nächstes i j= i= Für i= bis Für j= bis graph[][] Nächstes j Nächstes i j= i=

46 Für i= bis Für j= bis graph[][] Nächstes j Nächstes i j= i= Für i= bis Für j= bis graph[][] Nächstes j Nächstes i j= i=

47 Für i= bis Für j= bis graph[][] Nächstes j Nächstes i j= j= Für i= bis Für j= bis graph[][] Nächstes j Nächstes i j= i= 7

48 Für i= bis Für j= bis graph[][] Nächstes j Nächstes i j= i= Für i= bis Für j= bis graph[][] Nächstes j Nächstes i j= i=

49 Für i= bis Für j= bis graph[][] Nächstes j Nächstes i j= i= Für i= bis Für j= bis graph[][] Nächstes j Nächstes i j= i= 9

50 Für i= bis Für j= bis graph[][] Nächstes j Nächstes i j= i= Minimum bestimmen aus: graph[i][j] und graph[i][k]+graph[k][j] j i

51 Für k= bis Für i= bis Für j= bis graph[i][j]= Minimum aus graph[i][j] und graph[i][k]+graph[k][j] Nächstes j Nächstes i Nächstes k j i In dieser Folie soll den Teilnehmerinnen und Teilnehmer der Gedanke von Floyd und Warshall nahe gebracht werden In den nächsten Folien ist eine nimation des lgorithmus enthalten die zum Großteil automatische Folienwechsel enthält Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist

52 Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist

53 Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist

54 Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist

55 Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist

56 Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist

57 Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist 7

58 Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist

59 Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist 9

60 Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist

61 Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist

62 Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist

63 Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist

64 Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist

65 Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist

66 Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist

67 Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist 7

68 Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist

69 Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist 9

70 Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist 7

71 Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist 7

72 Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist 7

73 Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist 7

74 Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist 7

75 Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist 7

76 Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist 7

77 Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist 77

78 Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist 7

79 Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist 79

80 Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist

81 Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist

82 Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist

83 Für k= bis Für i= bis Für j= bis graph[][]= Minimum aus graph[][] und graph[][]+graph[][] Nächstes j Nächstes i Nächstes k j= k= i= Minimum aus und + ist

84 weg Für i= bis Für j= bis Wenn weg[i][j] < dann weg[i][j]=i Sonst weg[i][j]=- Nächstes j Nächstes i tabelle er klassische lgorithmus von Floyd-Warshall bestimmt nur die Länge der Verbindungen zwischen den Punkten im Graphen Mit dem zusätzlichen rray Weg ist es möglich auch eine konkrete usgabe zu gestalten Für i= bis Für j= bis Wenn weg[i][j] < dann weg[i][j]=i Sonst weg[i][j]=- Nächstes j Nächstes i weg tabelle

85 weg i k i Wenn graph[i][j]> graph[i][k]+graph[k][j] dann weg[i][j]=weg[k][j] weg j= k= i= Wenn graph[][]> graph[][]+graph[][] dann weg[][]=weg[][] Minimum aus und + ist ie Folien sind exemplarisch für die Schritte des lgorithmus bei denen es zu einer Änderung kommt

86 weg j= k= i= Wenn graph[][]> graph[][]+graph[][] dann weg[][]=weg[][] Minimum aus und + ist weg j= k= i= Wenn graph[][]> graph[][]+graph[][] dann weg[][]=weg[][] Minimum aus und + ist

87 weg - - j= k= i= Wenn graph[][]> graph[][]+graph[][] dann weg[][]=weg[][] Minimum aus und + ist weg - - j= k= i= Wenn graph[][]> graph[][]+graph[][] dann weg[][]=weg[][] Minimum aus und + ist 7

88 weg - j= k= i= Wenn graph[][]> graph[][]+graph[][] dann weg[][]=weg[][] Minimum aus und + ist weg - j= k= i= Wenn graph[][]> graph[][]+graph[][] dann weg[][]=weg[][] Minimum aus und + ist

89 weg j= k= i= Wenn graph[][]> graph[][]+graph[][] dann weg[][]=weg[][] Minimum aus und + ist weg Solange Startknoten Zielknoten Zielknoten=weg[Startknoten][Zielknoten] usgabe des Zielknoten Startknoten: Zielknoten: er Weg zwischen und ist: uf den folgenden Folien sollen die Werte graphisch interpretiert werden um den Übergang zum ijkstra lgorithmus zu vereinfachen 9

90 weg Solange Startknoten Zielknoten Zielknoten=weg[Startknoten][Zielknoten] usgabe des Zielknoten Startknoten: Zielknoten: er Weg zwischen und ist: weg Solange Startknoten Zielknoten Zielknoten=weg[Startknoten][Zielknoten] usgabe des Zielknoten Startknoten: Zielknoten: er Weg zwischen und ist: 9

91 weg Solange Startknoten Zielknoten Zielknoten=weg[Startknoten][Zielknoten] usgabe des Zielknoten Startknoten: Zielknoten: er Weg zwischen und ist: Weg Weg Weg Weg Weg Weg Weg Weg Weg Weg Weg Weg Weg Weg Weg Weg zwischen und ist: zwischen und ist: --> zwischen und ist: --> --> zwischen und ist: --> zwischen und ist: --> zwischen und ist: zwischen und ist: --> zwischen und ist: --> zwischen und ist: --> --> zwischen und ist: --> zwischen und ist: zwischen und ist: --> --> zwischen und ist: --> zwischen und ist: --> zwischen und ist: --> --> zwischen und ist: 7 ijkstra ie folgenden Folien veranschaulichen die Funktionsweise des ijkstra lgorithmus 9

92 ijkstra lgorithmus 9

93 7 7 9

94

95 Wissenschaftlicher usblick uffallender Unterschied zwischen dem Floyd-Warshall und dem ijkstra lgorithmus ist die Laufzeit nhand der folgenden Gegenüberstellung der lgorithmen sollen die Schülerinnen und Schüler die unterschiedlichen Komplexitätsklassen der lgorithmen erkennen Zeitkomplexität 9

96 9

97 97

98 9

99 lle Wege wurden berechnet

100 lle Wege wurden berechnet lle Wege wurden berechnet

101 lle Wege wurden berechnet lle Wege wurden berechnet

102 lle Wege wurden berechnet lle Wege wurden berechnet

103 lle Wege wurden berechnet lle Wege wurden berechnet

104 lle Wege wurden berechnet lle Wege wurden berechnet

105 lle Wege wurden berechnet lle Wege wurden berechnet

106 lle Wege wurden berechnet lle Wege wurden berechnet

107 lle Wege wurden berechnet lle Wege wurden berechnet 7

108 lle Wege wurden berechnet lle Wege wurden berechnet

109 lle Wege wurden berechnet lle Wege wurden berechnet 9

110 lle Wege wurden berechnet lle Wege wurden berechnet

111 lle Wege wurden berechnet lle Wege wurden berechnet

112 lle Wege wurden berechnet lle Wege wurden berechnet

113 lle Wege wurden berechnet lle Wege wurden berechnet

114 lle Wege wurden berechnet lle Wege wurden berechnet

115 lle Wege wurden berechnet lle Wege wurden berechnet

116 lle Wege wurden berechnet lle Wege wurden berechnet

117 lle Wege wurden berechnet lle Wege wurden berechnet 7

118 lle Wege wurden berechnet lle Wege wurden berechnet

119 lle Wege wurden berechnet lle Wege wurden berechnet 9

120 lle Wege wurden berechnet lle Wege wurden berechnet

121 lle Wege wurden berechnet lle Wege wurden berechnet

122 lle Wege wurden berechnet lle Wege wurden berechnet

123 lle Wege wurden berechnet lle Wege wurden berechnet

124 lle Wege wurden berechnet lle Wege wurden berechnet

125 lle Wege wurden berechnet lle Wege wurden berechnet

126 lle Wege wurden berechnet lle Wege wurden berechnet

127 lle Wege wurden berechnet lle Wege wurden berechnet 7

128 lle Wege wurden berechnet lle Wege wurden berechnet lle Wege wurden berechnet

129 Floyd-Warshall lgorithmus ijkstra lgorithmus Schritte 7 Schritte 𝑂( ) 𝑂( log + ) 𝑂(𝑛 ) 𝑂(𝑛 log 𝑛 + 𝑚) 𝑛 = 𝐴𝑛𝑧𝑎ℎ𝑙 𝐾𝑛𝑜𝑡𝑒𝑛 𝑚 = 𝐴𝑛𝑧𝑎ℎ𝑙 𝐾𝑎𝑛𝑡𝑒𝑛 ie Schülerinnen und Schüler können bei ihren erstellten Programmen keinen markanten Laufzeitunterschiede feststellen, da es sich um einen kleinen Graphen und sehr schnelle Rechner handelt Stellt man sich eine eutschlandkarte mit gleicher arstellung der Knoten und Kanten vor spielt der lgorithmus eine erhebliche Rolle ie O-Notation ist auf der Folie angegeben, allerdings nur für besonders interessierte Schülerinnen und Schüler 9

130 Programmcode Lösungen ie hier vorgestellten Lösungsmöglichkeiten sind keine Musterlösungen sondern nur mögliche Lösungen des Problems "" In den eispiellösungen ist der Floyd Warshall und der ijkstra lgorithmus dargestellt ie Schüler und Schülerinnen können natürlich auch zu einer anderen Strategie kommen und diese Implementieren Floyd Warshall Java / PSP Loesung z u r erechnung der Kuerzesten Wege e i n e s t a b e l l e e n ( a r s t e l l u n g des t a b e l l e e n a l s d j a z e n z m a t r i x m i t Kantengewichten, = i n f i n i t y Manuel F r o i t z h e i r t u r / p u b l i c c l a s s Floyd { / / d j a z i e n z m a t r i x m i t Kantengewichten zwischen den e i n z e l n e n Knoten p r i v a t e s t a t i c i n t [ ] [ ] t a b e l l e ={ {,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,,, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,,, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9,

131 { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,,, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,,, {,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, {,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,,, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, ; / / Vorgaengermatrix p r i v a t e s t a t i c i n t [ ] [ ] weg = new i n t [ t a b e l l e l e n g t h ] [ t a b e l l e l e n g t h ] ; / Methode g i b t d i e berechnete d j a z e n z m a t r i x ( V e r b i n d u n g s t a b e l l e ) a u f dem i l d s c h i r f e l d d im e ns i on a le s i n t a r r a y uebergeben, welches b i s d u r c h l a u f e n w i r d / aus p u b l i c s t a t i c v o i d ausgabe_array ( i n t [ ] [ ] f e l d ) { f o r ( i n t u =; u< f e l d l e n g t h ; u++) { System o u t p r i n t ( " \ t " ) ; i f ( u <) { / / uswahl des Namensformat name ( u+) ; / / Kuznamen m i t maximal uchstaben else { name ( u ) ; / / Normale Namen System o u t p r i n t ( " \ n " ) ; f o r ( i n t i = ; i < f e l d l e n g t h ; i ++) { i f ( i <) { / / uswahl des Namensformat name ( i +) ; / / Kuznamen m i t maximal uchstaben else { name ( i ) ; / / Normale Namen System o u t p r i n t ( " \ t " ) ; f o r ( i n t j =; j < f e l d l e n g t h ; j ++) { System o u t p r i n t ( f e l d [ i ] [ j ] + " \ t " ) ; System o u t p r i n t l n ( ) ;

132 / usgabe des Namen des i n d e x Nummer des Knoten b werden kurznamen ausgegeben / p u b l i c s t a t i c v o i d name ( i n t i n d e x ) { s w i t c h ( i n d e x +) { case : System o u t p r i n t ( " ahnhof " ) ; break ; case : System o u t p r i n t ( " a u s t e l l e " ) ; break ; case : System o u t p r i n t ( " urg " ) ; break ; case : System o u t p r i n t ( " E i s " ) ; break ; case : System o u t p r i n t ( " Flughafen " ) ; break ; case : System o u t p r i n t ( " Hafen " ) ; break ; case 7 : System o u t p r i n t ( " H o t e l " ) ; break ; case : System o u t p r i n t ( " Markt " ) ; break ; case 9 : System o u t p r i n t ( " Post " ) ; break ; case : System o u t p r i n t ( " Rathaus " ) ; break ; case : System o u t p r i n t ( " T a n k s t e l l e " ) ; break ; case : System o u t p r i n t ( " Zoo " ) ; break ; case : System o u t p r i n t ( " " ) ; break ; case : System o u t p r i n t ( " " ) ; break ; case : System o u t p r i n t ( " " ) ; break ; case : System o u t p r i n t ( " " ) ; break ; case 7 : System o u t p r i n t ( " E " ) ; break ; case : System o u t p r i n t ( " F " ) ; break ; case 9 : System o u t p r i n t ( "G" ) ; break ; case : System o u t p r i n t ( " H " ) ; break ; case : System o u t p r i n t ( " I " ) ; break ; case : System o u t p r i n t ( " J " ) ; break ; case : System o u t p r i n t ( " K " ) ; break ; case : System o u t p r i n t ( " L " ) ; break ; case : System o u t p r i n t ( "M" ) ; break ; case : System o u t p r i n t ( " N " ) ; break ; case 7 : System o u t p r i n t ( "O" ) ; break ; case : System o u t p r i n t ( " P " ) ; break ; case : System o u t p r i n t ( " ahn " ) ; break ; case : System o u t p r i n t ( " au " ) ; break ; case : System o u t p r i n t ( " urg " ) ; break ; case : System o u t p r i n t ( " E i s " ) ; break ; case : System o u t p r i n t ( " Flug " ) ; break ; case : System o u t p r i n t ( " Hafen " ) ; break ; case 7: System o u t p r i n t ( " H o t e l " ) ; break ; case : System o u t p r i n t ( " Markt " ) ; break ; case 9: System o u t p r i n t ( " Post " ) ; break ; case : System o u t p r i n t ( " Rath " ) ; break ; case : System o u t p r i n t ( " Tanks " ) ; break ; case : System o u t p r i n t ( " Zoo " ) ; break ; / ie Methode berechnet den k o n k r e t e n Weg zwischen a l l e n Punkten der T a b e l l e f e l d Vorgaengermatrix / p u b l i c s t a t i c v o i d ausgabe_weg ( i n t f e l d [ ] [ ] ) {

133 f o r ( i n t i =; i <; i ++) { f o r ( i n t j =; j <; j ++) { i f ( i!= j ) { int v = i ; / / Start int s = j ; / / Ziel name ( v ) ; while ( v!= s ) { v= f e l d [ s ] [ v ] ; System o u t p r i n t ( " " ) ; name ( v ) ; System o u t p r i n t l n ( ) ; System o u t p r i n t l n ( ) ; / erechnung des ku e r z e st e n Weges m i t H i l f e des Floyd l g o r i t h m u s i n der Main / Methode p u b l i c s t a t i c v o i d main ( S t r i n g [ ] args ) { / / I n i t i a l i s i e r u n g der T a b e l l e f o r ( i n t j =; j < t a b e l l e l e n g t h ; j ++) { f o r ( i n t i =; i < t a b e l l e l e n g t h ; i ++) { i f ( t a b e l l e [ i ] [ j ] <) { weg [ i ] [ j ] = i ; else { weg [ i ] [ j ]= ; / / erechnung der Wege f o r ( i n t k =; k< t a b e l l e l e n g t h ; k ++) { f o r ( i n t i =; i < t a b e l l e l e n g t h ; i ++) { f o r ( i n t j =; j < t a b e l l e l e n g t h ; j ++) { i f ( t a b e l l e [ i ] [ j ] >( t a b e l l e [ i ] [ k ]+ t a b e l l e [ k ] [ j ] ) ) { t a b e l l e [ i ] [ j ]= t a b e l l e [ i ] [ k ]+ t a b e l l e [ k ] [ j ] ; weg [ i ] [ j ] = weg [ k ] [ j ] ; / / usgaben der Ergebnisse des l g o r i t h m u s System o u t p r i n t l n ( " ie T a b e l l e z e i g t d i e k u e r z e s t e n Verbindungen zwischen den Orten : " ) ; ausgabe_array ( t a b e l l e ) ; System o u t p r i n t l n ( " \ nie k o n k r e t e n Verbindungen s i n d : " ) ; ausgabe_weg ( weg ) ;

134 / ++ PSP Loesung z u r erechnung der Kuerzesten Wege e i n e s Graphen ( a r s t e l l u n g des Graphen a l s d j a z e n z m a t r i x m i t Kantengewichten, = i n f i n i t y Manuel F r o i t z h e i r t u r / # i n c l u d e < iostream > u s i n g namespace s t d ; / d j a z i e n z m a t r i x m i t Kantengewichten zwischen den e i n z e l n e n Knoten / int tabelle [][] = { {,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,,, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,,, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9,

135 { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,,, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,,, {,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, {,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,,, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, ; i n t weg [ ] [ ] ; / Methode berechnet das Minumum von a und a t y p i n b t y p i n minimum von a und b / i n t min ( i n t a, i n t b ) { i f (a < b) return a; return b; / Methode g i b t d i e berechnete d j a z e n z m a t r i x ( V e r b i n d u n g s t a b e l l e ) a u f f e l d d im e ns io n al e s i n t a r r a y uebergeben, welches b i s d u r c h l a u f e n w i r d / i l d s c h i r m aus v o i d ausgabe_array ( i n t f e l d [ ] [ ] ) { c o u t << " \ t \ tahnhof \ t aust \ t urg \ t E i s \ t Flugh \ t Hafen \ t H o t e l \ t Markt \ t Post \ t Rathaus Tankst Zoo \ t "<< e n d l ; f o r ( i n t i = ; i < ; i ++) { s w i t c h ( i +) { case : c o u t << " ahnhof \ t \ t " ; break ; case : c o u t << " a u s t e l l e \ t " ; break ; case : c o u t << " urg \ t \ t " ; break ; case : c o u t << " E i s \ t \ t " ; break ; case : c o u t << " Flughafen \ t " ; break ; case : c o u t << " Hafen \ t \ t " ; break ; case 7 : c o u t << " H o t e l \ t \ t " ; break ; case : c o u t << " Markt \ t \ t " ; break ; case 9 : c o u t << " Post \ t \ t " ; break ; case : c o u t << " Rathaus \ t \ t " ; break ; case : c o u t << " T a n k s t e l l e \ t " ; break ;

136 case : c o u t << " Zoo \ t \ t " ; break ; f o r ( i n t j =; j <; j ++) { c o u t <<" " << t a b e l l e [ i ] [ j ] << " \ t " ; c o u t << " " << e n d l ; v o i d name ( i n t i n d e x ) { s w i t c h ( i n d e x +) { case : c o u t << " ahnhof " ; break ; case : c o u t << " a u s t e l l e " ; break ; case : c o u t << " urg " ; break ; case : c o u t << " E i s " ; break ; case : c o u t << " Flughafen " ; break ; case : c o u t << " Hafen " ; break ; case 7 : c o u t << " H o t e l " ; break ; case : c o u t << " Markt " ; break ; case 9 : c o u t << " Post " ; break ; case : c o u t << " Rathaus " ; break ; case : c o u t << " T a n k s t e l l e " ; break ; case : c o u t << " Zoo " ; break ; case : c o u t << " " ; break ; case : c o u t << " " ; break ; case : c o u t << " " ; break ; case : c o u t << " " ; break ; case 7 : c o u t << "E " ; break ; case : c o u t << " F " ; break ; case 9 : c o u t << "G" ; break ; case : c o u t << "H " ; break ; case : c o u t << " I " ; break ; case : c o u t << " J " ; break ; case : c o u t << "K " ; break ; case : c o u t << " L " ; break ; case : c o u t << "M" ; break ; case : c o u t << "N " ; break ; case 7 : c o u t << "O" ; break ; case : c o u t << "P " ; break ; case : c o u t << " ahn " ; break ; case : c o u t << " au " ; break ; case : c o u t << " urg " ; break ; case : c o u t << " E i s " ; break ; case : c o u t << " Flug " ; break ; case : c o u t << " Hafen " ; break ; case 7: c o u t << " H o t e l " ; break ; case : c o u t << " Markt " ; break ; case 9: c o u t << " Post " ; break ; case : c o u t << " Rath " ; break ; case : c o u t << " Tanks " ; break ; case : c o u t << " Zoo " ; break ; v o i d ausgabe_weg ( i n t f e l d [ ] [ ] ) { f o r ( i n t i =; i <; i ++) {

137 f o r ( i n t j =; j <; j ++) { i f ( i!= j ) { int v = i ; / / Start int s = j ; / / Ziel name ( v ) ; while ( v!= s ) { v= f e l d [ s ] [ v ] ; c o u t << " " ; name ( v ) ; c o u t << e n d l ; c o u t << e n d l ; / erechnung des ku e r z e st e n Weges m i t h i l f e des Floyd l g o r i t h m u s i n der Main / Methode i n t main ( ) { / / I n i t i a l i s i e r u n g der T a b e l l e f o r ( i n t j =; j < ; j ++) { f o r ( i n t i =; i < ; i ++) { i f ( t a b e l l e [ i ] [ j ] <) { weg [ i ] [ j ] = i ; else { weg [ i ] [ j ]= ; / / erechnung der Wege f o r ( i n t k =; k <; k ++) { f o r ( i n t i =; i <; i ++) { f o r ( i n t j =; j <; j ++) { i f ( t a b e l l e [ i ] [ j ] >( t a b e l l e [ i ] [ k ]+ t a b e l l e [ k ] [ j ] ) ) { t a b e l l e [ i ] [ j ]= t a b e l l e [ i ] [ k ]+ t a b e l l e [ k ] [ j ] ; weg [ i ] [ j ] = weg [ k ] [ j ] ; / / usgaben der Ergebnisse des l g o r i t h m u s c o u t << " ie T a b e l l e z e i g t d i e k u e r z e s t e n Verbindungen zwischen den Orten :" < < e n d l ; ausgabe_array ( t a b e l l e ) ; c o u t << " \ nie k o n k r et e n Verbindungen s i n d : \ n " << e n d l ; ausgabe_weg ( weg ) ; elphi u n i t Wegsuche ; / / elphi / / PSP Loesung z u r erechnung der Kuerzesten Wege e i n e s t a b e l l e e n / / Loesung m i t dem Floyd l g o r i t h m u s 7

138 7 / / ( a r s t e l l u n g des t a b e l l e e n a l s d j a z e n z m a t r i x m i t Kantengewichten, = i n f i n i t y ) / / a u t h o r r t u r Nowak / / a u t h o r Manuel F r o i t z h e i m 9 / / version interface uses Windows, Messages, S y s U t i l s, V a r i a n t s, lasses, Graphics, o n t r o l s, Forms, ialogs, S t d t r l s, G r i d s ; type TForm = c l a s s ( TForm ) utton : Tutton ; grid : TStringGrid ; Label : TLabel ; lst_wege : T L i s t o x ; Label : TLabel ; procedure u t t o n l i c k ( Sender : TObject ) ; procedure Formreate ( Sender : TObject ) ; private { P r i v a t e e k l a r a t i o n e n public { P u b l i c e k l a r a t i o n e n end ; var Form : TForm ; / / d j a z i e n z m a t r i x m i t Kantengewichten zwischen den e i n z e l n e n Knoten var t a b e l l e : array [ 7, 7 ] of i n t e g e r ; v a r weg : a r r a y [ 7, 7 ] o f i n t e g e r ; 7 9 implementation { $R dfm procedure TForm Formreate ( Sender : TObject ) ; begin g r i d e l l s [, ] : = ahnhof ; grid ells [, ] : = austelle ; g r i d e l l s [, ] : = urg ; g r i d e l l s [, ] : = Eis ; g r i d e l l s [, ] : = Flughafen ; g r i d e l l s [, ] : = Hafen ; g r i d e l l s [, 7 ] : = Hotel ; g r i d e l l s [, ] : = Markt ; g r i d e l l s [, 9 ] : = Post ; g r i d e l l s [, ] : = Rathaus ; grid ells [,]:= Tankstelle ; g r i d e l l s [, ] : = Zoo ; g r i d e l l s [, ] : = ahnhof ; grid ells [, ] : = austelle ; g r i d e l l s [, ] : = urg ; g r i d e l l s [, ] : = Eis ; g r i d e l l s [, ] : = Flughafen ; g r i d e l l s [, ] : = Hafen ;

139 7 grid grid grid grid grid grid end ; e l l s [ 7, ] : = Hotel ; e l l s [, ] : = Markt ; e l l s [ 9, ] : = Post ; e l l s [, ] : = Rathaus ; ells [,]:= Tankstelle ; e l l s [, ] : = Zoo ; / / erechnung des k u e r ze s t e n Weges m i t h i l f e des Floyd l g o r i t h m u s i n der Main Methode procedure TForm u t t o n l i c k ( Sender : TObject ) ; v a r o, p, i, j, k, x, y, l,m, r, s : i n t e g e r ; var t e x t : s t r i n g ; begin / / I n i t i a l i s i e r u n g des r r a y m i t f o r o : = t o 7 do begin f o r p := t o 7 do begin tabelle [o,p]:=; end ; / / iagonale m i t f u e l l e n tabelle [o,o]:= end ; / / r r a y m i t Werten f u e l l e n tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,7]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [7,]:= ; tabelle [7,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [9,9]:= ; tabelle [9,]:= ; tabelle [,]:= ; tabelle [,7]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,7]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; 9

140 tabelle [,]:= ; tabelle [,9]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,7]:= ; tabelle [,]:= ; tabelle [7,]:= ; tabelle [7,]:= ; tabelle [7,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,9]:= ; tabelle [,]:= ; tabelle [9,9]:= ; tabelle [9,]:= ; tabelle [9,]:= ; tabelle [9,]:= ; tabelle [,]:= ; tabelle [,7]:= ; tabelle [,9]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,9]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,7]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,7]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,7]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,7]:= ; tabelle [,]:= ; tabelle [,]:= ;

141 tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,7]:= ; tabelle [7,]:= ; tabelle [7,]:= ; tabelle [7,]:= ; tabelle [7,]:= ; tabelle [7,]:= ; / / as r r a y weg m i t Werten f u e l l e n f o r p := t o 7 do begin f o r o : = t o 7 do begin i f ( t a b e l l e [ p ] [ o ] < ) then weg [ p ] [ o ] : = p e l s e weg [ p ] [ o ] : = ; end ; end ; / / usgabe der Werte i n der T a b e l l e f o r l : = t o do begin f o r m:= t o do g r i d e l l s [ l +,m+ ] : = i n t t o s t r ( t a b e l l e [ l,m] ) ; end ; 7 9 / / erechnung der k u e r ze s t e n Wege f o r k : = t o 7 do begin f o r i : = t o 7 do begin f o r j : = t o 7 do begin i f ( t a b e l l e [ i, j ] > t a b e l l e [ i, k ] + t a b e l l e [ k, j ] ) then begin t a b e l l e [ i, j ] := t a b e l l e [ i, k ]+ t a b e l l e [ k, j ] ; weg [ i ] [ j ] : = weg [ k ] [ j ] end ; end ; end ; end ; 7 / / usgabe der Werte i n der T a b e l l e f o r l : = t o do begin f o r m:= t o do begin g r i d e l l s [ l +,m+ ] : = i n t t o s t r ( weg [ l,m] ) ; end ; end ; 9 7 / / erechnung und usgabe der k o n k r t e n Wege f o r r : = t o do begin f o r s := t o do begin i f r <> s then begin x := r ; / / S t a r t y := s ; / / Z i e l begin ase x+ o f : t e x t : = t e x t + ahnhof ; : t e x t := t e x t + austelle ;

142 : t e x t : = t e x t + urg ; : t e x t : = t e x t + Eis ; : t e x t : = t e x t + Flughafen ; : t e x t : = t e x t + Hafen ; 7 : t e x t : = t e x t + Hotel ; : t e x t : = t e x t + Markt ; 9 : t e x t : = t e x t + Post ; : t e x t : = t e x t + Rathaus ; : t e x t := t e x t + Tankstelle ; : t e x t : = t e x t + Zoo ; : t e x t := t e x t + ; : t e x t := t e x t + ; : t e x t : = t e x t + ; : t e x t : = t e x t + ; 7: t e x t := t e x t + E ; : t e x t := t e x t + F ; 9 : t e x t : = t e x t + G ; : t e x t : = t e x t + H ; : t e x t := t e x t + I ; : t e x t := t e x t + J ; : t e x t := t e x t + K ; : t e x t := t e x t + L ; : t e x t : = t e x t + M ; : t e x t : = t e x t + N ; 7 : t e x t : = t e x t + O ; : t e x t := t e x t + P ; end ; w h i l e x<>y do begin x : = weg [ y ] [ x ] ; t e x t : = t e x t + > ; begin ase x+ o f : t e x t : = t e x t + ahnhof ; : t e x t := t e x t + austelle ; : t e x t : = t e x t + urg ; : t e x t : = t e x t + Eis ; : t e x t : = t e x t + Flughafen ; : t e x t : = t e x t + Hafen ; 7 : t e x t : = t e x t + Hotel ; : t e x t : = t e x t + Markt ; 9 : t e x t : = t e x t + Post ; : t e x t : = t e x t + Rathaus ; : t e x t := t e x t + Tankstelle ; : t e x t : = t e x t + Zoo ; : t e x t := t e x t + ; : t e x t := t e x t + ; : t e x t : = t e x t + ; : t e x t : = t e x t + ; 7: t e x t := t e x t + E ; : t e x t := t e x t + F ; 9 : t e x t : = t e x t + G ; : t e x t : = t e x t + H ; : t e x t := t e x t + I ; : t e x t := t e x t + J ; : t e x t := t e x t + K ; : t e x t := t e x t + L ;

143 : : 7: : t e x t := t e x t := t e x t := t e x t := text text text text M ; N ; O ; P ; end ; end ; end ; lst_wege dditem ( t e x t, lst_wege ) ; text := end ; end ; end ; lst_wege dditem (, lst_wege ) ; end ; end ; end Pascal { Pascal V e r s i o n Floyd E r s t e l l t und g e t e s t e t m i t FreePascal IE f o r Win f o r i V e r s i o n PSP Loesung z u r erechnung der Kuerzesten Wege e i n e s graphen ( a r s t e l l u n g des graphen a l s d j a z e n z m a t r i x m i t Kantengewichten, = i n f i n i t y Manuel F r o i t z h e i r t u r program f l o y d ; uses c r t ; { d j a z i e n z m a t r i x m i t Kantengewichten zwischen den e i n z e l n e n Knoten var t a b e l l e : rray [ 7, 7 ] of i n t e g e r = ( (,,,,,,,,,,,,,,,,,,,,,,,,,,, ), ( 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, ), ( 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, ), ( 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, ), ( 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, ), ( 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, ), ( 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, ), ( 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, ), ( 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, ), ( 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, ),

144 ( 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, ), ( 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, ), ( 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, ), ( 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, ), ( 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, ), ( 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, ), ( 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, ), ( 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, ), ( 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, ), ( 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, ), ( 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, ), ( 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, ), (,,,,,,,,,,,,,,,,,,,,,,,,,,, ), ( 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, ), (,,,,,,,,,,,,,,,,,,,,,,,,,,, ), ( 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, ), ( 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, ), ( 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, ) ); v a r weg : r r a y [ 7, 7 ] o f i n t e g e r ; var i, j, k : i n t e g e r ; { usgabe des Namen des i n d e x Nummer des Knoten b werden kurznamen ausgegeben procedure namen ( v a r i n d e x : i n t e g e r ) ; begin case ( i n d e x +) o f : W r i t e ( ahnhof ) ; : Write ( austelle ) ; : W r i t e ( urg ) ; : W r i t e ( Eis ) ; : W r i t e ( Flughafen ) ; : W r i t e ( Hafen ) ; 7 : W r i t e ( Hotel ) ; : W r i t e ( Markt ) ; 9 : W r i t e ( Post ) ;

145 : : : : : : : 7: : 9: : : : : : : : 7: : : : : : : : 7: : 9: : : : end ; end ; Write ( Write ( Write ( Write ( Write ( Write ( Write ( Write ( Write ( Write ( Write ( Write ( Write ( Write ( Write ( Write ( Write ( Write ( Write ( Write ( Write ( Write ( Write ( Write ( Write ( Write ( Write ( Write ( Write ( Write ( Write ( Rathaus ) ; Tankstelle ) ; Zoo ) ; ) ; ) ; ) ; ) ; E ) ; F ) ; G ) ; H ) ; I ) ; J ) ; K ) ; L ) ; M ) ; N ) ; O ) ; P ) ; ahn ) ; au ) ; urg ) ; Eis ) ; Flug ) ; Hafen ) ; Hotel ) ; Markt ) ; Post ) ; Rath ) ; Tanks ) ; Zoo ) ; 9 { Methode g i b t d i e berechnete d j a z e n z m a t r i x ( Verbindungsgraph ) a u f dem i l d s c h i r m aus procedure ausgabe_array ; var i, j, u : i n t e g e r ; begin f o r u := t o 7 do begin Write ( ) ; i f ( u <) then { uswahl des Namensformat begin i : = u+; namen ( i ) ; { Kuznamen m i t maximal uchstaben end else begin i :=u ; namen ( i ) ; { Normale Namen end ; end ; Writeln ( ) ;

146 f o r i := t o 7 do begin i f ( i <) then { uswahl des Namensformat begin u : = i +; namen ( u ) ; { Kuznamen m i t maximal uchstaben end else begin u:= i ; namen ( u ) ; { Normale Namen end ; Write ( ) ; f o r j := t o 7 do Write ( t a b e l l e [ i ] [ j ], ) ; Writeln ( ) ; end ; end ; 9 { ie Methode berechnet den k o n k r e t e n Weg zwischen a l l e n Punkten der T a b e l l e : procedure ausgabe_weg ; var i, j, v, s : i n t e g e r ; begin f o r i := t o do begin f o r j := t o do begin i f ( i <> j ) then begin v := i ; { S t a r t s := j ; { Z i e l namen ( v ) ; w h i l e ( v <> s ) do begin v : = weg [ s ] [ v ] ; W r i t e ( ) ; namen ( v ) ; end ; Writeln ( ) ; end ; end ; Writeln ( ) ; W r i t e l n ( i t t e E n t e r druecken f u e r w e i t e r ) ; Readln ( ) ; end ; end ; { erechnung des k ue r z e st e n Weges m i t H i l f e des Floyd l g o r i t h m u s i n der Main Methode begin { I n i t i a l i s i e r u n g der T a b e l l e f o r j := t o 7 do

147 begin f o r i := t o 7 do begin i f ( t a b e l l e [ i ] [ j ] <) then weg [ i ] [ j ] : = i e l s e weg [ i ] [ j ]:= ; end ; end ; { erechnung der Wege f o r k := t o 7 do begin f o r i := t o 7 do begin f o r j := t o 7 do begin i f ( t a b e l l e [ i ] [ j ] > ( t a b e l l e [ i ] [ k ] + t a b e l l e [ k ] [ j ] ) ) then begin t a b e l l e [ i ] [ j ] : = t a b e l l e [ i ] [ k ]+ t a b e l l e [ k ] [ j ] ; weg [ i ] [ j ] : = weg [ k ] [ j ] ; end ; end end ; end ; { usgaben der Ergebnisse des l g o r i t h m u s W r i t e l n ( ie T a b e l l e z e i g t d i e k u e r z e s t e n Verbindungen zwischen den Orten : ) ; ausgabe_array ; Readln ( ) ; Writeln ( ) ; W r i t e l n ( ie k o n k re t e n Verbindungen s i n d : ) ; ausgabe_weg ; end Visual asic 7 V i s u a l asic (V) PSP Loesung z u r erechnung der Kuerzesten Wege e i n e s Graphen ( a r s t e l l u n g des Graphen a l s d j a z e n z m a t r i x m i t Kantengewichten, = i n f i n i t y ) Loesung m i t dem Floyd l g o r i t h m u s a u t h o r Manuel F r o i t z h e i m a u t h o r r t u r Nowak version 9 P u b l i c lass Wegsuche P u b l i c Sub New ( ) i e s e r u f r u f i s t f u e r den Windows Form esigner e r f o r d e r l i c h Initializeomponent ( ) 7 9 Fuegen Sie I n i t i a l i s i e r u n g e n nach dem I n i t i a l i z e o m p o n e n t ( ) u f r u f h i n z u I n i t i a l i s i e r u n g der usgabe im t b l _ a t e n ( To ) s S t r i n g t b l _ a t e n ( ) = " ahnhof " tbl_aten () = " austelle " t b l _ a t e n ( ) = " urg " tbl_aten ( ) = " Eis " t b l _ a t e n ( ) = " Flughafen " 7

148 7 t b l _ a t e n ( ) = " Hafen " tbl_aten ( ) = " Hotel " t b l _ a t e n ( 7 ) = " Markt " t b l _ a t e n ( ) = " Post " t b l _ a t e n ( 9 ) = " Rathaus " tbl_aten () = " Tankstelle " t b l _ a t e n ( ) = " Zoo " 9 For o = To l s t _ a t e n Items dd ( t b l _ a t e n ( o ) ) Next o l s t _ k o p f Items ddrange ( t b l _ a t e n ) End Sub P r i v a t e Sub cmd_berechnen_lick ( yval sender s System Object, yval e s System Eventrgs ) Handles cmd_berechnen l i c k Tabelle i n i t i a l i e s i e r e n im t a b e l l e ( To 7, To 7) s I n t e g e r im weg( To 7, To 7) s I n t e g e r For i = To 7 For j = To 7 t a b e l l e ( i, j ) = Next j tabelle ( i, i ) = Next i t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, 7) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e ( 7, ) = t a b e l l e ( 7, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e ( 9, 9) = t a b e l l e ( 9, ) = t a b e l l e (, ) = t a b e l l e (, 7) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, 7) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) =

149 t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (7, t a b e l l e (7, t a b e l l e (7, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (9, t a b e l l e (9, t a b e l l e (9, t a b e l l e (9, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, ) = ) = ) = 9) = ) = ) = ) = ) = ) = ) = ) = ) = 7) = ) = ) = ) = ) = ) = ) = 9) = ) = 9) = ) = ) = ) = ) = 7) = 9) = ) = ) = 9) = ) = ) = 7) = ) = ) = ) = 7) = ) = ) = ) = ) = ) = ) = ) = 7) = ) = ) = ) = ) = ) = ) = ) = ) = ) = 7) = 9

150 7 9 t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (7, t a b e l l e (7, t a b e l l e (7, t a b e l l e (7, t a b e l l e (7, ) = ) = ) = ) = ) = ) = ) = 7) = ) = ) = ) = ) = ) = 7 9 I n i t i a l i s i e r u n g der Weg T a b e l l e For p = To 7 For q = To 7 I f t a b e l l e ( p, q ) < Then weg ( q, p ) = q Else weg ( q, p ) = End I f Next q Next p erechnung der k u er z e s t en Wege im x, y s I n t e g e r For k = To 7 For i = To 7 For j = To 7 I f t a b e l l e ( i, j ) > t a b e l l e ( i, k ) + t a b e l l e ( k, j ) Then tabelle ( i, j ) = tabelle ( i, k) + tabelle (k, j ) weg ( i, j ) = weg ( k, j ) End I f Next j Next i Next k Uebertragen der Werte im tbl_ausgabe ( ) s S t r i n g For i = To For j = To tbl_ausgabe ( j ) = t a b e l l e ( i, j ) Next j l st _ au s ga b e Items ddrange ( tbl_ausgabe ) Next i 7 usgabe der Wege im t e x t s S t r i n g text = "" x = y = For r = To For s = To I f ( r <> s ) Then

151 9 9 x = r Start y = s Ziel nfangsknoten ausgeben S e l e c t ase x + ase t e x t = " ahnhof " ase text = " austelle " ase t e x t = " urg " ase t e x t = " Eis " ase t e x t = " Flughafen " ase t e x t = " Hafen " ase 7 t e x t = " Hotel " ase t e x t = " Markt " ase 9 t e x t = " Post " ase t e x t = " Rathaus " ase text = " Tankstelle " ase t e x t = " Zoo " ase t e x t = "" ase t e x t = "" ase t e x t = "" ase t e x t = "" ase 7 t e x t = "E" ase t e x t = "F" ase 9 t e x t = "G" ase t e x t = "H" ase text = " I " ase text = "J" ase t e x t = "K" ase text = "L" ase t e x t = "M" ase

152 7 9 t e x t = "N" ase 7 t e x t = "O" ase t e x t = "P" End S e l e c t estimme den Weg o While x <> y x = weg ( y, x ) t e x t = t e x t & " S e l e c t ase x + ase text = text ase text = text ase text = text ase text = text ase text = text ase text = text ase 7 text = text ase text = text ase 9 text = text ase text = text ase text = text ase text = text ase text = text ase text = text ase text = text ase text = text ase 7 text = text ase text = text ase 9 text = text ase text = text ase text = text ase text = text " & " ahnhof " & " austelle " & " urg " & " Eis " & " Flughafen " & " Hafen " & " Hotel " & " Markt " & " Post " & " Rathaus " & " Tankstelle " & " Zoo " & "" & "" & "" & "" & "E" & "F" & "G" & "H" & "I" & "J"

153 ase text ase text ase text ase text ase 7 text ase text End S e l e c t 7 9 = t e x t & "K" = text & "L" = t e x t & "M" = t e x t & "N" = t e x t & "O" = t e x t & "P" Loop lst_wege Items dd ( t e x t ) 7 9 End I f Next s lst_wege Items dd ( " " ) Next r End Sub End lass Visual asic for pplication mit Excel 7 V i s u a l asic f o r p p l i c a t i o n (V) m i t Excel PSP Loesung z u r erechnung der Kuerzesten Wege e i n e s t a b e l l e e n M i t H i l f e des Floyd l g o r i t h m u s ( a r s t e l l u n g des t a b e l l e e n a l s d j a z e n z m a t r i x m i t Kantengewichten, = i n f i n i t y ) a u t h o r Manuel F r o i t z h e i m a u t h o r r t u r Nowak version P r i v a t e Sub UserForm_ctivate ( ) I n i t i a l i s i e r u n g der usgabe im t b l _ a t e n ( To, To ) s S t r i n g t b l _ a t e n (, ) = " ahnhof " tbl_aten (, ) = " austelle " t b l _ a t e n (, ) = " urg " tbl_aten (, ) = " Eis " t b l _ a t e n (, ) = " Flughafen " t b l _ a t e n (, ) = " Hafen " tbl_aten (, ) = " Hotel " t b l _ a t e n (, 7 ) = " Markt " t b l _ a t e n (, ) = " Post " t b l _ a t e n (, 9 ) = " Rathaus " t b l _ a t e n (, ) = " T a n k s t e l l e " t b l _ a t e n (, ) = " Zoo " 7 9 For o = To l s t _ d a t e n dditem t b l _ a t e n (, o ) Next o l s t _ k o p f L i s t ( ) = tbl_aten End Sub

154 P r i v a t e Sub cmd_berechnen_lick ( ) Tabelle i n i t i a l i e s i e r e n im t a b e l l e ( To 7, To 7) s I n t e g e r im weg( To 7, To 7) s I n t e g e r For i = To 7 For j = To 7 t a b e l l e ( i, j ) = Next j tabelle ( i, i ) = Next i t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, 7) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e ( 7, ) = t a b e l l e ( 7, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e ( 9, 9) = t a b e l l e ( 9, ) = t a b e l l e (, ) = t a b e l l e (, 7) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, 7) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, 9) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, 7) =

155 t a b e l l e (, t a b e l l e (7, t a b e l l e (7, t a b e l l e (7, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (9, t a b e l l e (9, t a b e l l e (9, t a b e l l e (9, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (7, t a b e l l e (7, t a b e l l e (7, t a b e l l e (7, t a b e l l e (7, ) = ) = ) = ) = ) = ) = 9) = ) = 9) = ) = ) = ) = ) = 7) = 9) = ) = ) = 9) = ) = ) = 7) = ) = ) = ) = 7) = ) = ) = ) = ) = ) = ) = ) = 7) = ) = ) = ) = ) = ) = ) = ) = ) = ) = 7) = ) = ) = ) = ) = ) = ) = ) = 7) = ) = ) = ) = ) = ) =

156 7 9 I n i t i a l i s i e r u n g der Weg T a b e l l e For p = To 7 For q = To 7 I f t a b e l l e ( p, q ) < Then weg ( q, p ) = q Else weg ( q, p ) = End I f Next q Next p 7 9 erechnung der k u er z e s t en Wege im x, y s I n t e g e r For k = To 7 For i = To 7 For j = To 7 I f t a b e l l e ( i, j ) > t a b e l l e ( i, k ) + t a b e l l e ( k, j ) Then tabelle ( i, j ) = tabelle ( i, k) + tabelle (k, j ) weg ( i, j ) = weg ( k, j ) End I f Next j Next i Next k Uebertragen der Werte im tbl_ausgabe ( To, To ) s I n t e g e r For i = To For j = To tbl_ausgabe ( i, j ) = t a b e l l e ( i, j ) Next j Next i usgabe der aten l st _ au s ga b e L i s t ( ) = tbl_ausgabe usgabe der Wege im t e x t s S t r i n g x = y = For r = To For s = To I f ( r <> s ) Then x = r Start y = s Ziel nfangsknoten ausgeben S e l e c t ase x + ase t e x t = " ahnhof " ase text = " austelle " ase t e x t = " urg " ase t e x t = " Eis "

157 ase text ase text ase 7 text ase text ase 9 text ase text ase text ase text ase text ase text ase text ase text ase 7 text ase text ase 9 text ase text ase text ase text ase text ase text ase text ase text ase 7 text ase text End S e l e c t = " Flughafen " = " Hafen " = " Hotel " = " Markt " = " Post " = " Rathaus " = " Tankstelle " = " Zoo " = "" = "" = "" = "" = "E" = "F" = "G" = "H" = "I" = "J" = "K" = "L" = "M" = "N" = "O" = "P" 7 9 estimme den Weg o While x <> y x = weg ( y, x ) t e x t = t e x t & " " S e l e c t ase x + ase 7

158 text ase text ase text ase text ase text ase text ase 7 text ase text ase 9 text ase text ase text ase text ase text ase text ase text ase text ase 7 text ase text ase 9 text ase text ase text ase text ase text ase text ase text ase text ase 7 text ase text End S e l e c t = t e x t & " ahnhof " = text & " austelle " = t e x t & " urg " = t e x t & " Eis " = t e x t & " Flughafen " = t e x t & " Hafen " = t e x t & " Hotel " = t e x t & " Markt " = t e x t & " Post " = t e x t & " Rathaus " = text & " Tankstelle " = t e x t & " Zoo " = t e x t & "" = t e x t & "" = t e x t & "" = t e x t & "" = t e x t & "E" = t e x t & "F" = t e x t & "G" = t e x t & "H" = text & " I " = text & "J" = t e x t & "K" = text & "L" = t e x t & "M" = t e x t & "N" = t e x t & "O" = t e x t & "P"

159 Loop lst_wege dditem ( t e x t ) End I f Next s lst_wege dditem ( " " ) Next r End Sub 7 usgabe des lgorithmus von Floyd ahn au urg Eis Flug Hafen Hotel Markt Post Rath Tanks Zoo E F G H I J K L M N O P ahn au urg Eis 7 9 Flug Hafen Hotel Markt Post Rath Tanks Zoo

160 Fortsetzung: ahn au urg Eis Flug 9 Hafen Hotel 9 Markt Post Rath Tanks Zoo E F G H I J K L M N O P E F 7 7 G H I 9 7 ie k o n k re t e n Verbindungen s i n d : 7 9 ahnhof ahnhof ahnhof ahnhof ahnhof ahnhof ahnhof ahnhof ahnhof ahnhof ahnhof M M K M K M M K K M K O O Eis O Hafen O O E L O L austelle urg P J Flughafen N N Post G P G I H o t e l Markt H Rathaus Tankstelle Zoo 7 austelle austelle austelle austelle O O O P M ahnhof urg M L E i s J Flughafen J 9 7 K L M N O P

161 9 austelle austelle austelle austelle austelle austelle austelle O P O O P P P M K Hafen I H o t e l N Markt M K E Post I Rathaus Tankstelle I H G Zoo urg urg urg urg urg urg urg urg urg urg urg O O N N N N N N N N N M ahnhof austelle L E i s I Flughafen L K Hafen I H o t e l Markt L F Post I Rathaus I T a n k s t e l l e L G Zoo K L L L K L L K L L L ahnhof M O N urg G H Hafen G H N Markt E Post G H G H G Zoo Flughafen Flughafen Flughafen Flughafen Flughafen Flughafen Flughafen Flughafen Flughafen Flughafen Flughafen J J Eis Eis Eis Eis Eis Eis Eis Eis Eis Eis Eis austelle Flughafen I H o t e l Rathaus I T a n k s t e l l e 7 9 P P I Hotel I I I O M ahnhof austelle N urg H G L E i s E Hafen Markt Post Rathaus Tankstelle Zoo Hafen Hafen Hafen Hafen Hafen Hafen Hafen Hafen Hafen Hafen Hafen K K K K E K K E K K E ahnhof M O L N Eis L G L N Post L G L G a u s t e l l e urg Flughafen H I H o t e l Markt H Rathaus H I T a n k s t e l l e Zoo 7

162 Hotel Hotel Hotel Hotel Hotel Hotel Hotel Hotel Hotel Hotel Hotel I I I I I I I I I N O M P a u s t e l l e N urg H G L Flughafen H G L Markt Rathaus Tankstelle H G Zoo Markt Markt Markt Markt Markt Markt Markt Markt Markt Markt Markt N N N N I N I N I I I O M ahnhof O a u s t e l l e urg L E i s Flughafen L K Hafen Hotel L F Post Rathaus Tankstelle H G Zoo ahnhof Eis K Hafen Post Post Post Post Post Post Post Post Post Post Post Post E E E E K K F K Hafen F ahnhof M O a u s t e l l e L N urg Eis Flughafen L G G Zoo N H H Hotel Markt Rathaus I T a n k s t e l l e 7 9 Rathaus Rathaus Rathaus Rathaus Rathaus Rathaus Rathaus Rathaus Rathaus Rathaus Rathaus H I I H I H I I H I H G L K ahnhof P a u s t e l l e N urg G L E i s Flughafen G L K Hafen Hotel Markt G Post Tankstelle G Zoo 7 9 Tankstelle Tankstelle Tankstelle Tankstelle Tankstelle Tankstelle Tankstelle Tankstelle P P I I I I I I O M ahnhof austelle N urg H G L E i s Flughafen H G L K Hafen Hotel Markt

163 T a n k s t e l l e I H G Post T a n k s t e l l e I Rathaus T a n k s t e l l e I H G Zoo 7 9 Zoo Zoo Zoo Zoo Zoo Zoo Zoo Zoo Zoo Zoo Zoo G G G G G G G G L H L L H H H H K ahnhof I P a u s t e l l e N urg Eis Flughafen E Hafen I H o t e l I Markt Post Rathaus I T a n k s t e l l e ijkstra Java 7 / PSP Loesung z u r erechnung der Kuerzesten Wege e i n e s Graphen erechnung m i t dem i j k s t r a l g o r i t h m u s ( a r s t e l l u n g des Graphen a l s d j a z e n z m a t r i x m i t Kantengewichten, = i n f i n i t y Manuel F r o i t z h e i r t u r 9 / public class d i j k s t r a _ j a v a { / d j a z e n z m a t r i x a l s a r s t e l l u n g des Graphen / p r i v a t e s t a t i c i n t [ ] [ ] graph ={ {,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,, { 9 9,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,, 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

164 { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,,, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,,, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,,, {,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, {,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,,, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, ; / / Vorgaengermatrix private static int [ ] [ ] tabelle = new i n t [ graph l e n g t h ] [ graph l e n g t h ] ; 7 / 9 Methode g i b t d i e berechnete d j a z e n z m a t r i x ( V e r b i n d u n g s t a b e l l e ) a u f dem i l d s c h i r f e l d d im e ns i on a le s i n t a r r a y uebergeben, welches b i s d u r c h l a u f e n w i r d / aus 7 9 p u b l i c s t a t i c v o i d ausgabe_array ( i n t [ ] [ ] f e l d ) { f o r ( i n t u =; u< f e l d l e n g t h ; u++) { System o u t p r i n t ( " \ t " ) ; i f ( u <) { / / uswahl des Namensformat name ( u+) ; / / Kuznamen m i t maximal uchstaben else { name ( u ) ; / / Normale Namen System o u t p r i n t ( " \ n " ) ;

165 f o r ( i n t i = ; i < f e l d l e n g t h ; i ++) { / / System o u t p r i n t ( " \ t " ) ; f o r ( i n t j =; j < f e l d l e n g t h ; j ++) { System o u t p r i n t ( f e l d [ i ] [ j ] + " \ t " ) ; System o u t p r i n t l n ( ) ; / usgabe des Namen des i n d e x Nummer des Knoten b werden kurznamen ausgegeben / p u b l i c s t a t i c v o i d name ( i n t i n d e x ) { s w i t c h ( i n d e x +) { case : System o u t p r i n t ( " ahnhof " ) ; break ; case : System o u t p r i n t ( " a u s t e l l e " ) ; break ; case : System o u t p r i n t ( " urg " ) ; break ; case : System o u t p r i n t ( " E i s " ) ; break ; case : System o u t p r i n t ( " Flughafen " ) ; break ; case : System o u t p r i n t ( " Hafen " ) ; break ; case 7 : System o u t p r i n t ( " H o t e l " ) ; break ; case : System o u t p r i n t ( " Markt " ) ; break ; case 9 : System o u t p r i n t ( " Post " ) ; break ; case : System o u t p r i n t ( " Rathaus " ) ; break ; case : System o u t p r i n t ( " T a n k s t e l l e " ) ; break ; case : System o u t p r i n t ( " Zoo " ) ; break ; case : System o u t p r i n t ( " " ) ; break ; case : System o u t p r i n t ( " " ) ; break ; case : System o u t p r i n t ( " " ) ; break ; case : System o u t p r i n t ( " " ) ; break ; case 7 : System o u t p r i n t ( " E " ) ; break ; case : System o u t p r i n t ( " F " ) ; break ; case 9 : System o u t p r i n t ( "G" ) ; break ; case : System o u t p r i n t ( " H " ) ; break ; case : System o u t p r i n t ( " I " ) ; break ; case : System o u t p r i n t ( " J " ) ; break ; case : System o u t p r i n t ( " K " ) ; break ; case : System o u t p r i n t ( " L " ) ; break ; case : System o u t p r i n t ( "M" ) ; break ; case : System o u t p r i n t ( " N " ) ; break ; case 7 : System o u t p r i n t ( "O" ) ; break ; case : System o u t p r i n t ( " P " ) ; break ; case : System o u t p r i n t ( " ahn " ) ; break ; case : System o u t p r i n t ( " au " ) ; break ; case : System o u t p r i n t ( " urg " ) ; break ; case : System o u t p r i n t ( " E i s " ) ; break ; case : System o u t p r i n t ( " Flug " ) ; break ; case : System o u t p r i n t ( " Hafen " ) ; break ; case 7: System o u t p r i n t ( " H o t e l " ) ; break ; case : System o u t p r i n t ( " Markt " ) ; break ; case 9: System o u t p r i n t ( " Post " ) ; break ; case : System o u t p r i n t ( " Rath " ) ; break ; case : System o u t p r i n t ( " Tanks " ) ; break ; case : System o u t p r i n t ( " Zoo " ) ; break ;

166 9 7 9 / G i b t den Weg von " von " b i s " s t a r t " s t a r t S t a r t p u n k von f e l d Vorgaengermatrix / p r i v a t e s t a t i c v o i d ausgabe_rek ( i n t s t a r t, i n t von, i n t f e l d [ ] ) { i f ( von! = s t a r t ) { ausgabe_rek ( s t a r t, f e l d [ von ], f e l d ) ; System o u t p r i n t ( " " ) ; name ( von ) ; / ie Methode g i b t den k u er z e s t e n Weg aus f e l d aus von den Hauptpunkten zu dne Hauptpunkten 7 9 s t a r t S t a r t p u n k f e l d Vorgaengermatrix / p u b l i c s t a t i c v o i d ausgabe_weg ( i n t s t a r t, i n t f e l d [ ] ) { f o r ( i n t i =; i <; i ++) { i f ( s t a r t!= i ) { ausgabe_rek ( s t a r t, i, f e l d ) ; System o u t p r i n t l n ( ) ; 9 7 / i j k s t r a l g o r i t h m u s i t e r a t i v s t a r t S t a r t p u n k t a b e l l e e r e c h n u n g s t a b e l l e f u e r i j k s t r graph U r s p r u e n g l i c h e V e r b i n d u n g s t a b e l l h e r k u n f t von welchem Punt man Hergekommen i s t um Weg zu Speichern / p u b l i c s t a t i c v o i d d y k s t r a ( i n t s t a r t, i n t [ ] [ ] t a b e l l e, i n t [ ] [ ] graph, i n t [ ] herkunft ) { // initialisierung 9 i n t min_wert = ; i n t min_knoten = s t a r t ; i n t [ ] besucht = new i n t [ graph l e n g t h ] ; f o r ( i n t i =; i <besucht l e n g t h ; i ++) { besucht [ i ] = ; herkunft [ i ] = s t a r t ; f o r ( i n t i = ; i <graph l e n g t h ; i ++) { t a b e l l e [ ] [ i ] = graph [ s t a r t ] [ i ] ; 7

167 f o r ( i n t j =; j < t a b e l l e l e n g t h ; j ++) { / / werte k o p i e r e n i n n a e c h s t e r z e i l e f o r ( i n t i = ; i < t a b e l l e l e n g t h && j >; i ++) { t a b e l l e [ j ] [ i ] = t a b e l l e [ j ][ i ] ; f o r ( i n t i = ; i < t a b e l l e l e n g t h && j >; i ++) { i f ( t a b e l l e [ j ] [ i ]==) { i f ( graph [ s t a r t ] [ i ]! = 9 9 ) { i f ( t a b e l l e [ j ] [ i ] > graph [ s t a r t ] [ i ] + min_wert ) { t a b e l l e [ j ] [ i ] = graph [ s t a r t ] [ i ] + min_wert ; herkunft [ i ]= s t a r t ; min_wert = 9 9 ; besucht [ s t a r t ] = s t a r t ; / / Suche min Wert i n Z e i l e f o r ( i n t i =; i < t a b e l l e l e n g t h ; i ++) { i f ( t a b e l l e [ j ] [ i ] < min_wert && besucht [ i ]== ) { min_wert= t a b e l l e [ j ] [ i ] ; min_knoten = i ; besucht [ s t a r t ] = min_knoten ; s t a r t =min_knoten ; / erechnung des ku e r z e st e n Weges m i t H i l f e des i j k s t r a l g o r i t h m u s / p u b l i c s t a t i c v o i d main ( S t r i n g [ ] args ) { / / I n i t i a l i s i e r u n g der T a b e l l e System o u t p r i n t l n ( " ie k o n k r e t e n Verbindungen s i n d : " ) ; f o r ( i n t s t a r t k n o t e n =; s t a r t k n o t e n <; s t a r t k n o t e n ++) { i n t [ ] h e r k u n f t = new i n t [ graph l e n g t h ] ; / / erechnung des Weges d y k s t r a ( s t a r t k n o t e n, t a b e l l e, graph, h e r k u n f t ) ; System o u t p r i n t l n ( ) ; ausgabe_weg ( s t a r t k n o t e n, h e r k u n f t ) ; / PSP Loesung z u r erechnung der Kuerzesten Wege e i n e s Graphen erechnung m i t dem i j k s t r a l g o r i t h m u s ( a r s t e l l u n g des Graphen a l s d j a z e n z m a t r i x m i t Kantengewichten, = i n f i n i t y ) uthor Manuel F r o i t z h e i m uthor r t u r Nowak Version 9 / 9 7

168 # i n c l u d e < iostream > u s i n g namespace s t d ; / d j a z e n z m a t r i x a l s a r s t e l l u n g des Graphen / i n t graph [ ] [ ] ={ {,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,,, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,,, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,,, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,,, {,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, {,,,,,,,,,,,,,,,,,,

169 ,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, 9 9, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,,, { 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, ; 7 / / Vorgaengermatrix int tabelle [][]; / usgabe des Namen des i n d e x Nummer des Knoten b werden kurznamen ausgegeben / v o i d name ( i n t i n d e x ) { s w i t c h ( i n d e x +) { case : c o u t <<" ahnhof " ; break ; case : c o u t <<" a u s t e l l e " ; break ; case : c o u t <<" urg " ; break ; case : c o u t <<" E i s " ; break ; case : c o u t <<" Flughafen " ; break ; case : c o u t <<" Hafen " ; break ; case 7 : c o u t <<" H o t e l " ; break ; case : c o u t <<" Markt " ; break ; case 9 : c o u t <<" Post " ; break ; case : c o u t <<" Rathaus " ; break ; case : c o u t <<" T a n k s t e l l e " ; break ; case : c o u t <<"Zoo " ; break ; case : c o u t <<" " ; break ; case : c o u t <<" " ; break ; case : c o u t <<" " ; break ; case : c o u t <<" " ; break ; case 7 : c o u t <<"E " ; break ; case : c o u t <<"F " ; break ; case 9 : c o u t <<"G" ; break ; case : c o u t <<"H " ; break ; case : c o u t <<" I " ; break ; case : c o u t <<"J " ; break ; case : c o u t <<"K " ; break ; case : c o u t <<"L " ; break ; case : c o u t <<"M" ; break ; case : c o u t <<"N " ; break ; case 7 : c o u t <<"O" ; break ; case : c o u t <<"P " ; break ; case : c o u t <<"ahn " ; break ; case : c o u t <<"au " ; break ; case : c o u t <<" urg " ; break ; case : c o u t <<" E i s " ; break ; case : c o u t <<" Flug " ; break ; case : c o u t <<" Hafen " ; break ; case 7: c o u t <<" H o t e l " ; break ; case : c o u t <<" Markt " ; break ; case 9: c o u t <<" Post " ; break ; case : c o u t <<" Rath " ; break ; 9

170 case : c o u t <<"Tanks " ; break ; case : c o u t <<"Zoo " ; break ; / Methode g i b t d i e berechnete d j a z e n z m a t r i x ( V e r b i n d u n g s t a b e l l e ) a u f dem i l d s c h i r f e l d d im e ns i on a le s i n t a r r a y uebergeben, welches b i s d u r c h l a u f e n w i r d / aus v o i d ausgabe_array ( i n t f e l d [ ] [ ] ) { f o r ( i n t u =; u <; u++) { c o u t << " \ t " ; i f ( u <) { / / uswahl des Namensformat name ( u+) ; / / Kuznamen m i t maximal uchstaben else { name ( u ) ; / / Normale Namen c o u t << " \ n " ; f o r ( i n t i = ; i < ; i ++) { / / c o u t << " \ t " ; f o r ( i n t j =; j <; j ++) { c o u t << f e l d [ i ] [ j ] << " \ t " ; c o u t << " \ n " ; 7 9 / G i b t den Weg von " von " b i s " s t a r t " s t a r t S t a r t p u n k von f e l d Vorgaengermatrix / v o i d ausgabe_rek ( i n t s t a r t, i n t von, i n t f e l d [ ] ) { i f ( von! = s t a r t ) { ausgabe_rek ( s t a r t, f e l d [ von ], f e l d ) ; c o u t <<" " ; name ( von ) ; 7 / ie Methode g i b t den k u e rz e s t en Weg aus f e l d aus von den Hauptpunkten zu dne Hauptpunkten 9 s t a r t S t a r t p u n k f e l d Vorgaengermatrix / v o i d ausgabe_weg ( i n t s t a r t, i n t f e l d [ ] ) { f o r ( i n t i =; i <; i ++) { i f ( s t a r t!= i ) { ausgabe_rek ( s t a r t, i, f e l d ) ; c o u t << " \ n " ; 7

171 9 7 9 / i j k s t r a l g o r i t h m u s i t e r a t i v s t a r t S t a r t p u n k t a b e l l e e r e c h n u n g s t a b e l l e f u e r i j k s t r graph U r s p r u e n g l i c h e V e r b i n d u n g s t a b e l l h e r k u n f t von welchem Punt man Hergekommen i s t um Weg zu Speichern / v o i d d y k s t r a ( i n t s t a r t, i n t t a b e l l e [ ] [ ], i n t graph [ ] [ ], i n t h e r k u n f t [ ] ) { // initialisierung int int int for 7 min_wert = ; min_knoten = s t a r t ; besucht [ ] ; ( i n t i =; i <; i ++) { besucht [ i ] = ; herkunft [ i ] = s t a r t ; f o r ( i n t i = ; i <; i ++) { t a b e l l e [ ] [ i ] = graph [ s t a r t ] [ i ] ; f o r ( i n t j =; j <; j ++) { / / werte k o p i e r e n i n n a e c h s t e r z e i l e f o r ( i n t i = ; i < && j >; i ++) { t a b e l l e [ j ] [ i ] = t a b e l l e [ j ][ i ] ; f o r ( i n t i = ; i < && j >; i ++) { i f ( t a b e l l e [ j ] [ i ]==) { i f ( graph [ s t a r t ] [ i ]! = 9 9 ) { i f ( t a b e l l e [ j ] [ i ] > graph [ s t a r t ] [ i ] + min_wert ) { t a b e l l e [ j ] [ i ] = graph [ s t a r t ] [ i ] + min_wert ; herkunft [ i ]= s t a r t ; min_wert = 9 9 ; besucht [ s t a r t ] = s t a r t ; / / Suche min Wert i n Z e i l e f o r ( i n t i =; i <; i ++) { i f ( t a b e l l e [ j ] [ i ] < min_wert && besucht [ i ]== ) { min_wert= t a b e l l e [ j ] [ i ] ; min_knoten = i ; besucht [ s t a r t ] = min_knoten ; s t a r t =min_knoten ; / erechnung des k ue r z e st e n Weges m i t H i l f e des i j k s t r a l g o r i t h m u s 7

172 7 9 / i n t main ( ) { / / I n i t i a l i s i e r u n g der T a b e l l e c o u t << " ie k o n k r et e n Verbindungen s i n d : " << e n d l ; f o r ( i n t s t a r t k n o t e n =; s t a r t k n o t e n <; s t a r t k n o t e n ++) { i n t herkunft [ ] ; / / erechnung des Weges d y k s t r a ( s t a r t k n o t e n, t a b e l l e, graph, h e r k u n f t ) ; c o u t << " \ n " ; ausgabe_weg ( s t a r t k n o t e n, h e r k u n f t ) ; elphi 7 u n i t Wegsuche ; / / elphi / / PSP Loesung z u r erechnung der Kuerzesten Wege e i n e s t a b e l l e e n / / Loesung m i t dem i j k s t r a l g o r i t h m u s / / ( a r s t e l l u n g des t a b e l l e e n a l s d j a z e n z m a t r i x m i t Kantengewichten, = i n f i n i t y ) / / a u t h o r r t u r Nowak / / a u t h o r Manuel F r o i t z h e i m / / version 9 interface uses Windows, Messages, S y s U t i l s, V a r i a n t s, lasses, Graphics, o n t r o l s, Forms, ialogs, S t d t r l s, G r i d s ; 7 9 type TForm = c l a s s ( TForm ) utton : Tutton ; lst_wege : T L i s t o x ; Label : TLabel ; Label : TLabel ; grid : TStringGrid ; procedure u t t o n l i c k ( Sender : TObject ) ; 7 9 private { P r i v a t e e k l a r a t i o n e n public { P u b l i c e k l a r a t i o n e n end ; 7 9 var Form : TForm ; / / d j a z i e n z m a t r i x m i t Kantengewichten zwischen den e i n z e l n e n Knoten var t a b e l l e : array [ 7, 7 ] of i n t e g e r ; v a r weg : a r r a y [ 7, 7 ] o f i n t e g e r ; v a r besucht : a r r a y [ 7 ] o f i n t e g e r ; var herkunft : array [ 7 ] of i n t e g e r ; implementation { $R dfm / / erechnung des k u e r ze s t e n Weges m i t h i l f e des Floyd l g o r i t h m u s i n der Main Methode 7

173 procedure TForm u t t o n l i c k ( Sender : TObject ) ; v a r o, p, i, j, k, x, y, l,m, r, s, s t a r t _ a k t u e l l, min_wert, min_knoten, s t a r t p u n k t, v o n _ a k t u e l l, s t a r t k n o t e n, von : i n t e g e r ; var t e x t : s t r i n g ; begin / / I n i t i a l i s i e r u n g des r r a y m i t f o r o : = t o 7 do begin f o r p := t o 7 do begin tabelle [o,p]:=; end ; / / iagonale m i t f u e l l e n tabelle [o,o]:= end ; / / r r a y m i t Werten f u e l l e n tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,7]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [7,]:= ; tabelle [7,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [9,9]:= ; tabelle [9,]:= ; tabelle [,]:= ; tabelle [,7]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,7]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,9]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; 7

174 tabelle [,]:= ; tabelle [,]:= ; tabelle [,7]:= ; tabelle [,]:= ; tabelle [7,]:= ; tabelle [7,]:= ; tabelle [7,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,9]:= ; tabelle [,]:= ; tabelle [9,9]:= ; tabelle [9,]:= ; tabelle [9,]:= ; tabelle [9,]:= ; tabelle [,]:= ; tabelle [,7]:= ; tabelle [,9]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,9]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,7]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,7]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,7]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,7]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,]:= ; tabelle [,7]:= ; tabelle [7,]:= ; tabelle [7,]:= ; 7

175 tabelle [7,]:= ; tabelle [7,]:= ; tabelle [7,]:= ; 7 9 / / u rc h l au f e n durch d i e verschiedenen S t a r t p u n k t e f o r s t a r t p u n k t : = t o do begin s t a r t _ a k t u e l l := s t a r t p u n k t ; startknoten := s t a r t _ a k t u e l l ; 7 9 / / as r r a y weg m i t Werten f u e l l e n f o r p := t o 7 do begin f o r o : = t o 7 do begin i f ( t a b e l l e [ p ] [ o ] < ) then weg [ p ] [ o ] : = p e l s e weg [ p ] [ o ] : = ; end ; end ; / / erechnung der k u e r ze s t e n Wege min_wert : = ; min_knoten : = s t a r t _ a k t u e l l ; f o r i := t o 7 do begin besucht [ i ]:= ; herkunft [ i ]:= s t a r t _ a k t u e l l ; end ; / / i = 79 f o r i := t o 7 do begin weg [ ] [ i ] : = t a b e l l e [ s t a r t _ a k t u e l l ] [ i ] ; end ; / / i = / / Werte k o p i e r e n f o r j : = t o 7 do begin f o r i := t o 7 do begin weg [ j ] [ i ] : = weg [ j ][ i ] end ; / / i = f o r i : = t o 7 do begin i f weg [ j ] [ i ] = then begin i f t a b e l l e [ s t a r t _ a k t u e l l ] [ i ] <> then begin i f weg [ j ] [ i ] > t a b e l l e [ s t a r t _ a k t u e l l ] [ i ] + min_wert then begin weg [ j ] [ i ] : = t a b e l l e [ s t a r t _ a k t u e l l ] [ i ] + min_wert ; herkunft [ i ] := s t a r t _ a k t u e l l ; end ; / / i f weg [ j ] [ i ] > t a b e l l e [ s t a r t _ a k t u e l l ] [ i ] + min_wert end ; / / i f t a b e l l e [ s t a r t _ a k t u e l l ] [ i ] <> end ; / / i f weg [ j ] [ i ] = end ; / / i = min_wert : = 9 9 ; besucht [ s t a r t _ a k t u e l l ] : = s t a r t _ a k t u e l l ; 7 / / Suche min Wert i n Z e i l e f o r i : = t o 7 do begin i f weg [ j ] [ i ] < min_wert then begin i f besucht [ i ] = then begin min_wert : = weg [ j ] [ i ] ; min_knoten : = i ; end ; / / i f weg [ j ] [ i ] < min_wert 7

176 9 end ; / / i f b e s u c h t [ i ] = end ; / / f o r i = besucht [ s t a r t _ a k t u e l l ] : = min_knoten ; s t a r t _ a k t u e l l : = min_knoten ; end ; / / f o r j = f o r i : = t o do begin f o r j : = t o do begin g r i d e l l s [ j +, i + ] : = i n t t o s t r ( weg [ j + ] [ i + ] ) ; end ; end ; / / usgabe der Wege f o r von : = t o do begin i f von <> s t a r t k n o t e n then begin v o n _ a k t u e l l : = von ; w h i l e v o n _ a k t u e l l <> s t a r t k n o t e n do begin begin ase v o n _ a k t u e l l + o f : t e x t : = ahnhof + t e x t ; : t e x t := austelle + t e x t ; : t e x t : = urg + t e x t ; : t e x t : = Eis + t e x t ; : t e x t : = Flughafen + t e x t ; : t e x t : = Hafen + t e x t ; 7 : t e x t : = Hotel + t e x t ; : t e x t : = Markt + t e x t ; 9 : t e x t : = Post + t e x t ; : t e x t : = Rathaus + t e x t ; : t e x t := Tankstelle + t e x t ; : t e x t : = Zoo + t e x t ; : t e x t : = + t e x t ; : t e x t : = + t e x t ; : t e x t : = + t e x t ; : t e x t : = + t e x t ; 7 : t e x t : = E + t e x t ; : t e x t := F + t e x t ; 9 : t e x t : = G + t e x t ; : t e x t : = H + t e x t ; : t e x t := I + t e x t ; : t e x t := J + t e x t ; : t e x t : = K + t e x t ; : t e x t := L + t e x t ; : t e x t : = M + t e x t ; : t e x t : = N + t e x t ; 7 : t e x t : = O + t e x t ; : t e x t : = P + t e x t ; end ; / / s e l e c t von_aktuell := herkunft [ von_aktuell ] ; t e x t : = + t e x t ; end ; end ; / / w h i l e von <> s t a r t k n o t e n begin ase v o n _ a k t u e l l + o f : t e x t : = ahnhof + t e x t ; : t e x t := austelle + t e x t ; : t e x t : = urg + t e x t ; 7

177 : t e x t := : t e x t := : t e x t := 7: t e x t := : t e x t := 9: t e x t := : t e x t := : t e x t := : t e x t := : t e x t := : t e x t := : t e x t := : t e x t := 7: t e x t := : t e x t := 9: t e x t := : t e x t := : t e x t := : t e x t := : t e x t := : t e x t := : t e x t := : t e x t := 7: t e x t := : t e x t := end ; / / s e l e c t Eis + t e x t ; Flughafen + t e x t ; Hafen + t e x t ; Hotel + t e x t ; Markt + t e x t ; Post + t e x t ; Rathaus + t e x t ; Tankstelle + t e x t ; Zoo + t e x t ; + t e x t ; + t e x t ; + t e x t ; + t e x t ; E + t e x t ; F + text ; G + t e x t ; H + t e x t ; I + text ; J + text ; K + t e x t ; L + text ; M + t e x t ; N + t e x t ; O + t e x t ; P + t e x t ; 9 9 end ; / / i f von <> s t a r t k n o t e n end ; / / f o r von : = lst_wege dditem ( t e x t, lst_wege ) ; t e x t := ; end ; / / S c h l e i f e s t a r t p u n k t end ; lst_wege dditem (, lst_wege ) ; end ; end Pascal 7 9 { Pascal V e r s i o n i j k s t r a E r s t e l l t und g e t e s t e t m i t FreePascal IE f o r Win f o r i V e r s i o n PSP Loesung z u r erechnung der Kuerzesten Wege e i n e s graphen ( a r s t e l l u n g des graphen a l s d j a z e n z m a t r i x m i t Kantengewichten, = i n f i n i t y Manuel F r o i t z h e i r t u r program d i j k s t r a ; uses c r t ; { d j a z i e n z m a t r i x m i t Kantengewichten zwischen den e i n z e l n e n Knoten v a r graph : r r a y [ 7, 7 ] o f i n t e g e r = ( 77

178 (,,,,,,,,,,,,,,,,,,,,,,,,,,, ), ( 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, ), ( 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, ), ( 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, ), ( 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, ), ( 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, ), ( 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, ), ( 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, ), ( 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, ), ( 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, ), ( 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, ), ( 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, ), ( 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, ), ( 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, ), ( 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, ), ( 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, ), ( 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, ), ( 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, ), ( 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, ), ( 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, ), ( 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, ), ( 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, ), (,,,,,,,,,,,,,,,,,,,,,,,,,,, ), ( 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, ), (,,,,,,,,,,,,,,,,,,,,,,,,,,, ), ( 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, ), ( 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, ), ( 9 9,,,,,,,,,,,,,,,,,,,,,,,,,,, ) 7

179 7 ); var t a b e l l e : rray [ 7, 7 ] of i n t e g e r ; var herkunft : rray [ 7 ] of i n t e g e r ; var y, z : i n t e g e r ; 9 { Methode g i b t d i e berechnete d j a z e n z m a t r i x ( Verbindungsgraph ) a u f dem i l d s c h i r m aus procedure ausgabearray ; var i, j : i n t e g e r ; begin W r i t e l n ( ahnhof aust urg E i s Flugh Hafen H o t e l Markt Post Rathaus Tankst Zoo ) ; f o r i := t o do begin case i o f : W r i t e ( ahnhof ) ; : Write ( austelle ) ; : W r i t e ( urg ) ; : W r i t e ( Eis ) ; : W r i t e ( Flughafen ) ; : W r i t e ( Hafen ) ; 7 : W r i t e ( Hotel ) ; : W r i t e ( Markt ) ; 9 : W r i t e ( Post ) ; : W r i t e ( Rathaus ) ; : Write ( Tankstelle ) ; : W r i t e ( Zoo ) ; end ; f o r j : = t o do Write (, graph [ i, j ] ) ; Writeln ; end ; end ; { usgabe des Namen des i n d e x Nummer des Knoten b werden kurznamen ausgegeben procedure namen ( v a r i n d e x : i n t e g e r ) ; begin case ( i n d e x +) o f : W r i t e ( ahnhof ) ; : Write ( austelle ) ; : W r i t e ( urg ) ; : W r i t e ( Eis ) ; : W r i t e ( Flughafen ) ; : W r i t e ( Hafen ) ; 7 : W r i t e ( Hotel ) ; : W r i t e ( Markt ) ; 9 : W r i t e ( Post ) ; : W r i t e ( Rathaus ) ; : Write ( Tankstelle ) ; : W r i t e ( Zoo ) ; : Write ( ) ; : Write ( ) ; 79

180 : : 7: : 9: : : : : : : : 7: : : : : : : : 7: : 9: : : : end ; end ; Write ( Write ( Write ( Write ( Write ( Write ( Write ( Write ( Write ( Write ( Write ( Write ( Write ( Write ( Write ( Write ( Write ( Write ( Write ( Write ( Write ( Write ( Write ( Write ( Write ( Write ( ) ; ) ; E ) ; F ) ; G ) ; H ) ; I ) ; J ) ; K ) ; L ) ; M ) ; N ) ; O ) ; P ) ; ahn ) ; au ) ; urg ) ; Eis ) ; Flug ) ; Hafen ) ; Hotel ) ; Markt ) ; Post ) ; Rath ) ; Tanks ) ; Zoo ) ; { G i b t den Weg von " von " b i s " s t a r t " s t a r t S t a r t p u n k von Endpunkt procedure ausgabe_rek ( v a r s t a r t, von : i n t e g e r ) ; begin i f ( von <> s t a r t ) then begin ausgabe_rek ( s t a r t, h e r k u n f t [ von ] ) ; W r i t e ( ) ; end ; namen ( von ) ; end ; 7 9 { ie Methode g i b t den k u er z e s t e n Weg aus f e l d aus von den Hauptpunkten zu dne s S t a r t p u n k t procedure ausgabe_weg ( v a r s : i n t e g e r ) ; var i, s t a r t : i n t e g e r ; begin s t a r t := s ; i := ; w h i l e ( i <) do begin

181 i f ( s t a r t <> i ) then begin ausgabe_rek ( s t a r t, i ) ; Writeln ( ) ; end ; i : = i +; end ; Writeln ( ) ; W r i t e l n ( i t t e E n t e r druecken f u e r w e i t e r ) ; Readln ( ) ; 7 9 end ; { i j k s t r a l g o r i t h m u s i t e r a t i v s t a r t S t a r t p u n k t procedure d y k s t r a ( v a r s : i n t e g e r ) ; v a r min_wert, min_knoten, s t a r t, i, j : i n t e g e r ; v a r besucht : r r a y [ 7 ] o f i n t e g e r ; begin { initialisierung s t a r t := s ; min_wert : = ; min_knoten : = s t a r t ; 79 f o r i := t o 7 do begin besucht [ i ] : = ; herkunft [ i ] := s t a r t ; t a b e l l e [, i ] : = graph [ s t a r t, i ] ; end ; { begin a l g o r i t h m u s f o r j := t o 7 do begin { werte k o p i e r e n i n n a e c h s t e r z e i l e f o r i := t o 7 do begin i f ( j >) then t a b e l l e [ j ] [ i ] : = t a b e l l e [ j ][ i ] ; end ; i :=; w h i l e ( ( j >) and ( i <) ) do begin i f ( j > ) then begin i f ( t a b e l l e [ j ] [ i ] = 9 9 ) then begin i f ( graph [ s t a r t ] [ i ] < >) then begin i f ( t a b e l l e [ j ] [ i ] > ( graph [ s t a r t ] [ i ] + min_wert ) ) then begin t a b e l l e [ j ] [ i ] : = graph [ s t a r t ] [ i ] + min_wert ; herkunft [ i ]:= s t a r t ;

182 end ; end ; end ; end ; i : = i +; end ; min_wert : = 9 9 ; besucht [ s t a r t ] : = s t a r t ; { Suche min Wert i n Z e i l e f o r i := t o 7 do begin i f ( ( t a b e l l e [ j ] [ i ] < min_wert ) and ( besucht [ i ]= ) ) then begin min_wert : = t a b e l l e [ j ] [ i ] ; min_knoten : = i ; end ; end ; besucht [ s t a r t ] : = min_knoten ; s t a r t : = min_knoten ; end ; end ; begin W r i t e l n ( ie k o n k re t e n Verbindungen s i n d : ) ; z :=; w h i l e ( z <) do begin f o r y := t o 7 do begin h e r k u n f t [ y ] : = ; end ; { erechnung des Weges dykstra ( z ) ; Writeln ( ) ; ausgabe_weg ( z ) ; z : = z +; end ; end Visual asic 7 9 V i s u a l asic (V) PSP Loesung z u r erechnung der Kuerzesten Wege e i n e s Graphen ( a r s t e l l u n g des Graphen a l s d j a z e n z m a t r i x m i t Kantengewichten, = i n f i n i t y ) Loesung m i t dem i j k s t r a l g o r i t h m u s a u t h o r Manuel F r o i t z h e i m a u t h o r r t u r Nowak version P u b l i c lass Form P r i v a t e Sub u t t o n _ l i c k ( yval sender s System Object, yval e s System Eventrgs ) Handles utton l i c k Tabelle i n i t i a l i e s i e r e n im t a b e l l e ( To 7, To 7) s I n t e g e r im weg( To 7, To 7) s I n t e g e r For i = To 7 For j = To 7

183 t a b e l l e ( i, j ) = Next j tabelle ( i, i ) = Next i t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, 7) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e ( 7, ) = t a b e l l e ( 7, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e ( 9, 9) = t a b e l l e ( 9, ) = t a b e l l e (, ) = t a b e l l e (, 7) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, 7) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, 9) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, 7) = t a b e l l e (, ) = t a b e l l e ( 7, ) = t a b e l l e ( 7, ) = t a b e l l e ( 7, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, 9) = t a b e l l e (, ) =

184 t a b e l l e (9, t a b e l l e (9, t a b e l l e (9, t a b e l l e (9, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (7, t a b e l l e (7, t a b e l l e (7, t a b e l l e (7, t a b e l l e (7, 9) = ) = ) = ) = ) = 7) = 9) = ) = ) = 9) = ) = ) = 7) = ) = ) = ) = 7) = ) = ) = ) = ) = ) = ) = ) = 7) = ) = ) = ) = ) = ) = ) = ) = ) = ) = 7) = ) = ) = ) = ) = ) = ) = ) = 7) = ) = ) = ) = ) = ) = 9 I n i t i a l i e s i e r u n g der V a r i a b l e n im s t a r t _ a k t u e l l s I n t e g e r im min_wert s I n t e g e r im min_knoten s I n t e g e r im besucht ( To 7) s I n t e g e r im h e r k u n f t ( To 7) s I n t e g e r

185 7 9 u r c h l a u f durch d i e verschiedenen S t a r t p u n k t e For s t a r t p u n k t = To start_aktuell = startpunkt im s t a r t k n o t e n s I n t e g e r startknoten = start_aktuell 7 9 I n i t i a l i s i e r u n g der Weg T a b e l l e For p = To 7 For q = To 7 I f t a b e l l e ( p, q ) < Then weg ( q, p ) = q Else weg ( q, p ) = End I f Next q Next p erechnung der k u er z e s t e n Wege min_wert = min_knoten = s t a r t _ a k t u e l l 7 9 For i = To 7 besucht ( i ) = herkunft ( i ) = s t a r t _ a k t u e l l Next i For i = To 7 weg (, i ) = t a b e l l e ( s t a r t _ a k t u e l l, i ) Next i For j = To 7 Werte k o p i e r e n i n n a e c h s t e r z e i l e For i = To 7 weg ( j, i ) = weg ( j, i ) Next i For i = To 7 I f weg ( j, i ) = Then I f t a b e l l e ( s t a r t _ a k t u e l l, i ) <> Then I f weg ( j, i ) > t a b e l l e ( s t a r t _ a k t u e l l, i ) + min_wert Then weg ( j, i ) = t a b e l l e ( s t a r t _ a k t u e l l, i ) + min_wert herkunft ( i ) = s t a r t _ a k t u e l l End I f End I f End I f Next i min_wert = besucht ( s t a r t _ a k t u e l l ) = s t a r t _ a k t u e l l Suche min Wert i n Z e i l e For i = To 7 I f weg ( j, i ) < min_wert nd besucht ( i ) = Then min_wert = weg ( j, i ) min_knoten = i End I f Next i besucht ( s t a r t _ a k t u e l l ) = min_knoten

186 s t a r t _ a k t u e l l = min_knoten Next j usgabe der Wege im t e x t s S t r i n g im von s I n t e g e r im v o n _ a k t u e l l s I n t e g e r For von = To I f von <> s t a r t k n o t e n Then v o n _ a k t u e l l = von o While v o n _ a k t u e l l <> s t a r t k n o t e n S e l e c t ase v o n _ a k t u e l l + ase t e x t = " ahnhof " & t e x t ase text = " austelle " & text ase t e x t = " urg " & t e x t ase t e x t = " Eis " & t e x t ase t e x t = " Flughafen " & t e x t ase t e x t = " Hafen " & t e x t ase 7 t e x t = " Hotel " & t e x t ase t e x t = " Markt " & t e x t ase 9 t e x t = " Post " & t e x t ase t e x t = " Rathaus " & t e x t ase text = " Tankstelle " & text ase t e x t = " Zoo " & t e x t ase t e x t = "" & t e x t ase t e x t = "" & t e x t ase t e x t = "" & t e x t ase t e x t = "" & t e x t ase 7 t e x t = "E" & t e x t ase t e x t = "F" & t e x t ase 9 t e x t = "G" & t e x t ase t e x t = "H" & t e x t ase text = " I " & text ase text = "J" & text

187 ase t e x t = "K" & t e x t ase text = "L" & text ase t e x t = "M" & t e x t ase t e x t = "N" & t e x t ase 7 t e x t = "O" & t e x t ase t e x t = "P" & t e x t End S e l e c t Naechsten Knoten waehlen von_aktuell = herkunft ( von_aktuell ) t e x t = " " & t e x t Loop S e l e c t ase v o n _ a k t u e l l + ase t e x t = " ahnhof " & t e x t ase text = " austelle " & text ase t e x t = " urg " & t e x t ase t e x t = " Eis " & t e x t ase t e x t = " Flughafen " & t e x t ase t e x t = " Hafen " & t e x t ase 7 t e x t = " Hotel " & t e x t ase t e x t = " Markt " & t e x t ase 9 t e x t = " Post " & t e x t ase t e x t = " Rathaus " & t e x t ase text = " Tankstelle " & text ase t e x t = " Zoo " & t e x t ase t e x t = "" & t e x t ase t e x t = "" & t e x t ase t e x t = "" & t e x t ase t e x t = "" & t e x t ase 7 t e x t = "E" & t e x t ase t e x t = "F" & t e x t ase 9 t e x t = "G" & t e x t 7

188 ase text ase text ase text ase text ase text ase text ase text ase 7 text ase text End S e l e c t = "H" & t e x t = " I " & text = "J" & text = "K" & t e x t = "L" & text = "M" & t e x t = "N" & t e x t = "O" & t e x t = "P" & t e x t 7 9 lst_wege Items dd ( t e x t ) text = "" End I f Next von lst_wege Items dd ( " " ) Next s t a r t p u n k t End Sub End lass Visual asic for pplication mit Excel 7 V i s u a l asic f o r p p l i c a t i o n (V) m i t Excel PSP Loesung z u r erechnung der Kuerzesten Wege e i n e s t a b e l l e e n M i t H i l f e des i j k s t r a l g o r i t h m u s ( a r s t e l l u n g des t a b e l l e e n a l s d j a z e n z m a t r i x m i t Kantengewichten, = i n f i n i t y ) a u t h o r r t u r Nowak a u t h o r Manuel F r o i t z h e i m version P r i v a t e Sub cmd_berechnen_lick ( ) Tabelle i n i t i a l i e s i e r e n im t a b e l l e ( To 7, To 7) s I n t e g e r im weg( To 7, To 7) s I n t e g e r For i = To 7 For j = To 7 t a b e l l e ( i, j ) = Next j tabelle ( i, i ) = Next i t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, 7) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) =

189 t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e ( 7, ) = t a b e l l e ( 7, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e ( 9, 9) = t a b e l l e ( 9, ) = t a b e l l e (, ) = t a b e l l e (, 7) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, 7) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, 9) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, 7) = t a b e l l e (, ) = t a b e l l e ( 7, ) = t a b e l l e ( 7, ) = t a b e l l e ( 7, ) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, 9) = t a b e l l e (, ) = t a b e l l e (9, 9) = t a b e l l e ( 9, ) = t a b e l l e ( 9, ) = t a b e l l e ( 9, ) = t a b e l l e (, ) = t a b e l l e (, 7) = t a b e l l e (, 9) = t a b e l l e (, ) = t a b e l l e (, ) = t a b e l l e (, 9) = t a b e l l e (, ) = 9

190 t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (, t a b e l l e (7, t a b e l l e (7, t a b e l l e (7, t a b e l l e (7, t a b e l l e (7, ) = 7) = ) = ) = ) = 7) = ) = ) = ) = ) = ) = ) = ) = 7) = ) = ) = ) = ) = ) = ) = ) = ) = ) = 7) = ) = ) = ) = ) = ) = ) = ) = 7) = ) = ) = ) = ) = ) = 9 I n i t i a l i e s i e r u n g der V a r i a b l e n im s t a r t _ a k t u e l l s I n t e g e r im min_wert s I n t e g e r im min_knoten s I n t e g e r im besucht ( To 7) s I n t e g e r im h e r k u n f t ( To 7) s I n t e g e r 7 9 u r c h l a u f durch d i e verschiedenen S t a r t p u n k t e For s t a r t p u n k t = To start_aktuell = startpunkt im s t a r t k n o t e n s I n t e g e r startknoten = start_aktuell 7 I n i t i a l i s i e r u n g der Weg T a b e l l e For p = To 7 For q = To 7 I f t a b e l l e ( p, q ) < Then weg ( p, q ) = p 9

191 9 Else weg ( p, q ) = End I f Next q Next p erechnung der k u er z e s t en Wege min_wert = min_knoten = s t a r t _ a k t u e l l 7 9 For i = To 7 besucht ( i ) = herkunft ( i ) = s t a r t _ a k t u e l l Next i For i = To 7 weg (, i ) = t a b e l l e ( s t a r t _ a k t u e l l, i ) Next i For j = To 7 Werte k o p i e r e n i n d i e naechste Z e i l e For i = To 7 weg ( j, i ) = weg ( j, i ) Next i For i = To 7 I f weg ( j, i ) = Then I f t a b e l l e ( s t a r t _ a k t u e l l, i ) <> Then I f weg ( j, i ) > t a b e l l e ( s t a r t _ a k t u e l l, i ) + min_wert Then weg ( j, i ) = t a b e l l e ( s t a r t _ a k t u e l l, i ) + min_wert herkunft ( i ) = s t a r t _ a k t u e l l End I f End I f End I f Next i min_wert = besucht ( s t a r t _ a k t u e l l ) = s t a r t _ a k t u e l l Suche min Wert i n Z e i l e For i = To 7 I f weg ( j, i ) < min_wert nd besucht ( i ) = Then min_wert = weg ( j, i ) min_knoten = i End I f Next i besucht ( s t a r t _ a k t u e l l ) = min_knoten s t a r t _ a k t u e l l = min_knoten Next j usgabe der Wege im t e x t s S t r i n g im von s I n t e g e r For von = To I f von <> s t a r t k n o t e n Then v o n _ a k t u e l l = von o While v o n _ a k t u e l l <> s t a r t k n o t e n S e l e c t ase v o n _ a k t u e l l + 9

192 ase text ase text ase text ase text ase text ase text ase 7 text ase text ase 9 text ase text ase text ase text ase text ase text ase text ase text ase 7 text ase text ase 9 text ase text ase text ase text ase text ase text ase text ase text ase 7 text ase text = " ahnhof " & t e x t = " austelle " & text = " urg " & t e x t = " Eis " & t e x t = " Flughafen " & t e x t = " Hafen " & t e x t = " Hotel " & t e x t = " Markt " & t e x t = " Post " & t e x t = " Rathaus " & t e x t = " Tankstelle " & text = " Zoo " & t e x t = "" & t e x t = "" & t e x t = "" & t e x t = "" & t e x t = "E" & t e x t = "F" & t e x t = "G" & t e x t = "H" & t e x t = " I " & text = "J" & text = "K" & t e x t = "L" & text = "M" & t e x t = "N" & t e x t = "O" & t e x t = "P" & t e x t 9

193 End S e l e c t Naechsten Knoten waehlen von_aktuell = herkunft ( von_aktuell ) t e x t = " " & t e x t Loop S e l e c t ase v o n _ a k t u e l l + ase t e x t = " ahnhof " & t e x t ase text = " austelle " & text ase t e x t = " urg " & t e x t ase t e x t = " Eis " & t e x t ase t e x t = " Flughafen " & t e x t ase t e x t = " Hafen " & t e x t ase 7 t e x t = " Hotel " & t e x t ase t e x t = " Markt " & t e x t ase 9 t e x t = " Post " & t e x t ase t e x t = " Rathaus " & t e x t ase text = " Tankstelle " & text ase t e x t = " Zoo " & t e x t ase t e x t = "" & t e x t ase t e x t = "" & t e x t ase t e x t = "" & t e x t ase t e x t = "" & t e x t ase 7 t e x t = "E" & t e x t ase t e x t = "F" & t e x t ase 9 t e x t = "G" & t e x t ase t e x t = "H" & t e x t ase text = " I " & text ase text = "J" & text ase t e x t = "K" & t e x t ase text = "L" & text ase t e x t = "M" & t e x t 9

194 7 9 ase t e x t = "N" & t e x t ase 7 t e x t = "O" & t e x t ase t e x t = "P" & t e x t End S e l e c t 7 9 lst_wege dditem ( t e x t ) text = "" End I f Next von lst_wege dditem ( " " ) Next s t a r t p u n k t End Sub 9

195 9 Kopiervorlagen 9 Gruppenschilder ie Gruppenschilder werden bei der Vorbereitung auf den Gruppentischen verteilt ie Schüler und Schülerinnen erhalten in Moodle ihre Gruppennummer und können anschließend an ihren Gruppentischen mit der rbeit beginnen 9

196 9

197 97

198 9

HEUTE. Datenstrukturen im Computer. Datenstrukturen. Rekursion. Feedback Evaluation. abstrakte Datenstrukturen

HEUTE. Datenstrukturen im Computer. Datenstrukturen. Rekursion. Feedback Evaluation. abstrakte Datenstrukturen 9.2.5 HUT 9.2.5 3 atenstrukturen im omputer atenstrukturen ie beiden fundamentalen atenstrukturen in der Praxis sind rray und Liste Rekursion Feedback valuation rray Zugriff: schnell Umordnung: langsam

Mehr

Einführung in (Binäre) Bäume

Einführung in (Binäre) Bäume edeutung und Ziele inführung in (inäre) äume Marc Rennhard http://www.tik.ee.ethz.ch/~rennhard rennhard@tik.ee.ethz.ch äume gehören ganz allgemein zu den wichtigsten in der Informatik auftretenden atenstrukturen,

Mehr

Kürzeste Wege in Graphen. Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik

Kürzeste Wege in Graphen. Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik Kürzeste Wege in Graphen Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik Gliederung Einleitung Definitionen Algorithmus von Dijkstra Bellmann-Ford Algorithmus Floyd-Warshall Algorithmus

Mehr

Programm Word oder Open Office writer. Einladung gestalten und ausdrucken / Einladung präsentieren

Programm Word oder Open Office writer. Einladung gestalten und ausdrucken / Einladung präsentieren Unterrichtseinheit MK7 Das Auge isst mit / Texte 5a und 5b MK7 Das Auge isst mit / Texte 5a 5b Kurzinformation Zeitraum: Stufe: Technische Voraussetzungen: Erforderliche Vorkenntnisse: 6 Lektionen (1 Lektion

Mehr

183.579, SS2012 Übungsgruppen: Do., 14.6. Mi., 20.6.2012

183.579, SS2012 Übungsgruppen: Do., 14.6. Mi., 20.6.2012 VU Technische Grundlagen der Informatik Übung 8: Systemsoftware und Netzwerke 183.579, SS2012 Übungsgruppen: o., 14.6. Mi., 20.6.2012 ufgabe 1: Virtual Memory Zeichnen Sie ein System das Paging zur Speicherverwaltung

Mehr

Programmierkurs: Delphi: Einstieg

Programmierkurs: Delphi: Einstieg Seite 1 von 6 Programmierkurs: Delphi: Einstieg Aus Wikibooks Inhaltsverzeichnis 1 Einstieg Einstieg Was ist Delphi Borland Delphi ist eine RAD-Programmierumgebung von Borland. Sie basiert auf der Programmiersprache

Mehr

Delphi Grundkurs Seite 31

Delphi Grundkurs Seite 31 Delphi Grundkurs Seite 31 Beispiel 9 Notenanalyse Problem: Programm P09 Schulnoten in Editfeld eingeben: bei wird Text in Zahl x umgewandelt; Bei Eingabefehler (x < 1 oder x > 5 oder x nicht numerisch)

Mehr

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich

Mehr

Von Paul Curzon, Queen Mary, University of London mit Unterstützung von Google und EPSRC

Von Paul Curzon, Queen Mary, University of London mit Unterstützung von Google und EPSRC Compu terwissenscha ften mi t Spaßfak tor Spiele gewinnen: der perfekte Tic Tac Toe-Spieler Von Paul Curzon, Queen Mary, University of London mit Unterstützung von Google und EPSRC Spiele gewinnen: der

Mehr

Kreuzen Sie bei den folgenden 14 Fragen jeweils den Buchstaben (A, B, C oder D) vor der richtigen Antwort an. Nur EINE Antwort ist richtig.

Kreuzen Sie bei den folgenden 14 Fragen jeweils den Buchstaben (A, B, C oder D) vor der richtigen Antwort an. Nur EINE Antwort ist richtig. EL Modul Online-Zusammenarbeit_EMO, Version vom 29..203 EMOTEST Online-Zusammenarbeit Vorname e [erforderlich 27 von 36 en] Nachname atum EL emotest Online-Zusammenarbeit Kreuzen Sie bei den folgenden

Mehr

Visuelle Simulation eines Radiosity Algorithmus und ihre Anwendung in Lernprozessen

Visuelle Simulation eines Radiosity Algorithmus und ihre Anwendung in Lernprozessen Visuelle Simulation eines Radiosity Algorithmus und ihre Anwendung in Lernprozessen Abschlussvortrag zur Diplomarbeit von Jörg Karpf Graphische Datenverarbeitung, Institut für Informatik 3. September 2009

Mehr

14. Tutorium zu Programmieren

14. Tutorium zu Programmieren 14. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2009 by IPD Snelting

Mehr

Programmierung, Algorithmen und Techniken. von Thomas Ohlhauser

Programmierung, Algorithmen und Techniken. von Thomas Ohlhauser Programmierung, Algorithmen und Techniken von Thomas Ohlhauser 1. Begriff Programmierung Entwicklung von Programmen inklusive der dabei verwendeten Methoden und Denkweisen. Ein Programm ist eine eine Zusammensetzung

Mehr

PIWIN 1 Übung Blatt 5

PIWIN 1 Übung Blatt 5 Fakultät für Informatik Wintersemester 2008 André Gronemeier, LS 2, OH 14 Raum 307, andre.gronemeier@cs.uni-dortmund.de PIWIN 1 Übung Blatt 5 Ausgabedatum: 19.12.2008 Übungen: 12.1.2009-22.1.2009 Abgabe:

Mehr

Newton meets JAVA. Ein Modul für das Schülerlabor Informatik InfoSphere - an der RWTH Aachen. Verfasser: Michael Gliesing Philipp Henschel

Newton meets JAVA. Ein Modul für das Schülerlabor Informatik InfoSphere - an der RWTH Aachen. Verfasser: Michael Gliesing Philipp Henschel Computer-Supported Learning Research Group Prof. Dr. U. Schroeder RWTH Aachen Newton meets JAVA Ein Modul für das Schülerlabor Informatik InfoSphere - an der RWTH Aachen Kurz-Info: Verfasser: Michael Gliesing

Mehr

kooperative Erarbeitungsphase (Ko-Konstruktion) Präsentation (Vorstellen) und Auswerten

kooperative Erarbeitungsphase (Ko-Konstruktion) Präsentation (Vorstellen) und Auswerten Das Partnerpuzzle Ludger rüning und Tobias Saum Ziel: Phase: Wissensaneignung Erarbeitung eim Partnerpuzzle bekommen von den vier Gruppenmitgliedern jeweils zwei dieselbe ufgabe. Zunächst macht sich jeder

Mehr

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder Programmieren in PASCAL Bäume 1 1. Baumstrukturen Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder 1. die leere Struktur oder 2. ein Knoten vom Typ Element

Mehr

Delphi DLL Tutorial Wie exportiere ich Komponenten aus einer DLL?

Delphi DLL Tutorial Wie exportiere ich Komponenten aus einer DLL? Delphi DLL Tutorial Wie exportiere ich Komponenten aus einer DLL? Von Padmalcom (20.03.2009) www.jofre.de Nach dem Tutorial 1 von Leonardo M. Ramé 1 Ja, es geht wirklich! Im Internet sind tausende Forenbeinträge

Mehr

InfoSphere Schülerlabor Informatik an der RWTH Aachen

InfoSphere Schülerlabor Informatik an der RWTH Aachen Lehr- und Forschungsgebiet Informatik 9 Computerunterstütztes Lernen & Didaktik der Informatik Prof. Dr.-Ing. Ulrik Schroeder InfoSphere Schülerlabor Informatik an der RWTH Aachen Prof. Schroeder, Nadine

Mehr

Graphen: Einführung. Vorlesung Mathematische Strukturen. Sommersemester 2011

Graphen: Einführung. Vorlesung Mathematische Strukturen. Sommersemester 2011 Graphen: Einführung Vorlesung Mathematische Strukturen Zum Ende der Vorlesung beschäftigen wir uns mit Graphen. Graphen sind netzartige Strukturen, bestehend aus Knoten und Kanten. Sommersemester 20 Prof.

Mehr

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel 3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel EADS 3.1 Konstruktion von minimalen Spannbäumen 16/36

Mehr

Programmieren was ist das genau?

Programmieren was ist das genau? Programmieren was ist das genau? Programmieren heisst Computerprogramme herstellen (von griechisch programma für Vorschrift). Ein Computerprogramm ist Teil der Software eines Computers. Als Software bezeichnet

Mehr

Zeitliche Darstellung und Modellierung von Prozessen mithilfe von Gantt-Diagrammen Bachelorarbeit an der Universität Ulm

Zeitliche Darstellung und Modellierung von Prozessen mithilfe von Gantt-Diagrammen Bachelorarbeit an der Universität Ulm Universität Ulm 89069 Ulm Germany Fakultät für Ingenieurwissenschaften und Informatik Institut für Datenbanken und Informationssysteme Zeitliche Darstellung und Modellierung von Prozessen mithilfe von

Mehr

Kredite Das Geschäft mit. dem Geld. Gruppenstunde / Unterrichtsstunde. geplante Zeit: 2 x 45 min. Alter: ab 12 Jahre

Kredite Das Geschäft mit. dem Geld. Gruppenstunde / Unterrichtsstunde. geplante Zeit: 2 x 45 min. Alter: ab 12 Jahre Gruppenstunde / Unterrichtsstunde Kredite Das Geschäft mit dem Geld geplante Zeit: 2 x 45 min (an verschiedenen Tagen, da zwischen den Stunden eine Erkundungsphase von ca. 2-3 Stunden liegen muss) Alter:

Mehr

Suchen und Sortieren Sortieren. Heaps

Suchen und Sortieren Sortieren. Heaps Suchen und Heaps (Folie 245, Seite 63 im Skript) 3 7 21 10 17 31 49 28 14 35 24 42 38 Definition Ein Heap ist ein Binärbaum, der die Heapeigenschaft hat (Kinder sind größer als der Vater), bis auf die

Mehr

368 4 Algorithmen und Datenstrukturen

368 4 Algorithmen und Datenstrukturen Kap04.fm Seite 368 Dienstag, 7. September 2010 1:51 13 368 4 Algorithmen und Datenstrukturen Java-Klassen Die ist die Klasse Object, ein Pfeil von Klasse A nach Klasse B bedeutet Bextends A, d.h. B ist

Mehr

Sprachbeschreibung und Erweiterung

Sprachbeschreibung und Erweiterung Sprachbeschreibung und Erweiterung Worte, Sprachen, reguläre Ausdrücke, Automaten, BNF, Grammatik, Syntax- Diagramme, Spracherweiterungen do, for, break, switch Formale Beschreibung von Programmiersprachen

Mehr

Kurs 1575, Musterlösung zur Winter Klausur 2002/03

Kurs 1575, Musterlösung zur Winter Klausur 2002/03 1 0 Kurs 1575, Musterlösung zur Klausur im Wintersemester 2002/03 1 Kurs 1575, Musterlösung zur Winter Klausur 2002/03 Aufgabe 1: Warteschlange Wer kennt das Problem nicht? Sie wollen noch schnell im Supermarkt

Mehr

Software Engineering Projekt (SEP) mit ROBOCODE

Software Engineering Projekt (SEP) mit ROBOCODE Software Engineering Projekt (SEP) mit ROBOCODE Klaus Knopper Stand: 2014 http://robocode.sourceforge.net/ Kurzbeschreibung Es wird mit den Methoden des Software Engineering in Teamarbeit

Mehr

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Tablet statt Tafel? - Einsatz neuer Medien im Unterricht

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Tablet statt Tafel? - Einsatz neuer Medien im Unterricht Unterrichtsmaterialien in digitaler und in gedruckter Form Auszug aus: Tablet statt? - Einsatz neuer Medien im Unterricht Das komplette Material finden Sie hier: School-Scout.de Titel: Tablet statt? Einsatz

Mehr

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung Übersicht 3.1 Modell Konto 3.2 Modell Konto - Erläuterungen 3.3 Benutzer Ein- und Ausgabe mit Dialogfenster I 3.4 Benutzer Ein- und Ausgabe mit Dialogfenster II 3.5 Klassen- und Objekteigenschaften des

Mehr

Prozeß P1 Prozeß P2. Zur Synchronisation stehen den beiden Prozessen binäre Semaphore und die beiden Funktionen

Prozeß P1 Prozeß P2. Zur Synchronisation stehen den beiden Prozessen binäre Semaphore und die beiden Funktionen Seite 8 A UFGABE 11 INTERP ROZEßKOMMUNIKATION Das folgende Petrinetz zeigt zwei verkoppelte Prozesse P1 und P2. Die Transitionen a und b beschreiben Aktionen von P1, die Transitionen c und d Aktionen von

Mehr

8. Fachseminar Informatik Martin Jakobs Einstieg in die Objektorientierte Programmierung (Standard 1 / 3)

8. Fachseminar Informatik Martin Jakobs Einstieg in die Objektorientierte Programmierung (Standard 1 / 3) Ergebnisse der Seminarsitzung vom 19. November 2007 Einstieg in die Objektorientierte Programmierung (Standard 1 und 3) Die Schule - ein Textadventure a) Didaktische Überlegungen Textadventures sind Computerspiele

Mehr

LWB VIII. Programmieren mit Delphi Zur Laufzeit verwaltete Objekte. Zur Laufzeit verwaltete Objekte. Am Beispiel des bekannten Memory-Spieles

LWB VIII. Programmieren mit Delphi Zur Laufzeit verwaltete Objekte. Zur Laufzeit verwaltete Objekte. Am Beispiel des bekannten Memory-Spieles Am Beispiel des bekannten Memory-Spieles Warum Spiele? fragen Sie. Ich antworte: um die Kunst der Erfindung zu vervollkommnen. (Leibniz) Mit seinen einfachen und unzweideutigen Regeln ist ein Spiel immer

Mehr

Algorithmen und Programmieren II Einführung in Python

Algorithmen und Programmieren II Einführung in Python Algorithmen und Programmieren II Einführung in Python SS 2012 Prof. Dr. Margarita Esponda 1 Was ist Python? eine Skript-Sprache Anfang der 90er Jahre entwickelt. Erfinder: Guido van Rossum an der Universität

Mehr

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1 3.2 Binäre Suche Beispiel 6.5.1: Intervallschachtelung (oder binäre Suche) (Hier ist n die Anzahl der Elemente im Feld!) Ein Feld A: array (1..n) of Integer sei gegeben. Das Feld sei sortiert, d.h.: A(i)

Mehr

Mathematikunterricht mit GTR und CAS

Mathematikunterricht mit GTR und CAS T 3 Regionaltagung Unna Neue Richtlinien und Lehrpläne in NRW ab 2014 Mathematikunterricht mit GTR und CAS Termin: 17. November 2012 Ort: Anfahrt: Abendschule Unna Morgenstraße 47 59423 Unna http://www.abendschuleunna.de/abendschule-unna/anfahrt/

Mehr

Organisationsformen für das Lernen mit dem Computer

Organisationsformen für das Lernen mit dem Computer LMU SS 2011-05-16 04.05.2011 Seminar Computereinsatz im Mathematikunterricht Dozent: Hr. Zebhauser Referenntin: Christine Lang Organisationsformen für das Lernen mit dem Computer 1. Möglichkeiten der Organisation

Mehr

www.wiesl.net SPIELPLAN: weisser Raster mit 36 eingezeichneten Feldern

www.wiesl.net SPIELPLAN: weisser Raster mit 36 eingezeichneten Feldern HALLO UND WILLKOMMEN! DRUCKEN: Am besten weisses Papier verwenden, Papierformat Din A4, Hochformat. Schwarz/weiss oder Farbdruck. (Das Spielmaterial sieht in Farbe natürlich schöner aus.) Spielfiguren

Mehr

Datum, Uhrzeit: 18. 07. 2014, 10.30 Uhr Matrikelnummer:... Semester: INbac2 Prüfer: Prof. Meixner Note:...

Datum, Uhrzeit: 18. 07. 2014, 10.30 Uhr Matrikelnummer:... Semester: INbac2 Prüfer: Prof. Meixner Note:... Prüfung "Programmieren 2", INbac2, SS 2014 Seite 1 von 7 Datum, Uhrzeit: 18. 07. 2014, 10.30 Uhr Matrikelnummer:... Semester: INbac2 Prüfer: Prof. Meixner Note:... Dauer: 60 Min. Hilfsmittel: keine Punkte:...

Mehr

KV Software Engineering Übungsaufgaben SS 2005

KV Software Engineering Übungsaufgaben SS 2005 KV Software Engineering Übungsaufgaben SS 2005 Martin Glinz, Silvio Meier, Nancy Merlo-Schett, Katja Gräfenhain Übung 1 Aufgabe 1 (10 Punkte) Lesen Sie das Originalpapier von Dijkstra Go To Statement Considered

Mehr

Kapiteltests zum Leitprogramm Binäre Suchbäume

Kapiteltests zum Leitprogramm Binäre Suchbäume Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm

Mehr

Kurzanleitung - Qstar mit DigiTerra Explorer

Kurzanleitung - Qstar mit DigiTerra Explorer Kurzanleitung - Qstar mit igiterra Explorer ktuelle Software, nleitungen etc. finden Sie auf unserer Webseite im ownloadbereich: www.geomatik.de/download/index.php Wählen Sie dort Tools Hi-Target und melden

Mehr

ABITURPRÜFUNG 2009 LEISTUNGSFACH INFORMATIK

ABITURPRÜFUNG 2009 LEISTUNGSFACH INFORMATIK ABITURPRÜFUNG 2009 LEISTUNGSFACH INFORMATIK (HAUPTTERMIN) Bearbeitungszeit: 270 Minuten Hilfsmittel: Wörterbuch zur deutschen Rechtschreibung Taschenrechner (nicht programmierbar, nicht grafikfähig) (Schüler,

Mehr

Hausinterne s Curriculum Informatik, G8 - Differenzierung

Hausinterne s Curriculum Informatik, G8 - Differenzierung Hausinterne s Curriculum Informatik, G8 - Differenzierung (Stand Aug u s t 2010) Ver ei n b a r u n g der verbi n dli c h e n Unterri c ht si n h a l t e aus der Fac h k o n f e r e n z Infor m a t i k

Mehr

Vergleich verschiedener OO-Programmiersprachen

Vergleich verschiedener OO-Programmiersprachen Vergleich verschiedener OO-Programmiersprachen - Schnellumstieg in 15 Minuten - C++ Java Visual C++ C# Programmbeispiel in Visual C++, C#, Java und C++ Dr. Ehlert, Juni 2012 1 Inhaltsverzeichnis 1. Problemstellung

Mehr

Schnecken neu entdecken Einführung

Schnecken neu entdecken Einführung Schnecken neu entdecken Einführung Einleitung Geschätzte Lehrperson Die Museumskiste Schnecken neu entdecken hat zum Ziel, Beobachtungen in der Natur mittels den sogenannten Neuen Medien zu dokumentieren.

Mehr

Spielanleitung Wie funktioniert das Internet?

Spielanleitung Wie funktioniert das Internet? Spielanleitung Wie funktioniert das Internet? Ein Würfelspiel für 2 oder mehr Spieler 1. Für Spieler ab 6 Jahren. Spielmaterial: diese Spielanleitung 1 Spielwürfel (mit Augenzahlen 1 bis 4 und den Symbolen

Mehr

Übungen zur Softwaretechnik

Übungen zur Softwaretechnik Technische Universität München Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering Markus Pister, Dr. Bernhard Rumpe WS 2002/2003 Lösungsblatt 1 17. Oktober 2002 www4.in.tum.de/~rumpe/se

Mehr

Praktikum Informatik II Prof. Dr. Martin Trauth, Dr. Michael Männel

Praktikum Informatik II Prof. Dr. Martin Trauth, Dr. Michael Männel Praktikum Informatik II Prof. Dr. Martin Trauth, Dr. Michael Männel FB Physikalische Technik Musterlösungen Teil 4 Aufgabe 1 package teil4; import javax.swing.*; public class Ei { int haltung, ident; String

Mehr

Informatik-Sommercamp 2012. Mastermind mit dem Android SDK

Informatik-Sommercamp 2012. Mastermind mit dem Android SDK Mastermind mit dem Android SDK Übersicht Einführungen Mastermind und Strategien (Stefan) Eclipse und das ADT Plugin (Jan) GUI-Programmierung (Dominik) Mastermind und Strategien - Übersicht Mastermind Spielregeln

Mehr

Modul: Soziale Kompetenz. Vier Ohren. Zeitl. Rahmen: ~ 45 min. Ort: drinnen

Modul: Soziale Kompetenz. Vier Ohren. Zeitl. Rahmen: ~ 45 min. Ort: drinnen Modul: Soziale Kompetenz Vier Ohren Zeitl. Rahmen: ~ 45 min. Ort: drinnen Teilnehmer: 3-20 Personen (Die Übung kann mit einer Gruppe von 3-6 Personen oder bis zu max. vier Gruppen realisiert werden) Material:

Mehr

Zum Einsatz von Operatoren im Informatikunterricht

Zum Einsatz von Operatoren im Informatikunterricht Friedrich-Schiller-Universität Jena Fakultät für Mathematik und Informatik Professur für Didaktik der Informatik/Mathematik Claudia Strödter E-Mail: claudia.stroedter@uni-jena.de Zum Einsatz von Operatoren

Mehr

Mediale Informationen erschließen, aufbereiten, verarbeiten. Intensive Kommunikation von Schüler und Stoff

Mediale Informationen erschließen, aufbereiten, verarbeiten. Intensive Kommunikation von Schüler und Stoff Unterrichtsverlauf zu: UE Leasing, 6 8 Std., Jahrgangsstufe 1, Wirtschaft, Berufliches Gymnasium U- Phase 1. Std. Angestrebte Kompetenzen/Ziele Medien und weitere 5 Min. Stundenthema: Merkmale des Leasings

Mehr

.NET-Networking 2 Windows Communication Foundation

.NET-Networking 2 Windows Communication Foundation .NET-Networking 2 Windows Communication Foundation Proseminar Objektorientiertes Programmieren mit.net und C# Fabian Raab Institut für Informatik Software & Systems Engineering Agenda Grundproblem Bestandteile

Mehr

CORBA. Systemprogrammierung WS 2006-2007

CORBA. Systemprogrammierung WS 2006-2007 CORBA Systemprogrammierung WS 2006-2007 Teilnehmer: Bahareh Akherattalab Babak Akherattalab Inhaltsverzeichnis: Verteilte Systeme Vergleich zwischen lokale und verteilte Systeme Verteilte Anwendungen CORBA

Mehr

Wie funktioniert das Internet?

Wie funktioniert das Internet? Wie funktioniert das Internet? http://schuelerlabor.informatik.rwth-aachen.de Verfasser: Christoph Siegers Kurz-Info: Informatischer Inhalt: Netzwerke, Flusssteuerung, Daten Jahrgangsstufe: 5 bis 7 Vorwissen:

Mehr

Unterrichtsvorhaben Q2- I:

Unterrichtsvorhaben Q2- I: Schulinterner Lehrplan Informatik Sekundarstufe II Q2 III. Qualifikationsphase Q2 Unterrichtsvorhaben Q2- I: Im ersten Halbjahr 1 Klausur, im 2. Halbjahr ein Projekt. Die Länge der Klausur beträgt 90 min.

Mehr

Java-Schulung Grundlagen

Java-Schulung Grundlagen Java-Schulung Grundlagen Java 2 Standard Edition JDK 5 / 6 31.05.2008 Marcel Wieczorek 1 Themenübersicht Basiswissen Objektorientierung Datentypen Fehlerbehandlung Sonstiges Einführung Klassen, Strings

Mehr

Jetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen.

Jetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen. Teil B: Erweiterungen Jetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen. Die folgenden Aufgaben und Ausführungen geben einige Hilfestellungen, welche (mindestens

Mehr

iphoto Einführung Importieren und Verwalten Ihrer Fotos und Erstellen einer Diashow und eines Buchs

iphoto Einführung Importieren und Verwalten Ihrer Fotos und Erstellen einer Diashow und eines Buchs iphoto Einführung Importieren und Verwalten Ihrer Fotos und Erstellen einer iashow und eines uchs 1 Inhalt Kapitel 1 4 Willkommen bei iphoto 4 Verwenden dieses okuments 5 Neue Funktionen in iphoto 6 Weitere

Mehr

LON - Gateway MU-15LON

LON - Gateway MU-15LON 1 2 3 1 16 31 46 61 76 TE T 1/3 2/3 3/3 TE T 1/3 2/3 3/3 us 1 5 10 15 1 2 3 4 EIN 1 5 10 15 L.Test LON - Gateway MU-15LON ESHREIUNG Über ein LON - ussystem kommunizieren digitale Ein- / usgabe - augruppen

Mehr

Übungspaket 19 Programmieren eigener Funktionen

Übungspaket 19 Programmieren eigener Funktionen Übungspaket 19 Programmieren eigener Funktionen Übungsziele: Skript: 1. Implementierung und Kodierung eigener Funktionen 2. Rekapitulation des Stack-Frames 3. Parameterübergabe mittels Stack und Stack-Frame

Mehr

Campus Routenplaner. Praxis der Software-Entwicklung. www.kit.edu. Einführung 27. April, 2015 Michael Hamann Franziska Wegner

Campus Routenplaner. Praxis der Software-Entwicklung. www.kit.edu. Einführung 27. April, 2015 Michael Hamann Franziska Wegner Campus Routenplaner Praxis der Software-Entwicklung Einführung 27. April, 2015 Michael Hamann Franziska Wegner INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes

Mehr

1.4.12 Sin-Funktion vgl. Cos-Funktion

1.4.12 Sin-Funktion vgl. Cos-Funktion .4. Sgn-Funktion Informatik. Semester 36 36.4.2 Sin-Funktion vgl. Cos-Funktion Informatik. Semester 37 37 .4.3 Sqr-Funktion Informatik. Semester 38 38.4.4 Tan-Funktion Informatik. Semester 39 39 .5 Konstanten

Mehr

C# im Vergleich zu Java

C# im Vergleich zu Java C# im Vergleich zu Java Serhad Ilgün Seminar Universität Dortmund SS 03 Gliederung Entstehung von C# und Java Überblick von C# und Java Unterschiede und Gemeinsamkeiten Zusammenfassung und Ausblick Entstehung

Mehr

Füreinander ein «Gänsespiel» kreieren, in das die Schüler ihre Eindrücke und Erlebnisse der Begegnung integrieren.

Füreinander ein «Gänsespiel» kreieren, in das die Schüler ihre Eindrücke und Erlebnisse der Begegnung integrieren. E3: Aktivität 5: Gänsespiel erstellen (Schritte 1-4) Füreinander ein «Gänsespiel» kreieren, in das die Schüler ihre Eindrücke und Erlebnisse der Begegnung integrieren. Allgemeine Zielsetzung: Nachbereitung

Mehr

Hinweise zum Aufbau des Bausatzes

Hinweise zum Aufbau des Bausatzes Hinweise zum ufbau des Bausatzes SB 25 JM er Systembausatz SB 25 JM besteht aus zwei 5.25 Tief-Mitteltonsystemen, einer 1 Seidenkalotte und der dazu passenden 2 1/2 Wege Frequenzweiche. er Bausatz kann

Mehr

Übung zur Vorlesung Einführung in die Computerlinguistik und Sprachtechnologie

Übung zur Vorlesung Einführung in die Computerlinguistik und Sprachtechnologie Übung zur Vorlesung Einführung in die Computerlinguistik und Sprachtechnologie Wintersemester 2009/10, Prof. Dr. Udo Hahn, Erik Fäßler Übungsblatt 3 vom 19.11.2009 Abgabe bis 26.11.2009, 14:30 Uhr; per

Mehr

Kapitel 12 Lernzielkontrolle PowerPoint 2010 Beantworten Sie die folgenden 12Fragen

Kapitel 12 Lernzielkontrolle PowerPoint 2010 Beantworten Sie die folgenden 12Fragen asic omputer Skills Microsoft PowerPoint 2010 Kapitel 12 Lernzielkontrolle PowerPoint 2010 eantworten Sie die folgenden 12Fragen Im Ordner 12_Kapitel_Lernzielkontrolle finden Sie alle notwendigen Dateien.

Mehr

Add-on CardScan für Sage CRM

Add-on CardScan für Sage CRM dd-on ardcan für age M Bei dem dd-on ardcan handelt es sich um ein eigenständiges Programm. Für die uswahlfelder (z.b. Lead-Quelle) merkt sich das Programm den letzten verwendeten Wert und stellt diesen

Mehr

Approximationsalgorithmen

Approximationsalgorithmen Ausarbeitung zum Thema Approximationsalgorithmen im Rahmen des Fachseminars 24. Juli 2009 Robert Bahmann robert.bahmann@gmail.com FH Wiesbaden Erstellt von: Robert Bahmann Zuletzt berarbeitet von: Robert

Mehr

Materialien. Thema: Smartphones im Unterricht und in der Schule: Nicht ohne mein Handy

Materialien. Thema: Smartphones im Unterricht und in der Schule: Nicht ohne mein Handy KOOPERATIVES LERNEN ALEV-Schule und MARMARA Universität Istanbul Europäischer Tag des Kooperativen Lernens 28.03./ 29.03. 2014 Workshop: Alev Lassmann &Peter Lassmann Studienseminar für Gymnasien Marburg

Mehr

Java Kurs für Anfänger Einheit 5 Methoden

Java Kurs für Anfänger Einheit 5 Methoden Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden

Mehr

Erste Schritte in Java

Erste Schritte in Java Erste Schritte in Java Im einführenden Kapitel haben wir die Grundbegriffe der imperativen Programmierung an einem Beispiel (Algorithmus von Euklid) kennengelernt. In diesem Kapitel sehen wir uns an einem

Mehr

Komponententest. Testen von Software Systemen. Übung 02 SS 2009 Version: 1.0 09.06.2009

Komponententest. Testen von Software Systemen. Übung 02 SS 2009 Version: 1.0 09.06.2009 Testen von Software Systemen Übung 02 SS 2009 Version: 1.0 09.06.2009 Komponententest Kunde: Dr. Reinhold Plösch Dr. Johannes Sametinger Kundenreferenz: 259.019 Team 19 Mitarbeiter: Christian Märzinger

Mehr

4 Greedy-Algorithmen (gierige Algorithmen)

4 Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen werden oft für die exakte oder approximative Lösung von Optimierungsproblemen verwendet. Typischerweise konstruiert ein Greedy-Algorithmus eine

Mehr

6 Systematisches Testen von Programmen

6 Systematisches Testen von Programmen 6 Systematisches Testen von Programmen Testen Untersuchung des Source-Codes nach Fehlern und Anomalien Stefan Lucks, Software-Entwicklung für Sichere Systeme SS 04, Kapitel 6 p.1/24 Untersuchung des Source-Codes

Mehr

Multimedia im Netz Wintersemester 2011/12

Multimedia im Netz Wintersemester 2011/12 Multimedia im Netz Wintersemester 2011/12 Übung 01 Betreuer: Verantwortlicher Professor: Sebastian Löhmann Prof. Dr. Heinrich Hussmann Organisatorisches 26.10.2011 MMN Übung 01 2 Inhalte der Übungen Vertiefung

Mehr

Wo geht s lang: Routing. Erstellt von Simon Wegbünder.

Wo geht s lang: Routing. Erstellt von Simon Wegbünder. Wo geht s lang: Routing Erstellt von. 1. Routing allgemein efinition: Festlegen von Wegen für Nachrichtenströme bei der Nachrichtenübermittlung in Rechnernetzen - Paketvermittelte Übertragung (so auch

Mehr

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java Willkommen zur Vorlesung Objektorientierte Programmierung Vertiefung - Java Zum Dozenten Mein Name: Andreas Berndt Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen

Mehr

2 Programmentwicklung mit Delphi

2 Programmentwicklung mit Delphi 2.1 Arbeiten mit Delphi 26 2 Programmentwicklung mit Delphi Die Programmentwicklung mit Delphi wird in drei Schritten eingeführt: Zuerst wird die prinzipielle Arbeitsweise geschildert, danach wird das

Mehr

JDBC. Allgemeines ODBC. java.sql. Beispiele

JDBC. Allgemeines ODBC. java.sql. Beispiele JDBC Java Data Base Connectivity Programmierschnittstelle für relationale Datenbanken Sammlung von Klassen, welche zum Aufbau einer Verbindung zwischen einem Java-Programm und einer Datenbank dienen Verwendet

Mehr

Informatik Kurs 12 André Hoffmann. Delphi. Einführung in die Windows- Programmierung

Informatik Kurs 12 André Hoffmann. Delphi. Einführung in die Windows- Programmierung Informatik Kurs 12 André Hoffmann Delphi Einführung in die Windows- Programmierung Grundlagen Entwicklung von Windows-Programmen Relativ unkompliziert durch typische, vorgefertigte Elemente Programmiertechnische

Mehr

Ein Rechenspiel auf der Hunderter-Tafel. Reinhold Wittig

Ein Rechenspiel auf der Hunderter-Tafel. Reinhold Wittig Ein Rechenspiel auf der Hunderter-Tafel Reinhold Wittig Ein Rechenspiel auf der Hunderter-Tafel für 2 Spieler ab 8 Jahren Autor Reinhold Wittig Inhalt 1 Spielbrett (Hunderter-Tafel) 1 transparente Maske

Mehr

Praktikum im Bereich Praktische Informatik Echtzeitgraphik in C++ und DirectX10. computer graphics & visualization

Praktikum im Bereich Praktische Informatik Echtzeitgraphik in C++ und DirectX10. computer graphics & visualization Praktikum im Bereich Praktische Informatik Echtzeitgraphik in C++ und DirectX10 Übersicht In den ersten Wochen: Einführung in objektorientierte Programmierung mit C++ Anschließend: Einführung in die programmierbare

Mehr

TCP/IP Programmierung. C# TimeServer Java6 TimeClient

TCP/IP Programmierung. C# TimeServer Java6 TimeClient TCP/IP Programmierung C# TimeServer Java6 TimeClient Stand 19.10.11 21:24:32 Seite 1 von 16 Inhaltsverzeichnis Erläuterung...3 Software...3 C#TimeServer...4 Klasse ServerThread...6 Starten und Beenden...7

Mehr

Es ist ratsam vor den ersten Versuchen mit der Extension stets eine Sicherungskopie des Projekts anzulegen.

Es ist ratsam vor den ersten Versuchen mit der Extension stets eine Sicherungskopie des Projekts anzulegen. GB2UTM Tools Einführung Die ArcView 3-Extension GB2UTM Tools soll im Rahmen des Projekts GB2UTM dem GIS- Anwender bei der Umstellung seiner ArcView 3-Projekte ein Hilfsmittel darstellen. Es ist ratsam

Mehr

Zum Abschluss wird gezeigt, wie aus einem C++ Quell-Programm ein ausführbares Programm erzeugt wird. 1. Installation von NetBeans...

Zum Abschluss wird gezeigt, wie aus einem C++ Quell-Programm ein ausführbares Programm erzeugt wird. 1. Installation von NetBeans... Erste Schritte Dieser Teil der Veranstaltung gibt einen ersten Eindruck der Programmierung mit C++. Es wird ein erstes Gefühl von Programmiersprachen vermittelt, ohne auf die gezeigten Bestandteile genau

Mehr

1 Wer bloggt was? Eine Analyse der deutschen Top 100-Blogs mit Hilfe von Cluster-Verfahren

1 Wer bloggt was? Eine Analyse der deutschen Top 100-Blogs mit Hilfe von Cluster-Verfahren 1 Wer bloggt was? ine nalyse der deutschen Top 100-logs mit Hilfe von luster-verfahren Sebastian Schäfer, lexander Richter und Michael Koch Forschungsgruppe Kooperationssysteme an der Universität der undeswehr

Mehr

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus:

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Unterrichtsmaterialien in digitaler und in gedruckter Form Auszug aus: Die Remus-Insel im Rheinsberger See - die Fläche zwischen zwei Kurven berechnen Das komplette Material finden Sie hier: Download bei

Mehr

Einführung zur LEGO MINDSTORMS Education EV3-Programmier-App

Einführung zur LEGO MINDSTORMS Education EV3-Programmier-App Einführung zur LEGO MINDSTORMS Education EV3-Programmier-App LEGO Education ist sehr erfreut, Ihnen die Tablet-Ausgabe der LEGO MINDSTORMS Education EV3 Software vorstellen zu dürfen. Lernen Sie auf unterhaltsame

Mehr

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12 Grundlagen: Folge 19 - Bäume 19.1 Binärbäume - Allgemeines Unter Bäumen versteht man in der Informatik Datenstrukturen, bei denen jedes Element mindestens zwei Nachfolger hat. Bereits in der Folge 17 haben

Mehr

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v)

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v) Ein Baum T mit Knotengraden 2, dessen Knoten Schlüssel aus einer total geordneten Menge speichern, ist ein binärer Suchbaum (BST), wenn für jeden inneren Knoten v von T die Suchbaumeigenschaft gilt: Der

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 1. Einführung und Grundbegriffe

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 1. Einführung und Grundbegriffe 1 Kapitel 1 2 Ziele Begriffsbildungen: Informatik, Algorithmus, Programm, Compiler, Einordnung von Java Ein einfaches Java-Programm erstellen, übersetzen und ausführen Java-Programme dokumentieren 3 Informatik

Mehr

Einführung in VisualBasic for Applications. Stefan Mahlitz

Einführung in VisualBasic for Applications. Stefan Mahlitz Einführung in VisualBasic for Applications Stefan Mahlitz Stefan Mahlitz Einführung in VBA 27.08.00 Inhaltsverzeichnis 1. Grundlagen der VisualBasic for Applications (VBA) Programmierung...2 1.1 Variablen,

Mehr

Software Engineering Interaktionsdiagramme

Software Engineering Interaktionsdiagramme Software Engineering Interaktionsdiagramme Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Nachrichtenaustausch Welche Nachrichten werden ausgetauscht? (Methodenaufrufe)

Mehr

System Design Projekt Einführung in NXC

System Design Projekt Einführung in NXC System Design Projekt Einführung in NXC Karola Rühle, Thomas Lampe, Maximilian Beinhofer Albert-Ludwigs-Universität Freiburg Was ist NXC? Eine C-ähnliche Programmiersprache (Not exactly C) Speziell zur

Mehr

Office Schulungen. Word, Excel, PowerPoint, Access

Office Schulungen. Word, Excel, PowerPoint, Access Office Schulungen Word, Excel, PowerPoint, Access Ingo Schmidt Karlsberger Str. 3 87471 Durach 0831 / 520 66 64 service@erstehilfepc.de Inhaltsverzeichnis: Word Basiskurs...3 Word Aufbaukurs...4 Word Profikurs...5

Mehr