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

Σχετικά έγγραφα
ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 4

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 6: Πίνακες [2/2] (Δισδιάστατοι)

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

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

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 8: Συστήματα αρίθμησης

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

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

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

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

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

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

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

Υπολογιστική άλγεβρα Ενότητα 10: Βάσεις Groebner ενός ιδεώδους ΙΙΙ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 7: Αλγόριθμοι γραμμικής άλγεβρας

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 2: Έλεγχος συνθηκών

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

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

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

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

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

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 3: Δομές επανάληψης

Γενική Φυσική Ενότητα: Δυναμική Άκαμπτου Σώματος

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 9: Αναδρομή

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

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

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

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

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

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

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

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

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 1: Εισαγωγή

Εισαγωγή στις Επιστήμες της Αγωγής

Διδακτική Απειροστικού Λογισμού

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

Λειτουργία και εφαρμογές της πολιτιστικής διαχείρισης

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

Μικροοικονομική Ανάλυση της Κατανάλωσης και της Παραγωγής

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

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

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

Ηλεκτρομαγνητισμός - Οπτική - Σύγχρονη Φυσική Ενότητα: Οπτική. Βαρουτάς Δημήτρης Σχολή Θετικών Επιστημών Τμήμα Πληροφορικής και Τηλεπικοινωνιών

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

Ηλεκτρονική. Ενότητα 9: Τρανζίστορ Επίδρασης Πεδίου (FET) Αγγελική Αραπογιάννη Τμήμα Πληροφορικής και Τηλεπικοινωνιών

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

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

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

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

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

Μικροοικονομική Ανάλυση της Κατανάλωσης και της Παραγωγής

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

Πληροφορική ΙΙ Θεματική Ενότητα 5

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

Χωρικές σχέσεις και Γεωμετρικές Έννοιες στην Προσχολική Εκπαίδευση

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

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

Υπολογιστική άλγεβρα Ενότητα 1: Πολυωνυμικές σχέσεις και ταυτότητες, μέρος Ι

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

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

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

Transcript:

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 4: Συναρτήσεις Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών

ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 4 ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 4 Σημειώσεις βασισμένες στο βιβλίο Το MATLAB στην Υπολογιστική Επιστήμη και Τεχνολογία Μια Εισαγωγή ΣΥΝΑΡΤΗΣΕΙΣ Συνάρτηση ονομάζεται ένα τμήμα κώδικα (ή υποπρόγραμμα) το οποίο κάνει μια συγκεκριμένη διεργασία και μπορεί να καλείται από ένα πρόγραμμα (ή από μια άλλη συνάρτηση). Π.χ. x = 100 100 y = 2 * sqrt(x) sqrt 10 Ουσιαστικά: x sqrt x (Η sqrt είναι μια εσωτερική συνάρτηση του MATLAB) Ένα script καλεί μια συνάρτηση Η ροή του προγράμματος μεταφέρεται προσωρινά στις εντολές της συνάρτησης Εκτελούνται οι εντολές της συνάρτησης Η ροή του προγράμματος επιστρέφει στο script Όπως προαναφέρθηκε, μια συνάρτηση μπορεί να καλεί με τη σειρά της άλλες συναρτήσεις. Ο τρόπος λειτουργίας μιας συνάρτησης δεν ενδιαφέρει τον χρήστη. Αυτό που τον ενδιαφέρει είναι ο τρόπος χρήσης της, δηλαδή: το όνομά της τι δέχεται τι επιστρέφει ver. 150106 Τμήμα Μαθηματικών ΕΚΠΑ 1

ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 4 Λόγοι ύπαρξης συναρτήσεων: Βοηθούν στη λογική σχεδίαση των προγραμμάτων Είναι «μαύρα κουτιά» που απλά χρησιμοποιούνται χωρίς να είναι απαραίτητη η γνώση της λειτουργίας τους Αποφυγή επανάληψης κώδικα στο ίδιο πρόγραμμα Επαναχρησιμοποίηση κώδικα σε άλλα προγράμματα Ευκολότερη τροποποίηση κώδικα Είδη συναρτήσεων: Εσωτερικές συναρτήσεις του MATLAB (sqrt, fprintf κλπ) Ορισμένες από τον προγραμματιστή Σχεδιασμός συναρτήσεων: Όνομα Είσοδος / έξοδος interface (περιβάλλον επικοινωνίας) Αλγόριθμος Στο MATLAB: function έξοδος = όνομα (είσοδος) επικεφαλίδα % σχόλια περιγραφής προδιαγραφές <κώδικας>.. σώμα συνάρτησης. Παράδειγμα: Υλοποίηση της γεωμετρικής προσέγγισης της A με δημιουργία συνάρτησης. Α MySqrt A ver. 150106 Τμήμα Μαθηματικών ΕΚΠΑ 2

ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 4 To script που είχε δημιουργηθεί (για δεδομένο Α): nsteps = 10; L = A; for i =1 : nsteps L = (L+W) / 2; Όμως, αυτή η υλοποίηση δεν αντιμετωπίζει την περίπτωση Α=0. Νέο script (για δεδομένο Α): nsteps = 10; if A==0 s = 0; else L = A; for i =1:nSteps L = (L+W) / 2; s = L; Μετατροπή του script σε συνάρτηση: function s = MySqrt (A) % A ένας μη αρνητικός πραγματικός αριθμός και s μια προσέγγιση % της τετραγωνικής του ρίζας nsteps = 10; if A==0 s = 0; else L = A; for i =1 : nsteps L = (L+W) / 2; s = L; Η συνάρτηση πρέπει να αποθηκευτεί στο αρχείο MySqrt.m Ας δούμε τώρα πως γίνεται η κλήση της συνάρτησης από ένα script: x = 100; y = MySqrt(x); disp(y); ver. 150106 Τμήμα Μαθηματικών ΕΚΠΑ 3

ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 4 Γενικά, κλήση συνάρτησης: μεταβλητή = όνομα (είσοδος); Άρα, γενικά: ορίσματα Δημιουργία συνάρτησης: function[έξοδος1, έξοδος2, ] = όνομα (παράμετρος_εισόδου1, παράμετρος_εισόδου2, ) Αποθήκευση: όνομα.m Κλήση / εκτέλεση συνάρτησης: [έξοδος1, έξοδος2, ] = όνομα (όρισμα1, όρισμα2, ); Όταν καλείται μια συνάρτηση, το όρισμαχ παίρνει τη θέση της παραμέτρου_εισόδουχ. Τοπικές μεταβλητές: Είναι οι μεταβλητές που ορίζονται (δημιουργούνται) μέσα σε κάποια συνάρτηση. Υπάρχουν μόνο μέσα στη συνάρτηση (Δημιουργούνται όταν καλείται η συνάρτηση / παύουν να υπάρχουν όταν η συνάρτηση επιστρέφει) Οι παράμετροι εισόδου έχουν ουσιαστικά τα ίδια χαρακτηριστικά με τις τοπικές μεταβλητές: Δημιουργούνται όταν καλείται η συνάρτηση, μέσω της αρχικοποίησής τους με τις τιμές των ορισμάτων. Παύουν να υπάρχουν όταν η συνάρτηση επιστρέφει. Υποσυναρτήσεις : συναρτήσεις που καλούνται από άλλες συναρτήσεις. Παράδειγμα: Να γραφεί συνάρτηση binomial που να υπολογίζει τον διωνυμικό συντελεστή δύο μη αρνητικών ακεραίων n και k (όπου n k): n n! k k! ( n k)! Παρατηρούμε πως ο υπολογισμός παραγοντικού χρειάζεται τρεις φορές, άρα θα ήταν χρήσιμο να υλοποιηθεί σε μία «υποσυνάρτηση» την οποία θα χρησιμοποιεί η συνάρτηση binomial. ver. 150106 Τμήμα Μαθηματικών ΕΚΠΑ 4

ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 4 function f = fact(n) f=1; for i=2:n f=f*i; fact.m Οπότε, η συνάρτηση binomial: function x = binomial (a,b) x = fact(a) / (fact(b) * fact(a-b)); binomial.m Κλήση: >> binomial (10, 2) ans = 45 >> a = binomial (10, 3) a = 120 ver. 150106 Τμήμα Μαθηματικών ΕΚΠΑ 5

Σημειώματα Σημείωμα Αναφοράς Copyright Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών, Μιχάλης Δρακόπουλος, 2014. Μιχάλης Δρακόπουλος. «Πληροφορική Ι. Ενότητα 4: Συναρτήσεις». Έκδοση: 1.0. Αθήνα 2014. Διαθέσιμο από τη δικτυακή διεύθυνση: http://opencourses.uoa.gr/modules/document/?course=math105. Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εμπορική Χρήση Παρόμοια Διανομή 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] http://creativecommons.org/licenses/by-nc-sa/4.0/ Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί. Διατήρηση Σημειωμάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: το Σημείωμα Αναφοράς το Σημείωμα Αδειοδότησης τη δήλωση Διατήρησης Σημειωμάτων το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει) μαζί με τους συνοδευόμενους υπερσυνδέσμους.

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