Συστήματα Γνώσης. Πρακτικό Κομμάτι Μαθήματος Η Αντικειμενοστραφής Γλώσσα Προγραμματισμού COOL του CLIPS

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Συστήματα Γνώσης. Πρακτικό Κομμάτι Μαθήματος Η Αντικειμενοστραφής Γλώσσα Προγραμματισμού COOL του CLIPS"

Transcript

1 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Πρακτικό Κομμάτι Μαθήματος Η Αντικειμενοστραφής Γλώσσα Προγραμματισμού COOL του CLIPS Νίκος Βασιλειάδης, Αναπλ. Καθηγητής

2 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2

3 Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3

4 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Η Αντικειμενοστραφής Γλώσσα Προγραμματισμού COOL του CLIPS

5 Βασικά Χαρακτηριστικά COOL Αφαίρεση (abstraction) Εγκλεισμός (encapsulation) Κληρονομικότητα (inheritance) Πολυμορφισμός (polymorphism) Δυναμική δέσμευση (dynamic binding) 5

6 Αφαίρεση Ορισμός: Διαισθητική, υψηλού επιπέδου αναπαράσταση μίας σύνθετης έννοιας. Στην COOL, ο ορισμός νέων κλάσεων επιτρέπει την αφαίρεση νέων τύπων δεδομένων. Οι ιδιότητες (slots) και οι μέθοδοι (messagehandlers) αυτών των κλάσεων περιγράφουν τις ιδιότητες (properties) και τη συμπεριφορά (behavior) μίας καινούριας ομάδας αντικειμένων. 6

7 Εγκλεισμός (1/2) Τα χαρακτηριστικά ενός αντικειμένου δεν είναι απευθείας προσβάσιμα στον υπόλοιπο κόσμο, δηλαδή στο υπόλοιπο πρόγραμμα. Συνήθως η εσωτερική κατάσταση του αντικειμένου αποκρύπτεται. Αυτή η ιδιότητα ονομάζεται εγκλεισμός των ιδιοτήτων του αντικειμένου. 7

8 Εγκλεισμός (2/2) Η COOL υποστηρίζει την ιδιότητα του εγκλεισμού, απαιτώντας την αποστολή μηνυμάτων (messages) για το χειρισμό στιγμιοτύπων (instances) των κλάσεων, ορισμένων από το χρήστη. Ένα στιγμιότυπο δε μπορεί να αποκριθεί σε ένα μήνυμα για το οποίο δεν έχει καθορισμένη μέθοδο. 8

9 Κληρονομικότητα (1/2) Οι κλάσεις είναι συνήθως οργανωμένες σε ιεραρχίες. Οι πιο γενικές κλάσεις είναι τοποθετημένες ψηλά στην ιεραρχία, ενώ οι πιο συγκεκριμένες χαμηλότερα. Οι κλάσεις που βρίσκονται ψηλά έχουν κάποια γενικά χαρακτηριστικά και μεθόδους τα οποία είναι κοινά για όλες τις κλάσεις που βρίσκονται χαμηλότερα στην ιεραρχία. 9

10 Κληρονομικότητα (2/2) Για την αποφυγή της επανάληψης ορισμού κοινών χαρακτηριστικών και μεθόδων υπάρχει η κληρονομικότητα. Η δομή και η συμπεριφορά μιας γενικότερης κλάσης κληρονομείται στις περισσότερο συγκεκριμένες. 10

11 Πολλαπλή Κληρονομικότητα (1/2) Μία κλάση μπορεί να συνδέεται ιεραρχικά με περισσότερες της μίας γενικότερες κλάσεις. Η κλάση που συνδέεται με πολλαπλές γενικότερες κλάσεις κληρονομεί χαρακτηριστικά και μεθόδους από όλες. 11

12 Πολλαπλή Κληρονομικότητα (2/2) Η COOL, χρησιμοποιώντας την υπάρχουσα ιεραρχία των κλάσεων, ορίζει τη λίστα προτεραιότητας κλάσεων (class precedence list) για μία νέα κλάση. Αντικείμενα, τα οποία είναι στιγμιότυπα της νέας κλάσης, μπορούν να κληρονομήσουν ιδιότητες και συμπεριφορά από κάθε μία από τις κλάσεις της λίστας Η λέξη προτεραιότητα υποδηλώνει ότι μία μέθοδος μίας κλάσης, που είναι πρώτη στη λίστα, υπερισχύει της ίδιας μεθόδου άλλης κλάσης που βρίσκεται πιο μετά στη λίστα. 12

13 Πολυμορφισμός Ένα αντικείμενο μπορεί να απαντήσει σε ένα μήνυμα με ένα εντελώς διαφορετικό τρόπο από ό,τι ένα άλλο αντικείμενο. Αυτή η ιδιότητα ονομάζεται πολυμορφισμός. Ο πολυμορφισμός επιτυγχάνεται επισυνάπτοντας μεθόδους, που έχουν το ίδιο όνομα αλλά εκτελούν διαφορετικές ενέργειες, στις κλάσεις των δύο αντικειμένων αντίστοιχα. 13

14 Δυναμική Δέσμευση Η ιδιότητα της δυναμικής δέσμευσης υποστηρίζεται στην COOL με την έννοια ότι μία αναφορά αντικειμένου (object reference) κατά την κλήση μίας συνάρτησης δεν έχει τιμή μέχρι τη στιγμή της εκτέλεσης. Για παράδειγμα, ένα όνομα στιγμιότυπου (instance-name) ή μία μεταβλητή μπορεί να αναφέρεται σε ένα αντικείμενο όταν στέλνεται ένα μήνυμα και να αναφέρεται σε ένα άλλο αντικείμενο κάποια άλλη στιγμή αργότερα. 14

15 Προκαθορισμένες Κλάσεις Συστήματος 15

16 Προκαθορισμένες Κλάσεις Συστήματος Δεν πρέπει να διαγραφούν ή να τροποποιηθούν Όλες οι κλάσεις είναι αφηρημένες (abstract), δηλαδή χρησιμοποιούνται μόνο για λόγους κληρονομικότητας. Άμεσα αντικείμενα αυτών των κλάσεων δεν επιτρέπονται. Εξαίρεση η INITIAL-OBJECT. 16

17 Προκαθορισμένες Κλάσεις Συστήματος Καμία από τις κλάσεις δεν έχει ιδιότητες και μεθόδους. H USER έχει μεθόδους. O χρήστης μπορεί να επισυνάψει μεθόδους σε όλες τις κλάσεις συστήματος εκτός από τις κλάσεις INSTANCE, INSTANCE-ADDRESS και INSTANCE-NAME. 17

18 Προκαθορισμένες Κλάσεις Συστήματος Η OBJECT είναι υπερκλάση όλων των άλλων, συμπεριλαμβανομένων και των ορισμένων από το χρήστη κλάσεων. Όλες οι κλάσεις που ορίζονται από το χρήστη, θα έπρεπε, αλλά δεν απαιτείται, να κληρονομούν άμεσα ή έμμεσα από την κλάση USER. Αυτή η κλάση έχει όλες τις βασικές μεθόδους του συστήματος, όπως αρχικοποίηση (initialization) και διαγραφή (deletion). 18

19 Ορισμός Κλάσεων Μέσω της συνάρτησης defclass Η defclass αποτελείται από 5 στοιχεία: όνομα λίστα υπερκλάσεων από την οποία η νέα κλάση κληρονομεί ιδιότητες και μεθόδους προσδιοριστής, ο οποίος καθορίζει εάν θα δημιουργούνται άμεσα αντικείμενα της νέας κλάσης προσδιοριστής, ο οποίος καθορίζει εάν τα αντικείμενα αυτής της κλάσης μπορούν να ταιριάζουν με πρότυπα αντικειμένων στο αριστερό μέρος των κανόνων λίστα ιδιοτήτων που ορίζονται στη νέα κλάση 19

20 Σύνταξη defclass (defclass <name> [<comment>] (is-a <superclass-name>+) [<role>] [<pattern-match-role>] <slot>* <handler-documentation>* ) 20

21 Παράδειγμα Ορισμού Κλάσεων (defclass vehicle (is-a USER) (slot fuel-type (type SYMBOL)) (slot tank-capacity (type INTEGER)) (slot fuel-loaded (type INTEGER))) (defclass car (is-a vehicle) (slot consumption-rate (type INTEGER)) (slot reset-counter (type INTEGER))) 21

22 Λίστα Υπερκλάσεων Η λίστα υπερκλάσεων υποδηλώνει προτεραιό-τητα στην κληρονόμηση ιδιοτήτων και μεθόδων (defclass A (is-a B C D)... ) Προτεραιότητα στον ορισμό ιδιοτήτων και μεθόδων έχει η κλάση A Στη συνέχεια η προτεραιότητα στην κληρονόμηση ορίζεται με τη σειρά (B C D) 22

23 Αφηρημένες / Συγκεκριμένες Κλάσεις (defclass Α (is-a...) (role abstract/concrete) Μία αφηρημένη κλάση (abstract) χρησιμοποιείται μόνο για λόγους κληρονόμησης ιδιοτήτων και μεθόδων σε υποκλάσεις της, και δεν έχει άμεσα στιγμιότυπα. Αν χρησιμοποιηθεί ποτέ η make-instance για μία τέτοια κλάση θα εμφανιστεί μήνυμα λάθους 23

24 Αφηρημένες / Συγκεκριμένες Κλάσεις (defclass Α (is-a...) (role abstract/concrete) Μία συγκεκριμένη κλάση (concrete) μπορεί να έχει άμεσα στιγμιότυπα. Αν δεν υπάρχει ο συγκεκριμένος προσδιοριστής στον ορισμό μιας κλάσης, καθορίζεται μέσω της κληρονομικότητας. Μία υποκλάση της κλάσης συστήματος USER θεωρείται concrete κλάση, αν δεν προσδιορίζεται ο ρόλος της. 24

25 Κλάσεις ταυτοποιήσιμες ή όχι Όταν μία κλάση χαρακτηρίζεται ως reactive τότε τα αντικείμενά της μπορούν να ταυτοποιηθούν στη συνθήκη ενός κανόνα. Όταν μία κλάση χαρακτηρίζεται ως nonreactive τότε τα αντικείμενά της δεν μπορούν να ταυτοποιηθούν στη συνθήκη ενός κανόνα, ακόμα και αν θεωρητικά «ταιριάζουν». 25

26 Κλάσεις ταυτοποιήσιμες ή όχι Μία abstract κλάση δεν μπορεί να είναι reactive. Έτσι κι αλλιώς δεν έχει αντικείμενα! Αν δεν υπάρχει ο συγκεκριμένος προσδιοριστής, καθορίζεται μέσω της κληρονομικότητας. Μία υποκλάση της κλάσης συστήματος USER θεωρείται reactive κλάση, αν δεν προσδιορίζεται ο ρόλος της, εκτός αν είναι abstract. 26

27 Ιδιότητες (slots) Οι ιδιότητες αποθηκεύουν τιμές που σχετίζονται με τα στιγμιότυπα-αντικείμενα κάθε κλάσης. Το όνομα του slot μπορεί να είναι οποιοδήποτε σύμβολο, εκτός από is-a και name που χρησιμοποιούνται στις συνθήκες των κανόνων. Υπάρχουν 2 είδη slots: Απλής τιμής (slot) Πολλαπλών τιμών (multislot) 27

28 Ιδιότητες (slots) Κάθε αντικείμενο έχει ένα αντίγραφο από τις ιδιότητες της άμεσης κλάσης του, καθώς και των ιδιοτήτων που κληρονομεί η κλάση. Τα slots κληρονομούνται από τις κλάσεις με τη σειρά που ορίζεται από την λίστα προτεραιότητας κλάσεων 28

29 Ιδιότητες (slots) Εάν 1 slot κληρονομείται από 2 διαφορετικές κλάσεις, τότε χρησιμοποιείται ο ορισμός από την πιο συγκεκριμένη κλάση, δηλαδή αυτή που βρίσκεται πιο αριστερά στη λίστα προτεραιότητας Υπάρχουν και slots που δεν κληρονο-μούνται λόγω της δήλωσης no-inherit Εξαίρεση αποτελούν τα composite slots 29

30 Όψεις (facets) (1/2) Οι όψεις (facets) χαρακτηρίζουν τα slots. Προκαθορισμένη τιμή (default) Αποθήκευση τιμής (storage) Πρόσβαση τιμής (access) Προώθηση κληρονόμησης τιμής (inheritance propagation) Κληρονόμηση όψεων (source) 30

31 Όψεις (facets) (2/2) Δυνατότητα ταυτοποίησης (pattern-matching) Ορατότητα τιμής της ιδιότητας σε υποκλάσεις Αυτόματη δημιουργία χειριστών-μηνυμάτων (message-handler) για πρόσβαση της ιδιότητας Αλλαγή μηνύματος για απόδοση τιμής στο slot Περιορισμοί (constraints) 31

32 Όψη Αποθήκευσης (storage facet) (storage local) Η τιμή ενός slot για κάθε αντικείμενο αποθηκεύεται στο αντικείμενο Κάθε αντικείμενο μπορεί να έχει διαφορετική τιμή (storage shared) Η τιμή του slot για κάθε αντικείμενο αποθηκεύεται στην κλάση Όλα τα αντικείμενα της κλάσης έχουν την ίδια τιμή Όταν αλλάζει η τιμή για ένα αντικείμενο, αλλάζει για όλα 32

33 Όψη Πρόσβασης (access facet) (access read-write) Το slot μπορεί να εγγραφεί και να αναγνωστεί (access read-only) Το slot μπορεί μόνο να αναγνωστεί. Η τιμή καθορίζεται μόνο με τη χρήση του default. Ένα read-only slot με default τιμή ουσιαστικά είναι storage shared (access initialize-only) Το slot μπορεί μόνο να αναγνωστεί. Η τιμή καθορίζεται μόνο μία φορά, τη στιγμή που δημιουργείται το αντικείμενο με make-instance 33

34 Όψη προώθησης κληρονόμησης (inheritance propagation facet) (propagation inherit) To slot κληρονομείται από τις υποκλάσεις αυτή της κλάσης (propagation no-inherit) To slot δεν κληρονομείται από τις υποκλάσεις αυτή της κλάσης Μόνο τα στιγμιότυπα της συγκεκριμένης κλάσης θα έχουν αυτό το slot 34

35 Όψη κληρονόμησης όψεων (source facet) Όταν κληρονομούνται τα slots κάποιας κλάσης, κληρονομούνται και τα facets της (source exclusive) Στην πολλαπλή κληρονομικότητα κληρονομούνται τα facets της πιο συγκεκριμένης κλάσης (source composite) Κληρονομούνται τα facets από όλες τις κλάσεις στην ιεραρχία και όχι μόνο από την πιο συγκεκριμένη Πρακτικά, μπορούμε να επανακαθορίσουμε κάποιο facet στη συγκεκριμένη κλάση χωρίς να χρειαστεί να ορίσουμε ξανά όλο το slot Π.χ. όταν θέλουμε να αλλάξουμε την default τιμή κάποιου slot και όχι να την κληρονομήσουμε 35

36 Όψη δυνατότητας ταυτοποίησης (pattern-match reactivity facet) Οποιαδήποτε αλλαγή τιμής ενός slot συνήθως προκαλεί ενεργοποίηση κάποιου κανόνα του οποίου η συνθήκη αναφέρεται σε αντικείμενα με το συγκεκριμένο slot Είναι δυνατόν αυτό να αλλάξει (pattern-match reactive) Το slot προκαλεί ενεργοποίηση κανόνα (pattern-match non-reactive) Το slot δεν προκαλεί ενεργοποίηση κανόνα 36

37 Όψη ορατότητας (visibility facet) Η άμεση πρόσβαση στην τιμή ενός slot (παρακάμπτοντας την αποστολή μηνυμάτων) επιτρέπεται συνήθως μόνο σε χειριστές-μηνυμάτων της συγκεκριμένης κλάσης στην οποία ορίζεται το slot Είναι δυνατόν αυτό να αλλάξει (visibility private) Άμεση πρόσβαση μόνο στη συγκεκριμένη κλάση (visibility public) Άμεση πρόσβαση στη συγκεκριμένη κλάση και στις υποκλάσεις που κληρονομούν το slot 37

38 Όψη δημιουργίας μηνυμάτων (create-accessor facet) Αυτόματη δημιουργία μηνυμάτων και χειριστών-μηνυμάτων για ανάγνωση/εγγραφή τιμών στα slots (create-accessor read) Δημιουργείται ο χειριστής μηνύματος get- <slot-name> Default όταν (access read-only) (create-accessor write) Δημιουργείται ο χειριστής μηνύματος put- <slot-name> 38

39 Όψη δημιουργίας μηνυμάτων (create-accessor facet) (create-accessor read-write) Δημιουργούνται και οι get- και τα put- χειριστές μηνυμάτων Default όταν (access read-write) (create-accessor?none ) Δεν δημιουργείται κανένας χειριστής μηνυμάτων Default όταν (access initialize-only) 39

40 Όψη υπερκάλυψης μηνύματος (override-message facet) Υπάρχουν πολλές συναρτήσεις στην COOL οι οποίες χρησιμοποιούν τα μηνύματα put-<slot-name> για να αναθέσουν τιμές στα slots των αντικειμένων make-instance, initialize-instance, message-modify-instance, messageduplicate-instance Ο χρήστης μπορεί να αλλάξει το όνομα του χειριστήμηνύματος που χρησιμοποιούν αυτές οι συναρτήσεις με τη χρήση του facet (override-message <message-name>) 40

41 Δημιουργία Στιγμιοτύπων Τα αντικείμενα, όπως και τα γεγονότα Δημιουργούνται από το χρήστη Διαγράφονται από την εντολή reset Μπορούν να φορτωθούν από αρχείο Τα αντικείμενα δημιουργούνται με τη βοήθεια της συνάρτησης make-instance (make-instance ) [<instance-name-expression>] of <class-nameexpression> (<slot-name-expression> <expression>*)* 41

42 Ταυτότητα Αντικειμένου Όνομα αντικειμένου (instance-name) Ένα σύμβολο που περικλείεται μέσα σε αγκύλες Π.χ. [pump-1] [foo] [+++] [ ] Οι αγκύλες δεν αποτελούν μέρος του ονόματος αλλά ένδειξη πως πρόκειται για όνομα αντικειμένου 42

43 Ταυτότητα Αντικειμένου Διεύθυνση αντικειμένου (instance-address) Πρόκειται για εσωτερική αναπαράσταση της διεύθυνσης του αντικειμένου στη μνήμη Όταν τυπώνεται στην οθόνη έχει τη μορφή <Instance-XXX> όπου XXX είναι το όνομα του αντικειμένου Έχουμε πρόσβαση σε αυτή μόνο μέσα από τις συνθήκες των κανόνων με τη βοήθεια της έκφρασης?var <- (object ) Εναλλακτικά μπορούμε να μετατρέψουμε το όνομα ενός αντικειμένου σε διεύθυνση με τη χρήση της συνάρτησης instance-address 43

44 Ορισμός Στιγμιότυπου CLIPS>(make-instance fiat_brava of car (fuel-type benzine) (tank-capacity 45) (fuel-loaded 30) (consumption-rate 10) (reset-counter 250)) [fiat_brava] 44

45 Δημιουργία Στιγμιοτύπων Η συνάρτηση make-instance επιστρέφει το όνομα του νέου αντικειμένου (αν όλα παν καλά) ή το σύμβολο FALSE αν υπάρχει αποτυχία Το όνομα του αντικειμένου <instancename-expression> μπορεί να είναι είτε τύπου SYMBOL είτε τύπου INSTANCE-NAME Αν το όνομα δεν καθορίζεται στην makeinstance τότε η CLIPS δημιουργεί ένα όνομα καλώντας τη συνάρτηση gensym* Αν το αντικείμενο υπάρχει ήδη τότε η makeinstance το διαγράφει πρώτα και το ξαναδημιουργεί με τις νέες τιμές 45

46 Δημιουργία Στιγμιοτύπων Με τη βοήθεια της έκφρασης definstances μπορούμε να ορίσουμε αντικείμενα μέσα σε ένα αρχείο και να τα δημιουργούμε κάθε φορά που εκτελείται η εντολή reset (definstances <definstances-name> [<comment>] ([<instance-name-expression>] of <class-name-expression> (<slot-name-expression> <expression>*)* )* ) 46

47 Δημιουργία Στιγμιοτύπων Οι κλάσεις πρέπει να έχουν ήδη οριστεί Αν αποτύχει η δημιουργία κάποιου αντικειμένου, τότε τα υπόλοιπα αντικείμενα αγνοούνται Η definstances χρησιμοποιεί εσωτερικά τη συνάρτηση make-instance 47

48 Ορισμός Στιγμιότυπου (definstances car (fiat_brava of car (fuel-type benzine) (tank-capacity 45) (fuel-loaded 30) (consumption-rate 10) (reset-counter 250) ) ) 48

49 Χειρισμός Στιγμιοτύπων Χειριζόμαστε τα αντικείμενα με αποστολή μηνυμάτων σε αυτά με τη χρήση της συνάρτησης send Παράμετροι: Αντικείμενο-παραλήπτης μηνύματος, όνομα μηνύματος, παράμετροι μηνύματος (send <object-expression> <message-name-expression> <expression>*) Η συνάρτηση send επιστρέφει ως τιμή το αποτέλεσμα του μηνύματος 49

50 Μηνύματα CLIPS> (send [fiat_brava] get-fuel-type) benzine CLIPS> (send [fiat_brava] put-fuel-type petroleum) petroleum CLIPS> (send [fiat_brava] print) [fiat_brava] of car (fuel-type petroleum) (tank-capacity 45) (fuel-loaded 30) (consumption-rate 10) (reset-counter 250) 50

51 Χειρισμός Στιγμιοτύπων Για να αλλάξουμε τιμές πολλών slots ταυτόχρονα σε ένα αντικείμενο χωρίς να χρειαστεί να γράψουμε πολλές εντολές send, χρησιμοποιούμε τη συνάρτηση modifyinstance (modify-instance <instance> (<slot-name-expression> <expression>*)*) Η συνάρτηση εσωτερικά εκτελεί πολλές συναρτήσεις send Η συνάρτηση επιστρέφει TRUE εάν όλες οι αλλαγές τιμών έγιναν με επιτυχία, αλλιώς επιστρέφει FALSE 51

52 Μηνύματα CLIPS> (modify-instance [fiat_brava] (reset-counter 0) (fuel-loaded 45)) TRUE CLIPS> (send [fiat_brava] print) [fiat_brava] of car (fuel-type benzine) (tank-capacity 45) (fuel-loaded 45) (consumption-rate 10) (reset-counter 0) 52

53 Διαγραφή Αντικειμένων CLIPS> (send [fiat_brava] delete) TRUE CLIPS> (send [fiat_brava] print) [MSGPASS2] No such instance fiat_brava in function send. FALSE 53

54 Τα αντικείμενα των κλάσεων που ορίζει ο χρήστης μπορούν να ταυτοποιηθούν στη συνθήκη ενός κανόνα (object ) Ταυτοποίηση Αντικειμένων σε Κανόνες (is-a <constraint>) (name <constraint>) (<slot-name> <constraint>*)* 54

55 Ταυτοποίηση Αντικειμένων σε Κανόνες Ο περιορισμός is-a χρησιμεύει για να περιορίσουμε τα αντικείμενα που ταιριάζουν στη συνθήκη σε αυτά που ανήκουν σε μία συγκεκριμένη κλάση ή υποκλάσεις της. Ο περιορισμός name χρησιμεύει για να περιορίσουμε την ταυτοποίηση μόνο σε συγκεκριμένα αντικείμενα ή απλά για να μας επιστραφεί σε μεταβλητή το όνομα του αντικειμένου που ταίριαξε Οι υπόλοιποι περιορισμοί που ισχύουν για τα πρότυπα γεγονότων, ισχύουν και για τα αντικείμενα. 55

56 Χρήση αντικειμένων σε κανόνες (defrule ask-data (object (is-a car) (name?x) (fuel-type benzine)) => (printout t Car:?x crlf)) Εκτύπωση στην οθόνη: Car: [fiat_brava] INSTANCE-NAME 56

57 Χρήση αντικειμένων σε κανόνες defrule ask-data1?y <- (object (is-a car) (fuel-type benzine)) => (printout t Car:?y crlf)) Εκτύπωση στην οθόνη: Car: <Instance-fiat_brava> INSTANCE-ADDRESS 57

58 Χρήση αντικειμένων σε κανόνες (defrule ask-data2 (object (is-a vehicle) (name?x) (fuel-type benzine)) => (printout t Vehicle:?x crlf)) Εκτύπωση στην οθόνη: Vehicle: [fiat_brava] INSTANCE-NAME 58

59 Χρήση αντικειμένων σε κανόνες (defrule ask-data3 (object ; Δεν υπάρχει is-a (name?x) (fuel-type benzine)) => (printout t Object:?x crlf)) Εκτύπωση στην οθόνη: Object: [fiat_brava] INSTANCE-NAME 59

60 Ταυτοποίηση Αντικειμένων σε Κανόνες Όταν ένα αντικείμενο δημιουργείται ή διαγράφε-ται επηρεάζονται όλοι οι κανόνες των οποίων η συνθήκη αναφέρεται στο αντικείμενο αυτό Όταν αλλάζει ένα slot επηρεάζονται μόνο οι κανόνες που αναφέρονται στο συγκεκριμένο slot και όχι κανόνες που αναφέρονται στο ίδιο αντικείμενο αλλά όχι στο συγκεκριμένο slot Η σπουδαιότερη διαφορά με τα πρότυπα γεγονότων (πέρα από την ύπαρξη ιεραρχίας και κληρονομικότητας) 60

61 Χρήση αντικειμένων σε κανόνες (defrule stopped-at-gas-station (goal fuel-reload) (object (is-a car) (name?x) (tank-capacity?c)) => (send?x put-reset-counter 0) (send?x put-fuel-loaded?c)) 61

62 Χρήση αντικειμένων σε κανόνες (defrule stopped-at-gas-station (goal fuel-reload) (object (is-a car) (name?x) (tank-capacity?c)) => (modify-instance?x (reset-counter 0) (fuel-loaded?c))) 62

63 Διαφορά με templates (defrule stopped-at-gas-station (goal fuel-reload)?y <- (car (name?x) (tank-capacity?c)) => (modify?y (reset-counter 0) (fuel-loaded?c))) Ο κανόνας θα εκτελούνταν επ άπειρο γιατί η αλλαγή κάποιων slots προκαλεί την διαγραφή του γεγονότος και την εισαγωγή νέου, με αποτέλεσμα το CLIPS να «νομίζει» ότι πρόκειται για ενεργοποίηση του κανόνα με νέα δεδομένα! 63

64 Ερωτήσεις και Ενέργειες σε Ομάδες Η COOL δίνει τη δυνατότητα εκτέλεσης ερωτήσεων και ενεργειών σε πολλά αντικείμενα μαζί βάσει συγκεκριμένων κριτηρίων αναζήτησης που θέτει ο χρήστης Η δυνατότητα αυτή θυμίζει γλώσσα ερωταπαντήσεων (query language) των βάσεων δεδομένων (π.χ. SQL) Υπάρχουν 6 συναρτήσεις Αντικειμένων Σε όλες, ο τρόπος με τον οποίο προσδιορίζεται η ομάδα των αντικειμένων στην οποία θα ενεργήσει η εντολή είναι κοινός 64

65 Ερωτήσεις και Ενέργειες σε Ομάδες Αντικειμένων Συνάρτηση any-instancep find-instance find-all-instances Σκοπός Ελέγχει αν υπάρχει έστω και μία ομάδα αντικειμένων που ικανοποιεί μια συνθήκη Επιστρέφει την πρώτη ομάδα αντικειμένων που ικανοποιεί μια συνθήκη Επιστρέφει όλες τις ομάδες αντικειμένων που ικανοποιούν μια συνθήκη 65

66 Ερωτήσεις και Ενέργειες σε Ομάδες Αντικειμένων Συνάρτηση do-for-instance do-for-all-instances delayed-do-for-allinstances Σκοπός Εκτελεί ένα σύνολο ενεργειών πάνω στην πρώτη ομάδα αντικειμένων που ικανοποιεί μια συνθήκη Εκτελεί ένα σύνολο ενεργειών πάνω σε κάθε ομάδα αντικειμένων που ικανοποιεί μια συνθήκη Πρώτα βρίσκει όλες τις ομάδες αντικειμένων που ικανοποιούν μια συνθήκη και στη συνέχεια εκτελεί ένα σύνολο ενεργειών σε αυτές 66

67 Συνάρτηση any-instancep Εφαρμόζει μια ερώτηση-συνθήκη σε κάθε ομάδα αντικειμένων που ταιριάζει με το πρότυπο που ορίζει ο χρήστης Εάν υπάρχει κάποια ομάδα αντικειμένων που ικανοποιεί τη συνθήκη, τότε τερματίζει αμέσως επιστρέφοντας TRUE Αλλιώς επιστρέφει FALSE 67

68 Συνάρτηση any-instancep Σύνταξη (any-instancep <instance-set-template> <query>) Παράδειγμα Υπάρχουν άνδρες ηλικίας άνω των 30? CLIPS> (any-instancep TRUE ((?man MAN)) πρότυπο (>?man:age 30)) συνθήκη 68

69 Συνάρτηση find-instance Εφαρμόζει μια ερώτηση-συνθήκη σε κάθε ομάδα αντικειμένων που ταιριάζει με το πρότυπο που ορίζει ο χρήστης Εάν υπάρχει κάποια ομάδα αντικειμένων που ικανοποιεί τη συνθήκη, τότε τερματίζει αμέσως επιστρέφοντας μία λίστα με αυτήν την ομάδα των αντικειμένων Αλλιώς επιστρέφει μία λίστα μηδενικού μήκους 69

70 Συνάρτηση find-instance Σύνταξη (find-instance <instance-set-template> <query>) Παράδειγμα Βρες το πρώτο ζευγάρι ενός άνδρα και μιας γυναίκας με την ίδια ηλικία CLIPS>(find-instance ((?m MAN) (?w WOMAN)) πρότυπο (=?m:age?w:age)) συνθήκη ([Man-1] [Woman-1]) 70

71 Συνάρτηση find-all-instances Εφαρμόζει μια ερώτηση-συνθήκη σε κάθε ομάδα αντικειμένων που ταιριάζει με το πρότυπο που ορίζει ο χρήστης Κάθε ομάδα αντικειμένων που ικανοποιεί τη συνθήκη αποθηκεύεται σε μία λίστα Όταν εξαντληθούν όλες οι πιθανές ομάδες αντικειμένων, επιστρέφεται αυτή η λίστα 71

72 Συνάρτηση find-all-instances Σύνταξη (find-all-instances <instance-set-template> <query>) Παράδειγμα Βρες όλα τα ζευγάρια ενός άνδρα και μιας γυναίκας με την ίδια ηλικία CLIPS> (find-all-instances ((?m MAN) (?w WOMAN)) πρότυπο (=?m:age?w:age)) συνθήκη ([Man-1] [Woman-1] [Man-2] [Woman-2]) 72

73 Συνάρτηση find-all-instances Αν υπάρχουν n στιγμιότυπα σε κάθε ομάδα αντικειμένων και m ομάδες αντικειμένων που ικανοποιούν τη συνθήκη, τότε το μήκος της επιστρεφόμενης λίστας θα είναι n * m Τα πρώτα n στοιχεία ανήκουν στην πρώτη ομάδα αντικειμένων, κ.ο.κ. Πρέπει να χρησιμοποιείται με προσοχή γιατί καταναλώνει πολύ μνήμη λόγω συνδυαστικής έκρηξης 73

74 Συνάρτηση do-for-all-instances Εφαρμόζει μια ερώτηση-συνθήκη σε κάθε ομάδα αντικειμένων που ταιριάζει με το πρότυπο που ορίζει ο χρήστης Αν μία ομάδα αντικειμένων ικανοποιεί τη συνθήκη, τότε ένα σύνολο ενεργειών εκτελείται για αυτήν την ομάδα αντικειμένων Το αποτέλεσμα της συνάρτησης είναι η τιμή της ενέργειας που εκτελείται για την τελευταία ομάδα αντικειμένων που ικανοποιεί τη συνθήκη Αν καμία ομάδα αντικειμένων δεν ικανοποιεί τη συνθήκη, τότε επιστρέφει FALSE 74

75 Συνάρτηση do-for-all-instances Σύνταξη (do-for-all-instances <instance-set-template> <query> <action>*) 75

76 Συνάρτηση do-for-all-instances Παράδειγμα Τύπωσε όλες τις τριπλέτες διαφορετικών ανθρώπων οι οποίοι έχουν την ίδια ηλικία. CLIPS> (do-for-all-instances πρότυπο συνθήκη ενέργεια ((?p1 PERSON)(?p2 PERSON)(?p3 PERSON)) (=?p1:age?p2:age?p3:age) (printout t?p1 " "?p2 " "?p3 crlf)) [Girl-2] [Boy-3] [Boy-2] [Girl-2] [Boy-4] [Boy-2] [Girl-2] [Boy-4] [Boy-3] [Boy-4] [Boy-3] [Boy-2]... 76

77 Συνάρτηση do-for-all-instances Για να μην τυπώνονται τριπλέτες με 2 ή περισσότερα ίδια αντικείμενα (do-for-all-instances ((?p1 PERSON)(?p2 PERSON)(?p3 PERSON)) (and (=?p1:age?p2:age?p3:age) (neq?p1?p2)(neq?p1?p3)(neq?p2?p3)) (printout t?p1 " "?p2 " "?p3 crlf)) 77

78 Συνάρτηση do-for-all-instances Για να μην τυπώνονται οι ίδιες τριπλέτες με όλους τις πιθανές διατάξεις των αντικειμένων (do-for-all-instances ((?p1 PERSON)(?p2 PERSON)(?p3 PERSON)) (and (=?p1:age?p2:age?p3:age) (> (str-compare?p1?p2) 0) (> (str-compare?p2?p3) 0)) (printout t?p1 " "?p2 " "?p3 crlf)) 78

79 Ορισμός Μεθόδων Για τον καθορισμό της συμπεριφοράς μίας κλάσης αντικειμένων σε απάντηση προς ένα συγκεκριμένο μήνυμα χρησιμοποιείται η ειδική συνάρτηση defmessage-handler Η υλοποίηση ενός μηνύματος αποτελείται από τμήματα διαδικαστικού κώδικα (procedural code), τα οποία ονομάζονται μέθοδοι ή χειριστές-μηνυμάτων (messagehandlers) 79

80 Ορισμός Μεθόδων Στη λίστα προτεραιότητας κλάσεων μίας κλάσης, κάθε κλάση μπορεί να έχει μεθόδους για ένα μήνυμα Με αυτόν τον τρόπο, η κλάση και όλες οι υπερκλάσεις της μοιράζονται την εργασία του χειρισμού ενός μηνύματος Οι μέθοδοι κάθε κλάσης χειρίζονται εκείνο το τμήμα του μηνύματος που προορίζεται για αυτήν την κλάση 80

81 Κατηγορίες Μεθόδων (1/2) primary Αποδίδουν την επιστρεφόμενη τιμή ενός μηνύματος before, after Είναι βοηθητικές και χρησιμοποιούνται μόνο για παρενέργειες Οι τιμές που επιστρέφουν αγνοούνται Οι before μέθοδοι εκτελούνται πριν τις primary Οι after μέθοδοι εκτελούνται μετά τις primary 81

82 Κατηγορίες Μεθόδων (2/2) around Μπορούν να επιστρέψουν μία τιμή Δημιουργούν ένα περιβάλλον για την εκτέλεση των υπόλοιπων μεθόδων Ξεκινούν την εκτέλεση πριν από τις άλλες μεθόδους και συνεχίζουν αφού τελειώσουν όλες οι υπόλοιπες μέθοδοι 82

83 Εκτέλεση Μεθόδων 83

84 Συνάρτηση defmessage-handler 1. το όνομα μίας κλάσης στην οποία θα αποδοθεί η μέθοδος (πρέπει προηγουμένως να έχει οριστεί η κλάση) 2. το όνομα του μηνύματος στο οποίο η μέθοδος θα αποκριθεί 3. ένας προαιρετικός τύπος (η προκαθορισμένη τιμή είναι primary) 4. ένα προαιρετικό σχόλιο 84

85 Συνάρτηση defmessage-handler 5. μία λίστα παραμέτρων που θα περάσουν στη μέθοδο κατά τη διάρκεια της εκτέλεσης 6. μία προαιρετική παράμετρος, η οποία αφορά τις μεταβλητές πολλαπλών τιμών 7. μία σειρά εκφράσεων οι οποίες εκτελούνται στη σειρά όταν καλείται η μέθοδος. Η επιστρεφόμενη τιμή της μεθόδου είναι ο υπολογισμός της τελευταίας έκφρασης. 85

86 Παράδειγμα Ορισμού Μεθόδου 1 2 (defmessage-handler car remaining-distance () 5 ) (- (* (/?self:fuel-loaded 100)?self:consumption-rate)?self:reset-counter) 7 CLIPS>(send [fiat_brava] remaining-distance)

87 Παράδειγμα Ορισμού Μεθόδου Για να χρησιμοποιηθεί η έκφραση?self:fuelloaded στη μέθοδο remaining-distance πρέπει να οριστεί το slot fuel-loaded ως public στην κλάση vehicle (defclass vehicle (is-a USER) (slot fuel-type (type SYMBOL)) (slot tank-capacity (type INTEGER)) (slot fuel-loaded (type INTEGER) (visibility public))) 87

88 Παράδειγμα Ορισμού Μεθόδου Αν δεν οριστεί public, τότε πρέπει να γίνει κλήση με αποστολή μηνύματος (defmessage-handler car remaining-distance () ) (- (* (/ (send?self get-fuel-loaded) 100)?self:consumption-rate)?self:reset-counter) 88

89 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Τέλος Ενότητας Επεξεργασία: Εμμανουήλ Ρήγας Θεσσαλονίκη, 17/3/2014

Π2 Το Σύστηµα Κανόνων CLIPS

Π2 Το Σύστηµα Κανόνων CLIPS ΠΑΡΑΡΤΗΜΑ 2 Π2 Το Σύστηµα Κανόνων CLIPS Το CLIPS (C Language Integrated Production System) είναι ένα περιβάλλον που προσφέρει δυνατότητες για προγραµµατισµό µε κανόνες, αντικείµενα και συναρτήσεις. Αναπτύχθηκε

Διαβάστε περισσότερα

Συστήματα Γνώσης. Πρακτικό Κομμάτι Μαθήματος Πρόγραμμα Διάγνωσης Βλάβης βασισμένης σε Μοντέλο. Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Τμήμα Πληροφορικής

Συστήματα Γνώσης. Πρακτικό Κομμάτι Μαθήματος Πρόγραμμα Διάγνωσης Βλάβης βασισμένης σε Μοντέλο. Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Τμήμα Πληροφορικής ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Πρακτικό Κομμάτι Μαθήματος Πρόγραμμα Διάγνωσης Βλάβης βασισμένης σε Μοντέλο Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Άδειες Χρήσης Το παρόν

Διαβάστε περισσότερα

Συστήματα Γνώσης. Πρακτικό Κομμάτι Μαθήματος Πρότυπα Γεγονότων. Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Τμήμα Πληροφορικής

Συστήματα Γνώσης. Πρακτικό Κομμάτι Μαθήματος Πρότυπα Γεγονότων. Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Τμήμα Πληροφορικής ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Πρακτικό Κομμάτι Μαθήματος Πρότυπα Γεγονότων Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε

Διαβάστε περισσότερα

Συστήματα Γνώσης. Πρακτικό Κομμάτι Μαθήματος Προτεραιότητα Κανόνων και Στρατηγικές Επίλυσης Συγκρούσεων

Συστήματα Γνώσης. Πρακτικό Κομμάτι Μαθήματος Προτεραιότητα Κανόνων και Στρατηγικές Επίλυσης Συγκρούσεων ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Πρακτικό Κομμάτι Μαθήματος Προτεραιότητα Κανόνων και Στρατηγικές Επίλυσης Συγκρούσεων Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Άδειες Χρήσης

Διαβάστε περισσότερα

Συστήματα Γνώσης. Πρακτικό Κομμάτι Μαθήματος Εναλλακτικό Παράδειγμα Επιλογής Δώρου. Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Τμήμα Πληροφορικής

Συστήματα Γνώσης. Πρακτικό Κομμάτι Μαθήματος Εναλλακτικό Παράδειγμα Επιλογής Δώρου. Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Τμήμα Πληροφορικής ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Πρακτικό Κομμάτι Μαθήματος Εναλλακτικό Παράδειγμα Επιλογής Δώρου Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Συστήματα Γνώσης. Πρακτικό Κομμάτι Μαθήματος Πρόγραμμα Διαχείρισης καταστάσεων ανάγκης σε συγκρότημα κτηρίων

Συστήματα Γνώσης. Πρακτικό Κομμάτι Μαθήματος Πρόγραμμα Διαχείρισης καταστάσεων ανάγκης σε συγκρότημα κτηρίων ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Πρακτικό Κομμάτι Μαθήματος Πρόγραμμα Διαχείρισης καταστάσεων ανάγκης σε συγκρότημα κτηρίων Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Άδειες

Διαβάστε περισσότερα

Δομημένος Προγραμματισμός

Δομημένος Προγραμματισμός ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Δομημένος Προγραμματισμός Ενότητα: Συναρτήσεις θεωρία Δ. Ε. Μετάφας Τμ. Ηλεκτρονικών Μηχ. Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

ΜΑΘΗΜΑ: Αντικειμενοστρεφής Προγραμματισμός

ΜΑΘΗΜΑ: Αντικειμενοστρεφής Προγραμματισμός ΜΑΘΗΜΑ: Αντικειμενοστρεφής Προγραμματισμός ΔΙΔΑΣΚΩΝ: ΤΜΗΜΑ: Συνδουκάς Δημήτριος Διοίκησης Επιχειρήσεων (Γρεβενά) 1 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης CreativeCommons.

Διαβάστε περισσότερα

Συστήματα Γνώσης. Πρακτικό Κομμάτι Μαθήματος Περιορισμοί στις Συνθήκες Κανόνων. Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Τμήμα Πληροφορικής

Συστήματα Γνώσης. Πρακτικό Κομμάτι Μαθήματος Περιορισμοί στις Συνθήκες Κανόνων. Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Τμήμα Πληροφορικής ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Πρακτικό Κομμάτι Μαθήματος Περιορισμοί στις Συνθήκες Κανόνων Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

Διαβάστε περισσότερα

Αρχές Τεχνολογίας Λογισμικού Εργαστήριο

Αρχές Τεχνολογίας Λογισμικού Εργαστήριο Αρχές Τεχνολογίας Λογισμικού Εργαστήριο Κωδικός Μαθήματος: TP323 Ώρες Εργαστηρίου: 2/εβδομάδα (Διαφάνειες Νίκου Βιδάκη) 1 JAVA Inheritance Εβδομάδα Νο. 3 2 Προηγούμενο μάθημα (1/2) Τι είναι αντικείμενο?

Διαβάστε περισσότερα

Σύνθεση και Κληρονομικότητα

Σύνθεση και Κληρονομικότητα Σύνθεση και Κληρονομικότητα Σύνθεση (composition) Κληρονομικότητα (inheritance) Υπερφόρτωση κληρονομημένων μελών Εικονικές συναρτήσεις και Πολυμορφισμός Αφηρημένες (abstract) βασικές κλάσεις 1 Σύνθεση

Διαβάστε περισσότερα

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική Ενότητα 7: Συναρτήσεις Νικόλαος Στεργιούλας Τμήμα Φυσικής Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Οντοκεντρικός Προγραμματισμός

Οντοκεντρικός Προγραμματισμός Οντοκεντρικός Προγραμματισμός Ενότητα 1: Αντικειμενοστραφής Προγραμματισμός Εισαγωγή OBJECT-ORIENTED PROGRAMMING ΔΙΔΑΣΚΟΝΤΕΣ: Iωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ

Διαβάστε περισσότερα

Συστήματα Γνώσης. Πρακτικό Κομμάτι Μαθήματος Πρόγραμμα Στοιβάσματος Κιβωτίων. Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Τμήμα Πληροφορικής

Συστήματα Γνώσης. Πρακτικό Κομμάτι Μαθήματος Πρόγραμμα Στοιβάσματος Κιβωτίων. Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Τμήμα Πληροφορικής ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Πρακτικό Κομμάτι Μαθήματος Πρόγραμμα Στοιβάσματος Κιβωτίων Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

Διαβάστε περισσότερα

Αντικειμενοστρεφής Προγραμματισμός

Αντικειμενοστρεφής Προγραμματισμός ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Αντικειμενοστρεφής Προγραμματισμός Ενότητα 11: Χειρισμός Σφαλμάτων Γρηγόρης Τσουμάκας, Επικ. Καθηγητής Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Συστήματα Γνώσης. Πρακτικό Κομμάτι Μαθήματος Πρόγραμμα Κίνησης Robot. Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Τμήμα Πληροφορικής

Συστήματα Γνώσης. Πρακτικό Κομμάτι Μαθήματος Πρόγραμμα Κίνησης Robot. Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Τμήμα Πληροφορικής ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Πρακτικό Κομμάτι Μαθήματος Πρόγραμμα Κίνησης Robot Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

Σύνθεση και Κληρονομικότητα

Σύνθεση και Κληρονομικότητα Σύνθεση και Κληρονομικότητα Σύνθεση (composition) Κληρονομικότητα (inheritance) Υπερφόρτωση κληρονομημένων μελών Εικονικές συναρτήσεις και Πολυμορφισμός Αφηρημένες (abstract) βασικές κλάσεις 1 Σύνθεση

Διαβάστε περισσότερα

2.1 Αντικειµενοστρεφής προγραµµατισµός

2.1 Αντικειµενοστρεφής προγραµµατισµός 2.1 Αντικειµενοστρεφής προγραµµατισµός Στον αντικειµενοστρεφή προγραµµατισµό (object oriented programming, OOP) ένα πρόγραµµα υπολογιστή είναι ένα σύνολο αλληλεπιδρώντων αντικειµένων. Μπορεί να ειπωθεί

Διαβάστε περισσότερα

Συστήματα Γνώσης. Πρακτικό Κομμάτι Μαθήματος Το Σύστημα Κανόνων CLIPS. Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Τμήμα Πληροφορικής

Συστήματα Γνώσης. Πρακτικό Κομμάτι Μαθήματος Το Σύστημα Κανόνων CLIPS. Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Τμήμα Πληροφορικής ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Πρακτικό Κομμάτι Μαθήματος Το Σύστημα Κανόνων CLIPS Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό με C++

Εισαγωγή στον Προγραμματισμό με C++ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Εισαγωγή στον Προγραμματισμό με C++ Ενότητα # 9: Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό Κωνσταντίνος Κουκουλέτσος Τμήμα

Διαβάστε περισσότερα

Συστήματα Γνώσης. Πρακτικό Κομμάτι Μαθήματος Πρόγραμμα Πέτρα Ψαλίδι - Χαρτί. Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Τμήμα Πληροφορικής

Συστήματα Γνώσης. Πρακτικό Κομμάτι Μαθήματος Πρόγραμμα Πέτρα Ψαλίδι - Χαρτί. Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Τμήμα Πληροφορικής ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Πρακτικό Κομμάτι Μαθήματος Πρόγραμμα Πέτρα Ψαλίδι - Χαρτί Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

Διαβάστε περισσότερα

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Δομή του προγράμματος. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Δομή του προγράμματος. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Άδειες Χρήσης ΥΠΟΛΟΓΙΣΤΕΣ ΙI Δομή του προγράμματος Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

Δομημένος Προγραμματισμός

Δομημένος Προγραμματισμός ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Δομημένος Προγραμματισμός Ενότητα: Αλφαριθμητικά θεωρία Δ. Ε. Μετάφας Τμ. Ηλεκτρονικών Μηχ. Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Εισαγωγή στην Πληροφορική

Εισαγωγή στην Πληροφορική Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Εισαγωγή στην Πληροφορική Ενότητα 8: Λειτουργικά Συστήματα Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

Διαβάστε περισσότερα

(Διαφάνειες Νίκου Βιδάκη)

(Διαφάνειες Νίκου Βιδάκη) (Διαφάνειες Νίκου Βιδάκη) JAVA Inheritance Εβδομάδα Νο. 3 2 Προηγούμενο μάθημα (1/2) Τι είναι αντικείμενο? Ανάλυση αντικειμένων Πραγματικά αντικείμενα Καταστάσεις Συμπεριφορές Αντικείμενα στον προγραμματισμό

Διαβάστε περισσότερα

FORTRAN και Αντικειμενοστραφής Προγραμματισμός

FORTRAN και Αντικειμενοστραφής Προγραμματισμός FORTRAN και Αντικειμενοστραφής Προγραμματισμός Παραδόσεις Μαθήματος 2016 Δρ Γ Παπαλάμπρου Επίκουρος Καθηγητής ΕΜΠ georgepapalambrou@lmentuagr Εργαστήριο Ναυτικής Μηχανολογίας (Κτίριο Λ) Σχολή Ναυπηγών

Διαβάστε περισσότερα

Υπολογιστικά Συστήματα

Υπολογιστικά Συστήματα Υπολογιστικά Συστήματα Ενότητα 3: Βασικά στοιχεία της γλώσσας προγραμματισμού Visual Basic for Applications (VBA) Σαπρίκης Ευάγγελος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Οντοκεντρικός Προγραμματισμός

Οντοκεντρικός Προγραμματισμός Οντοκεντρικός Προγραμματισμός Ενότητα 2: Η ΓΛΩΣΣΑ JAVA Κληρονομικότητα ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ

Διαβάστε περισσότερα

Ειδικά Θέματα Προγραμματισμού

Ειδικά Θέματα Προγραμματισμού Ειδικά Θέματα Προγραμματισμού Ενότητα 3: Τύποι Δεδομένων - Τελεστές Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Η εξέλιξη των γλωσσών προγραμματισμού Η εξέλιξη των γλωσσών προγραμματισμού είναι μια διαδικασία αφαίρεσης Στην αρχή ένα πρόγραμμα ήταν

Διαβάστε περισσότερα

public void printstatement() { System.out.println("Employee: " + name + " with salary: " + salary);

public void printstatement() { System.out.println(Employee:  + name +  with salary:  + salary); Κληρονομικότητα Η κληρονομικότητα (inheritance) αποτελεί έναν από τους χαρακτηριστικότερους μηχανισμούς των αντικειμενοστρεφών γλωσσών προγραμματισμού. Επιτρέπει την δημιουργία μιας νέας κλάσης απορροφώντας

Διαβάστε περισσότερα

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ. Ι. Ψαρομήλιγκος Χ. Κυτάγιας

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ. Ι. Ψαρομήλιγκος Χ. Κυτάγιας ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Προγραμματισμός Η/Υ Ενότητα 6 η : Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό Ι. Ψαρομήλιγκος Χ. Κυτάγιας Τμήμα Λογιστικής

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ενότητα: ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣ ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη)

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ενότητα: ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣ ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη) ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ενότητα: ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣ ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

Διαβάστε περισσότερα

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:03 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων

Διαβάστε περισσότερα

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι Ενότητα 3:

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι Ενότητα 3: Ενότητα 3: Σχεσιακό Μοντέλο. Από το ιδεατό στο λογικό (σχεσιακό) μοντέλο. Από το λογικό στο φυσικό (SQL) μοντέλο Ευαγγελίδης Γεώργιος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

Διαβάστε περισσότερα

Ειδικά Θέματα Προγραμματισμού

Ειδικά Θέματα Προγραμματισμού Ειδικά Θέματα Προγραμματισμού Ενότητα 2: Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

Διαβάστε περισσότερα

Οντοκεντρικός Προγραμματισμός

Οντοκεντρικός Προγραμματισμός Οντοκεντρικός Προγραμματισμός Ενότητα 2: Η ΓΛΩΣΣΑ JAVA Βασικά Δομικά Στοιχεία ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής ΔΟΜΙΚΑ ΣΤΟΙΧΕΙΑ ΔΟΜΙΚΑ

Διαβάστε περισσότερα

Ειδικά Θέματα Προγραμματισμού

Ειδικά Θέματα Προγραμματισμού Ειδικά Θέματα Προγραμματισμού Ενότητα 6: Threads Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

Διαβάστε περισσότερα

Αυτοματοποιημένη χαρτογραφία

Αυτοματοποιημένη χαρτογραφία ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Αυτοματοποιημένη χαρτογραφία Ενότητα # 5: Χαρτογραφικές βάσεις δεδομένων Ιωάννης Γ. Παρασχάκης Τμήμα Αγρονόμων & Τοπογράφων Μηχανικών

Διαβάστε περισσότερα

Δομημένος Προγραμματισμός

Δομημένος Προγραμματισμός ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Δομημένος Προγραμματισμός Ενότητα 9: Συναρτήσεις Εμβέλεια Κουκουλέτσος Κώστας Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστικών Συστημάτων

Διαβάστε περισσότερα

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #2

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #2 Ανασκόπηση Μια εφαρμογή Java είναι ένα σύνολο από συνεργαζόμενες κλάσεις Διάλεξη #2: Αντικείμενα, Κλάσεις και Μέθοδοι Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 1 Εισαγωγή στον Αντικειμενοστρεφή

Διαβάστε περισσότερα

Συστήματα Γνώσης. Πρακτικό Κομμάτι Μαθήματος Συναρτήσεις στο CLIPS. Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Τμήμα Πληροφορικής

Συστήματα Γνώσης. Πρακτικό Κομμάτι Μαθήματος Συναρτήσεις στο CLIPS. Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Τμήμα Πληροφορικής ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Πρακτικό Κομμάτι Μαθήματος Συναρτήσεις στο CLIPS Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

Κλάσεις και Αντικείµενα

Κλάσεις και Αντικείµενα Κλάσεις και Αντικείµενα Γρηγόρης Τσουµάκας Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Κλάσεις και Αντικείµενα 2 Τα αντικείµενα σε µια αντικειµενοστρεφή γλώσσα προγραµµατισµού, µοντελοποιούν

Διαβάστε περισσότερα

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι κ. ΠΕΤΑΛΙΔΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ 1 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται

Διαβάστε περισσότερα

Δομές Δεδομένων Ενότητα 4

Δομές Δεδομένων Ενότητα 4 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 4: Ουρές Απόστολος Παπαδόπουλος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

Διαβάστε περισσότερα

Ευφυής Προγραμματισμός

Ευφυής Προγραμματισμός Ευφυής Προγραμματισμός Ενότητα 3: Ειδικές Παράμετροι-Είσοδος & Έξοδος Ιωάννης Χατζηλυγερούδης Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής Περιεχόμενα ενότητας Ειδικές Παράμετροι-Είσοδος & Έξοδος

Διαβάστε περισσότερα

Αντικειμενοστρέφεια. Henri Matisse, Harmony in Red, Κωστής Σαγώνας Νίκος Παπασπύρου

Αντικειμενοστρέφεια. Henri Matisse, Harmony in Red, Κωστής Σαγώνας Νίκος Παπασπύρου Αντικειμενοστρέφεια Henri Matisse, Harmony in Red, 1908 Κωστής Σαγώνας Νίκος Παπασπύρου Ορισμοί αντικειμενοστρέφειας Ποιοι είναι οι ορισμοί των παρακάτω; Αντικειμενοστρεφής

Διαβάστε περισσότερα

Ηλεκτρονικοί Υπολογιστές

Ηλεκτρονικοί Υπολογιστές ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 9: Πίνακες στη C++ Ζαχαρούλα Ανδρεοπούλου Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο)

TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο) TEC610 (ΣΤ εξάμηνο) Διδάσκων: Ανδρέας Γιαννακουλόπουλος Εαρινό εξάμηνο Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά

Διαβάστε περισσότερα

ΑΡΦΕ ΑΝΣΙΚΕΙΜΕΝΟΣΡΕΥΟΤ ΠΡΟΓΡΑΜΜΑΣΙΜΟΤ. Ιωάννης Φατζηλυγερούδης Αναπληρωτής Καθηγητής Τμήμα Μηχ/κών Η/Υ και Πληροφορικής Πανεπιστήμιο Πατρών

ΑΡΦΕ ΑΝΣΙΚΕΙΜΕΝΟΣΡΕΥΟΤ ΠΡΟΓΡΑΜΜΑΣΙΜΟΤ. Ιωάννης Φατζηλυγερούδης Αναπληρωτής Καθηγητής Τμήμα Μηχ/κών Η/Υ και Πληροφορικής Πανεπιστήμιο Πατρών ΑΡΦΕ ΑΝΣΙΚΕΙΜΕΝΟΣΡΕΥΟΤ ΠΡΟΓΡΑΜΜΑΣΙΜΟΤ Ιωάννης Φατζηλυγερούδης Αναπληρωτής Καθηγητής Τμήμα Μηχ/κών Η/Υ και Πληροφορικής Πανεπιστήμιο Πατρών ΜΟΡΥΕ ΠΡΟΓΡΑΜΜΑΣΙΜΟΤ Διαδικασιακός ή Διαδικαστικός (Procedural)

Διαβάστε περισσότερα

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Εισαγωγή στην Πληροφορική & τον Προγραμματισμό Ενότητα 9 η : Πίνακες & Εφαρμογές Ι. Ψαρομήλιγκος Χ. Κυτάγιας Τμήμα Διοίκησης Επιχειρήσεων

Διαβάστε περισσότερα

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 2: Κλάσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 2: Κλάσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Αντικειμενοστρεφής Προγραμματισμός Ενότητα 2: Κλάσεις Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

Διαβάστε περισσότερα

Δομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής

Δομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής Ενότητα 5: Δείκτες και Δυναμική Δέσμευση- Αποδέσμευση Μνήμης στη C/ Υλοποίηση ΑΤΔ Συνδεδεμένη Λίστα με δείκτες /Ένα πακέτο για τον ΑΤΔ Συνδεδεμένη Λίστα Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό Η/Υ (Fortran 90/95/2003)

Εισαγωγή στον Προγραμματισμό Η/Υ (Fortran 90/95/2003) ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ () Ενότητα 7: Πολυδιάστατοι Πίνακες Νίκος Καραμπετάκης Τμήμα Μαθηματικών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

Διαβάστε περισσότερα

Αντικειµενοστραφής Προγραµµατισµός

Αντικειµενοστραφής Προγραµµατισµός Κλάσεις Αντικειµενοστραφής Προγραµµατισµός Κλάσεις Αντικείµενα Ιεραρχία κλάσεων Κλάσεις. Ιδιότητες Συµπεριφορά Ιδιότητες (Μεταβλητές) Συµπεριφορά (Μέθοδοι) Κληρονοµικότητα Μέθοδοι επικάλυψης Η χρήση του

Διαβάστε περισσότερα

Διαδικτυακές Εφαρμογές Ενότητα 1: JPA

Διαδικτυακές Εφαρμογές Ενότητα 1: JPA Διαδικτυακές Εφαρμογές Ενότητα 1: JPA Μιχάλας Άγγελος Βούρκας Δημήτριος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

Διαβάστε περισσότερα

Ευφυής Προγραμματισμός

Ευφυής Προγραμματισμός Ευφυής Προγραμματισμός Ενότητα 1: Εισαγωγή στη Γλώσσα Lisp Ιωάννης Χατζηλυγερούδης Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής Περιεχόμενα ενότητας Εισαγωγή στη Lisp : 1. Εισαγωγή 2. Θεμελιώδεις

Διαβάστε περισσότερα

Κλάσεις στην Python. Δημιουργία κλάσεων

Κλάσεις στην Python. Δημιουργία κλάσεων Κλάσεις στην Python Στον προγραμματισμό γενικά προσπαθούμε να αποφεύγουμε τις επαναληπτικές εργασίες. Προσπαθούμε να γράφουμε κώδικα μία φορά και να τον χρησιμοποιούμε ξανά. Η αποφυγή της επανάληψης κώδικα

Διαβάστε περισσότερα

{ int a = 5; { int b = 7; a = b + 3;

{ int a = 5; { int b = 7; a = b + 3; Σχεδίαση Γλωσσών & Μεταγλωττιστές Ενότητα 1: Γλώσσες με δομή block Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως

Διαβάστε περισσότερα

Εισαγωγή σε αντικειμενοστραφή concepts. Και λίγη C#

Εισαγωγή σε αντικειμενοστραφή concepts. Και λίγη C# Εισαγωγή σε αντικειμενοστραφή concepts Και λίγη C# Κλάσεις Κλάση: τύπος δεδομένων που αποτελεί συλλογή πεδίων, ορισμών συναρτήσεων/μεθόδων και ορισμών άλλων τύπων δεδομένων. Αντίστοιχο σκεπτικό με struct

Διαβάστε περισσότερα

Διαγράμματα Κλάσεων στη Σχεδίαση

Διαγράμματα Κλάσεων στη Σχεδίαση Διαγράμματα Κλάσεων στη Σχεδίαση περιεχόμενα παρουσίασης Αφηρημένες κλάσεις Ιδιότητες Λειτουργίες Απλοί τύποι Συσχετίσεις Εξάρτηση Διεπαφές αφηρημένες κλάσεις Οι αφηρημένες κλάσεις δεν μπορούν να δημιουργήσουν

Διαβάστε περισσότερα

Διαχείριση Δικτύων με τη χρήση SNMP (5η άσκηση) Διαχείριση Δικτύων - Ευφυή Δίκτυα, 9 ο Εξάμηνο,

Διαχείριση Δικτύων με τη χρήση SNMP (5η άσκηση) Διαχείριση Δικτύων - Ευφυή Δίκτυα, 9 ο Εξάμηνο, ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ - ΕΜΠ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΜΗΧ. ΥΠΟΛΟΓΙΣΤΩΝ Τομέας Επικοινωνιών, Ηλεκτρονικής & Συστημάτων Πληροφορικής Εργαστήριο Διαχείρισης & Βελτίστου Σχεδιασμού Δικτύων Τηλεματικής

Διαβάστε περισσότερα

Κληρονομικότητα. Παύλος Εφραιμίδης pefraimi <at> ee.duth.gr. Java Κληρονομικότητα 1

Κληρονομικότητα. Παύλος Εφραιμίδης pefraimi <at> ee.duth.gr. Java Κληρονομικότητα 1 Κληρονομικότητα Παύλος Εφραιμίδης pefraimi ee.duth.gr Java Κληρονομικότητα 1 Ιεραρχίες Κλάσεων Στην Java (και γενικότερα στον αντικειμενοστραφή προγραμματισμό) μπορεί από μία να κλάση να δημιουργηθεί

Διαβάστε περισσότερα

Ευφυής Προγραμματισμός

Ευφυής Προγραμματισμός Ευφυής Προγραμματισμός Ιωάννης Χατζηλυγερούδης Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής Περιεχόμενα ενότητας Λίστες Ιδιοτήτων-Πίνακες-Δομές 1. Λίστες Ιδιοτήτων 2. Πίνακες 3. Δομές 2 Λίστες

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ Ενότητα 6: Λογισμικό Υπολογιστών Γλώσσες Προγραμματισμού Πασχαλίδης Δημοσθένης Τμήμα Διαχείρισης Εκκλησιαστικών Κειμηλίων Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε

Διαβάστε περισσότερα

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Δομημένος Προγραμματισμός Ενότητα 5(γ): Εργαστηριακή Άσκηση Αναπλ. Καθηγητής: Κωνσταντίνος Στεργίου Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

Ενότητα. Σχεδίαση Βάσεων Δεδομένων

Ενότητα. Σχεδίαση Βάσεων Δεδομένων Ενότητα 3 Σχεδίαση Βάσεων Δεδομένων 2 3 3.1 Εισαγωγή Μία βάση δεδομένων αποτελείται από δεδομένα για διάφορα θέματα τα οποία όμως σχετίζονται μεταξύ τους και είναι καταχωρημένα με συγκεκριμένο τρόπο. Όλα

Διαβάστε περισσότερα

Προγράμματα με δομή Κληρονομικότητας

Προγράμματα με δομή Κληρονομικότητας Προγράμματα με δομή Κληρονομικότητας Επέκταση ιεραρχίας με νέες κλάσεις Επέκταση ιεραρχίας με νέες κλάσεις Οι κλάσεις που δεν προορίζονται για δημιουργία στιγμιοτύπων, αλλά προορίζονται να χρησιμοποιηθούν

Διαβάστε περισσότερα

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 9α: Περιορισμοί (Constraints) Εναύσματα (Triggers) Ευαγγελίδης Γεώργιος Τμήμα Εφαρμοσμένης Πληροφορικής

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 9α: Περιορισμοί (Constraints) Εναύσματα (Triggers) Ευαγγελίδης Γεώργιος Τμήμα Εφαρμοσμένης Πληροφορικής Ενότητα 9α: Περιορισμοί (Constraints) Εναύσματα (Triggers) Ευαγγελίδης Γεώργιος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες,

Διαβάστε περισσότερα

3 η ΕΝΟΤΗΤΑ Συναρτήσεις στο MATLAB

3 η ΕΝΟΤΗΤΑ Συναρτήσεις στο MATLAB ΣΧΟΛΗ ΠΟΛΙΤΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΕΜΠ ΜΕΘΟΔΟΙ ΕΠΙΛΥΣΗΣ ΜΕ Η/Υ 3 η ΕΝΟΤΗΤΑ Συναρτήσεις στο MATLAB Ν.Δ. Λαγαρός Μ. Φραγκιαδάκης Α. Στάμος Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες Χρήσης Creative

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργία Κλάσεων και Αντικειμένων

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργία Κλάσεων και Αντικειμένων ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Δημιουργία Κλάσεων και Αντικειμένων Κλάση Μια κλάση είναι μία αφηρημένη περιγραφή αντικειμένων με κοινά χαρακτηριστικά και κοινή συμπεριφορά. Ένα καλούπι/πρότυπο

Διαβάστε περισσότερα

Αντικειμενοστρεφής Προγραμματισμός

Αντικειμενοστρεφής Προγραμματισμός Αντικειμενοστρεφής Προγραμματισμός Διδάσκουσα: Αναπλ. Καθηγήτρια Ανδριάνα Πρέντζα aprentza@unipi.gr Εργαστηριακός Συνεργάτης: Δρ. Βασιλική Κούφη vassok@unipi.gr Περιεχόμενα Java Classes Java Objects Java

Διαβάστε περισσότερα

ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ Αρχιτεκτονικές Διαχείρισης Δικτύων (ΙI) SNMP MIB - Αντικείμενα & Ορισμοί Πινάκων NETCONF (Network Configuration Protocol)

ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ Αρχιτεκτονικές Διαχείρισης Δικτύων (ΙI) SNMP MIB - Αντικείμενα & Ορισμοί Πινάκων NETCONF (Network Configuration Protocol) ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ Αρχιτεκτονικές Διαχείρισης Δικτύων (ΙI) SNMP MIB - Αντικείμενα & Ορισμοί Πινάκων NETCONF (Network Configuration Protocol) Β. Μάγκλαρης maglaris@netmode.ntua.gr www.netmode.ntua.gr 24/11/2015

Διαβάστε περισσότερα

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python Εισαγωγή στην Επιστήμη Υπολογιστών Εισαγωγή στην Python Python scripts Ένα πρόγραμμα στην Python (συχνά αποκαλείται script) αποτελείται από μία ακολουθία ορισμών και εντολών. H ακολουθία των ορισμών και

Διαβάστε περισσότερα

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών Ενότητα 7: Υπορουτίνες Καθ. Γιάννης Γαροφαλάκης Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ και Πληροφορικής Ορισμός Αφαίρεση με χρήση υπορουτινών (subroutine abstraction)

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό με C++

Εισαγωγή στον Προγραμματισμό με C++ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Εισαγωγή στον Προγραμματισμό με C++ Ενότητα # 10: Constructors και Destructors Κωνσταντίνος Κουκουλέτσος Τμήμα Αυτοματισμού Άδειες

Διαβάστε περισσότερα

Υπολογιστικά Συστήματα

Υπολογιστικά Συστήματα Υπολογιστικά Συστήματα Ενότητα 6: Ασκήσεις στη Visual Basic for Applications (VBA) Σαπρίκης Ευάγγελος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

Διαβάστε περισσότερα

Εαρινό. Ύλη εργαστηρίου, Ασκήσεις Java

Εαρινό. Ύλη εργαστηρίου, Ασκήσεις Java Εξάμηνο Μάθημα Τίτλος 2017 2018 Εαρινό Αντικειμενοστραφής Προγραμματισμός Ι Ύλη εργαστηρίου, Ασκήσεις Java Ημερομηνία Εργαστήριο 5 ο Α. Ύλη εργαστηρίου 5.1 Έννοιες αντικειμενοστραφούς προγραμματισμού,

Διαβάστε περισσότερα

Δομές Δεδομένων Ενότητα 3

Δομές Δεδομένων Ενότητα 3 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 3: Στοίβα Απόστολος Παπαδόπουλος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

Διαβάστε περισσότερα

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 1: Εισαγωγή. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 1: Εισαγωγή. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Αντικειμενοστρεφής Προγραμματισμός Ενότητα 1: Εισαγωγή Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

Διαβάστε περισσότερα

Εισαγωγή στον Προγραµµατισµό, Αντώνιος Συµβώνης, ΣΕΜΦΕ, ΕΜΠ,, Slide 6

Εισαγωγή στον Προγραµµατισµό, Αντώνιος Συµβώνης, ΣΕΜΦΕ, ΕΜΠ,, Slide 6 Ανασκόπηση Μια εφαρµογή Java είναι ένα σύνολο από συνεργαζόµενες κλάσεις Εβδοµάδα 2: Αντικείµενα, Κλάσεις και Μέθοδοι Εισαγωγή στον Προγραµµατισµό,,, Slide 1 Εισαγωγή στον Προγραµµατισµό,,, Slide 2 Ανασκόπηση:

Διαβάστε περισσότερα

Προγράμματα με δομή Κληρονομικότητας

Προγράμματα με δομή Κληρονομικότητας Προγράμματα με δομή Κληρονομικότητας Η μέθοδος print της εφαρμογής DoME Η μέθοδος print στην κλάση Item τυπώνει: title: A Swingin Affair (64 mins) my favorite Sinatra album title: O Brother, Where Art

Διαβάστε περισσότερα

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Προγραμματισμός Η/Υ 1 (Εργαστήριο) Προγραμματισμός Η/Υ 1 (Εργαστήριο) Ενότητα 10: Συναρτήσεις Καθηγήτρια Εφαρμογών: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

Διαβάστε περισσότερα

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική Ενότητα 4: Δομές Ελέγχου Νικόλαος Στεργιούλας Τμήμα Φυσικής Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Εισαγωγή στους Υπολογιστές

Εισαγωγή στους Υπολογιστές Εισαγωγή στους Υπολογιστές Ενότητα 4: Αντικειμενοστραφής προγραμματισμός στην Python Αβούρης Νικόλαος Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Σκοποί ενότητας Σκοπός αυτής

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Constructors, equals, tostring

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Constructors, equals, tostring ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Constructors, equals, tostring Constructors (Δημιουργοί) O Constructor είναι μια «μέθοδος» η οποία καλείται όταν δημιουργούμε το αντικείμενο

Διαβάστε περισσότερα

CLIPS Σύντομη Εισαγωγή - Περιγραφή του Μηχανισμού Εκτέλεσης

CLIPS Σύντομη Εισαγωγή - Περιγραφή του Μηχανισμού Εκτέλεσης CLIPS Σύντομη Εισαγωγή - Περιγραφή του Μηχανισμού Εκτέλεσης Ιστορία της CLIPS CLIPS = C Language Integrated Production System Αναπτύχθηκε στη NASA τη δεκαετία του 1980 Η γλώσσα υλοποίησης είναι η C Yποστηρίζει

Διαβάστε περισσότερα

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Διαγράμματα Αλληλεπίδρασης. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Διαγράμματα Αλληλεπίδρασης. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Διαγράμματα Αλληλεπίδρασης Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική Θεσσαλονίκη, Σεπτέμβριος 2013 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

Διαβάστε περισσότερα

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 3: Constructors και destructors

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 3: Constructors και destructors Αντικειμενοστρεφής Προγραμματισμός Ενότητα 3: Constructors και destructors Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

Δομημένος Προγραμματισμός

Δομημένος Προγραμματισμός ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Δομημένος Προγραμματισμός Ενότητα: Εισαγωγή στη C θεωρία Δ. Ε. Μετάφας Τμ. Ηλεκτρονικών Μηχ. Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ Θεωρία Υπολογισμού Ενότητα 7: Πεπερασμένη αναπαράσταση γλωσσών Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες,

Διαβάστε περισσότερα

Τεχνολογία Λογισμικού

Τεχνολογία Λογισμικού ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα #8: Μοντέλο σχεδίασης Σταμέλος Ιωάννης Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Μέθοδοι Παράδειγμα 1 Θέλουμε ένα πρόγραμμα που να προσομοιώνει την κίνηση ενός αυτοκινήτου, το οποίο κινείται και τυπώνει τη θέση του.

Διαβάστε περισσότερα

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 6: Φιλικές συναρτήσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 6: Φιλικές συναρτήσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Αντικειμενοστρεφής Προγραμματισμός Ενότητα 6: Φιλικές συναρτήσεις Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Μέθοδοι Παράδειγμα Θέλουμε ένα πρόγραμμα που να προσομοιώνει την κίνηση ενός αυτοκινήτου, το οποίο κινείται και τυπώνει τη θέση του.

Διαβάστε περισσότερα

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ)

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ) ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ) Ενότητα 10: ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ ΔΙΔΑΣΚΩΝ: ΚΩΝΣΤΑΝΤΙΝΟΣ ΧΕΙΛΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ 1 Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Οντοκεντρικός Προγραμματισμός

Οντοκεντρικός Προγραμματισμός Οντοκεντρικός Προγραμματισμός Ενότητα 6: C++ ΚΛΑΣΕΙΣ, ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ, ΠΟΛΥΜΟΡΦΙΣΜΟΣ Κληρονομικότητα ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής

Διαβάστε περισσότερα

ΥΠΟΛΟΓΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ ΓΙΑ ΣΥΣΤΗΜΑΤΑ ΜΕΤΑΔΟΣΗΣ ΠΛΗΡΟΦΟΡΙΑΣ

ΥΠΟΛΟΓΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ ΓΙΑ ΣΥΣΤΗΜΑΤΑ ΜΕΤΑΔΟΣΗΣ ΠΛΗΡΟΦΟΡΙΑΣ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΥΠΟΛΟΓΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ ΓΙΑ ΣΥΣΤΗΜΑΤΑ ΜΕΤΑΔΟΣΗΣ ΠΛΗΡΟΦΟΡΙΑΣ Αντικειμενοστραφής προγραμματισμός Web Sites:

Διαβάστε περισσότερα

ΠΛΑΙΣΙΑ. Τα πλαίσια έχουν:

ΠΛΑΙΣΙΑ. Τα πλαίσια έχουν: ΠΛΑΙΣΙΑ Ορίστηκαν από τον Minsky σαν "δοµές δεδοµένων για την αναπαράσταση στερεότυπων καταστάσεων". Ονοµάζονται και σχήµατα (schemata). Κατά µία έννοια αποτελούν εξέλιξη των σηµαντικών δικτύων (ή δικτύων

Διαβάστε περισσότερα

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Προγραμματισμός Η/Υ 1 (Εργαστήριο) Προγραμματισμός Η/Υ 1 (Εργαστήριο) Ενότητα 2: Δομή ενός προγράμματος C Καθηγήτρια Εφαρμογών: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

Διαβάστε περισσότερα