Παραδείγματα
Έστω ότι έχουμε τη παρακάτω γνώση η οποία αφορά τους μαθητές τριών τάξεων, τα μαθήματα που διδάσκονται σ' αυτές τις τάξεις, τις ώρες διδασκαλίας και τα μαθήματα που αρέσουν στον καθένα.
student(nikos, class(1)).
student(minas, class(3)).
student(maria, class(2)).
student(sofia, class(1)).
student(george, class(2)).
student(eleni, class(3)).
lesson(math, class(1)).
lesson(math, class(2)).
lesson(math, class(5)).
lesson(glossa, class(2)).
lesson(istoria, class(1)).
lesson(istoria, class(3)).
lesson(mousiki, class(2)).
lesson(mousiki, class(5)).
lesson(phisiki, class(3)).
lesson(math, hours(5)).
lesson(glossa, hours(4)).
lesson(istoria, hours(4)).
lesson(mousiki, hours(2)).
lesson(phisiki, hours(5)).
lesson(geografia, hours(3)).
like(glossa, george).
like(math, sofia).
like(math, nikos).
like(geografia, maria).
Υλοποιήστε τα παρακάτω γεγονότα και κανόνες:
Η μουσική αρέσει σε όλους τους φοιτητές.
like(_A, mousiki).
Όλα τα μαθήματα που διδάσκονται στην αίθουσα 3 αρέσουν στους μαθητές.
like(Lesson,_Mathitis):- lesson(Lesson,class(3)).
Ο Α είναι φίλος του Β αν τους αρέσει το ίδιο μάθημα και είναι στην ίδια τάξη.
is_friend(A,B):- like(Mathima,A), like(Mathima,B), student(A,Class), student(B,Class), A\=B.
Κάθε μάθημα που διδάσκετε λιγότερο από 3 ώρες είναι εργαστηριακό.
lab_lesson(Lesson):-lesson(Lesson,hours(Hours)), Hours<3.
Κάντε τις ακόλουθες ερωτήσεις από τον διερμηνέα της Prolog:
Σε ποιούς αρέσουν τα μαθηματικά;
?- like(math,X).
Σε ποιές τάξεις διδάσκεται ιστορία?
?- lesson(istoria,class(C)).
Ποιοι μαθητές βρίσκονται στις τάξεις 3, 4 και 5;
?- student(S, class(X)), X<6, X>2.
Η Σοφία με ποιάν (ή ποιόν) είναι φίλος?
?- is_friend(sofia,X).
Έστω οι παρακάτω κανόνες της Prolog:
loves(maria,taso):- loves(maria,george).
loves(maria,george):-today_is(monday).
Τι αναπαρηστούν οι παραπάνω κανόνες;
Ποιο γεγονός θα πρέπει να εισάγουμε στη βάση δεδομένων της Prolog για να αληθεύσει η ερώτηση:
?- loves(maria,taso).
Αναπαραστήστε με γεγονότα της Prolog τις ακόλουθες προτάσεις:
Ο κόκκινος κύβος βρίσκεται πάνω από τον πράσινο κύβο.
Ο πράσινος κύβος βρίσκεται πάνω από τον κίτρινο κύβο.
Ο κίτρινος κύβος βρίσκεται πάνω από τον μπλε κύβο.
Ο μπλε κύβος βρίσκεται πάνω από τον μαύρο κύβο.
Ο μαύρος κύβος βρίσκεται πάνω στο τραπέζι.
Υλοποιήστε έναν αναδρομικό κανόνα που να εξετάζει αν ένας κύβος είναι πάνω από κάποιον άλλο.
?- over_cube(box(red), box(yellow)).
true.
Τελευταία ενημέρωση σελίδας: 20/10/2008 |
|