1 / 21

Pro log

Pro log. Pro grammieren in Log ik 5. Arithmetik. Inhalt. • Einführung • Zahlentypen • is - Operator • Grundrechenarten • Vergleichsoperatoren • Funktionen • Beispiele. Einführung.

lynton
Download Presentation

Pro log

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Prolog Programmieren in Logik 5. Arithmetik PROLOG – Eine Sprache der Künstlichen Intelligenz

  2. Inhalt • Einführung • Zahlentypen • is - Operator • Grundrechenarten • Vergleichsoperatoren • Funktionen • Beispiele PROLOG – Eine Sprache der Künstlichen Intelligenz

  3. Einführung Es mag verwundern, dass in einem Kurs über eine Programmiersprache bis jetzt kein Wort über Zahlen und das Rechnen mit ihnen gefallen ist. Der Grund liegt darin, dass aus Effektivitätsgründen die arithmetischen Operationen PROLOG untypisch implementiert sind. Außerdem unterscheiden sich hier die verschiedenen PROLOG Systeme. PROLOG – Eine Sprache der Künstlichen Intelligenz

  4. Zahlentypen In SWI-PROLOG gibt es zwei verschiedene Zahlentypen: • integer (ganze Zahlen) • float (Kommazahlen) SWI-PROLOG versteckt den Unterschied zwischen den Zahlentypen, der Benutzer muss sich also nicht darum kümmern! PROLOG – Eine Sprache der Künstlichen Intelligenz

  5. is - Operator X is 3 + 5. Y is 17 mod 3. X is 3, Y is X * 2 + 7. X is 2 + 3, Y is X * 5. X is (1 + 2 + 3 + 4) / 10. In PROLOG erfolgt eine Wertzuweisung über den is– Operator: PROLOG – Eine Sprache der Künstlichen Intelligenz

  6. Grundrechenarten Die Grundrechenarten schreibt man in SWI-Prolog wie folgt: PROLOG – Eine Sprache der Künstlichen Intelligenz

  7. Vergleichs-Operatoren In SWI-PROLOG gibt es folgende Vergleichsoperatoren: PROLOG – Eine Sprache der Künstlichen Intelligenz

  8. Funktionen I In SWI-PROLOG gibt es u.a. folgende Funktionen: PROLOG – Eine Sprache der Künstlichen Intelligenz

  9. Funktionen II In SWI-PROLOG gibt es folgende Spezial-Funktionen für integer – Zahlen: PROLOG – Eine Sprache der Künstlichen Intelligenz

  10. Beispiel 1 Aufgabe: Ein PROLOG-Programm soll angeben können, wer in einem bestimmten Jahr Kanzler der Bundesrepublik Deutschland war. • Prolog: • kanzler(adenauer,1949,1963). kanzler(erhard,1963,1966). • kanzler(kiesinger,1966,1969). kanzler(brandt,1969,1974). • kanzler(schmidt,1974,1982). kanzler(kohl,1982,1998). • kanzler(schroeder,1989,2005). kanzler(merkel,2005,2007). • regiert(K,J) :- kanzler(K,A,E), A =< J, E >= J. PROLOG – Eine Sprache der Künstlichen Intelligenz

  11. Beispiel 1 Test: regiert(K,1960). regiert(K,1974). regiert(K,1900). regiert(kohl,1980). regiert(kohl,1988). regiert(kohl,J). PROLOG – Eine Sprache der Künstlichen Intelligenz

  12. Beispiel 2 Aufgabe: Das PROLOG-Programm soll die Regierungsdauer der einzelnen Kanzler angeben können. Test: reg_dauer(adenauer,J). reg_dauer(brandt,10). reg_dauer(K,3). • Prolog: • reg_dauer(K,D) :- kanzler(K,A,E), D is E - A. PROLOG – Eine Sprache der Künstlichen Intelligenz

  13. Beispiel 3 Aufgabe: Ein PROLOG-Programm soll die Fakultät berechnen können: 0! = 1; n! = n * (n-1)! für n>0 • Prolog: • fak(0,1). • fak(N,F) :- N > 0, N1 is N - 1, • fak(N1,F1), F is N * F1. • Test: • fak(4,F). • fak(3,5). • fak(N,24). PROLOG – Eine Sprache der Künstlichen Intelligenz

  14. Beispiel 4 Aufgabe: Dies ist eine Aufgabe von Adam Riese: Setzt man für das Erbe einer Tochter x Gulden an, so erhält man folgende Gleichung: x + x + 2x + 2*2x = 360 PROLOG – Eine Sprache der Künstlichen Intelligenz

  15. Beispiel 4 Lösung in Prolog: loesung(X) :- between(1,360,X), 360 is X + X + 2*X + 2*2*X. Erklärung: - das Prädikat between erzeugt der Reihe nach alle natürlichen Zahlen zwischen 1 und 360 - anschließend wird überprüft, ob diese die Bedingung des Rätsels erfüllen - Prinzip: erzeuge und überprüfe PROLOG – Eine Sprache der Künstlichen Intelligenz

  16. Beispiel 5 Auf einer Wiese hütet Liesel Schafe und Gänse. Lehrer Flachsel, der gerade vorbeikommt, fragt Liesel nach deren Anzahl. Diese antwortet: „Es sind doppelt so viele Gänse wie Schafe, insgesamt habe ich 88 Beine gezählt.“ Wie viele von jeder Sorte sind es? Es soll ein PROLOG-Prädikat vorhanden definiert werden, das die Anfrage ?- vorhanden(88,Schafe,Gaense). gestattet. PROLOG – Eine Sprache der Künstlichen Intelligenz

  17. Beispiel 5 Idee: zwei Zählschleifen für Schafanzahl und für Gänseanzahl prüfen die beiden Bedingungen Schafe*4 + Gänse*2 = 88 Schafe*2 + Gänse = 0 • Prolog: • vorhanden(Beine,Schafe,Gaense) :- • GS is Beine/4, between(1,GS,Schafe), • GG is Beine/2, between(1,GG,Gaense), • Beine is Schafe*4 + Gaense*2, • Gaenseis Schafe*2. PROLOG – Eine Sprache der Künstlichen Intelligenz

  18. Beispiel 6 Aufgabe: Die Teilermenge einer Zahl ist auszugeben. Idee: (1) Systemprädikat findall(X,Bedingung,Liste) alle Objekte X, die die Bedingung erfüllen, werden in der Liste zusammengefasst (2) die Teilermenge ist: {T| T teilt Zahl} teiler_menge(Zahl,Menge) :- findall(T,teilt(T,Zahl),Menge). PROLOG – Eine Sprache der Künstlichen Intelligenz

  19. Beispiel 6 Idee: (3) T teilt Zahl, wenn: - T zwischen 1 und Zahl liegt - der Rest bei der Division Zahl/T Null ergibt teilt(T,Zahl) :- between(1,Zahl,T), Zahl mod T =:= 0. PROLOG – Eine Sprache der Künstlichen Intelligenz

  20. Aufgaben Lösen Sie im PROLOG-Arbeitsbuch die Aufgaben S.30/1 – S.35/22 PROLOG – Eine Sprache der Künstlichen Intelligenz

  21. Aufgaben Lösen Sie die Aufgaben 21 bis 25. PROLOG – Eine Sprache der Künstlichen Intelligenz

More Related