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