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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 4: Συναρτήσεις

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Αρχές Προγραμματισμού

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΘΕΡΜΟΔΥΝΑΜΙΚΗ Ι. Ενότητα 2: Θερμοδυναμικές συναρτήσεις. Σογομών Μπογοσιάν Πολυτεχνική Σχολή Τμήμα Χημικών Μηχανικών

Transcript:

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

Περιεχόμενα ενότητας Ειδικές Παράμετροι-Είσοδος & Έξοδος : 1. Παράμετροι Ειδικού Σκοπού 2. Συναρτήσεις με Ορίσματα Συναρτήσεις 3. Συναρτήσεις Εισόδου &Εξόδου 2

Παράμετροι Ειδικού Σκοπού

Παράμετροι Ειδικού Σκοπού (1) Προαιρετικές Παράμετροι Ακολουθούν το &optional, μετά από τις κανονικές παραμέτρους Κατά την κλήση μπορεί να υπάρχουν ή να μην υπάρχουν αντίστοιχοι πραγματικοί παράμετροι Αν δεν υπάρχουν, όλες παίρνουν τιμή NIL, εκτός αν έχουμε δηλώσει εξ ορισμού τιμές 4

Παράμετροι Ειδικού Σκοπού (2) (defun embadon-trig-orth (b h &optional factor) (if (= factor 0.5) (* 0.5 b h) (* b h))) >(embadon-trig-orth 2 3 1) 6 (embadon-trig-orth 2 3 0.5) 3 5

Παράμετροι Ειδικού Σκοπού (3) Υπόλοιπες Ακολουθούν το "&rest", μετά από τις κανονικές παραμέτρους Υπάρχει το πολύ μια σε κάθε συνάρτηση Οι πραγματικές παράμετροι μετά από αυτές που αντιστοιχούν στις κανονικές σχηματίζουν λίστα που αποδίδεται σαν τιμή στην "υπόλοιπη παράμετρο" 6

Παράμετροι Ειδικού Σκοπού (4) Πχ. (defun r-embadon (b &rest hs) (let ((e-list nil)) (dolist (h hs (reverse e-list)) (push (* 0.5 b h) e-list)))) > (m-embadon 5 4 6 8) (10.0 15.0 20.0) >(m-embadon 4 3 7) (6.0 14.0) 7

Παράμετροι Ειδικού Σκοπού (5) Κλειδιά Ακολουθούν το "&key", μετά από τις κανονικές παραμέτρους Όταν υπάρχουν πολλές παράμετροι, αλλά οι περισσότερες έχουν συγκεκριμένες τιμές τις περισσότερες φορές. Η περίπτωση &optional δεν εξυπηρετεί 8

Παράμετροι Ειδικού Σκοπού (6) Βοηθητικές Ακολουθούν το "&aux", μετά από τις κανονικές παραμέτρους Παίζουν το ρόλο των παραμέτρων όπως σ ένα let*, χωρίς να είναι εμφανείς. Δεν συσχετίζονται με ορίσματα της συνάρτησης 9

Παράμετροι Ειδικού Σκοπού (7) Πχ. Βοηθητικές (defun both-ends (lista) (let* ((elem (first lista)) (trailer (last lista))) (cons elem trailer))) >(both-ends (1 2 3 4)) (1 4) 10

Συναρτήσεις με Ορίσματα Συναρτήσεις

Συναρτήσεις με Ορίσματα Συναρτήσεις (1) Χαρακτηριστικό των είναι ότι χρησιμοποιούν σαν όρισμα συνάρτηση Συναρτήσεις Ελέγχου Συναρτήσεις Φίλτρου Συναρτήσεις Αντιστοίχισης 12

Συναρτήσεις με Ορίσματα Συναρτήσεις (2) Συναρτήσεις Ελέγχου: some : (some #'<function-name> <list>) Πχ. (some #'oddp '(3 4 5)) T (some #'oddp (2 2 4)) NIL every (every # <function-name> <list>) 13

Συναρτήσεις με Ορίσματα Συναρτήσεις (3) Συναρτήσεις Αντιστοίχισης MAPCAR (mapcar # `<function-name> <list forms>) Τα <list forms> είναι τόσα, όσα και τα ορίσματα που παίρνει η <function-name>. Εφαρμόζεται η <function-name> διαδοχικά με ορίσματα κάθε φορά τα ομοθέσια στοιχεία των λιστών. Επιστρέφεται μια λίστα με τα αποτελέσματα των παραπάνω εφαρμογών. 14

Συναρτήσεις με Ορίσματα Συναρτήσεις (4) (mapcar #'round '(1.8 2.5 4.4 8.5)) (2 2 4 8) (mapcar 'oddp '(3 4 5)) (T NIL T) (mapcar '= '(1 2 3 ) '( 4 2 1)) (NIL T NIL) 15

Συναρτήσεις με Ορίσματα Συναρτήσεις Φίλτρου remove-if-not: Συναρτήσεις (5) (remove-if-not #'<function-name> <list form>) Το <list form> πρέπει να έχει σαν αποτέλεσμα λίστα Πχ. (remove-if-not # 'evenp '(1 2 3 4 5 )) (2 4) 16

Συναρτήσεις με Ορίσματα Συναρτήσεις (6) Συναρτήσεις Φίλτρου remove-if (remove-if # <function-name> <list form>) Πχ. (remove-if #'evenp '(1 2 3 4 5)) (1 3 5) 17

Συναρτήσεις με Ορίσματα Συναρτήσεις (7) Συναρτήσεις Αναζήτησης-Απαρίθμησης FIND-IF (find-if # '<function-name> <list form>) Επιστρέφει το πρώτο στοιχείο της λίστας που ικανοποιεί τη συνάρτηση (find-if #'evenp '(1 2 3 4 5)) 2 (find-if #'oddp '(1 2 3 4 5)) 1 18

Συναρτήσεις με Ορίσματα Συναρτήσεις (8) Συναρτήσεις Αναζήτησης-Απαρίθμησης COUNT-IF (count-if # `<function-name> <list form>) Επιστρέφει τον αριθμό των στοιχείων της λίστας που ικανοποιεί τη συνάρτηση (count-if #'symbolp ' (1 a 3 b 5)) 2 (count-if #'numberp ' (1 a 3 b 5)) 3 19

Συναρτήσεις Εισόδου &Εξόδου

Συναρτήσεις Εισόδου &Εξόδου (1) print, read, format (βοηθούν τις συναρτήσεις να επικοινωνήσουν με το χρήστη) ανάγνωση-εκτύπωση πληροφορίας print αποτιμά το μοναδικό της όρισμα εκτυπώνει το αποτέλεσμα σε μία νέα γραμμή 21

Συναρτήσεις Εισόδου &Εξόδου (2) > (setf temp 100) > (print temp) 100 (ενέργεια εκτύπωσης του print) 100 (τιμή της έκφρασης print) > (if (< 2 (print (- temp 98.6))) normal abnormal) 1.4 (τιμή που εκτυπώνει η print) ABNORMAL (τιμή που επιστρέφει η if) 22

Συναρτήσεις Εισόδου &Εξόδου (3) read η LISP σταματάει και περιμένει ο χρήστης τυπώσει μια έκφραση πλήρης αδράνεια μέχρι ο χρήστης να εκτυπώσει κάποια έκφραση > (read) john JOHN δεν κάνει εκτίμηση τιμής αυτού που πληκτρολογούμε > (read) (+ 3 4) ; Πληκτρολογήσαμε (+3 4) (+ 3 4) 23

Συναρτήσεις Εισόδου &Εξόδου (4) Η read δεν εκτυπώνει τίποτα για να δείξει ότι περιμένει χρήση της print για διευκρίνηση του τι περιμένει > (let ((fm nil)) ; αρχική τιμή του fm το nil (print (please type a first name)) ; εκτύπωση διευκρίνησης (setf fm (read)) (print (append (the name is) (list fm))) ; εκτύπωση μηνύματος fm) ; τελευταίος τύπος στη let το fm (PLEASE TYPE A FIRST NAME) ford ; η απόκριση του χρήστη (THE NAME IS FORD) FORD ; αποδεικτικό μήνυμα ; η τιμή που επιστρέφεται από την let 24

Συναρτήσεις Εισόδου &Εξόδου (5) format >(format t Hello! ) Hello! ; Η format εκτυπώνει το Hello! NIL ; Η τιμή της format είναι NIL t: λέει στη format να εκτυπώσει στην οθόνη 25

Συναρτήσεις Εισόδου &Εξόδου (6) Η format επιτρέπει χρήση ψευδοεντολών Μερικές βασικές ψευδοεντολές της format % (αρχίζει μια νέα γραμμή) & (αρχίζει μια νέα γραμμή, αν δε βρισκόμαστε ήδη σε νέα γραμμή) a (εισαγωγή τιμής μιας μεταβλητής που εμφανίζεται μετά το string της format) <ακέραιος>a (όπως και πριν, αλλά προσθέτει τόσα κενά, ώστε το μέγεθος του string να είναι όσο ο ακέραιος) Μια ψευδοεντολή προσδιορίζεται βάζοντας μπροστά της το σύμβολο ~ 26

Συναρτήσεις Εισόδου &Εξόδου (7) >(setf fm 'ford) >(setf total 2924) >(format t "~%Name: ~8aFIDE: ~a" fm total) Name: FORD FIDE: 2924 NIL 8 χαρακτήρες στο FORD με τα κενά Το NIL επιστρέφεται από τη συνάρτηση 27

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

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

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

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

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