SlideShare a Scribd company logo
1 of 14
Download to read offline
ΠΛΗ31
PROLOG
Μάθηµα 3:
∆οµές και Λίστες
∆ηµήτρης Ψούνης
ΠΕΡΙΕΧΟΜΕΝΑ
Α. Σκοπός του Μαθήµατος
Β.Θεωρία
1. ∆οµές
1. Ορισµός ∆οµής
2. Ερωτήσεις σε ∆οµές
2. Λίστες
1. Ορισµός Λίστας
2. Κατηγορήµατα Λιστών
1. Το κατηγόρηµα member/2
2. To κατηγόρηµα append/3
3. To κατηγόρηµα length/2
4. Το κατηγόρηµα reverse/3
Γ.Ασκήσεις
2∆ηµήτρης Ψούνης, ΠΛΗ31, Prolog, Μάθηµα 3: ∆οµές και Λίστες
A. Θεωρία
1. ∆οµές
1.Ορισµός ∆οµής
Στην Prolog µπορούµε να ορίσουµε µια δοµή δεδοµένων ως µία οµαδοποίηση δεδοµένων µε
ένα κοινό όνοµα και αντίστοιχο συντακτικό µε αυτό που είδαµε στο κατηγόρηµα.
Π.χ. το date(18,12,2011) θα αναπαριστά την ηµεροµηνία 18-12-2011
Μία δοµή δεδοµένων παίζει αντίστοιχο ρόλο µε µία σταθερά, άρα µπορούµε να την
αναπαράστήσουµε µόνο σαν όρισµα σε ένα κατηγόρηµα.
Για παράδειγµα µπορούµε να ενσωµατώσουµε στον κόσµο της οικογένειας του tom και την
πληροφορία για την ηµεροµηνία γέννησης κάθε προσώπου µε τις δηλώσεις:
3∆ηµήτρης Ψούνης, ΠΛΗ31, Prolog, Μάθηµα 3: ∆οµές και Λίστες
born(tom,date(12,11,1923)).
born(john,date(17,5,1955)).
born(pam,date(10,11,1978)).
κ.λπ.
A. Θεωρία
1. ∆οµές
2. Ερωτήσεις σε ∆οµές
Έπειτα µπορούµε να χρησιµοποιήσουµε την πληροφορία των δοµών µε τους γνωστούς
τρόπους απάντησης της Prolog:
4∆ηµήτρης Ψούνης, ΠΛΗ31, Prolog, Μάθηµα 3: ∆οµές και Λίστες
?- born(tom,X).
X=date(12,11,1923).
?-born(tom,date(_,_,X)).
X=1923
?-parent(X,john),born(X,date(_,_,Y)).
X=tom,
Y=1923.
A. Θεωρία
2. Λίστες
1. Ορισµός Λίστας
Η λίστα είναι µια βασική προγραµµατιστική δοµή στην Prolog, η οποία είναι να ενθέσουµε τα
στοιχεία της λίστας σε αγκύλες χωρισµένα µε κόµµατα.
H λίστα είναι µια ιδιαίτερα σηµαντική δοµή διότι µπορούµε να έχουµε όσα στοιχεία
θέλουµε, σε αντίθεση µε ένα κατηγόρηµα που έχει συγκεκριµένο πλήθος στοιχείων,
Συγκεκριµένα αν θέλουµε να κατασκευάσουµε µια λίστα π.χ. µε τα παιδιά ενός ατόµου, τότε
µπορούµε να το γράψουµε απ’ ευθείας ως εξής:
Στην πραγµατικότητα η λίστα κωδικοποιείται στην Prolog µε έναν ιδιαίτερο τρόπο,
χρησιµοποιώντας τα δεσµευµένα κατηγορήµατα ./2 και [ ]
Αλλά ευτυχώς παρέχεται και η προγραµµατιστική ευκολία να γράψουµε τα στοιχεία απ’
ευθείας σε άγκύλες
5∆ηµήτρης Ψούνης, ΠΛΗ31, Prolog, Μάθηµα 3: ∆οµές και Λίστες
children(tom,[john,jim]).
children(tom,.(john,.(jim,[ ])).
A. Θεωρία
2. Λίστες
1. Ορισµός Λίστας
Με βάση και τον τυπικό τρόπο µε τον οποίο η Prolog κατασκευάζει µια λίστα, µας παρέχεται µια
πολύ σηµαντική προγραµµατιστική ευκολία, που θα την χρησιµοποιήσουµε όταν κάνουµε
ερωτήσεις και όταν γράφουµε κανόνες:
Μία λίστα µπορούµε να αναπαρασταθεί [Head|Tail] όπου
Head είναι η κεφαλή της λίστας, δηλαδή το πρώτο στοιχείο της λίστας
Tail είναι η ουρά της λίστας, δηλαδή τα επόµενα στοιχεία της λίστας.
Έτσι αν π.χ. έχουµε ενσωµατώσει στο πρόγραµµα µας το γεγονός:
Και κάνουµε την ερώτηση:
Θα λάβουµε την απάντηση
6∆ηµήτρης Ψούνης, ΠΛΗ31, Prolog, Μάθηµα 3: ∆οµές και Λίστες
children(a,[b,c,d,e]).
?-children(a,[Χ|Υ]).
Χ=b,
Y=[c,d,e].
A. Θεωρία
2. Λίστες
2. Κατηγορήµατα Λιστών (1.Το κατηγορηµα member/2 )
Η Prolog έχει µια σειρά έτοιµων κατηγορηµάτων για την διαχείριση λιστών.
Τα κατηγορήµατα αυτά είναι έτοιµα και δεν χρειάζεται να τα ορίσουµε εµείς. Απλά τα
χρησιµοποιούµε.
Το σηµαντικότερο κατηγόρηµα είναι το member(X,L) που θα αληθεύει αν το στοιχείο Χ είναι
µέλος της λίστας L.
Παραδείγµατα:
7∆ηµήτρης Ψούνης, ΠΛΗ31, Prolog, Μάθηµα 3: ∆οµές και Λίστες
?- member(1,[1,2,3]).
true.
?- member(4,[1,2,3]).
false.
?- member(X,[1,2,3]).
X = 1 ;
X = 2 ;
X = 3.
A. Θεωρία
2. Λίστες
2. Κατηγορήµατα Λιστών (1.Το κατηγορηµα member/2 )
Ο ορισµός του κατηγορήµατος member στην prolog είναι προφανώς αναδροµικός:
(Ασκηση) Να κατασκευάσετε το δένδρο εκτέλεσης του ερωτήµατος
8∆ηµήτρης Ψούνης, ΠΛΗ31, Prolog, Μάθηµα 3: ∆οµές και Λίστες
member(X,[X|_]).
member(X,[_|L]):-member(X,L).
?- member(X,[1,2,3]).
A. Θεωρία
2. Λίστες
2. Κατηγορήµατα Λιστών (2.Το κατηγορηµα append/2 )
Σηµαντικό κατηγόρηµα είναι και το append(L1,L2,L) που θα αληθεύει αν η συνένωση των
λιστών L1 και L2 είναι η L.
Συνένωση των λιστών L1 και L2 είναι να κατασκευάσουµε µία νέα λίστα L που στην αρχή
έχει τα στοιχεία της L1 και έπειτα έχει και τα στοιχεία της L2.
Παραδείγµατα:
9∆ηµήτρης Ψούνης, ΠΛΗ31, Prolog, Μάθηµα 3: ∆οµές και Λίστες
10 ?- append([1,2],[3,4],L).
L = [1, 2, 3, 4].
?- append(L1,L2,[1,2,3]).
L1 = [],
L2 = [1, 2, 3] ;
L1 = [1],
L2 = [2, 3] ;
L1 = [1, 2],
L2 = [3] ;
L1 = [1, 2, 3],
L2 = [] ;
?- append(L1,[3,4],[1,3,4]).
L1 = [1]
?- append([1,2],L2,[1,3,4]).
false.
A. Θεωρία
2. Λίστες
2. Κατηγορήµατα Λιστών (2.Το κατηγορηµα append/2 )
Και ο ορισµός του κατηγορήµατος append στην prolog είναι αναδροµικός:
(Ασκηση) Να κατασκευάσετε το δένδρο εκτέλεσης του ερωτήµατος
10∆ηµήτρης Ψούνης, ΠΛΗ31, Prolog, Μάθηµα 3: ∆οµές και Λίστες
append([],L,L).
append([X|L1],L2,[X|L3]):-append(L1,L2,L3).
?- append([1,2],[3],L).
A. Θεωρία
2. Λίστες
2. Κατηγορήµατα Λιστών (3.Το κατηγορηµα length/2)
To κατηγόρηµα length(L,X)
αληθεύει αν η λίστα L έχει µήκος
(πλήθος στοιχείων) Χ
Παραδείγµατα:
11∆ηµήτρης Ψούνης, ΠΛΗ31, Prolog, Μάθηµα 3: ∆οµές και Λίστες
?- append(L1,L2,[1,2,3]),length(L1,N1),length(L2,N2).
L1 = [],
L2 = [1, 2, 3],
N1 = 0,
N2 = 3 ;
L1 = [1],
L2 = [2, 3],
N1 = 1,
N2 = 2 ;
L1 = [1, 2],
L2 = [3],
N1 = 2,
N2 = 1 ;
L1 = [1, 2, 3],
L2 = [],
N1 = 3,
N2 = 0 ;
?- length([1,2,3],X).
X = 3.
A. Θεωρία
2. Λίστες
2. Κατηγορήµατα Λιστών (4.Το κατηγορηµα reverse/2)
To κατηγόρηµα reverse(L1,L2) αληθεύει αν η λίστα L2 είναι η αντιστροφή της L1
Παραδείγµατα:
12∆ηµήτρης Ψούνης, ΠΛΗ31, Prolog, Μάθηµα 3: ∆οµές και Λίστες
?- reverse([1,2,3],L).
L = [3, 2, 1].
10 ?- reverse(L,[1,2,3]).
L = [3, 2, 1] .
B. Ασκήσεις
1. Εξετάσεις 2009Β
13∆ηµήτρης Ψούνης, ΠΛΗ31, Prolog, Μάθηµα 3: ∆οµές και Λίστες
Το κατηγόρηµα append της Prolog ορίζεται ως εξής:
append([],L,L).
append([X|Xs],Y,[X|Zs]) :- append(Xs,Y,Zs).
Να γράψετε τι θα απαντήσει η Prolog στα ακόλουθα ερωτήµατα (όλες τις πιθανές απαντήσεις):
(1) ?- append([1,2],[3,4],Χ).
(2) ?- append([a,b],Υ,[a,b,c,d]).
(3) ?- append(Z,[a,b],[a,b,c,d]).
(4) ?- append(A,B,[k,l,m]).
B. Ασκήσεις
2. Ο κόσµος του οικογενειακού δένδρου
14∆ηµήτρης Ψούνης, ΠΛΗ31, Prolog, Μάθηµα 3: ∆οµές και Λίστες
∆εδοµένου του γνωστού κόσµου του οικογενειακού δένδρου του tom:
Ορίστε το κατηγόρηµα children(X,L), που θα αληθεύει αν τα στοιχεία που είναι στην λίστα L
είναι παιδιά του ατόµου X.
parent(tom,bob).
parent(tom,john).
parent(bob,jim).
parent(bob,kim).
parent(john,sam).
parent(jim,pat).

More Related Content

What's hot

ΠΛΗ30.ΚΑΡΤΑ - ΑΝΑΛΥΣΗ ΔΙΑΔΙΚΑΣΤΙΚΩΝ ΑΛΓΟΡΙΘΜΩΝ
ΠΛΗ30.ΚΑΡΤΑ - ΑΝΑΛΥΣΗ ΔΙΑΔΙΚΑΣΤΙΚΩΝ ΑΛΓΟΡΙΘΜΩΝΠΛΗ30.ΚΑΡΤΑ - ΑΝΑΛΥΣΗ ΔΙΑΔΙΚΑΣΤΙΚΩΝ ΑΛΓΟΡΙΘΜΩΝ
ΠΛΗ30.ΚΑΡΤΑ - ΑΝΑΛΥΣΗ ΔΙΑΔΙΚΑΣΤΙΚΩΝ ΑΛΓΟΡΙΘΜΩΝDimitris Psounis
 
ΠΛΗ10 ΜΑΘΗΜΑ 2.1
ΠΛΗ10 ΜΑΘΗΜΑ 2.1 ΠΛΗ10 ΜΑΘΗΜΑ 2.1
ΠΛΗ10 ΜΑΘΗΜΑ 2.1 Dimitris Psounis
 
ΠΛΗ10 ΜΑΘΗΜΑ 2.6
ΠΛΗ10 ΜΑΘΗΜΑ 2.6 ΠΛΗ10 ΜΑΘΗΜΑ 2.6
ΠΛΗ10 ΜΑΘΗΜΑ 2.6 Dimitris Psounis
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)Dimitris Psounis
 

What's hot (20)

ΠΛΗ20 ΜΑΘΗΜΑ 3.4
ΠΛΗ20 ΜΑΘΗΜΑ 3.4ΠΛΗ20 ΜΑΘΗΜΑ 3.4
ΠΛΗ20 ΜΑΘΗΜΑ 3.4
 
ΠΛΗ30.ΚΑΡΤΑ - ΑΝΑΛΥΣΗ ΔΙΑΔΙΚΑΣΤΙΚΩΝ ΑΛΓΟΡΙΘΜΩΝ
ΠΛΗ30.ΚΑΡΤΑ - ΑΝΑΛΥΣΗ ΔΙΑΔΙΚΑΣΤΙΚΩΝ ΑΛΓΟΡΙΘΜΩΝΠΛΗ30.ΚΑΡΤΑ - ΑΝΑΛΥΣΗ ΔΙΑΔΙΚΑΣΤΙΚΩΝ ΑΛΓΟΡΙΘΜΩΝ
ΠΛΗ30.ΚΑΡΤΑ - ΑΝΑΛΥΣΗ ΔΙΑΔΙΚΑΣΤΙΚΩΝ ΑΛΓΟΡΙΘΜΩΝ
 
ΠΛΗ20 ΜΑΘΗΜΑ 0.4
ΠΛΗ20 ΜΑΘΗΜΑ 0.4ΠΛΗ20 ΜΑΘΗΜΑ 0.4
ΠΛΗ20 ΜΑΘΗΜΑ 0.4
 
ΠΛΗ31 ΜΑΘΗΜΑ 4.3
ΠΛΗ31 ΜΑΘΗΜΑ 4.3ΠΛΗ31 ΜΑΘΗΜΑ 4.3
ΠΛΗ31 ΜΑΘΗΜΑ 4.3
 
ΠΛΗ20 ΜΑΘΗΜΑ 3.3
ΠΛΗ20 ΜΑΘΗΜΑ 3.3ΠΛΗ20 ΜΑΘΗΜΑ 3.3
ΠΛΗ20 ΜΑΘΗΜΑ 3.3
 
ΠΛΗ31 ΜΑΘΗΜΑ 1.2
ΠΛΗ31 ΜΑΘΗΜΑ 1.2ΠΛΗ31 ΜΑΘΗΜΑ 1.2
ΠΛΗ31 ΜΑΘΗΜΑ 1.2
 
ΠΛΗ20 ΜΑΘΗΜΑ 4.1
ΠΛΗ20 ΜΑΘΗΜΑ 4.1ΠΛΗ20 ΜΑΘΗΜΑ 4.1
ΠΛΗ20 ΜΑΘΗΜΑ 4.1
 
ΠΛΗ31 ΜΑΘΗΜΑ 2.6
ΠΛΗ31 ΜΑΘΗΜΑ 2.6ΠΛΗ31 ΜΑΘΗΜΑ 2.6
ΠΛΗ31 ΜΑΘΗΜΑ 2.6
 
ΠΛΗ20 ΜΑΘΗΜΑ 4.3
ΠΛΗ20 ΜΑΘΗΜΑ 4.3ΠΛΗ20 ΜΑΘΗΜΑ 4.3
ΠΛΗ20 ΜΑΘΗΜΑ 4.3
 
ΠΛΗ20 ΜΑΘΗΜΑ 1.7
ΠΛΗ20 ΜΑΘΗΜΑ 1.7ΠΛΗ20 ΜΑΘΗΜΑ 1.7
ΠΛΗ20 ΜΑΘΗΜΑ 1.7
 
ΠΛΗ10 ΜΑΘΗΜΑ 2.1
ΠΛΗ10 ΜΑΘΗΜΑ 2.1 ΠΛΗ10 ΜΑΘΗΜΑ 2.1
ΠΛΗ10 ΜΑΘΗΜΑ 2.1
 
ΠΛΗ31 ΜΑΘΗΜΑ 2.1
ΠΛΗ31 ΜΑΘΗΜΑ 2.1ΠΛΗ31 ΜΑΘΗΜΑ 2.1
ΠΛΗ31 ΜΑΘΗΜΑ 2.1
 
ΠΛΗ20 ΜΑΘΗΜΑ 5.3
ΠΛΗ20 ΜΑΘΗΜΑ 5.3ΠΛΗ20 ΜΑΘΗΜΑ 5.3
ΠΛΗ20 ΜΑΘΗΜΑ 5.3
 
ΠΛΗ20 ΜΑΘΗΜΑ 3.1
ΠΛΗ20 ΜΑΘΗΜΑ 3.1ΠΛΗ20 ΜΑΘΗΜΑ 3.1
ΠΛΗ20 ΜΑΘΗΜΑ 3.1
 
ΠΛΗ10 ΜΑΘΗΜΑ 2.6
ΠΛΗ10 ΜΑΘΗΜΑ 2.6 ΠΛΗ10 ΜΑΘΗΜΑ 2.6
ΠΛΗ10 ΜΑΘΗΜΑ 2.6
 
ΠΛΗ20 ΜΑΘΗΜΑ 0.2
ΠΛΗ20 ΜΑΘΗΜΑ 0.2ΠΛΗ20 ΜΑΘΗΜΑ 0.2
ΠΛΗ20 ΜΑΘΗΜΑ 0.2
 
ΠΛΗ20 ΜΑΘΗΜΑ 3.5
ΠΛΗ20 ΜΑΘΗΜΑ 3.5ΠΛΗ20 ΜΑΘΗΜΑ 3.5
ΠΛΗ20 ΜΑΘΗΜΑ 3.5
 
ΠΛΗ31 ΜΑΘΗΜΑ 3.6
ΠΛΗ31 ΜΑΘΗΜΑ 3.6ΠΛΗ31 ΜΑΘΗΜΑ 3.6
ΠΛΗ31 ΜΑΘΗΜΑ 3.6
 
ΠΛΗ20 ΜΑΘΗΜΑ 5.2
ΠΛΗ20 ΜΑΘΗΜΑ 5.2ΠΛΗ20 ΜΑΘΗΜΑ 5.2
ΠΛΗ20 ΜΑΘΗΜΑ 5.2
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
 

Viewers also liked

PROLOG - ΜΑΘΗΜΑ 3 (ΕΚΤΥΠΩΣΗ)
PROLOG - ΜΑΘΗΜΑ 3 (ΕΚΤΥΠΩΣΗ)PROLOG - ΜΑΘΗΜΑ 3 (ΕΚΤΥΠΩΣΗ)
PROLOG - ΜΑΘΗΜΑ 3 (ΕΚΤΥΠΩΣΗ)Dimitris Psounis
 
PROLOG - ΜΑΘΗΜΑ 4 (ΕΚΤΥΠΩΣΗ)
PROLOG - ΜΑΘΗΜΑ 4 (ΕΚΤΥΠΩΣΗ)PROLOG - ΜΑΘΗΜΑ 4 (ΕΚΤΥΠΩΣΗ)
PROLOG - ΜΑΘΗΜΑ 4 (ΕΚΤΥΠΩΣΗ)Dimitris Psounis
 
ΠΛΗ31 PROLOG ΜΑΘΗΜΑ 2
ΠΛΗ31 PROLOG ΜΑΘΗΜΑ 2ΠΛΗ31 PROLOG ΜΑΘΗΜΑ 2
ΠΛΗ31 PROLOG ΜΑΘΗΜΑ 2Dimitris Psounis
 
ΠΛΗ31 PROLOG ΜΑΘΗΜΑ 2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ31 PROLOG ΜΑΘΗΜΑ 2 (ΕΚΤΥΠΩΣΗ)ΠΛΗ31 PROLOG ΜΑΘΗΜΑ 2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ31 PROLOG ΜΑΘΗΜΑ 2 (ΕΚΤΥΠΩΣΗ)Dimitris Psounis
 
PROLOG ΜΑΘΗΜΑ 5 (ΕΚΤΥΠΩΣΗ)
PROLOG ΜΑΘΗΜΑ 5 (ΕΚΤΥΠΩΣΗ)PROLOG ΜΑΘΗΜΑ 5 (ΕΚΤΥΠΩΣΗ)
PROLOG ΜΑΘΗΜΑ 5 (ΕΚΤΥΠΩΣΗ)Dimitris Psounis
 
ΠΛΗ31 ΜΑΘΗΜΑ 1.4 - ΚΑΡΤΑ
ΠΛΗ31 ΜΑΘΗΜΑ 1.4 - ΚΑΡΤΑΠΛΗ31 ΜΑΘΗΜΑ 1.4 - ΚΑΡΤΑ
ΠΛΗ31 ΜΑΘΗΜΑ 1.4 - ΚΑΡΤΑDimitris Psounis
 
ΠΛΗ31 ΜΑΘΗΜΑ 1.4
ΠΛΗ31 ΜΑΘΗΜΑ 1.4 ΠΛΗ31 ΜΑΘΗΜΑ 1.4
ΠΛΗ31 ΜΑΘΗΜΑ 1.4 Dimitris Psounis
 
ΠΛΗ31 ΜΑΘΗΜΑ 1.4 - ΚΑΡΤΑ (ΕΚΤΥΠΩΣΗ)
ΠΛΗ31 ΜΑΘΗΜΑ 1.4 - ΚΑΡΤΑ (ΕΚΤΥΠΩΣΗ) ΠΛΗ31 ΜΑΘΗΜΑ 1.4 - ΚΑΡΤΑ (ΕΚΤΥΠΩΣΗ)
ΠΛΗ31 ΜΑΘΗΜΑ 1.4 - ΚΑΡΤΑ (ΕΚΤΥΠΩΣΗ) Dimitris Psounis
 
ΠΛΗ31 ΜΑΘΗΜΑ 1.4 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ31 ΜΑΘΗΜΑ 1.4 (ΕΚΤΥΠΩΣΗ)ΠΛΗ31 ΜΑΘΗΜΑ 1.4 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ31 ΜΑΘΗΜΑ 1.4 (ΕΚΤΥΠΩΣΗ)Dimitris Psounis
 
ΠΛΗ31 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 1
ΠΛΗ31 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 1ΠΛΗ31 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 1
ΠΛΗ31 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 1Dimitris Psounis
 
ΠΛΗ31 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 1.2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ31 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 1.2 (ΕΚΤΥΠΩΣΗ)ΠΛΗ31 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 1.2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ31 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 1.2 (ΕΚΤΥΠΩΣΗ)Dimitris Psounis
 
ΠΛΗ31 ΜΑΘΗΜΑ 1.2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ31 ΜΑΘΗΜΑ 1.2 (ΕΚΤΥΠΩΣΗ)ΠΛΗ31 ΜΑΘΗΜΑ 1.2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ31 ΜΑΘΗΜΑ 1.2 (ΕΚΤΥΠΩΣΗ)Dimitris Psounis
 
ΠΛΗ31.ΚΑΡΤΑ ΜΑΘΗΜΑ 1.2
ΠΛΗ31.ΚΑΡΤΑ ΜΑΘΗΜΑ 1.2ΠΛΗ31.ΚΑΡΤΑ ΜΑΘΗΜΑ 1.2
ΠΛΗ31.ΚΑΡΤΑ ΜΑΘΗΜΑ 1.2Dimitris Psounis
 
ΠΛΗ31 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 1.1 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ31 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 1.1 (ΕΚΤΥΠΩΣΗ)ΠΛΗ31 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 1.1 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ31 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 1.1 (ΕΚΤΥΠΩΣΗ)Dimitris Psounis
 
ΠΛΗ31.ΚΑΡΤΑ ΜΑΘΗΜΑ 1.1
ΠΛΗ31.ΚΑΡΤΑ ΜΑΘΗΜΑ 1.1ΠΛΗ31.ΚΑΡΤΑ ΜΑΘΗΜΑ 1.1
ΠΛΗ31.ΚΑΡΤΑ ΜΑΘΗΜΑ 1.1Dimitris Psounis
 

Viewers also liked (20)

PROLOG - ΜΑΘΗΜΑ 3 (ΕΚΤΥΠΩΣΗ)
PROLOG - ΜΑΘΗΜΑ 3 (ΕΚΤΥΠΩΣΗ)PROLOG - ΜΑΘΗΜΑ 3 (ΕΚΤΥΠΩΣΗ)
PROLOG - ΜΑΘΗΜΑ 3 (ΕΚΤΥΠΩΣΗ)
 
PROLOG - ΜΑΘΗΜΑ 4 (ΕΚΤΥΠΩΣΗ)
PROLOG - ΜΑΘΗΜΑ 4 (ΕΚΤΥΠΩΣΗ)PROLOG - ΜΑΘΗΜΑ 4 (ΕΚΤΥΠΩΣΗ)
PROLOG - ΜΑΘΗΜΑ 4 (ΕΚΤΥΠΩΣΗ)
 
PROLOG - ΜΑΘΗΜΑ 4
PROLOG - ΜΑΘΗΜΑ 4PROLOG - ΜΑΘΗΜΑ 4
PROLOG - ΜΑΘΗΜΑ 4
 
ΠΛΗ31 PROLOG ΜΑΘΗΜΑ 2
ΠΛΗ31 PROLOG ΜΑΘΗΜΑ 2ΠΛΗ31 PROLOG ΜΑΘΗΜΑ 2
ΠΛΗ31 PROLOG ΜΑΘΗΜΑ 2
 
ΠΛΗ31 PROLOG ΜΑΘΗΜΑ 2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ31 PROLOG ΜΑΘΗΜΑ 2 (ΕΚΤΥΠΩΣΗ)ΠΛΗ31 PROLOG ΜΑΘΗΜΑ 2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ31 PROLOG ΜΑΘΗΜΑ 2 (ΕΚΤΥΠΩΣΗ)
 
PROLOG ΜΑΘΗΜΑ 5 (ΕΚΤΥΠΩΣΗ)
PROLOG ΜΑΘΗΜΑ 5 (ΕΚΤΥΠΩΣΗ)PROLOG ΜΑΘΗΜΑ 5 (ΕΚΤΥΠΩΣΗ)
PROLOG ΜΑΘΗΜΑ 5 (ΕΚΤΥΠΩΣΗ)
 
PROLOG ΜΑΘΗΜΑ 5
PROLOG ΜΑΘΗΜΑ 5PROLOG ΜΑΘΗΜΑ 5
PROLOG ΜΑΘΗΜΑ 5
 
ΠΛΗ31 ΜΑΘΗΜΑ 1.4 - ΚΑΡΤΑ
ΠΛΗ31 ΜΑΘΗΜΑ 1.4 - ΚΑΡΤΑΠΛΗ31 ΜΑΘΗΜΑ 1.4 - ΚΑΡΤΑ
ΠΛΗ31 ΜΑΘΗΜΑ 1.4 - ΚΑΡΤΑ
 
ΠΛΗ31 ΜΑΘΗΜΑ 1.4
ΠΛΗ31 ΜΑΘΗΜΑ 1.4 ΠΛΗ31 ΜΑΘΗΜΑ 1.4
ΠΛΗ31 ΜΑΘΗΜΑ 1.4
 
ΠΛΗ31 ΜΑΘΗΜΑ 1.4 - ΚΑΡΤΑ (ΕΚΤΥΠΩΣΗ)
ΠΛΗ31 ΜΑΘΗΜΑ 1.4 - ΚΑΡΤΑ (ΕΚΤΥΠΩΣΗ) ΠΛΗ31 ΜΑΘΗΜΑ 1.4 - ΚΑΡΤΑ (ΕΚΤΥΠΩΣΗ)
ΠΛΗ31 ΜΑΘΗΜΑ 1.4 - ΚΑΡΤΑ (ΕΚΤΥΠΩΣΗ)
 
ΠΛΗ31 ΜΑΘΗΜΑ 1.4 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ31 ΜΑΘΗΜΑ 1.4 (ΕΚΤΥΠΩΣΗ)ΠΛΗ31 ΜΑΘΗΜΑ 1.4 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ31 ΜΑΘΗΜΑ 1.4 (ΕΚΤΥΠΩΣΗ)
 
ΠΛΗ31 ΤΕΣΤ 7
ΠΛΗ31 ΤΕΣΤ 7ΠΛΗ31 ΤΕΣΤ 7
ΠΛΗ31 ΤΕΣΤ 7
 
ΠΛΗ31 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 1
ΠΛΗ31 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 1ΠΛΗ31 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 1
ΠΛΗ31 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 1
 
ΠΛΗ31 ΤΕΣΤ 6
ΠΛΗ31 ΤΕΣΤ 6ΠΛΗ31 ΤΕΣΤ 6
ΠΛΗ31 ΤΕΣΤ 6
 
ΠΛΗ31 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 1.2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ31 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 1.2 (ΕΚΤΥΠΩΣΗ)ΠΛΗ31 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 1.2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ31 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 1.2 (ΕΚΤΥΠΩΣΗ)
 
ΠΛΗ31 ΜΑΘΗΜΑ 1.2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ31 ΜΑΘΗΜΑ 1.2 (ΕΚΤΥΠΩΣΗ)ΠΛΗ31 ΜΑΘΗΜΑ 1.2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ31 ΜΑΘΗΜΑ 1.2 (ΕΚΤΥΠΩΣΗ)
 
ΠΛΗ31.ΚΑΡΤΑ ΜΑΘΗΜΑ 1.2
ΠΛΗ31.ΚΑΡΤΑ ΜΑΘΗΜΑ 1.2ΠΛΗ31.ΚΑΡΤΑ ΜΑΘΗΜΑ 1.2
ΠΛΗ31.ΚΑΡΤΑ ΜΑΘΗΜΑ 1.2
 
ΠΛΗ31 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 1.1 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ31 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 1.1 (ΕΚΤΥΠΩΣΗ)ΠΛΗ31 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 1.1 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ31 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 1.1 (ΕΚΤΥΠΩΣΗ)
 
ΠΛΗ31.ΚΑΡΤΑ ΜΑΘΗΜΑ 1.1
ΠΛΗ31.ΚΑΡΤΑ ΜΑΘΗΜΑ 1.1ΠΛΗ31.ΚΑΡΤΑ ΜΑΘΗΜΑ 1.1
ΠΛΗ31.ΚΑΡΤΑ ΜΑΘΗΜΑ 1.1
 
ΠΛΗ31 ΜΑΘΗΜΑ 1.1
ΠΛΗ31 ΜΑΘΗΜΑ 1.1ΠΛΗ31 ΜΑΘΗΜΑ 1.1
ΠΛΗ31 ΜΑΘΗΜΑ 1.1
 

More from Dimitris Psounis

Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣΗ ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣDimitris Psounis
 
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)Dimitris Psounis
 
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)Dimitris Psounis
 
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣDimitris Psounis
 
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣΗ ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣDimitris Psounis
 
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)Dimitris Psounis
 
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ CC++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ CDimitris Psounis
 
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)Dimitris Psounis
 
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6Dimitris Psounis
 
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5Dimitris Psounis
 
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)Dimitris Psounis
 
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2Dimitris Psounis
 
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)Dimitris Psounis
 
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1Dimitris Psounis
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7Dimitris Psounis
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)Dimitris Psounis
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8Dimitris Psounis
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)Dimitris Psounis
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 Dimitris Psounis
 

More from Dimitris Psounis (20)

Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣΗ ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ
 
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)
 
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)
 
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ
 
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣΗ ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ
 
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)
 
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ CC++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C
 
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)
 
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6
 
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5
 
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)
 
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2
 
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)
 
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)
 
ΠΛΗ31 - ΤΕΣΤ 33
ΠΛΗ31 - ΤΕΣΤ 33ΠΛΗ31 - ΤΕΣΤ 33
ΠΛΗ31 - ΤΕΣΤ 33
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6
 

Recently uploaded

Μαθητικές καταλήψεις
Μαθητικές                                  καταλήψειςΜαθητικές                                  καταλήψεις
Μαθητικές καταλήψειςDimitra Mylonaki
 
Σουρεαλιστικά ταξίδια μέσα από την τέχνη
Σουρεαλιστικά ταξίδια μέσα από την τέχνηΣουρεαλιστικά ταξίδια μέσα από την τέχνη
Σουρεαλιστικά ταξίδια μέσα από την τέχνηTheodora Chandrinou
 
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2ο
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2οΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2ο
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2οΧρύσα Παπακωνσταντίνου
 
5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx
5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx
5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptxAthina Tziaki
 
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 1ο
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ  ΜΕΡΟΣ 1ο ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ  ΜΕΡΟΣ 1ο
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 1ο Χρύσα Παπακωνσταντίνου
 
-Διψήφιοι αριθμοί-δεκαδες μονάδες-θέση ψηφίου Α- Β τάξη
-Διψήφιοι  αριθμοί-δεκαδες μονάδες-θέση ψηφίου Α- Β τάξη-Διψήφιοι  αριθμοί-δεκαδες μονάδες-θέση ψηφίου Α- Β τάξη
-Διψήφιοι αριθμοί-δεκαδες μονάδες-θέση ψηφίου Α- Β τάξηΟΛΓΑ ΤΣΕΧΕΛΙΔΟΥ
 
Μαθητικά συμβούλια .
Μαθητικά συμβούλια                                  .Μαθητικά συμβούλια                                  .
Μαθητικά συμβούλια .Dimitra Mylonaki
 

Recently uploaded (9)

Μαθητικές καταλήψεις
Μαθητικές                                  καταλήψειςΜαθητικές                                  καταλήψεις
Μαθητικές καταλήψεις
 
Σουρεαλιστικά ταξίδια μέσα από την τέχνη
Σουρεαλιστικά ταξίδια μέσα από την τέχνηΣουρεαλιστικά ταξίδια μέσα από την τέχνη
Σουρεαλιστικά ταξίδια μέσα από την τέχνη
 
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2ο
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2οΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2ο
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2ο
 
5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx
5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx
5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx
 
Σεβασμός .
Σεβασμός                                   .Σεβασμός                                   .
Σεβασμός .
 
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 1ο
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ  ΜΕΡΟΣ 1ο ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ  ΜΕΡΟΣ 1ο
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 1ο
 
-Διψήφιοι αριθμοί-δεκαδες μονάδες-θέση ψηφίου Α- Β τάξη
-Διψήφιοι  αριθμοί-δεκαδες μονάδες-θέση ψηφίου Α- Β τάξη-Διψήφιοι  αριθμοί-δεκαδες μονάδες-θέση ψηφίου Α- Β τάξη
-Διψήφιοι αριθμοί-δεκαδες μονάδες-θέση ψηφίου Α- Β τάξη
 
Μαθητικά συμβούλια .
Μαθητικά συμβούλια                                  .Μαθητικά συμβούλια                                  .
Μαθητικά συμβούλια .
 
ΙΣΤΟΡΙΑ Α΄ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΨΗ 2024
ΙΣΤΟΡΙΑ Α΄ΓΥΜΝΑΣΙΟΥ  : ΕΠΑΝΑΛΗΨΗ 2024ΙΣΤΟΡΙΑ Α΄ΓΥΜΝΑΣΙΟΥ  : ΕΠΑΝΑΛΗΨΗ 2024
ΙΣΤΟΡΙΑ Α΄ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΨΗ 2024
 

PROLOG - ΜΑΘΗΜΑ 3

  • 1. ΠΛΗ31 PROLOG Μάθηµα 3: ∆οµές και Λίστες ∆ηµήτρης Ψούνης
  • 2. ΠΕΡΙΕΧΟΜΕΝΑ Α. Σκοπός του Μαθήµατος Β.Θεωρία 1. ∆οµές 1. Ορισµός ∆οµής 2. Ερωτήσεις σε ∆οµές 2. Λίστες 1. Ορισµός Λίστας 2. Κατηγορήµατα Λιστών 1. Το κατηγόρηµα member/2 2. To κατηγόρηµα append/3 3. To κατηγόρηµα length/2 4. Το κατηγόρηµα reverse/3 Γ.Ασκήσεις 2∆ηµήτρης Ψούνης, ΠΛΗ31, Prolog, Μάθηµα 3: ∆οµές και Λίστες
  • 3. A. Θεωρία 1. ∆οµές 1.Ορισµός ∆οµής Στην Prolog µπορούµε να ορίσουµε µια δοµή δεδοµένων ως µία οµαδοποίηση δεδοµένων µε ένα κοινό όνοµα και αντίστοιχο συντακτικό µε αυτό που είδαµε στο κατηγόρηµα. Π.χ. το date(18,12,2011) θα αναπαριστά την ηµεροµηνία 18-12-2011 Μία δοµή δεδοµένων παίζει αντίστοιχο ρόλο µε µία σταθερά, άρα µπορούµε να την αναπαράστήσουµε µόνο σαν όρισµα σε ένα κατηγόρηµα. Για παράδειγµα µπορούµε να ενσωµατώσουµε στον κόσµο της οικογένειας του tom και την πληροφορία για την ηµεροµηνία γέννησης κάθε προσώπου µε τις δηλώσεις: 3∆ηµήτρης Ψούνης, ΠΛΗ31, Prolog, Μάθηµα 3: ∆οµές και Λίστες born(tom,date(12,11,1923)). born(john,date(17,5,1955)). born(pam,date(10,11,1978)). κ.λπ.
  • 4. A. Θεωρία 1. ∆οµές 2. Ερωτήσεις σε ∆οµές Έπειτα µπορούµε να χρησιµοποιήσουµε την πληροφορία των δοµών µε τους γνωστούς τρόπους απάντησης της Prolog: 4∆ηµήτρης Ψούνης, ΠΛΗ31, Prolog, Μάθηµα 3: ∆οµές και Λίστες ?- born(tom,X). X=date(12,11,1923). ?-born(tom,date(_,_,X)). X=1923 ?-parent(X,john),born(X,date(_,_,Y)). X=tom, Y=1923.
  • 5. A. Θεωρία 2. Λίστες 1. Ορισµός Λίστας Η λίστα είναι µια βασική προγραµµατιστική δοµή στην Prolog, η οποία είναι να ενθέσουµε τα στοιχεία της λίστας σε αγκύλες χωρισµένα µε κόµµατα. H λίστα είναι µια ιδιαίτερα σηµαντική δοµή διότι µπορούµε να έχουµε όσα στοιχεία θέλουµε, σε αντίθεση µε ένα κατηγόρηµα που έχει συγκεκριµένο πλήθος στοιχείων, Συγκεκριµένα αν θέλουµε να κατασκευάσουµε µια λίστα π.χ. µε τα παιδιά ενός ατόµου, τότε µπορούµε να το γράψουµε απ’ ευθείας ως εξής: Στην πραγµατικότητα η λίστα κωδικοποιείται στην Prolog µε έναν ιδιαίτερο τρόπο, χρησιµοποιώντας τα δεσµευµένα κατηγορήµατα ./2 και [ ] Αλλά ευτυχώς παρέχεται και η προγραµµατιστική ευκολία να γράψουµε τα στοιχεία απ’ ευθείας σε άγκύλες 5∆ηµήτρης Ψούνης, ΠΛΗ31, Prolog, Μάθηµα 3: ∆οµές και Λίστες children(tom,[john,jim]). children(tom,.(john,.(jim,[ ])).
  • 6. A. Θεωρία 2. Λίστες 1. Ορισµός Λίστας Με βάση και τον τυπικό τρόπο µε τον οποίο η Prolog κατασκευάζει µια λίστα, µας παρέχεται µια πολύ σηµαντική προγραµµατιστική ευκολία, που θα την χρησιµοποιήσουµε όταν κάνουµε ερωτήσεις και όταν γράφουµε κανόνες: Μία λίστα µπορούµε να αναπαρασταθεί [Head|Tail] όπου Head είναι η κεφαλή της λίστας, δηλαδή το πρώτο στοιχείο της λίστας Tail είναι η ουρά της λίστας, δηλαδή τα επόµενα στοιχεία της λίστας. Έτσι αν π.χ. έχουµε ενσωµατώσει στο πρόγραµµα µας το γεγονός: Και κάνουµε την ερώτηση: Θα λάβουµε την απάντηση 6∆ηµήτρης Ψούνης, ΠΛΗ31, Prolog, Μάθηµα 3: ∆οµές και Λίστες children(a,[b,c,d,e]). ?-children(a,[Χ|Υ]). Χ=b, Y=[c,d,e].
  • 7. A. Θεωρία 2. Λίστες 2. Κατηγορήµατα Λιστών (1.Το κατηγορηµα member/2 ) Η Prolog έχει µια σειρά έτοιµων κατηγορηµάτων για την διαχείριση λιστών. Τα κατηγορήµατα αυτά είναι έτοιµα και δεν χρειάζεται να τα ορίσουµε εµείς. Απλά τα χρησιµοποιούµε. Το σηµαντικότερο κατηγόρηµα είναι το member(X,L) που θα αληθεύει αν το στοιχείο Χ είναι µέλος της λίστας L. Παραδείγµατα: 7∆ηµήτρης Ψούνης, ΠΛΗ31, Prolog, Μάθηµα 3: ∆οµές και Λίστες ?- member(1,[1,2,3]). true. ?- member(4,[1,2,3]). false. ?- member(X,[1,2,3]). X = 1 ; X = 2 ; X = 3.
  • 8. A. Θεωρία 2. Λίστες 2. Κατηγορήµατα Λιστών (1.Το κατηγορηµα member/2 ) Ο ορισµός του κατηγορήµατος member στην prolog είναι προφανώς αναδροµικός: (Ασκηση) Να κατασκευάσετε το δένδρο εκτέλεσης του ερωτήµατος 8∆ηµήτρης Ψούνης, ΠΛΗ31, Prolog, Μάθηµα 3: ∆οµές και Λίστες member(X,[X|_]). member(X,[_|L]):-member(X,L). ?- member(X,[1,2,3]).
  • 9. A. Θεωρία 2. Λίστες 2. Κατηγορήµατα Λιστών (2.Το κατηγορηµα append/2 ) Σηµαντικό κατηγόρηµα είναι και το append(L1,L2,L) που θα αληθεύει αν η συνένωση των λιστών L1 και L2 είναι η L. Συνένωση των λιστών L1 και L2 είναι να κατασκευάσουµε µία νέα λίστα L που στην αρχή έχει τα στοιχεία της L1 και έπειτα έχει και τα στοιχεία της L2. Παραδείγµατα: 9∆ηµήτρης Ψούνης, ΠΛΗ31, Prolog, Μάθηµα 3: ∆οµές και Λίστες 10 ?- append([1,2],[3,4],L). L = [1, 2, 3, 4]. ?- append(L1,L2,[1,2,3]). L1 = [], L2 = [1, 2, 3] ; L1 = [1], L2 = [2, 3] ; L1 = [1, 2], L2 = [3] ; L1 = [1, 2, 3], L2 = [] ; ?- append(L1,[3,4],[1,3,4]). L1 = [1] ?- append([1,2],L2,[1,3,4]). false.
  • 10. A. Θεωρία 2. Λίστες 2. Κατηγορήµατα Λιστών (2.Το κατηγορηµα append/2 ) Και ο ορισµός του κατηγορήµατος append στην prolog είναι αναδροµικός: (Ασκηση) Να κατασκευάσετε το δένδρο εκτέλεσης του ερωτήµατος 10∆ηµήτρης Ψούνης, ΠΛΗ31, Prolog, Μάθηµα 3: ∆οµές και Λίστες append([],L,L). append([X|L1],L2,[X|L3]):-append(L1,L2,L3). ?- append([1,2],[3],L).
  • 11. A. Θεωρία 2. Λίστες 2. Κατηγορήµατα Λιστών (3.Το κατηγορηµα length/2) To κατηγόρηµα length(L,X) αληθεύει αν η λίστα L έχει µήκος (πλήθος στοιχείων) Χ Παραδείγµατα: 11∆ηµήτρης Ψούνης, ΠΛΗ31, Prolog, Μάθηµα 3: ∆οµές και Λίστες ?- append(L1,L2,[1,2,3]),length(L1,N1),length(L2,N2). L1 = [], L2 = [1, 2, 3], N1 = 0, N2 = 3 ; L1 = [1], L2 = [2, 3], N1 = 1, N2 = 2 ; L1 = [1, 2], L2 = [3], N1 = 2, N2 = 1 ; L1 = [1, 2, 3], L2 = [], N1 = 3, N2 = 0 ; ?- length([1,2,3],X). X = 3.
  • 12. A. Θεωρία 2. Λίστες 2. Κατηγορήµατα Λιστών (4.Το κατηγορηµα reverse/2) To κατηγόρηµα reverse(L1,L2) αληθεύει αν η λίστα L2 είναι η αντιστροφή της L1 Παραδείγµατα: 12∆ηµήτρης Ψούνης, ΠΛΗ31, Prolog, Μάθηµα 3: ∆οµές και Λίστες ?- reverse([1,2,3],L). L = [3, 2, 1]. 10 ?- reverse(L,[1,2,3]). L = [3, 2, 1] .
  • 13. B. Ασκήσεις 1. Εξετάσεις 2009Β 13∆ηµήτρης Ψούνης, ΠΛΗ31, Prolog, Μάθηµα 3: ∆οµές και Λίστες Το κατηγόρηµα append της Prolog ορίζεται ως εξής: append([],L,L). append([X|Xs],Y,[X|Zs]) :- append(Xs,Y,Zs). Να γράψετε τι θα απαντήσει η Prolog στα ακόλουθα ερωτήµατα (όλες τις πιθανές απαντήσεις): (1) ?- append([1,2],[3,4],Χ). (2) ?- append([a,b],Υ,[a,b,c,d]). (3) ?- append(Z,[a,b],[a,b,c,d]). (4) ?- append(A,B,[k,l,m]).
  • 14. B. Ασκήσεις 2. Ο κόσµος του οικογενειακού δένδρου 14∆ηµήτρης Ψούνης, ΠΛΗ31, Prolog, Μάθηµα 3: ∆οµές και Λίστες ∆εδοµένου του γνωστού κόσµου του οικογενειακού δένδρου του tom: Ορίστε το κατηγόρηµα children(X,L), που θα αληθεύει αν τα στοιχεία που είναι στην λίστα L είναι παιδιά του ατόµου X. parent(tom,bob). parent(tom,john). parent(bob,jim). parent(bob,kim). parent(john,sam). parent(jim,pat).