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

Σχετικά έγγραφα
Ευφυής Προγραμματισμός

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στους Αλγορίθμους Ενότητα 11η Άσκηση - Σταθμισμένος Χρονοπρογραμματισμός Διαστημάτων

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

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

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

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

Προγραμματισμός Η/Υ. 7 η ενότητα: Αρχεία. Τμήμα. Τεχνολόγων Περιβάλλοντος. ΤΕΙ Ιονίων Νήσων. Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων

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

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

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 4: ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ - ΔΕΝΤΡΑ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Λογιστική Κόστους Ενότητα 10: Ασκήσεις Προτύπου Κόστους Αποκλίσεων.

Εννοιες και Παράγοντες της Ψηφιακής Επεξεργασίας Εικόνας

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

Πρακτική Άσκηση σε σχολεία της δευτεροβάθμιας εκπαίδευσης

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

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

Τίτλος Μαθήματος. Ενότητα 1η: Εισαγωγή. Δημήτριος Σκούρας Σχολή Διοίκησης Επιχειρήσεων Τμήμα Οικονομικών Επιστημών

Τεχνικό Σχέδιο - CAD. Τόξο Κύκλου. Τόξο Κύκλου - Έλλειψη. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Transcript:

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

Περιεχόμενα ενότητας Ειδικές Μεταβλητές-Χειρισμός Αρχείων 1. Ειδικές Μεταβλητές 2. Αλφαριθμητικά-Χαρακτήρες 3. Διαχείριση Αρχείων 2

Ειδικές Μεταβλητές

Ειδικές Μεταβλητές (1) Πχ.(defun first-of-first1 (x) (first (auxiliary1 x))) Πχ. (defun auxiliary1 (x) (first x)) >(first-of-first1 '((a b) (c d) (e f))) 4 A 4

Ειδικές Μεταβλητές (2) Πχ.((defun first-of-first2 (x) (first (auxiliary2))) Πχ.((defun auxiliary2 () (first x)) >(first-of-first2 '((a b) (c d) (e f))) ERROR 5

Ειδικές Μεταβλητές (3) Η LISP χρησιμοποιεί ιδεατούς φράχτες για να βρει τις τιμές των μεταβλητών. Στον ιδεατό φράχτη της auxiliary2 δεν μπορεί να βρει την τιμή της x. defvar: Οι προσδέσεις της μεταβλητής τοποθετούνται στο «μητρώο κλήσεων» (record of calls) της LISP και είναι ορατές από παντού. 6

Ειδικές Μεταβλητές (4) (defvar *x*) (defun first-of-first2 (*x*) (first (auxiliary2))) (defun auxiliary2 () (first *x*)) >(first-of-first2 '((a b) (c d) (e f))) A 7

Ειδικές Μεταβλητές (5) (defvar *x* 15) δηλώνει ότι η *x* είναι special (ειδική) και της εκχωρεί το 15 > *x* 15 > (defvar *x* 20) > *x* 15 (δεν αλλάζει η αρχική τιμή που δόθηκε 8

Ειδικές Μεταβλητές (6) (defun compute-taxythta (litra-ana-km xronos katanalosi-litra) (/ (compute-diasthma katanalosi-litra) xronos)) (defun compute-diasthma (katanalosi-litra) (/ katanalosi-litra litra-ana-km)) >(compute-taxythta 0.10 5 30) ERROR litra-ana-km δεν έχει τιμή μέσα στην computediasthma, άρα είναι άγνωστη. 9

Ειδικές Μεταβλητές (7) (defun compute-taxythta (litra-ana-km xronos katanalosi-litra) (declare (special litra-ana-km)) (/ (compute-diasthma katanalosi-litra) xronos)) (defun compute-diasthma (katanalosi-litra) (/ katanalosi-litra litra-ana-km)) >(compute-taxythta 0.10 5 30) 60 10

Αλφαριθμητικά-Χαρακτήρες

Αλφαριθμητικά-Χαρακτήρες (1) "abc", "ioannis" : αλφαριθμητικά (strings) (elt "abcd" 0) #\a (length " abcd ") 6 (reverse "abcd") " dcba" (subseq "ioannis" 2 4) " an " 12

Αλφαριθμητικά-Χαρακτήρες (2) (some # <function-name> <sequence>) (some #' (lambda(x) (char= #\b x)) " abcd ") T (some #'numberp '(a b 3 c d)) T (every # <function-name> <sequence>) (every #' (lambda(x) (char= #\b x)) " abcd " ) NIL 13

Αλφαριθμητικά-Χαρακτήρες (3) (string= "abcd" "xyzw") NIL (string= "abcd" "abcd") T (string= "abcd" "ABCD") NIL (string-equal "abcd" "xyzw") NIL (string-equal "abcd" "abcd") T (string-equal "abcd" "ABCD") T 14

Αλφαριθμητικά-Χαρακτήρες (4) #\a : χαρακτήρας (character) (char= #\c #\b) NIL (char= #\d #\d) T (char= #\d #\D) NIL (char-equal #\c #\b) NIL (char-equal #\D #\D) T (char-equal #\d #\D) T 15

Αλφαριθμητικά-Χαρακτήρες (5) (search "Athens" "Athens Greece") 0 (search "Greece" "Athens Greece") 7 (search "Rhodos" "Athens Greece") NIL (search "GREECE" "Athens Greece") NIL (search "GREECE" "Athens Greece" :test #'char-equal) 7 Χρησιμοποιείται και για λίστες: (search '(Athens) '(Athens Greece)) 0 (search '(Greece) '(Athens Greece)) 1 (search '(Rhodos) '(Athens Greece)) NIL 16

Διαχείριση Αρχείων

Διαχείριση Αρχείων (1) read Input Stream File Ανάγνωση από αρχείο Δημιουργία stream Πρόσδεση μεταβλητών στο stream Χρήση του with-open-file 18

Διαχείριση Αρχείων (2) (with-open-file (<όνομα-stream> <διαδρομή αρχείου> :direction :input) (read <όνομα-stream>) ) stream εισόδου: συνδετήρας read-αρχείου Το read διαβάζει ένα άτομο τη φορά 19

Διαχείριση Αρχείων (3) (defun read-from-file1 (file) (with-open-file (stud-stream file :direction :input) (dotimes (n 2) (print (read stud-stream))))) stud1.txt ((georgia papa) (ai systems)) ((giannis xatzis) (prog alg db)) ((kostas ntokis) (database ai)) ((manos andreou) (alg)) ((nikos kakos) (ds alg)) (read-from-file1 c:/ /stud1.txt ) ((georgia papa) (ai systems)) ((giannis xatzis) (prog alg db)) 20

Διαχείριση Αρχείων (5) Άλλες συναρτήσεις ανάγνωσης read-line Διαβάζει μέχρι το επόμενο CR ή EOF Επιστρέφει δύο τιμές Αλφαριθμητικό NIL/T (αν συναντήσει eof ενώ διαβάζει γραμμή) read-char Διαβάζει ένα μόνο χαρακτήρα (π.χ. #\a) 21

Διαχείριση Αρχείων Print Output Stream File Εγγραφή σε αρχείο Δημιουργία stream Πρόσδεση μεταβλητών στο stream Χρήση του with-open-file 22

Διαχείριση Αρχείων (with-open-file (<όνομα-stream> <διαδρομή αρχείου> :direction :output>) (print <έκφραση-εκτύπωσης> <όνομα-stream>) ) θα αποτιμηθεί και η τιμή της θα εκτυπωθεί stream εισόδου: συνδετήρας print-αρχείου 23

Διαχείριση Αρχείων (3) (defun write-to-file1 (file) (with-open-file (stud-stream file :direction :output) (dotimes (n 5) (print (read) stud-stream)))) (write-to-file1 c:/ /stud1.txt ) stud1.txt ((georgia papa) (ai systems)) ((georgia papa) (ai systems)) ((giannis xatzis) (prog alg db)) ((giannis xatzis) (prog alg db)) ((kostas ntokis) (database ai)) ((kostas ntokis) (database ai)) ((manos andreou) (alg)) ((manos andreou) (alg)) ((nikos kakos) (ds alg)) ((nikos kakos) (ds alg)) 24

Διαχείριση Αρχείων (4) Η with-open-file σε κάθε προσπάθεια ανάγνωσης αρχείου με συγκεκριμένο όνομα, αρχίζει να το διαβάζει από την αρχή σε κάθε προσπάθεια εγγραφής αρχείου με συγκεκριμένο όνομα, δημιουργεί ένα νέο, κενό αρχείο φροντίζει, αν συμβεί κάποιο λάθος στην εκτέλεσή της, τα αρχεία που είναι ανοικτά να κλείσουν ομαλά 25

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

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

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

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

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