Logik:Klausuren/01.02.2002/A.1 Aufgabe

Aus Tudwiki
Wechseln zu: Navigation, Suche

1. Aufgabenstellung

a) Geben Sie in Prolog eine rekursive Funktion $ \mathsf{gnull/2}\; $ an, die zu einer gegebenen Liste, deren Elemente ganze Zahlen sind, die Summe der Zahlen die grö�er als Null sind, ermittelt. (z.B. soll der Aufruf $ \mathsf{gnull([3,0,-2,-3,1],A)}\; $ das Ergebnis $ \mathsf{A=4}\; $ liefern.


b) Geben Sie ein Modell für die prädikatenlogische Formel $ (p(f(X)) \and q(a))\; $ an.


2. Lösung

a)

$ \mathsf{gnull([],0)}\;. $
$ \mathsf{gnull([H|T],S)\ :-\ X>0,\ gnull(T,S1),\ S\ is\ S1+X.}\; $
$ \mathsf{gnull([H|T],S)\ :-\ X=<0, gnull(T,S).}\; $


b)

$ I=(\mathcal{D},\cdot^I)\; $ mit $ \mathcal{D} = \{1\}\; $
$ a^I = 1\; $
$ f^I : \mathcal{D} \rightarrow \mathcal{D} : 1 \rightarrow 1\; $
$ p^I = q^I = \mathcal{D} = \{1\}\; $


3. Lösungsweg

4. Alternativen/Diskussion/Hinweise etc.

a)


Die Abfrage (X=<0) in der dritten Zeile muss nicht sein, wenn man einen Cut in die zweite Zeile einbaut:

$ \mathsf{gnull([],0).}\; $
$ \mathsf{gnull([H|T],S)\ :-\ H>0,\ !,\ gnull(T,S1),\ S\ is\ S1+H.}\; $
$ \mathsf{gnull([H|T],S)\ :-\ gnull(T,S).}\; $


zur Klausur 01.02.2002
Aufgaben-Kategorie PrologAufgaben-Kategorie PL - Interpretationen und Modelle