2005 - Marie-Curie

Transcrição

2005 - Marie-Curie
Marie – Curie – Gymnasium
Städt. Gymnasium Recklinghausen
Abitur 2005
GK Informatik
Vorschlag II
Aufgabe
Bahnplanungsmethoden in der Informatik dienen z.B. dazu, Pfade für bewegte Elemente
(Verkehrsmittel, Personen, Roboter o.ä.) zu ermitteln, die unbewegten Elementen (Hindernissen,
Bauteilen, Naturgegebenheiten u.ä.) ausweichen müssen. Eine der Vorplanungsmethoden im
zweidimensionalen Raum besteht in der Diskretisierung der benutzten Fläche durch ein Gitter aus
Zellen, die entweder Teil eines Hindernisses oder ‚begehbar’ sind. Die Angabe eines möglichen
Pfades von einem vorgegebenen Start zu einem Ziel besteht damit in der Angabe einer Folge von
begehbaren Zellen, die miteinander benachbart sind und vom Start zum Ziel führen. Eine mögliche
Konkretisierung des Begriffs ‚Nachbarschaft’ ist die so genannte 4er-Nachbarschaft, die nur die vier
rechts oder links bzw. oben oder unten existierenden Zellen (schraffiert) als Nachbarn definiert.
Die Pfade von einem Punkt zu einem anderen Punkt entlang solcher Nachbarzellen führt demnach
über waagerechte bzw. senkrechte ‚Straßen’. Die hierdurch bestimmte Entfernung hat in Anlehnung
an die Straßensituation in New York den Namen manhattan-distance, die direkte (Luftlinien)Verbindung der Punkte die mit Pythagoras berechnete Euklidische-Distanz. Die Punkte (3,5) und
(2,7) hätten demnach die manhattan-distance von 3 und die euklidische Distanz von
5.
a) Implementiere in Delphi die beiden Funktionen:
1) function manhattan_distance(P1,P2 : TPoint):Integer;
2) function euklid_distance(P1,P2 : TPoint):Real;
und begründe kurz, dass für beliebige Punkte P1,P2 gilt: manhattan_distance(P1,P2) ≥
euklid_distance(P1,P2)
b) Grundlage für die Diskretisierung der Fläche
soll ein StringGrid mit 50 x 50 Zellen sein, in
dem ein Start- und ein Zielpunkt und zwei
Hindernisse (rechteckige Gitterbereiche auf
gleicher Höhe) gekennzeichnet sind.
mögliche Situation:
Beschreibe umgangssprachlich den Algorithmus,
der einen (möglichst kurzen) begehbaren Pfad
zwischen dem Start- und dem Zielpunkt
bestimmt, dessen (manhattan-)Länge berechnet
und eine mögliche (begehbare)
Direktverbindung (evtl. in mehreren Teilstücken) einzeichnet.
c) Zur Umsetzung eines Teils des in b) beschriebenen Algorithmus soll die folgende
Datenstruktur benutzt werden:
Planfeld_Stg : TStringGrid;
Start, Ziel : TPoint;
Hindernis
: array [1..2] of
record
linksoben, rechtsunten : TPoint;
end;
Trasse
: array of TPoint;
//dynamisches array
Marie – Curie – Gymnasium
Städt. Gymnasium Recklinghausen
Abitur 2005
GK Informatik
Vorschlag II
mögliches Startformular:
Implementiere die
procedure Trasse_BClick,
die aufgrund der zufällig vorgegebenen Anfangssituation die Punkte der kürzesten Trasse
generiert, die Länge dieser Trasse ausgibt und die Trassenzellen darstellt. Kommentiere dabei
sämtliche Teile, Unterprozeduren und benutzte zusätzliche Variablen.
Es kann davon ausgegangen werden, dass die beiden sich auf gleicher Höhe befindlichen
Hindernisse auf mindestens einer der Seiten oder zwischen sich eine begehbare Spalte freilassen
und dass sich der Startpunkt oberhalb und der Zielpunkt unterhalb der Hindernisse befindet. Zur
Darstellung der Trassengitterzellen kann ohne Implementation die Procedure
Zelle_zeichnen(P: TPoint, f : TColor); benutzt werden.
mögliches Endformular:
d) Beschreibe, wie man evtl. den obigen Algorithmus mit dazu benutzen könnte, nach der
Bestimmung der ‚Manhattan-Trasse’ eine Verkürzung der Trasse durch (euklidische)
Direktverbindungen zu erhalten, so dass ein möglicher Trassenvorschlag gegeben wäre durch:

Documentos relacionados