Aus : Schubert /
Schwill, 2004, S.338-341
B Programmbeispiele
B1 Freundinnenauswahl
Fakten:
klug(anne). klug(isabel). klug(piet).
klug(thomas).
sportlich(anne). sportlich(denise).
sportlich(katrin). sportlich(piet).
sportlich(nico). sportlich(sven).
maedchen(anne). maedchen(isabel).
maedchen(denise).
junge(piet). junge(sven). junge(nico).
Regeln:
freundin(X):-maedchen(X),klug(X).
freundin (X): -maedchen (X), sportlich
(X).
B2 Vierecksarten
Fakten:
ist_ein (trapez, konvexes _ Viereck).
ist_ein (drachenviereck, konvexes _ Viereck).
ist_ein(parallelogramm,trapez).
ist_ein(rechteck,parallelogramm).
ist_ein(rhombus,parallelogramm).
ist_ein(rhombus,drachenviereck).
ist_ein(quadrat,rechteck).
ist_ein(quadrat,rhombus).
Regeln:
Gehoert_zu(X, Y):-ist_ein(X, Y).
gehoert_zu(X, Y):-ist_ein(Z, Y),gehoert_zu(X,Z).
B3 Computeraufbau
Fakten:
teil_yon(computer,Zentraleinheit).
teil_yon(computer,peripherie).
teil_yon(zentraleinheit, Steuerwerk).
teil_yon(zentraleinheit,rechenwerk).
teil_yon (Zentraleinheit, hauptspeicher).
Regeln:
besteht_aus(X, Y):-teil_yon(X, Y).
besteht_aus(X, Y):-teil_von(Z,
Y),besteht_aus(X,Z).
B4 Nachbarländer
Fakten:
nachbarn(andorra, [frankreich, Spanien]).
nachbarn(belgien, [frankreich, luxemburg, niederlande]).
nachbarn(deutschland, [belgien, daenemark, frankreich,
oesterreich, polen,schweiz, tschechien]).
...
?-
nachbarn(belgien,Nachbarlaender).
Nachbarlaender = [frankreich,
luxemburg, niederlande]
B5 Listenelement
Fakt:
listenelement(X,[X \ Restliste]).
Regel:
listenelement(X,[Listenkopf \ Restliste]) :-
listenelement(X,Restliste).
B6 Färben einer Landkarte
Fakten:
farbe(blau). farbe(gelb). farbe(gruen).
farbe(rot).
Regeln: nachbar(Ll,L2) :-farbe(L1),farbe(L2),L1
\ =L2.
karte(L1,L2,L3,L4,L5,L6)
:- nachbar(L1,L2), nachbar(L1,L3),
nachbar(L1,L5),
nachbar(L1,L6), nachbar(L2,L3), nachbar(L2,L5), nachbar(L3,L4), nachbar(L3,L5),
nachbar(L3,L6), nachbar(L4,L5), nachbar(L4,L6), nachbar(L5,L6).
start:- write('Farbenvorschlag
fuer diese sechs Laender:'), nl,
write('Land1 Land2
Land3 Land4 Land5
Land6'), nl,
farbe(L1), farbe(L2),
farbe(L3), farbe(L4), farbe(L5), farbe(L6), karte(Ll,L2,L3,L4,L5,L6),
write(Ll,L2,L3,L4,L5,L6),
nl.
?-start.
Farbenvorschlag fuer diese
sechs Laender:
Land 1 Land2
Land3 Land4 Land5
Land6
blau gelb gruen blau
rot gelb
B7 Familienstammbaum
Fakten:
elternteil(georg,margitta). elternteil(georg,
elisabeth). ...
maennlich(ernst). maennlich(georg).
maennlich(johannes). ...
weiblich(frieda). weiblich(margitta).
weiblich(elisabeth). ...
Regeln:
vater(X,
Y):-elternteil(X, Y),maennlich(X).
mutter(X, Y):-elternteil'(X, Y),weiblich(X).
brueder(X,Y):-
elternteil(Z,X),
elternteil(Z,Y), maennlich(X), maennlich(Y),X \ = Y.
schwester(X, Y):-
elternteil(Z,X),
elternteil(Z,Y), weiblich(X), weiblich(Y),X \ = Y.
vorfahr(X,
Y):-elternteil(X, Y).
vorfahr(X,
Y):-eiternteil (X, Z),vorfahr (Z, Y).
?-vater(Vater,Kind).
Vater = georg Kind = margitta
Vater = georg Kind = elisabeth
B8 Bibliotheksmahnung
Fakten:
buch(1,'Abenteuer',autor('Tolkien ','J.R.R. '),
'Der Herr der Ringe'). ...
leser(1, 'lsabel Kroll'). ... ausleihe(1,1,
'23.02.1994'). ...
Regel:
mahnung(Termin, Leser, Titel):-
ausleihe(Lesernr,
Buchnr, Termin), leser(Lesernr, Leser),
buch(Buchnr, _, _,
Titel).
?-mahnung('23.02.1994',Leser,Titel).
Leser = lsabel Kroll Titel = Der Herr der Ringe