Vergleiche
Lagevergleiche mit Geokoordinaten
Liegt Köln südlich von Frankfurt? Mit den Geokoordinaten der beiden Städte lässt sich diese Frage direkt beantworten.
Wir erweitern die Wissensbasis um ein Prädikat liegt_suedlich_von/2
,
mit dem man die oben formulierte Frage auch automatisiert auswerten kann.
% Städte mit Geokoordinaten - Version 2
lage(berlin, nord(52.5), ost(13.0)).
lage('Köln', nord(50.93), ost(6.95)).
lage(mainz, nord(50), ost(8.27)).
lage(frankfurt, nord(50.1), ost(8.68)).
lage('München', nord(48.13), ost(11.57)).
lage(hamburg, nord(53.5), ost(10.0)).
liegt_suedlich_von(StadtA, StadtB) :-
lage(StadtA, nord(NA), ost(_OA)),
lage(StadtB, nord(NB), ost(_OB)),
NA < NB.
Hier das Ergebnis einer Anfrage mit dem liegt_suedlich_von
-Prädikat:
?- liegt_suedlich_von('Köln', frankfurt).
No
Vergleichsoperatoren
Prolog stellt zum Vergleich von Zahlen folgende Operatoren zur Verfügung.
Vergeich | Bedeutung |
---|---|
X < Y | X ist kleiner als Y |
X > Y | X ist größer als Y |
X =< Y | X ist kleiner oder gleich Y |
X >= Y | X ist größer oder gleich Y |
X =:= Y | X und Y sind numerisch gleich |
X =\= Y | X und Y sind numerisch ungleich |
Beachte, dass die Variablen mit Werten belegt sein müssen, damit eine Auswertung eines Vergleichs erfolgen kann.
Aufgabe 1
Entwickle entsprechend ein Prädikat liegt_oestlich_von/2
.