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

Σχετικά έγγραφα
Εισαγωγή στους Αλγορίθμους

Εισαγωγή στους Αλγορίθμους

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Διοικητική Λογιστική

Εισαγωγή στους Αλγορίθμους

Κβαντική Επεξεργασία Πληροφορίας

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 3: Έλεγχοι στατιστικών υποθέσεων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 1: Καταχώρηση δεδομένων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 2: Περιγραφική στατιστική

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

1 η Διάλεξη. Ενδεικτικές λύσεις ασκήσεων

Κβαντική Επεξεργασία Πληροφορίας

Εισαγωγή στους Αλγορίθμους Ενότητα 10η Άσκηση Αλγόριθμος Dijkstra

Εισαγωγή στους Η/Υ. Ενότητα 2β: Αντίστροφο Πρόβλημα. Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών

Βέλτιστος Έλεγχος Συστημάτων

Ενδεικτικές λύσεις ασκήσεων διαχείρισης έργου υπό συνθήκες αβεβαιότητας

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

Ενότητα. Εισαγωγή στις βάσεις δεδομένων

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός

Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους.

Μυελού των Οστών Ενότητα #1: Ερωτήσεις κατανόησης και αυτόαξιολόγησης

Βάσεις Περιβαλλοντικών Δεδομένων

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 1

Έλεγχος και Διασφάλιση Ποιότητας Ενότητα 4: Μελέτη ISO Κουππάρης Μιχαήλ Τμήμα Χημείας Εργαστήριο Αναλυτικής Χημείας

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού Υπέρθερμου Ατμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Μηχανολογικό Σχέδιο Ι

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Prim

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

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

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

Διοίκηση Εξωτερικής Εμπορικής Δραστηριότητας

Διοικητική Λογιστική

Ιστορία της μετάφρασης

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

Εφαρμογές των Τεχνολογιών της Πληροφορίας και των Επικοινωνιών στη διδασκαλία και τη μάθηση

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Kruskal

Διδακτική των εικαστικών τεχνών Ενότητα 3

Μεθοδολογία Έρευνας Κοινωνικών Επιστημών Ενότητα 2: ΣΥΓΚΕΝΤΡΩΣΗ ΠΛΗΡΟΦΟΡΙΩΝ ΜΑΡΚΕΤΙΝΓΚ Λοίζου Ευστράτιος Τμήμα Τεχνολόγων Γεωπόνων-Kατεύθυνση

Εισαγωγή στην Διοίκηση Επιχειρήσεων

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

Ψηφιακή Επεξεργασία Εικόνων

Κβαντική Επεξεργασία Πληροφορίας

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Διδακτική των εικαστικών τεχνών Ενότητα 1

Εκκλησιαστικό Δίκαιο. Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Τμήμα Νομικής Α.Π.Θ.

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Διδακτική των εικαστικών τεχνών Ενότητα 2

Διδακτική των εικαστικών τεχνών Ενότητα 2

Διδακτική των εικαστικών τεχνών Ενότητα 2

Διδακτική των εικαστικών τεχνών Ενότητα 2

ΗΛΕΚΤΡΟΝΙΚΗ ΙIΙ Ενότητα 6

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Τεχνικό Σχέδιο - CAD

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Αερισμός. Ενότητα 1: Αερισμός και αιμάτωση. Κωνσταντίνος Σπυρόπουλος, Καθηγητής Σχολή Επιστημών Υγείας Τμήμα Ιατρικής

Κβαντική Επεξεργασία Πληροφορίας

Λογιστική Κόστους Ενότητα 11: Λογισμός Κόστους (1)

Φιλοσοφία της Ιστορίας και του Πολιτισμού

Διδακτική των εικαστικών τεχνών Ενότητα 2

Γραμμική Άλγεβρα και Μαθηματικός Λογισμός για Οικονομικά και Επιχειρησιακά Προβλήματα

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

Τεχνικό Σχέδιο - CAD

Διδακτική Πληροφορικής

Θεατρικές Εφαρμογές και Διδακτική της Φυσικής Ι

Προγραμματισμός Η/Υ. Βασικές Προγραμματιστικές Δομές. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Ενδεικτικές λύσεις ασκήσεων διαγραμμάτων περίπτωσης χρήσης (1ο Μέρος)

Το Εικονογραφημένο Βιβλίο στην Προσχολική Εκπαίδευση

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Εφαρμογές των Τεχνολογιών της Πληροφορίας και των Επικοινωνιών στη διδασκαλία και τη μάθηση

Βέλτιστος Έλεγχος Συστημάτων

Γενικά Μαθηματικά Ι. Ενότητα 15: Ολοκληρώματα Με Ρητές Και Τριγωνομετρικές Συναρτήσεις Λουκάς Βλάχος Τμήμα Φυσικής

Εφαρμογές πληροφορικής σε θέματα πολιτικού μηχανικού

Δυναμική και Έλεγχος E-L Ηλεκτρομηχανικών Συστημάτων

Δυναμική και Έλεγχος E-L Ηλεκτρομηχανικών Συστημάτων

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

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

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 4

Έλεγχος Ποιότητας Φαρμάκων

Διδακτική των εικαστικών τεχνών Ενότητα 2

Γενικά Μαθηματικά Ι. Ενότητα 12: Κριτήρια Σύγκλισης Σειρών. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Γενική Φυσική Ενότητα: Ταλαντώσεις

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Λογιστική Κόστους Ενότητα 11: Λογισμός Κόστους

Εκκλησιαστικό Δίκαιο

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Διαχείριση Πολιτισμικών Δεδομένων

Διδακτική Πληροφορικής

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

Θέματα Εφαρμοσμένης. Ενότητα 14.2: Η ψήφος στα πρόσωπα. Θεόδωρος Χατζηπαντελής Τμήμα Πολιτικών Επιστημών ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Γενική Φυσική Ενότητα: Εισαγωγή στην Ειδική Θεωρία της Σχετικότητας

Εισαγωγή στη Μουσική Τεχνολογία Ενότητα: Ελεγκτές MIDI μηνυμάτων (Midi Controllers)

Transcript:

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

Περιεχόμενα ενότητας Λίστες Ιδιοτήτων-Πίνακες-Δομές 1. Λίστες Ιδιοτήτων 2. Πίνακες 3. Δομές 2

Λίστες Ιδιοτήτων

Λίστες Ιδιοτήτων (1) Η LISP επιτρέπει σε ένα σύμβολο να έχει τιμές ιδιοτήτων (property values). Προσάρτηση ιδιοτήτων-τιμών σ ένα σύμβολο Λίστα ιδιοτήτων (property list): το σύνολο των ιδιοτήτων-τιμών των προσαρτημένων σ ένα σύμβολο, που παριστάνει μια συγκεκριμένη οντότητα Π.χ. giannis είναι ένα σύμβολο που παριστάνει ένα συγκεκριμένο φοιτητή, στον οποίο μπορούμε να προσαρτήσουμε τις ιδιότητες, όπως department, parents κλπ. 4

Λίστες Ιδιοτήτων (2) Τύποι συναρτήσεων δημιουργίας-διαχείρισης λίστας ιδιοτήτων Δημιουργίας-constructor (δημιουργεί λίστα ιδιοτήτων και αποδίδει τιμές) Ανάγνωσης-reader (προσπελαύνει τιμή ιδιότητας) Διαγραφής-remover (διαγράφει ιδιότητα) 5

Λίστες Ιδιοτήτων (3) Δημιουργία/απόδοση τιμών (setf σε συνδυασμό με την get) (setf (get <symbol> <property name>) <property value>) Προσπέλαση τιμής ιδιότητας (get) (get <symbol> <property name>) 6

Λίστες Ιδιοτήτων (4) Πχ. (setf (get 'giannis 'department) 'computerengineering) COMPUTER-ENGINEERING (setf (get giannis parents) (kostas maria)) (KOSTAS MARIA) (setf (get 'giannis 'siblings) '(giorgos eleni)) (GIORGOS ELENI) (get ' giannis 'department) COMPUTER-ENGINEERING (get 'giannis 'parents) (KOSTAS MARIA) 7

Λίστες Ιδιοτήτων (5) Διαγραφή ιδιότητας-τιμής (remprop, setf-nil) (remprop <σύμβολο> <όνομα ιδιότητας>) Πχ. (remprop 'giannis 'parents) Τ (get 'giannis 'parents) NIL 8

Πίνακες

Πίνακες (1) Δημιουργία ενός μονοδιάστατου πίνακα: (setf <array name> (make-array <dimension>)) (setf grades (make-array 4)) #(NIL NIL NIL NIL) (make-array 5) #(NIL NIL NIL NIL NIL) 10

Πίνακες (2) Αρχικοποίηση ενός πίνακα: Χρήση της παραμέτρου :initial-element Χρήση της παραμέτρου :initial-contents Με την ανάθεση τιμών σε κάθε στοιχείο του μέσω της aref. 11

Πίνακες (3) Αρχικοποίηση ενός μονοδιαστατου πίνακα: (setf grades (make-array 4 :initial-element '0)) #(0 0 0) (setf grades (make-array 4 :initial-contents '(5 8 3 2))) #(5 8 3 2) (setf (aref grades 0) '5) 5 (setf (aref grades 1) '8) 8 (setf (aref grades 2) '3) 3 (setf (aref grades 3) ' 2) 2 12

Πίνακες (4) Η προσπέλαση των στοιχείων ενός πίνακα γίνεται ως εξής: (aref <array name> <element index>) (aref grades 1) 8 (aref grades 3) 2 (aref grades 0) 5 13

Πίνακες (5) Δημιουργία ενός δισδιάστατου πίνακα: (setf <array name> (make-array <dimensions>)) (setf grades (make-array '(2 3))) #2A((NIL NIL NIL) (NIL NIL NIL)) Δισδιάστατος πίνακα με όνομα grades που έχει 2x3=6 στοιχεία 14

Αρχικοποίηση Πίνακες (6) (setf grades (make-array '(2 3) :initial-element 0)) #2A((0 0 0) (0 0 0)) (setf marks (make-array '(3 3) :initial-contents '((7 6 8) (9 5 6) (a b c))) #2A((7 6 8) (9 5 6) (A B C)) (setf (aref grades 0 0) 3) 3 (setf (aref grades 0 1) 2) 2 15

Πίνακες (7) Προσπέλαση των στοιχείων ενός δισδιάστατου πίνακα (aref <array name> <element index>) (aref grades 0 0) 3 (aref grades 0 1) 2 16

Συναρτήσεις Πίνακα: array-dimension: Πίνακες (8) (array-dimension <array name> <axis num>) array-dimensions (array-dimensions <array name>) 17

Πίνακες (9) Πχ. (array-dimension grades 0) 2 (array-dimension grades 1) 3 (array-dimensions grades) (2 3) 18

Δομές

Δομές (1) Δομή : πεδία (fields) τιμές (values) των πεδίων. (defstruct <structure name> (<field1> <value1) (<field2> <value2)... (<fieldn> <valuen)) 20

Πχ. (defstruct student (year-of-study nil) (sex nil) (grades nil)) Δομές (2) 21

Δομές (3) defstruct δημιουργεί μια δομή, αλλά όχι στιγμιότυπα της δημιουργεί όμως μια συνάρτηση-δημιουργό στιγμιοτύπων: make-<structure name> Επίσης, δημιουργεί και συναρτήσεις ανάγνωσης για την προσπέλαση τιμών των πεδίων: <structure name>-<field name> δημιουργεί ένα κατηγόρημα (συνάρτηση) για έλεγχο του τύπου στιγμιοτύπων της δομής καλή πρακτική: όλες οι δομές στο δικό τους αρχείο 22

Δομές (4) (defstruct student (year-of-study nil) (sex nil) (grades 'good)) δημιουργία constructor make-student defstruct: δημιουργεί τη δομή person make-student: δημιουργεί στιγμιότυπα της student 23

Δομές (5) Πχ.(setf student-inst1 (make-student)) #S(STUDENT :YEAR- OF-STUDY NIL :SEX NIL :GRADES GOOD) Η student-inst1 έχει μόνο μια non nil τιμή, την τιμή good έχει τις προκαθορισμένες τιμές της δομής Πχ. (setf student-inst2 (make-student :sex 'male)) #S(STUDENT :YEAR-OF-STUDY NIL :SEX MALE :GRADES GOOD) H student-instance-2 έχει δύο non nil τιμές male στο πεδίο sex (από την make-person) good στο πεδίο grades (από την defstruct) 24

Δομές (6) (student-sex student-inst2) MALE (student-grades student-inst2) GOOD (setf (student-sex student-inst1) 'female) FEMALE (student-sex student-inst1) FEMALE Τώρα το στιγμιότυπο student-inst1 έχει δύο non nil τιμές. Η επιπλέον προέρχεται από την setf. 25

Δομές (7) (student-p student-inst1) T student-p ' (this is a list no a student instance)) NIL Συνάρτηση describe: Εκτυπώνει Περιγραφές (describe student-inst1) #S(STUDENT :YEAR-OF-STUDY NIL :SEX FEMALE :GRADES GOOD) is a STUDENT YEAR-OF-STUDY SEX GRADES FEMALE NIL GOOD 26

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

Σημείωμα Ιστορικού Εκδόσεων Έργου Το παρόν έργο αποτελεί την έκδοση 1.0. 28

Σημείωμα Αναφοράς Copyright Πανεπιστήμιο Πατρών, Ιωάννης Χατζηλυγερούδης 2015. «Ευφυής Προγραμματισμός». Έκδοση: 1.0. Πάτρα 2015. Διαθέσιμο από τη δικτυακή διεύθυνση: https://eclass.upatras.gr/courses/ceid1095/ 29

Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εμπορική Χρήση Παρόμοια Διανομή 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] http://creativecommons.org/licenses/by-nc-sa/4.0/ Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί. 30

Διατήρηση Σημειωμάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: το Σημείωμα Αναφοράς το Σημείωμα Αδειοδότησης τη δήλωση Διατήρησης Σημειωμάτων το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει) μαζί με τους συνοδευόμενους υπερσυνδέσμους. 31