Autor Beitrag
Fluglotse2000
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Mi 19.01.05 08:25 
Hallo,

ich hab' jetzt circa 7 Monate Dephi in der Schule gehabt und vorher noch ein Jahr Turbo Pascal. Jetzt sollen wir selbstständig ein größeres Programm schreiben. Meine Idee war eine Landkarte mit verschiedenen Städten. Zuerst klickt man auf Stadt A dann auf Stadt B und bekommt am Ende die Entfernung zwischen beiden ausgegeben und vielleicht noch die Reisedauer oder so.

Ich hab mir schon ein paar gedanken gemacht, aber so richtig klappt das alles nicht.

Kann mir bitte jemand helfen???

Vielen Dank,

Felix
AXMD
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 4006
Erhaltene Danke: 7

Windows 10 64 bit
C# (Visual Studio 2019 Express)
BeitragVerfasst: Mi 19.01.05 08:45 
:welcome:

Kleiner Tipp von mir: lass die Finger davon. Abgesehen davon, dass du eine riesengroße Datenbank mit Städtekoordinaten und Straßenkarten benötigst (die dir niemand schenken wird) musst du dich intensiv mit Algorithmen wie A# (Pathfinding) auseinandersetzen. Schreib lieber was anderes, gibt Dutzende andere Möglichkeiten.

AXMD
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Mi 19.01.05 08:50 
Eine "einfache" Variante wäre eine eigene Karte, die jede Mausposition in geographische Koordinaten umwandelt.
Dann berechnest du Großkreiskurse (als Fluglotse doch kein Problem, oder :wink: ). Dann bekommst du zumindest die kurzeste Flugverbindung als Strecke.
Heiko
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: Mi 19.01.05 08:53 
Problem ist bei einer größeren Karte, die Erdkrümmung mit zu bearbeiten.
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Mi 19.01.05 08:59 
Deswegen ja geographische Position und Großkreiskurse. Da gibts Formeln für. Fragt mich jetz bloß nicht wo. Müsste ich auch erst nachsehen. Ist schon ein bisschen her, dass ich sowas mal gebraucht habe.
Heiko
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: Mi 19.01.05 09:04 
Es wird trotzdem nicht sehr einfach. Ich frage mich nur wie er die Reisedauer noch berechnen will, da er dann noch alle Straßen einzeichnen und beachten muss und die erlaubte Geschwindigkeit auf diesen Strecken.
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Mi 19.01.05 09:15 
Das mit den Straßen kann er wohl vergessen. Da sehe ich auch keine realistische Chance.
Ein bisschen Arbeit will Fluglotse ja auch wohl investieren. Im Vergleich zu seiner Idee ist meine Variante relativ "einfach". Deswegen ist es noch lange nicht trivial. Aber ich glaube so sollte es auch gemeint sein, bei seiner Aufgabe.
Verschiedene andere Faktoren sind auch noch zu berücksichtigen:
Flughöhe, Steigungswinkel und -Dauer bis die Flughöhe erreicht ist, übliche Winde in dem Gebiet,...
Man kann da schon ganz schön was von machen.
Heiko
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: Mi 19.01.05 09:24 
ich glaube ihm reicht die Luftentfernung (ohne Flughöhe, etc.)
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Mi 19.01.05 09:35 
OK.
Aber falls es ihm zu einfach wird, hat er zumindest noch ein paar Anregungen :wink:
Heiko
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: Mi 19.01.05 09:43 
Wenn du das mit dem Flugzeug gemacht hast, hast du dabei vorausgesetzt, dass das Flugzeug zwischendurch nicht abstürzt :mrgreen: (der Weg zum Zielort ist dann weiter weg)?
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 481

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Mi 19.01.05 11:53 
Da ihr in der Schule seid, soll das ja wahrscheinlich kein kommerzielles, professionelles Wege-Programm werden, oder? Von daher ist die exakte Reisedauer-Berechnung und die exakte Entfernung eh wurscht, und man kann auch mit einigen (mehr oder weniger) Phantasiewerten arbeiten.
So wie ich das hier verstehe, geht es Fluglotse ja primär um das programmieren, und nicht in erster Linie um das Programm am Ende.

Was du für das Städteproblem benötigst, ist eine vernünftige Datenstruktur, in der du die Städte speichern kannst, und die Verbindungen zwischen den Städten. Eine solche Datenstruktur nennt man Graph. Ein Graph besteht aus Knoten (= Städte) und Kanten, das sind die Verbindungen zwischen den Knoten. Jede Kante kann dabei eine gewisse Länge haben, und sie kann gerichtet (Einbahnstraße) oder ungerichtet sein.

Die einzelnen Städte würde ich in einem Array speichern. Und für jede Stadt würde ich die Adjazenzliste erstellen. So nennt sich die Liste, in der gespeichert ist, zu welcher Stadt man von der aktuellen Stadt aus kommt, und wie weit der Weg ist (oder wie lang es dauert, etc).
Um den Weg von Stadt A nach B zu finden, würde ich Breitensuche auf dem Graphen empfehlen. Prinzipiell funktioniert das so, dass man in A startet, und sich notiert, zu welchen Städten man von A aus hinkommt. Dann nimmt man die Stadt C, zu der man bisher am schnellsten gekommen ist, und fügt in diese Liste alle Städte ein, die man von C aus erreichen kann. dabei aktualisiert man die Distanzwerte, denn es könnte ja sein, dass der Weg A-D länger ist als der Weg A-C-D. Wenn man Stadt B erreicht, hat man den kürzesten Weg gefunden.

Das sind erstmal ein paar Stichworte, die bei der Vorarbeit an dem Projekt helfen sollten.

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



BeitragVerfasst: Mi 19.01.05 13:28 
Also vielen Dank erstmal für die vielen Antworten!

Das Programm soll wirklich nicht so kompliziert werden. Ein kleiner Bereich mit ein paar Städten (vier, fünf) reicht ja schon.

Mit dem Prinzip, dass man von A zur kürzesten Stadt geht und am Ende bei der längsten Entfernung rauskommt, klingt einleuchtend.

Ich habe allerdings keine Ahnung, wie das mit den Arrays usw. funktioniert...

Wie gesagt, im Unterricht ist das eben nicht so hochtechnisch...

Felix