Logik:Klausuren/01.02.2002/A.1 Aufgabe
Inhaltsverzeichnis
1. Aufgabenstellung[Bearbeiten]
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[Bearbeiten]
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[Bearbeiten]
4. Alternativen/Diskussion/Hinweise etc.[Bearbeiten]
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