LbP Einführungsbeispiele

Aus ProgrammingWiki

Wechseln zu: Navigation, Suche

Kommentierte Einführungsbeispiele

...

Übungsaufgaben

  1. Erproben Sie das Nachfolger-Prädikat succ/2 für natürliche Zahlen.
  2. Schreiben Sie ein Prädikat pred/2, mit pred(X,Y), wobei Y der Vorgänger von X ist. Benutzen Sie dabei nur das Prädikat succ/2.
  3. Gesucht ist fact/2, mit fact(N,F), wobei F=N!.
  4. Gesucht ist minimum/3, mit minimum(N1,N2,M), wobei M=min(N1,N2).
  5. Gesucht ist fib/2, mit fib(N,F), wobei F=Fibonaccizahl(N).
  6. Gesucht ist summe/3, mit summe(X,Y,Z), wobei Z=X+Y.
  7. Gesucht ist produkt/3, mit produkt(X,Y,Z), wobei Z=X*Y.
  8. Gesucht ist ein Prädikat ggt/3, mit ggt(X,Y,T), wobei T ist grösster gemeinsamer Teiler von X und Y.
  9. Definieren Sie das Prädikat even/1, mit even(N), wenn N gerade, unter Verwendung der Infixoperators mod/2. Definieren Sie anschliessend odd/1, mit odd(N), wenn N ungerade, unter Verwendung von even/1 und unter Verwendung des Metaprädikats not/1.
  10. Gesucht ist ackermann/3, mit ackermann(M,N,Z), wobei Z=ackermann(M,N).
ackermann(0,N) = N + 1
ackermann(M,0) = ackermann(M-1,1).
ackermann(M,N) = ackermann(M-1, ackermann(M, N-1)).
M\N 0 1 2 3 4
0 1 2 3 4 5
1 2 3 4 5 6
2 3 5 7 9 11
3 5 13 29 61 125
4 13  ?  ?  ?  ?

Lösungen zu den Übungsaufgaben

Mit dem succ -Prädikat kann man aber auch den Vorgänger einer Zahl bestimmen. Es gibt keine Festlegung darüber, Variable für die "Eingabe" (Argument) bzw. "Ausgabe" (Ergebnis) zuständig ist.

Persönliche Werkzeuge