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

Modul N5 - Routing. Informatik erleben. Anwendung: http, smtp. Transport: TCP, UDP. Segment. Vermittlung: IP. Datagramm. Sicherung: Ethernet, PPP

Modul N5 - Routing. Informatik erleben. Anwendung: http, smtp. Transport: TCP, UDP. Segment. Vermittlung: IP. Datagramm. Sicherung: Ethernet, PPP N-Netze Modul - Routing eitrahmen 0 Minuten ielgruppe Sekundarstufe II Inhaltliche Voraussetzung keine, N4 von Vorteil Lehrziel Kennen lernen eines Routing-lgorithmus, sowie der Netzwerkschichten http://www.sxc.hu

Mehr

Modul 2 Baustein 1: Demokratie in der Schule Was ist das eigentlich? Informationen für Lehrerinnen und Lehrer

Modul 2 Baustein 1: Demokratie in der Schule Was ist das eigentlich? Informationen für Lehrerinnen und Lehrer BS2-1 Seite 1 Modul 2 Baustein 1: Demokratie in der Schule Was ist das eigentlich? Informationen für Lehrerinnen und Lehrer uf einen Blick Thema Fächer Demokratie in der Schule Was ist das eigentlich?

Mehr

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

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java: Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen

Mehr

Entwurf von Algorithmen - Kontrollstrukturen

Entwurf von Algorithmen - Kontrollstrukturen Entwurf von Algorithmen - Kontrollstrukturen Eine wichtige Phase in der Entwicklung von Computerprogrammen ist der Entwurf von Algorithmen. Dieser Arbeitsschritt vor dem Schreiben des Programmes in einer

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

4. Übung - Betriebssysteme

4. Übung - Betriebssysteme 1. ufgabe: Systemstart 4. Übung - etriebssysteme Informatik I für Verkehrsingenieure ufgaben inkl. eispiellösungen a Welche ufgabe hat das IOS und was passiert beim Starten eines Systems? b Welche ufgaben

Mehr

Algorithmen mit Python

Algorithmen mit Python Algorithmen mit Python Vorbesprechung zum Proseminar im Sommersemester 2009 http://www.python.org 1 Sie lernen in DAP Java und C/C++: 80% Syntax, 20% Algorithmen-Design Idee Schon ein einfaches Hello World

Mehr

E-PRIME TUTORIUM Die Programmiersprache BASIC

E-PRIME TUTORIUM Die Programmiersprache BASIC E-PRIME TUTORIUM Die Programmiersprache BASIC BASIC Beginner s All-purpose Symbolic Instruction Code symbolische Allzweck-Programmiersprache für Anfänger Design-Ziel klar: Eine einfache, für Anfänger geeignete

Mehr

Algorithmen & Datenstrukturen 1. Klausur

Algorithmen & Datenstrukturen 1. Klausur Algorithmen & Datenstrukturen 1. Klausur 7. Juli 2010 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 35 2 30 3 30 4 15 5 40 6 30 Gesamt 180 1 Seite 2 von 14 Aufgabe 1) Programm Analyse

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

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

Auflösung von NaCl in Wasser

Auflösung von NaCl in Wasser Steckbrief Lernbereich Lernen / Üben Fachbereich Natur und Technik (Chemie) Grobziel (ICT) Lernprogramme als Hilfsmittel für das eigene Lernen nutzen Grobziel (Fachbereich NuT) Modelle als Hilfsvorstellungen

Mehr

VBA-Programmierung: Zusammenfassung

VBA-Programmierung: Zusammenfassung VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung

Mehr

SOI 2013. Die Schweizer Informatikolympiade

SOI 2013. Die Schweizer Informatikolympiade SOI Die Schweizer Informatikolympiade Lösung SOI Wie schreibe ich eine gute Lösung? Bevor wir die Aufgaben präsentieren, möchten wir dir einige Tipps geben, wie eine gute Lösung für die theoretischen

Mehr

Schulcurriculum Informatik. 1) Das Fach Informatik am GSG

Schulcurriculum Informatik. 1) Das Fach Informatik am GSG Schulcurriculum Informatik 1) as Fach Informatik am GSG Im beruflichen wie auch im privaten Bereich kommen immer mehr komplexe Systeme zur Informationsverarbeitung zum Einsatz. Im Rahmen des Informatikunterrichts

Mehr

5.3 Der Tabellenpuffer. aktualität nicht so wichtig ist, Datenkonsistenz aber schon. Zur Verdeutlichung der Datenkonsistenz hilft folgendes Beispiel.

5.3 Der Tabellenpuffer. aktualität nicht so wichtig ist, Datenkonsistenz aber schon. Zur Verdeutlichung der Datenkonsistenz hilft folgendes Beispiel. 5 Pufferung aktualität nicht so wichtig ist, atenkonsistenz aber schon. Zur Verdeutlichung der atenkonsistenz hilft folgendes eispiel. ngenommen ein Internetshop führt eine kleine Preisanpassung während

Mehr

Programmierung für Mathematik (HS13)

Programmierung für Mathematik (HS13) software evolution & architecture lab Programmierung für Mathematik (HS13) Übung 5 1 Aufgabe: Eclipse IDE 1.1 Lernziele 1. Die Entwicklungsumgebung Eclipse einrichten. 2. Eclipse kennen lernen und mit

Mehr

Programmierung in Delphi

Programmierung in Delphi Berufsbildende Schule Wirtschaft Trier Programmierung in Delphi (Einführung in die IDE) Unterrichtsmaterialien von Christoph Oberweis Stand: 13.11.2011 1 Einführung in die Delphi-Programmierung Delphi-Entwicklungssystem

Mehr

Unterrichtsverlauf zu Erste Schritte im Internet, 6 Std, Kl. 4, Deutsch, Englisch, MeNuK, Grundschule

Unterrichtsverlauf zu Erste Schritte im Internet, 6 Std, Kl. 4, Deutsch, Englisch, MeNuK, Grundschule Unterrichtsverlauf zu Erste Schritte im Internet, 6 Std, Kl. 4, Deutsch, Englisch, MeNuK, Grundschule Zeit U-Phase Unterrichtsinhalt (Lehrer- und Schüleraktivitäten) Angestrebte Kompetenzen/Ziele Arbeitsform

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

Informatik ist viel mehr als Delphi-Programmierung!

Informatik ist viel mehr als Delphi-Programmierung! Gliederung 1. Objektorientierte Programmierung mit Object Pascal (5. Studienbrief, Kapitel 5) 9.4. + 16.4. 2. Software-Bausteine am Beispiel der Delphi-Komponenten (5. Studienbrief, Kapitel 5) 23.4. 3.

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Prof. r. V. Linnemann Lübeck, den. Oktober 00 Universität zu Lübeck Institut für Informationssysteme lgorithmen und atenstrukturen Sommersemester 00. Klausur Lösungen Hinweis: chten Sie bei Programmieraufgaben

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

VORANSICHT. Das Geodreieck als Mess- und Prüfinstrument. 1 Mit der langen Seite kannst du messen und gerade Linien zeichnen.

VORANSICHT. Das Geodreieck als Mess- und Prüfinstrument. 1 Mit der langen Seite kannst du messen und gerade Linien zeichnen. 1 as Geodreieck als Mess- und Prüfinstrument VORNSI 1. Lies die Sätze. Ordne den ildern die richtige Nummer zu. 1 Mit der langen Seite kannst du messen und gerade Linien zeichnen. 2 Mit der Mittellinie

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

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

Wintersemester 2010/2011 Rüdiger Westermann Institut für Informatik Technische Universität München

Wintersemester 2010/2011 Rüdiger Westermann Institut für Informatik Technische Universität München Informatik 1 Wintersemester 2010/2011 Rüdiger Westermann Institut für Informatik Technische Universität München 1 0 Allgemeines Zielgruppen Siehe Modulbeschreibung Studierende anderer (nicht Informatik)

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

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

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 4 Einführung in die Programmiersprache Java (Teil II)... 4-2 4.4 Strukturierte Programmierung... 4-2 4.4.1 Strukturierung im Kleinen... 4-2 4.4.2 Addierer (do-schleife)... 4-3 4.4.3 Ein- Mal- Eins

Mehr

Brainfuck. 1 Brainfuck. 1.1 Brainfuck Geschichte und Umfeld. 1.2 Esoterische Programmiersprachen

Brainfuck. 1 Brainfuck. 1.1 Brainfuck Geschichte und Umfeld. 1.2 Esoterische Programmiersprachen Brainfuck 1 Brainfuck 1.1 Brainfuck Geschichte und Umfeld Brainfuck ist eine sogenannte esoterische Programmiersprache. Sie wurde 1993 vom Schweizer Urban Müller entworfen mit dem Ziel, eine Sprache mit

Mehr

10 Dynamische Programmierung

10 Dynamische Programmierung 137 Dynamische Programmierung Das Prinzip der Dynamischen Programmierung wird häufig bei Fragestellungen auf Worten angewendet..1 Längste gemeinsame Teilfolge Wir betrachten Worte der rt w = a 1 a 2 a

Mehr

(04) Zum Themengebiet Rationale Zahlen

(04) Zum Themengebiet Rationale Zahlen Materialien zum Modellversuch: Vorschläge und Anregungen zu einer veränderten Aufgabenkultur (04) Zum Themengebiet Rationale Zahlen (Jahrgangsstufe 7) Die Arbeit entstand im Rahmen des BLK-Modellversuchsprogramms

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

IQ Spielentwurf Leitfaden für LehrerInnen - Detektivspiel

IQ Spielentwurf Leitfaden für LehrerInnen - Detektivspiel IQ Spielentwurf Leitfaden für LehrerInnen - Detektivspiel Abstract Aus der Sicht eines Spieleentwicklers sollen SchülerInnen ein IQ Spiel namens Detektivspiel entwerfen und/oder analysieren und/oder testen.

Mehr

G I @ S C H O O L. Modul 5: Geoinformationssysteme. Geoinformatik im Informatik-Unterricht. Komponenten und Fähigkeiten eines einfachen GIS

G I @ S C H O O L. Modul 5: Geoinformationssysteme. Geoinformatik im Informatik-Unterricht. Komponenten und Fähigkeiten eines einfachen GIS G I @ S C H O O L ERDKUNDE INFORMATIK SCHULE UNIVERSITÄT Geoinformatik im Informatik-Unterricht Kooperation mit dem Institut für Geoinformatik Westfälische Wilhelms-Universität Münster Modul 5: Geoinformationssysteme

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 4 Anweisungen... 4-2 4.1 Strukturierte Programmierung... 4-2 4.1.1 Geschichte... 4-2 4.1.2 Strukturierung im Kleinen... 4-2 4.2 Einige Beispielanwendungen... 4-4 4.2.1 Addierer (do-schleife)...

Mehr

Grundlagen Programmierung

Grundlagen Programmierung 13. Aufgabe (13 Punkte) Schreiben Sie eine neue Klasse Zahlenanalyse, mit der Integer-Objekte genauer betrachtet werden können. Bei den zu entwickelnden Methoden kann es immer sinnvoll sein, sich den Ablauf

Mehr

moodle zur Unterstützung des Informatik-Unterrichts mit dem online-lehrbuch inf-schule nutzen

moodle zur Unterstützung des Informatik-Unterrichts mit dem online-lehrbuch inf-schule nutzen moodle zur Unterstützung des Informatik-Unterrichts mit dem online-lehrbuch inf-schule nutzen Vortrag auf der imedia 2015 am Dienstag, 19. Mai 2015 Bernd Fröhlich, Hannes Heusel Vortragskonzept (1) inf-schule.de

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

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 4 Anweisungen... 4-2 4.1 Strukturierte Programmierung... 4-2 4.1.1 Geschichte... 4-2 4.1.2 Strukturierung im Kleinen... 4-2 4.2 Einige Beispielanwendungen... 4-4 4.2.1 Addierer (do-schleife)...

Mehr

Leitfaden Berufswahlorientierung für die Sek. I

Leitfaden Berufswahlorientierung für die Sek. I Leitfaden Berufswahlorientierung für die Sek. I Jahrgangsstufe: 6. Klasse, 2. Halbjahr Themengebiet: Modul 3: Fach: 1 Meine Interessen Was will ich eigentlich? 2 Meine Kompetenzen Was kann ich alles gut?

Mehr

4.Grundsätzliche Programmentwicklungsmethoden

4.Grundsätzliche Programmentwicklungsmethoden 4.Grundsätzliche Programmentwicklungsmethoden 1.1 Grundlage strukturierter und objektorientierter Programmierung Begriff Software Engineering - umfaßt den gezielten Einsatz von Beschreibungsmitteln, Methoden

Mehr

Modul 4: Kleine Projekte in Teams

Modul 4: Kleine Projekte in Teams Leitfaden Berufswahlorientierung für die Sek. I Jahrgangsstufe: Themengebiete: Modul 4: Fach: 1 - Meine Interessen Was will ich eigentlich? 2 Meine Kompetenzen Was kann ich gut? Kleine Projekte in Teams

Mehr

Bearbeitungszeit: 120 Minuten. Kommentare kosten Zeit; kommentieren Sie ihr Programm nur da, wo der Code alleine nicht verständlich wäre.

Bearbeitungszeit: 120 Minuten. Kommentare kosten Zeit; kommentieren Sie ihr Programm nur da, wo der Code alleine nicht verständlich wäre. Fakultät IV Elektrotechnik/Informatik Klausur Einführung in die Informatik I für Elektrotechniker Name:... Matr.-Nr.... Bearbeitungszeit: 120 Minuten Bewertung (bitte offenlassen : ) Aufgabe Punkte Erreichte

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

Wirtschaftsinformatik I

Wirtschaftsinformatik I Wirtschaftsinformatik I - Tutorium 6/ 7 (April 2010) Zusatzinformationen - Lösungsvorschläge Wirtschaftsinformatik I Tutorium Jochen Daum (4.Semester BWL) Universität Mannheim Rechtshinweis: Diese Präsentation

Mehr

Schritt 1 - Ein Spielfeld

Schritt 1 - Ein Spielfeld Schritt 1 - Ein Spielfeld Wir beginnen mit zwei einfachen Java-Klassen, dem eigentlichen Spielfeld und dem Applet zum Anzeigen des Spielfeldes (und später der Buttons und der anderen Bedienelemente). Hier

Mehr

Übung zur Vorlesung Einführung in Software Engineering

Übung zur Vorlesung Einführung in Software Engineering Übung zur Vorlesung Einführung in Software Engineering Wintersemester 2012/13, Richard Bubel und Martin Hentschel Übungsblatt 3: Domänenmodellierung Abgabeformat: Reichen Sie Ihre Lösung per SVN als eine

Mehr

Delphi eine Einführung

Delphi eine Einführung Delphi eine Einführung 1. Die Entwicklungsumgebung Delphi ist ein sogenanntes RAD Werkzeug. RAD = Rapid Application Development = schnelle Anwendungsentwicklung Merkmale: - es gibt vorgefertigte Komponenten

Mehr

Unterrichtseinheit. Code ist cool - Kinder lernen programmieren. Autoren

Unterrichtseinheit. Code ist cool - Kinder lernen programmieren. Autoren ICT und Medien für PS 07:00 Minuten Autoren Zusammenfassung Pascal Lütscher und Bernhard Matter Fachbereich Mathematik der Pädagogischen Hochschule Graubünden Ob Getränkeautomat, Parkuhr, Fernseher, MP3-Player,

Mehr

Nachklausur Programmieren / Algorithmen und Datenstrukturen 1

Nachklausur Programmieren / Algorithmen und Datenstrukturen 1 Programmieren / Algorithmen und Datenstrukturen Autor: Prof. Dr. Bernhard Humm, FB Informatik, Hochschule Darmstadt Datum: 7. Oktober 200 Nachklausur Programmieren / Algorithmen und Datenstrukturen Spielregeln

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

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

Kompetenzerwerb/Ziele Arbeitsform und Methoden

Kompetenzerwerb/Ziele Arbeitsform und Methoden Zeit U-Phase Unterrichtsverlauf Unterrichtsinhalt (Lehrer- und Schüleraktivitäten) Kompetenzerwerb/Ziele Arbeitsform und Methoden Medien und weitere Materialien Stundenthema: Cyber-Mobbing Einstieg (15

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

5. Tutorium zu Programmieren

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

Mehr

JAVA PROJEKT. Schiffe Versenken mit GUI. Projektheft

JAVA PROJEKT. Schiffe Versenken mit GUI. Projektheft Anwendungspraktikum aus JAVA Programmierung SS 2006 Leitung: Dr. Albert Weichselbraun JAVA PROJEKT Schiffe Versenken mit GUI Projektheft Marija Matejic Matrikelnummer: 9352571 E-mail: marijamatejic@yahoo.com

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

Software Engineering Klassendiagramme Einführung

Software Engineering Klassendiagramme Einführung Software Engineering Klassendiagramme Einführung Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Aufgabe Erstellen Sie eine Klasse Person in Java. Jede Person verfügt

Mehr

Quelle: Medienkompass1, Lehrmittelverlag des Kantons Zürich, 1. Ausgabe 2008, Thema 13 Sicher ist sicher, S.58-61

Quelle: Medienkompass1, Lehrmittelverlag des Kantons Zürich, 1. Ausgabe 2008, Thema 13 Sicher ist sicher, S.58-61 Unterrichtseinheit Medienkompass 1 : Daten speichern und verwalten Quelle: Medienkompass1, Lehrmittelverlag des Kantons Zürich, 1. Ausgabe 2008, Thema 13 Sicher ist sicher, S.58-61 6 Daten speichern und

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

EUROPAREISE Ravensburger* Spiele Grafik: Gerhard Schmid

EUROPAREISE Ravensburger* Spiele Grafik: Gerhard Schmid EUROPAREISE Ravensburger* Spiele 01205 3 Grafik: Gerhard Schmid Würfel-Reisespiel für 2 bis 6 Spieler ab 10 Jahren Inhalt: 1 beidseitig bedruckter Spielplan 168 Städtekarten (mit Foto) 28 Ereigniskarten

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

5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c)

5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c) 5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c) mit V = {1,...,n} und E {(v, w) 1 apple v, w apple n, v 6= w}. c : E!

Mehr

Pragmatik von Programmiersprachen

Pragmatik von Programmiersprachen Pragmatik von Programmiersprachen Im Kontext der Notation von Quelltexten Mike Becker, 11. Dezember 2014 Szenario: IT Dienstleister Unternehmen: Produkte: Kunden: IT Dienstleistung Beratung und Software

Mehr

Energie- und Klimapioniere. Unterrichts Einheiten. für Die Oberstufe AROUND THE WORLD IN A SOLAR AIRPLANE. Unser Engagement: unsere Zukunft.

Energie- und Klimapioniere. Unterrichts Einheiten. für Die Oberstufe AROUND THE WORLD IN A SOLAR AIRPLANE. Unser Engagement: unsere Zukunft. nergie- und Klimapioniere Unterrichts inheiten für ie Oberstufe ROUN TH WORL IN SOLR IRPLN Unser ngagement: unsere Zukunft. nergie- und Klimapioniere Impressum as Programm nergie- und Klimapioniere as

Mehr

Kapitel 6,»Objektorientierte Programmierung«, widmet sich der objektorientierten Programmierung mit Python.

Kapitel 6,»Objektorientierte Programmierung«, widmet sich der objektorientierten Programmierung mit Python. 1.3 Aufbau des Buchs lichkeiten offen. Auf die Unterschiede der beiden Versionen gehe ich besonders ein, sodass ein späterer Umstieg von der einen zur anderen Version leichtfällt. Erste Zusammenhänge werden

Mehr

SCHALTEN ABER SCHLAU das GROẞe energieeffizienzspiel. spielregel

SCHALTEN ABER SCHLAU das GROẞe energieeffizienzspiel. spielregel SCHALTEN ABER SCHLAU das GROẞe energieeffizienzspiel spielregel INHALT spielziel 03 Spielvorbereitung 04 Spielregel 06 Fragen und Antworten 09 Varianten 10 spielziel 03 spielziel Jeder Spieler verfolgt

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

Ergebnisse der Untersuchung zur Eignung einer Programmiersprache für die schnelle Softwareentwicklung kann der Informatikunterricht davon profitieren?

Ergebnisse der Untersuchung zur Eignung einer Programmiersprache für die schnelle Softwareentwicklung kann der Informatikunterricht davon profitieren? Ergebnisse der Untersuchung zur Eignung einer Programmiersprache für die schnelle Softwareentwicklung kann der Informatikunterricht davon profitieren? Zur Diplomarbeit: Eignet sich die Skriptsprache Python

Mehr

Steuern des GSR-Interface mit QBasic

Steuern des GSR-Interface mit QBasic Steuern des GSR-Interface mit QBasic Erstellt von Jochen Sendler, Geschwister-Scholl-Realschule Mannheim Inhaltsverzeichnis 1. Die Programmiersprache QBasic 3 2. Starten von QBasic 3 3. Ansteuern einzelner

Mehr

Schleifenprogrammierung in C/C++, Fortran und Pascal

Schleifenprogrammierung in C/C++, Fortran und Pascal Schleifenprogrammierung in C/C++, Fortran und Pascal Stefan Ackermann Mathematisches Institut der Universität Leipzig 8. April 2009 1 Die kopfgesteuerte Schleife Bei der kopfgesteuerten Schleife steht

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

Lösungsvorschläge. zu den Aufgaben im Kapitel 4

Lösungsvorschläge. zu den Aufgaben im Kapitel 4 Lösungsvorschläge zu den Aufgaben im Kapitel 4 Aufgabe 4.1: Der KNP-Algorithmus kann verbessert werden, wenn in der Funktion nexttabelle die Zuweisung next[tabindex] = ruecksprung; auf die etwas differenziertere

Mehr

Aufgabenblatt Nr. 5 Generizität und TicTacToe

Aufgabenblatt Nr. 5 Generizität und TicTacToe Aufgabenblatt Nr. 5 Generizität und TicTacToe 1 Generische Sortier-Methode 1.1 Aufgabe: Entwickeln einer generischen Sortiermethode für Objekte mit der Schnittstelle Comparable Ihnen ist aus der Vorlesung

Mehr

Bedienungsanleitung. Matthias Haasler. Version 0.4. für die Arbeit mit der Gemeinde-Homepage der Paulus-Kirchengemeinde Tempelhof

Bedienungsanleitung. Matthias Haasler. Version 0.4. für die Arbeit mit der Gemeinde-Homepage der Paulus-Kirchengemeinde Tempelhof Bedienungsanleitung für die Arbeit mit der Gemeinde-Homepage der Paulus-Kirchengemeinde Tempelhof Matthias Haasler Version 0.4 Webadministrator, email: webadmin@rundkirche.de Inhaltsverzeichnis 1 Einführung

Mehr

Computer selbst programmieren Kleine Programme mit VisualBasic erstellen

Computer selbst programmieren Kleine Programme mit VisualBasic erstellen Computer selbst programmieren Kleine Programme mit VisualBasic erstellen vorgestellt von Dipl.Ing. (FH) Hans-Peter Kiermaier Fakultät Elektrotechnik/Wirtschaftsingenieurwesen Überblick Programmiersprachen:

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

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

Schritt 1: Schulung vorbereiten

Schritt 1: Schulung vorbereiten Themen auswählen Jede Ausbildung am Arbeitsplatz sollte gründlich vorbereitet werden. Je besser die Vorbereitung, desto erfolgreicher wird die Schulung selbst sein. Außerdem hat die Vorbereitung auch die

Mehr

Quelle: Urs Ingold, Medienkompass1, Lehrmittelverlag des Kantons Zürich, 1. Ausgabe 2008, www.medienkompass.ch

Quelle: Urs Ingold, Medienkompass1, Lehrmittelverlag des Kantons Zürich, 1. Ausgabe 2008, www.medienkompass.ch Unterrichtseinheit Medienkompass 1 : MK7 Das Auge isst mit _ Präsentation Quelle: Urs Ingold, Medienkompass1, Lehrmittelverlag des Kantons Zürich, 1. Ausgabe 2008, www.medienkompass.ch 10 MK7 Das Auge

Mehr

Java. Warum Programmierung? Programmierung Beispiel Taschenrechner

Java. Warum Programmierung? Programmierung Beispiel Taschenrechner Java Programmierung Höhere Programmiersprachen Java als Programmiersprache Aufbau der Java-Software Verwendung von JOE 201-1 Warum Programmierung? Prozessor versteht nur Folgen von 0 und 1 Wie erstellt

Mehr

Einführungsworkshop Kooperatives Lernen SUMMERSCHOOL. 27./28.September 2012. Herzlich willkommen. Kooperatives Lernen - 1

Einführungsworkshop Kooperatives Lernen SUMMERSCHOOL. 27./28.September 2012. Herzlich willkommen. Kooperatives Lernen - 1 Einführungsworkshop Kooperatives Lernen SUMMERSCHOOL 27./28.September 2012 Herzlich willkommen Kooperatives Lernen - 1 Ziele dieser Fortbildung Kooperatives Lernen - 2 Miteinander arbeitsfähig werden 1.

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

Ü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

Ü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

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

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

Aufgabe 1. »Programmieren«, WS 2006/2007. Nino Simunic M.A.

Aufgabe 1. »Programmieren«, WS 2006/2007. Nino Simunic M.A. »Programmieren«, WS 006/007 Nino Simunic (nino.simunic@uni-due.de) Übungsblatt 4 Aufgabe 1 OOP In dieser Aufgabe sollen Sie Autos als Klasse Car modellieren. Die Eigenschaften auf attributiver Ebene sind:

Mehr

Inhalt Software-Metriken Software-Metriken mit Together FindBugs. Software-Metriken. Raimar Lill Matthias Meitner David Föhrweiser Marc Spisländer

Inhalt Software-Metriken Software-Metriken mit Together FindBugs. Software-Metriken. Raimar Lill Matthias Meitner David Föhrweiser Marc Spisländer Lill, Meitner, Föhrweiser, Spisländer FAU Erlangen-Nürnberg Software-Metriken 1 / 24 Software-Metriken Raimar Lill Matthias Meitner David Föhrweiser Marc Spisländer Lehrstuhl für Software Engineering Friedrich-Alexander-Universität

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

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

Mehr

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden. Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,

Mehr

Einführung in Javadoc

Einführung in Javadoc Einführung in Javadoc Johannes Rinn http://java.sun.com/j2se/javadoc Was ist Javadoc? Javadoc ist ein Werkzeug, dass eine standardisierte Dokumentation für die Programmiersprache Java unterstützt. Vorteil:

Mehr

Kurs 1575, Musterlösung zur Winter Klausur 2003/04

Kurs 1575, Musterlösung zur Winter Klausur 2003/04 Kurs 1575, Musterlösung zur Klausur im Wintersemester 2003/04 1 Kurs 1575, Musterlösung zur Winter Klausur 2003/04 Aufgabe 1: Römische Zahlen Wer kennt das Problem nicht: Sie stehen vor einer Inschrift,

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

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

Mehr