Autor Beitrag
SandyAkira
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Fr 13.02.09 16:07 
Hallo,
bin ziemlich neu hier und hoffe auf Hilfe. Ich muss zurzeit eine Arbeit über den Dijkstra- Algorithmus schreiben. Wie dieser theoretisch funktioniert, weiß ich. Jedoch muss ich diesen auch in delphi implementieren. HAt jmd. von euch so ein Programm und könnte es mir schicken? Damit ich mal einenen Überblich bekomme, konnte nämlich sonst keine Bücher ect. zur Implementation finden...
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 13.02.09 16:14 
:welcome:

user profile iconSandyAkira hat folgendes geschrieben Zum zitierten Posting springen:
HAt jmd. von euch so ein Programm und könnte es mir schicken? Damit ich mal einenen Überblich bekomme, konnte nämlich sonst keine Bücher ect. zur Implementation finden...
Also ich habe mit Google ca. 10 Sekunden gebraucht... Da gibt es einiges...
Suche bei Google DIJKSTRA DELPHI
Erstes Ergebnis:
www.delphiforfun.org...ics/ShortestPath.htm

// EDIT:
Nebenbei: Wenn du weißt wie der theoretisch funktioniert, wäre es sehr viel sinnvoller den selbst zu implementieren. Dann verstehst du das noch viel besser und kannst das auch viel besser erklären.
SandyAkira Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Fr 13.02.09 16:19 
.. leider habe ich auch als Vorraussetzung bekommen das mit Hilfe eienr Adjazenzmatrix zu machen. Das Problem ist bloß sowas habe ich vorher nie behandelt .. und die geschriebene adresse scheint zwar den algorithmus zu beschrieben allerdings für jmd. "unwissenden" wie mich ist es etwas schwer udn dann noch auf englisch... hatte diese seite nämlich vorher schonmal gefunden
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 13.02.09 16:24 
Aber was eine Adjazenzmatrix ist weißt du?
de.wikipedia.org/wiki/Adjazenzmatrix
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Fr 13.02.09 16:26 
Hallo,

Die Adjazenzmatrix ist ja nur für die Speicherung des Graphen da. In Zeile i und Spalte j steht die Distanz zwischen i und j, wenn es eine Kante von i nach j gibt, sonst 0. Und wenn du an einem Knoten bist, gehst du einfach alle Nachbarn des Knoten durch, also eine Spalte bzw. Zeile und machst das passende, wenn da etwas von 0 verschiedenes steht.

Woran hakt es denn, wie sieht dein bisheriger Ansatz aus?

_________________
We are, we were and will not be.
SandyAkira Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Fr 13.02.09 16:38 
aslo was eine adjazenzmatrix ist hab ich miir schon in büchern nachgeschlagen, aber leider fehlt mir die kenntnis wie man das mit delphi einsetzt, da wir sowas wie graphne darstellen mit delphi nie hatten. bei uns hat es sich eher auf "hier ein button und da ein button und dann da ein ergebnis" beschränkt
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 13.02.09 16:43 
Eine Matrix kannst du in Delphi mit einem zweidimensionalen Array realisieren.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
var
  MyMatrix: array of array of Integer;
begin
  SetLength(MyMatrix, 1010);
Das erzeugt eine Matrix mit der Größe 10 mal 10. Ein Zugriff sieht dann so aus:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
MyMatrix[34] := 99;
MyMatrix[3][4] := 99;
// Größe feststellen:
Length(MyMatrix) // Anzahl der Elemente --> 10
Length(MyMatrix[0])
High(MyMatrix) // Höchster Index --> 9


Theoretisch kannst du die Größe natürlich auch vorher schon festlegen, wenn du die Größe vorher kennst:
ausblenden Delphi-Quelltext
1:
2:
var
  MyMatrix: array[0..9of array[0..9of Integer;
SandyAkira Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Fr 13.02.09 18:15 
danke, das hilft mir glaub ich schon mal etw so dass ich mich weiter durchtüfftlen kann...