Ασκήσεις 24 Μαΐου 2016
ΛΙΣΤΕΣ
6. Τομή δύο συνόλων.
ΜΟΝΟΠΑΤΙΑ - ANIMALS
2 ΑΣΚΗΣΕΙΣ
Ασκήσεις 11 Μαΐου 2016
Θα μπορούσατε με τον ίδο τρόπο να δημιουργησετε και ένα πελατολόγιο
Άσκηση 20 Απριλίου 2016
Άσκηση 6 Απριλίου 2016
Άσκηση 30 Μαρτίου 2016
Άσκηση 23 Μαρτίου 2016
Ασκήσεις 16 Μαρτίου 2016
ΑΣΚΗΣΗ 3
Ασκήσεις 9 Μαρτίου 2016
ΑΣΚΗΣΗ 2
ΛΙΣΤΕΣ
1. Αφαίρεση στοιχείου από μια λίστα
afairw(_,[],[]):-!.
afairw(X,Z,[X|W]):-!,afairw(X,Z,W).
afairw(X,[A|B],[A|W]):-afairw(X,B,W).
2. Αφαίρεση από λίστα όλων των αρνητικών στοιχείων
positive([],[]).
positive([H|T],P):-H<0,!,positive(T,P).
positive([H|T],[H|P]):-positive(T,P).
3. Ένωση δύο λίστών.
syndese([],List,List):-!.
syndese([H|L1],List2,[H|L3]):-syndese(L1,List2,L3).
4. Πιθανοί συνδυασμοί στοιχείων λίστας
perm([],[]).
perm([H|T],Perm):-perm(T,SP),insert(H,SP,Perm).
insert(X,T,[X|T]).
insert(X,[H|T],[H|NT]):-insert(X,T,NT).
5. Αντικατάσταση του στοιχείου
E της λίστας L, µε το στοιχείο NE και επιστροφή της
λίστας NL.
change(E,NE,L,NL) :-append(A,[E|B],L),
append(A,[NE|B],NL).
6. Τομή δύο συνόλων.
intersection([],_,[]).
intersection([X|L1],L2,[X|L]):-
member(X,L2), intersection(L1,L2,L).
intersection([X|L1],L2,L):-
not(member(X,L2)), intersection(L1,L2,L).
ΜΟΝΟΠΑΤΙΑ - ANIMALS
2 ΑΣΚΗΣΕΙΣ
Ασκήσεις 11 Μαΐου 2016
Δημιουργήστε 2 συστήματα.
1. Μεταφραστικό από τα Αγγλικά στα Ελληνικά
2. Ένα σύστημα με ορισμούς της φυσικής.
Άσκηση 20 Απριλίου 2016
Μετρητής
Δημιουργήστε έναν μετρητή λίστας
που θα αρχικοποιηθεί στην τιμή 0. Το σύνολο των στοιχείων της λίστας θα είναι
ίσο με το 1ο στοιχείο + τα στοιχεία της ουράς της λίστας. Με άλλα
λόγια θα αναθέσουμε σε όλα τα στοιχεία της ουράς μια μεταβλητή. Το άθροισμα αυτής της μεταβλητής
+ 1 δίνει το σύνολο των στοιχείων της λίστας. Χρησιμοποιήστε το κατηγόρημα length.
Άθροισμα στοιχείων λίστας
Δημιουργήστε μία εφαρμογή που θα
υπολογίζει το άθροισμα στοιχείων μίας λίστας. Σε 1η φάση πρέπει να αρχικοποιήσετε
το άθροισμα και τον μετρητή των στοιχείων στην τιμή 0. Το άθροισμα των
στοιχείων της λίστας είναι η μεταβλητή Sum ενώ το σύνολο των στοιχείων η
μεταβλητή Ν. Αυτό θα αληθεύει όταν οι Sum και Ν λάβουν νέες μεταβλητές στις οποίες προστίθενται
αντίστοιχα η κεφαλή της λίστας και ο αριθμός 1.
Άσκηση 6 Απριλίου 2016
Ασθένειες
Μία μέρα σε ένα νοσοκομείο προσήλθαν με προβλήματα υγείας
διάφοροι ασθενείς που παρουσίαζαν τα εξής συμπτώματα:
sofia, diaroia,
emeto
giorgos, ponokefalo
dimitris, ponokoilo, pyreto
zenia,
ponokoilo, pyreto
dionisis,
ponokoilo
Οι ασθένειες πρέπει να παρουσιασθούν με το γεγονός has_symptoma
Το νοσοκομείο διαθέτει ένα έμπειρο σύστημα όπου ανάλογα με τα
συμπτώματα μπορεί να διαγνώσει την
πάθηση. Το σύστημα αυτό ακολουθεί τους παρακάτω κανόνες:
1. Ο ασθενής έχει κούραση –
εξάντληση αν έχει μόνο πονοκέφαλο
2. Ο ασθενής έχει γρίπη εάν έχει πρώτο
σύμπτωμα τον πυρετό αλλά παρουσιάζει και πονόκοιλο. Επί της ουσίας ο ασθενής
ισχυρίζεται ότι έχει και τα 2 συμπτώματα
3. Ο ασθενής έχει κρύωμα αν έχει
πονόκοιλο.
4. Ο ασθενής έχει δηλητηρίαση αν έχει
διάρροια και εμετό.
Με τα παραπάνω δεδομένα σχεδιάστε το αντίστοιχο project.
Άσκηση 30 Μαρτίου 2016
Δημιουργήστε
ένα σύστημα GPS όπου:
1.
Θωρήστε
ότι υπάρχουν απ’ ευθείας διαδρομές από περιοχή σε περιοχή (directTrain). Αυτό θα αποτυπωθεί στα κεντρικά
γεγονότα.
2.
Θωρήστε
ότι υπάρχουν διαδρομές από περιοχή σε περιοχή
(travelBetween). Βεβαίως στις διαδρομές αυτές υπάρχουν
και ενδιάμεσοι σταθμοί
3. Η εκτύπωση των αποτελεσμάτων πρέπει
να γίνει με την εντολή write
4. Αυτό που μας ενδιαφέρει είναι να
βρούμε το travelBetween
Άσκηση 23 Μαρτίου 2016
Ασκήσεις 16 Μαρτίου 2016
ΑΣΚΗΣΗ 3
Δίνεται ο παρακάτω πίνακας που αφορά τους φοιτητές
ενός ΤΕΙ.
Όνομα
|
Περασμένα
Μαθήματα
lessons
|
Έτος
eti
|
Ιδιότητα
|
panos
|
20
|
3
|
neos
|
nikos
|
30
|
4
|
neos
|
maria
|
35
|
5
|
palios
|
38
|
7
|
palios
|
Οι φοιτητές που δικαιούνται πτυχιακής εργασίας
πρέπει να πληρούν τις παρακάτω προϋποθέσεις και το ΤΕΙ τους ενημερώνει
για αυτό.
Προϋποθέσεις:
- Ικανός για
ανάληψη πτυχιακής εργασίας είναι ο φοιτητής που έχει ξεπεράσει τα 3 έτη
σπουδών. (Years)
- Δεν είναι
ικανός για ανάληψη πτυχιακής κάποιος φοιτητής που δεν έχει περάσει έστω
25 μαθήματα (Math<25) .
- Ικανός για ανάληψη πτυχιακής είναι παλιός ο φοιτητής που έχει περάσει περισσότερα από 20 μαθήματα.
Δημιουργήστε το κατάλληλο project, σώστε το σαν αρχείο tei.pl και βρείτε απλά το ποιοι φοιτητές δικαιούνται
πτυχιακής εργασίας.
ΑΣΚΗΣΗ 4
Δίνεται ο παρακάτω πίνακας που αφορά τους υπαλλήλους (Employees) και τους διευθυντές (managers) μίας εταιρείας.
Όνομα
|
Ηλικία
age
|
Προϋπηρεσία
service
|
Ειδικότητα
|
Μισθός
wage
|
petros
|
30
|
10
|
shopfoor
|
4500
|
larian
|
25
|
5
|
manager
|
|
kostas
|
57
|
26
|
shopfoor
|
6700
|
na8anail
|
30
|
9
|
shopfoor
|
5600
|
iakovos
|
56
|
24
|
shopfoor
|
6500
|
ilarios
|
46
|
21
|
manager
|
Οι υπάλληλοι που πληρούν τις παρακάτω
προϋποθέσεις δικαιούνται σύνταξης (syntaxi) και η εταιρεία μπορεί να τους ενημερώσει για
αυτό.
Προϋποθέσεις:
- Ικανός για λήψη σύνταξης είναι ο υπάλληλος που έχει προϋπηρεσία πάνω από 20 έτη (Years).
- Δεν δικαιούται σύνταξης υπάλληλος που η ηλικία του είναι κάτω από 50 έτη
- Δεν δικαιούται σύνταξης
από το ΙΚΑ ένας manager
- Ικανός για λήψη σύνταξης είναι κάποιος που έχει πληρώσει σωστά όλες τις εισφορές του. Αυτό σημαίνει ότι κατά την διάρκεια της υπηρεσίας του είχε ένσημα πάνω από 5000 και κάτω από 30000.
Δημιουργήστε το κατάλληλο project, σώστε το σαν αρχείο ika.pl και βρείτε απλά το ποιοι υπάλληλοι με βάση τον πίνακα
είναι ικανοί προς συνταξιοδότηση.
Ασκήσεις 9 Μαρτίου 2016
ΑΣΚΗΣΗ 2
Διαχείριση αποτελεσμάτων αγώνων
Η ελληνική ποδοσφαιρική ομοσπονδία έχει στην διάθεση της
ένα τεράστιο αρχείο αποτελεσμάτων αγώνων όλων των κατηγοριών (Α, Β εθνική κλπ).
Επιθυμεί όμως να μπορεί ανά πάσα στιγμή να δημιουργεί στατιστικούς πίνακες για
αγώνες, αποτελέσματα και ομάδες. Μία καλή λύση είναι η prolog στην
περίπτωση αυτή. Ενδεικτικά παρουσιάζεται παρακάτω ένα πολύ μικρό απόσπασμα
αποτελεσμάτων αγώνων.
agonas(pao,osfp,0,0).
agonas(aek,pao,0,6).
agonas(osfp,aek,5,0).
agonas(osfp,pao,6,6).
agonas(aris,aek,0,0).
agonas(aek,osfp,0,1).
agonas(osfp,aris,2,2).
agonas(aek,aris,2,3).
Με την βοήθεια του
περιβάλλοντος της prolog
Βρείτε:
- Τους αγώνες που έληξαν ισόπαλοι
- Τους αγώνες όπου ο aris έφερε ισοπαλία (προσοχή εδώ θέλει ;)
- Τους ισόπαλους εντός έδρας αγώνες του osfp
- Τους αγώνες όπου η aek δεν σημείωσε γκολ (πολύ προσοχή εδώ διότι συμπεριλαμβάνονται και οι εντός και οι εκτός έδρας αγώνες)
- Τους αγώνες όπου η γηπεδούχος ομάδα δεν σημείωσε γκολ
Δραστηριότητα:
Φτιάξτε μόνοι σας κάτι το αντίστοιχο αλλά πολύ πιο «πλούσιο». Με άλλα λόγια θα
μπορούσατε να προσθέσετε συγκεκριμένες
ημερομηνίες αγώνων καθώς και άλλο στοιχεία των αγώνων..
Ερώτηση: Άραγε
το παραπάνω παράδειγμα θα μπορούσε να χρησιμοποιηθεί ως υπόδειγμα για την
δημιουργία ενός συστήματος για μία μονάδα υγείας π.χ. ιατρείο όπου για κάθε ασθενή θα υπάρχουν
αριθμητικά ιατρικά στοιχεία για κάθε ασθενή με το ιστορικό της πορεία της
υγείας του. Σημειώνω ότι οι πολλοί γιατροί σήμερα επιθυμούν με θέρμη κάτι
τέτοιο.
ΑΣΚΗΣΗ 3
Είδη
οχημάτων και χαρακτηριστικά
Μία εταιρεία μεταχειρισμένων αυτοκινήτων θέλει να
δημιουργήσει μία βάση γνώσης για τα οχήματα που αγοράζει για να τα πουλήσει
αργότερα. Όχημα είναι και το τρακτέρ και
το αυτοκίνητο. Κάθε όχημα έχει χαρακτηριστικά όπως μάρκα, χιλιόμετρα, χρόνια
κυκλοφορίας, χρώμα και τιμή. Τα παρακάτω δεδομένα είναι ένα μικρό απόσπασμα από
μία βάση γνώσης μίας τέτοια επιχείρησης
car(chrysler,130000,3,red,12000).
car(ford,90000,4,gray,25000).
car(datsun,8000,1,red,30000).
truck(ford,80000,6,blue,8000).
truck(datsun,50000,5,orange,20000).
truck(toyota ,25000,2,black,25000).
vehicle(Make,Odometer,Age,Color,Price):-car(Make,Odometer,Age,Color,Price);
truck(Make,Odometer,Age,Color,Price).
Με την βοήθεια του
περιβάλλοντος της prolog
Βρείτε:
- Ποια οχήματα έχουν τιμή 25000 €; vehicle(X,A,B,T,25000).
- Εμφανίστε όλα τα datsun οχήματα. vehicle(datsun,X,A,B,G).
- Εμφανίστε όλα τα red αυτοκίνητα. vehicle(A,B,C,red,Y).
- Εμφανίστε μόνο τα car ford. car(ford,B,C,D,T).
- Εμφανίστε τα car ford και τα truck με χρώμα black. car(ford,B,C,D,T);truck(A,B,C,black,R).
- Εμφανίστε τα οχήματα με τιμή μεγαλύτερη από 20000. vehicle(A,B,C,D,Price),Price>20000.
- Εμφανίστε τα οχήματα με χιλιόμετρα λιγότερα από 50000. vehicle(A,Odometer,C,D,F),Odometer<20000.
Δραστηριότητα:
Φτιάξτε μόνοι σας κάτι το αντίστοιχο αλλά πολύ πιο «πλούσιο». Με άλλα λόγια θα
μπορούσατε να δημιουργήσετε το ίδιο
σύστημα αλλά με περισσότερα χαρακτηριστικά των αυτοκίνητων και
περισσότερες κατηγορίες.
Ερώτηση: Άραγε
το παραπάνω παράδειγμα θα μπορούσε να χρησιμοποιηθεί ως υπόδειγμα για την
δημιουργία ενός συστήματος για ένα μεγάλο supermarket όπου θα ελέγχονται ανά πάσα
στιγμή οι ημερομηνίες λήξης των προϊόντων. Είναι κρίμα να αγοράζουμε ληγμένα
προϊόντα!!!!
Δεν υπάρχουν σχόλια:
Δημοσίευση σχολίου