Informatikmaterialien 
von Tino Hempel

Startseite | Informatik | Physik | Mathematik | Sonstiges |


Richard-Wossidlo-Gymnasium Ribnitz-Damgarten
Fachbereich Informatik


Selektionsbedingungen und Arithmetik


PROLOG ist nicht die Programmiersprache, um umfangreiche oder komplexe Selektionsbedingungen zu programmieren. Dennoch sind die grundlegenden Berechnungen und Vergleiche möglich und für die Lösung weiterer logischen Problemen nutzbar. 

Beispieldatenbank

Diese werden zunächst in PROLOG-Fakten übersetzt.

%schueler(Nr, Vorname, Name, Geburtsjahr).
schueler(4711,'Paul','Mueller', 1987).
schueler(0815,'Erich','Schmidt', 1988).
schueler(7472,'Sven','Lehmann', 1986).
schueler(1234,'Olaf','Mueller', 1988).
schueler(2313,'Juergen','Paulsen', 1986).

%kurs(SNr, Kursnummer, Fehlstunden, Kursnote).
kurs(0815,03,0,12).
kurs
(4711,03,12,03).
kurs
(1234,23,3,14).

Vergleichsoperatoren

Schreibweise Operation
X =:= Y numerisch gleich
X =\= Y numerisch ungleich
X < Y X kleiner als Y
X > Y X größer als Y
X =< Y X kleiner gleich Y
X >= Y X größer gleich Y

Man beachte den Unterschied zu den Term-Vergleichsoperatoren:

Schreibweise Operation
X = Y unifizierbar
X \= Y nicht unifizierbar
X == Y identisch mit
X \== Y nicht identisch mit

Beispiele:

  1. Select * From kurs Where Kursnummer = 1234: ?- kurs(SNr, 1234,Fehlstunden,Note).
  2. Select * From kurs Where Kursnummer < 1234: ?- kurs(SNr, KNr, Fehlstunden, Note), KNr < 1234.
  3. Select Name, Vorname From kurs Where schueler.SNr = kurs.SNr AND Fehlstunden >= 5: ?- schueler(SNr, Name, Vorname), kurs(SNr, _,Fehlstunden,_), Fehlstunden >=5.
  4. Select Name, Vorname From schueler Where alter > 18: ?- schueler(_, Name, Vorname, Jahr), 18 =< 2007-Geb.

Grundrechenoperationen

PROLOG kennt die Grundrechenoperationen und bietet die übliche Syntax an:

Schreibweise Operation
X + Y Addition
X - Y Subtration
X * Y Multiplikation
X // Y ganzzahlige Division
X mod Y Rest der ganzzahligen Division
X / YDivision

Das Ergebnis einer Rechenoperation muss stets einer Variablen übergeben werden. Diese Aufgabe vollzieht der is-Operator.

Auswertungsoperator – is-Operator 

Anfrage Antwort Bemerkung
?- 24 is 21 + 3. yes is wertet den rechten Ausdruck aus und vergleicht ihn mit der linken Seite
?- 2 is 21 + 3. no  
?- X is 7 + 3. X = 10 is wertet den rechten Ausdruck aus weist das Ergebnis der Variablen links zu
?- X = 7 + 3. X = 7 + 3.  Gleichheitszeichen dient nur Vergleichen
?- X is Y + 1. Fehlermeldung – Y ist nicht gebunden rechts von is müssen alle Variablen gebunden sein
?- 1 + 2 is Y. Fehlermeldung – Y ist nicht gebunden Zuweisungsvariable steht stets links, arithmetischer Ausdruck rechts
?- X = vier, E is X + 3. Fehlermeldung bzw. no auf der rechten Seite muss ein numerischer Wert stehen

Der Auswertungsoperator heißt "is".

Bei Vergleichen müssen alle Variablen belegt sein.

Ist in "X is numerischer_term" die Variable X frei, so wird X mit dem numerischen Wert von Term gebunden.




zur Startseite
© Tino Hempel 1997 - 2007
Im Web vertreten seit 1994.
Eine Internet-Seite aus dem Angebot von Tino Hempel.