****************************************** * * * README Prolog Programme * * Oliver Kutter - kutter@in.tum.de * * 09/12/2002 * ****************************************** Dateien : family.pl - Familienbeziehungen in Prolog arithmetik.pl - ein bisschen Arithmetik mit natuerlichen Zahlen sym_diff.pl - symbolisches Differenzieren Beispielaufrufe: Datei: family.pl tante(X,Y) -> liefert alle Paare fuer die das Praedikat wahr ist Bsp.: tante(X,lisa) -> alle Tanten von lisa werden aufgezaehlt Datei: arithmetik.pl a -> Neutrales Element der Addition = 0 f(N) -> Nachfolger von N mit N element {0,1,2,3...... } addN(Zahl1,Zahl2,X) -> X ist Summe von Zahl1 und Zahl2 Bsp.: addN(f(f(a)),f(f(a)),X) -> X = f(f(f(f(a)))). Exponentialfunktion n^m fuer n > 0 exp(N,M,X) -> X = n^m Bsp.: exp(f(f(a)),f(f(f(a))),X) -> X = f(f(f(f(f(f(f(f(a)))))))). Fakultaet N: fac(N,X) -> X = N! Bsp. fac(f(f(f(a))),X) -> X = f(f(f(f(f(f(a)))))). = 6 Fibonacci N: fib(N,X) -> X = N-te Fibonacci Zahl mit fib(a) -> a , 0 und fib(f(a)) -> f(a), 1 Bsp.: fib(f(f(f(a))),X) -> X = f(f(a)) Summe ueber alle k im Intervall 0 .. N summe(N,X) -> X = sum (k = 0 .. N ) k . Bsp.: summe(f(f(f(a))),X) -> X = f(f(f(f(f(f(a)))))). Datei: sym_diff.pl - Symbolisches Differenzieren Beispielaufrufe f(x) = a*x^2+b*x^3+c Bsp. Aufruf: d(a*x^2+b*x^3+c,x,X) -> X ist gleich 2*a*x + 3*b*x^2 +0 Das Ergebniss ist aber noch nicht vereinfacht und kann deshalb anders aussehen. Bsp. Aufruf: d(5*log(x)+x^5,x,X). d(4*x^4+3*x^3+x^2+x+1,x,X).