Outline. 4 Object-Oriented Programming
|
|
- Ἄρτεμις Νατάσα Χριστόπουλος
- 7 χρόνια πριν
- Προβολές:
Transcript
1 Προγραμματισμός Ηλεκτρονικών Υπολογιστών Φιλοσοφίες γλωσσών προγραμματισμού Διδάσκων: Στάθης Ζάχος Επιμέλεια Διαφανειών: Μάκης Αρσένης CoReLab ΣΗΜΜΥ - Ε.Μ.Π. Ιανουάριος 2016 ιδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
2 Outline 1 Φιλοσοφία Γλωσσών Προγραμματισμού 2 Συναρτησιακός Προγραμματισμός (Functional Programming) 3 Λογικός Προγραμματισμός (Prolog) 4 Object-Oriented Programming ιδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
3 Προγραμματιστικά Μοντέλα Προγραμματιστικό Μοντέλο Γλώσσες Προστακτικός Προγραμματισμός FORTRAN, Algol, COBOL (Imperative Programming) Pascal, C, Ada, Pazcal Συναρτησιακός Προγραμματισμός LISP, ML, Scheme, Haskell (Functional Programming) Λογικός Προγραμματισμός Prolog (Logic Programming) Αντικειμενοστρεφής Προγραμματισμός Simula, Smalltalk, C++ (object-oriented programming) Java, C# ιδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
4 Outline 1 Φιλοσοφία Γλωσσών Προγραμματισμού 2 Συναρτησιακός Προγραμματισμός (Functional Programming) 3 Λογικός Προγραμματισμός (Prolog) 4 Object-Oriented Programming ιδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
5 No side-effects Σε μία γλώσσα συναρτησιακού προγραμματισμού, η αποτίμηση μιας συνάρτησης δίνει πάντα το ίδιο αποτέλεσμα για τις ίδιες τιμές των παραμέτρων της. Η σημαντική αυτή ιδιότητα δεν ισχύει κατ ανάγκη στις γλώσσες προστακτικού προγραμματισμού Στις προστακτικές γλώσσες αυτό συμβαίνει λόγω: Μεταβλητών που ορίζονται και αλλάζουν τιμές εκτός του σώματος της συνάρτησης (global variables) Εξάρτησης από την κατάσταση (state) του υπολογισμού Άλλων παρενεργειών (side-effects) που μπορεί να υπάρχουν στο πρόγραμμα Υπενθύμιση: Στα μαθηματικά οι συναρτήσεις εξαρτώνται μόνο από τα ορίσματά τους ιδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
6 No side-effects Σε μία γλώσσα συναρτησιακού προγραμματισμού, η αποτίμηση μιας συνάρτησης δίνει πάντα το ίδιο αποτέλεσμα για τις ίδιες τιμές των παραμέτρων της. Η σημαντική αυτή ιδιότητα δεν ισχύει κατ ανάγκη στις γλώσσες προστακτικού προγραμματισμού Στις προστακτικές γλώσσες αυτό συμβαίνει λόγω: Μεταβλητών που ορίζονται και αλλάζουν τιμές εκτός του σώματος της συνάρτησης (global variables) Εξάρτησης από την κατάσταση (state) του υπολογισμού Άλλων παρενεργειών (side-effects) που μπορεί να υπάρχουν στο πρόγραμμα Υπενθύμιση: Στα μαθηματικά οι συναρτήσεις εξαρτώνται μόνο από τα ορίσματά τους ιδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
7 No side-effects Σε μία γλώσσα συναρτησιακού προγραμματισμού, η αποτίμηση μιας συνάρτησης δίνει πάντα το ίδιο αποτέλεσμα για τις ίδιες τιμές των παραμέτρων της. Η σημαντική αυτή ιδιότητα δεν ισχύει κατ ανάγκη στις γλώσσες προστακτικού προγραμματισμού Στις προστακτικές γλώσσες αυτό συμβαίνει λόγω: Μεταβλητών που ορίζονται και αλλάζουν τιμές εκτός του σώματος της συνάρτησης (global variables) Εξάρτησης από την κατάσταση (state) του υπολογισμού Άλλων παρενεργειών (side-effects) που μπορεί να υπάρχουν στο πρόγραμμα Υπενθύμιση: Στα μαθηματικά οι συναρτήσεις εξαρτώνται μόνο από τα ορίσματά τους ιδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
8 No side-effects Σε μία γλώσσα συναρτησιακού προγραμματισμού, η αποτίμηση μιας συνάρτησης δίνει πάντα το ίδιο αποτέλεσμα για τις ίδιες τιμές των παραμέτρων της. Η σημαντική αυτή ιδιότητα δεν ισχύει κατ ανάγκη στις γλώσσες προστακτικού προγραμματισμού Στις προστακτικές γλώσσες αυτό συμβαίνει λόγω: Μεταβλητών που ορίζονται και αλλάζουν τιμές εκτός του σώματος της συνάρτησης (global variables) Εξάρτησης από την κατάσταση (state) του υπολογισμού Άλλων παρενεργειών (side-effects) που μπορεί να υπάρχουν στο πρόγραμμα Υπενθύμιση: Στα μαθηματικά οι συναρτήσεις εξαρτώνται μόνο από τα ορίσματά τους ιδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
9 No side-effects Σε μία γλώσσα συναρτησιακού προγραμματισμού, η αποτίμηση μιας συνάρτησης δίνει πάντα το ίδιο αποτέλεσμα για τις ίδιες τιμές των παραμέτρων της. Η σημαντική αυτή ιδιότητα δεν ισχύει κατ ανάγκη στις γλώσσες προστακτικού προγραμματισμού Στις προστακτικές γλώσσες αυτό συμβαίνει λόγω: Μεταβλητών που ορίζονται και αλλάζουν τιμές εκτός του σώματος της συνάρτησης (global variables) Εξάρτησης από την κατάσταση (state) του υπολογισμού Άλλων παρενεργειών (side-effects) που μπορεί να υπάρχουν στο πρόγραμμα Υπενθύμιση: Στα μαθηματικά οι συναρτήσεις εξαρτώνται μόνο από τα ορίσματά τους ιδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
10 No side-effects Σε μία γλώσσα συναρτησιακού προγραμματισμού, η αποτίμηση μιας συνάρτησης δίνει πάντα το ίδιο αποτέλεσμα για τις ίδιες τιμές των παραμέτρων της. Η σημαντική αυτή ιδιότητα δεν ισχύει κατ ανάγκη στις γλώσσες προστακτικού προγραμματισμού Στις προστακτικές γλώσσες αυτό συμβαίνει λόγω: Μεταβλητών που ορίζονται και αλλάζουν τιμές εκτός του σώματος της συνάρτησης (global variables) Εξάρτησης από την κατάσταση (state) του υπολογισμού Άλλων παρενεργειών (side-effects) που μπορεί να υπάρχουν στο πρόγραμμα Υπενθύμιση: Στα μαθηματικά οι συναρτήσεις εξαρτώνται μόνο από τα ορίσματά τους ιδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
11 Παραδείγματα Δήλωση Συναρτήσεων: inc n = n + 1 f t = t * inc t Δήλωση Τιμών: x = f 6 y = f (f 2) Τύποι: inc, f :: Int -> Int x, y :: Int ιδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
12 Παραδείγματα Δήλωση Συναρτήσεων: inc n = n + 1 f t = t * inc t Δήλωση Τιμών: x = f 6 y = f (f 2) Τύποι: inc, f :: Int -> Int x, y :: Int ιδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
13 Παραδείγματα Δήλωση Συναρτήσεων: inc n = n + 1 f t = t * inc t Δήλωση Τιμών: x = f 6 y = f (f 2) Τύποι: inc, f :: Int -> Int x, y :: Int ιδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
14 Αναγωγές inc n = n + 1 f t = t * inc t y = f (f 2) Παράδειγμα εσωτερικότερων αναγωγών: y f (f 2) f (2 * inc 2) f (2*(2+1)) f (2*3) f 6 6 * inc 6 6*(6+1) 6*7 42 Παράδειγμα εξωτερικότερων αναγωγών/οκνηρή αποτίμηση (lazy evalutation): y f (f 2) f 2 * inc (f 2) (2 * inc 2) * inc (2 * inc 2) (2*(2+1)) * inc (2*(2+1) (2*(2+1)) * (2 * (2+1) + 1) 42 ιδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
15 Αναγωγές inc n = n + 1 f t = t * inc t y = f (f 2) Παράδειγμα εσωτερικότερων αναγωγών: y f (f 2) f (2 * inc 2) f (2*(2+1)) f (2*3) f 6 6 * inc 6 6*(6+1) 6*7 42 Παράδειγμα εξωτερικότερων αναγωγών/οκνηρή αποτίμηση (lazy evalutation): y f (f 2) f 2 * inc (f 2) (2 * inc 2) * inc (2 * inc 2) (2*(2+1)) * inc (2*(2+1) (2*(2+1)) * (2 * (2+1) + 1) 42 ιδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
16 Αναγωγές inc n = n + 1 f t = t * inc t y = f (f 2) Παράδειγμα εσωτερικότερων αναγωγών: y f (f 2) f (2 * inc 2) f (2*(2+1)) f (2*3) f 6 6 * inc 6 6*(6+1) 6*7 42 Παράδειγμα εξωτερικότερων αναγωγών/οκνηρή αποτίμηση (lazy evalutation): y f (f 2) f 2 * inc (f 2) (2 * inc 2) * inc (2 * inc 2) (2*(2+1)) * inc (2*(2+1) (2*(2+1)) * (2 * (2+1) + 1) 42 ιδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
17 Επιπλέον παραδείγματα f(x, y) = if (x == 0) then 1 else f(x-1, f(x, y)) Η οκνηρή αποτίμηση δίνει π.χ.: f (2, 0) f (1, f (2, 0)) f (0, f (1, f (2, 0))) 1. ενώ με τις εσωτ. αναγωγές έχουμε: f (2, 0) f (1, f (2, 0)) f (1, f (1, f (2, 0)))... ιδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
18 Επιπλέον παραδείγματα f(x, y) = if (x == 0) then 1 else f(x-1, f(x, y)) Η οκνηρή αποτίμηση δίνει π.χ.: f (2, 0) f (1, f (2, 0)) f (0, f (1, f (2, 0))) 1. ενώ με τις εσωτ. αναγωγές έχουμε: f (2, 0) f (1, f (2, 0)) f (1, f (1, f (2, 0)))... ιδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
19 Επιπλέον παραδείγματα f(x, y) = if (x == 0) then 1 else f(x-1, f(x, y)) Η οκνηρή αποτίμηση δίνει π.χ.: f (2, 0) f (1, f (2, 0)) f (0, f (1, f (2, 0))) 1. ενώ με τις εσωτ. αναγωγές έχουμε: f (2, 0) f (1, f (2, 0)) f (1, f (1, f (2, 0)))... ιδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
20 Συναρτήσεις twice :: (Int -> Int, Int) -> Int twice (f, x) = f (f x) inc n = n + 1 plus2 x = twice (inc, x) plusn :: Int -> (Int -> Int) plusn n = f where f x = x + n ιδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
21 Currying add :: (Int, Int) -> Int add (x, y) = x + y Μπορεί να γραφεί διαφορετικά με την τεχνική Currying ως εξής: add :: Int -> (Int -> Int) add x = f where f y = x + y Δηλαδή η add δέχεται το πρώτο όρισμα x και επιστρέφει μια συνάρτηση η οποία δέχεται το δεύτερο όρισμα y και επιστρέφει το άθροισμα x + y. Ισχύει λοιπόν η παρακάτω ισοδυναμία: add (x, y) == (add x) y ιδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
22 Παραδείγματα factorial n = if n <= 1 then 1 else n * factorial (n-1) gcd (n, 0) = n gcd (n, m) = if (n < m) then gcd (m, n) else gcd (m, n mod m) ιδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
23 Συμπεράσματα Η απόδειξη της ορθότητας ενός προγράμματος μπορεί να γίνει εύκολα ελέγχοντας τις αντικαταστάσεις (αναγωγές). Η απόδειξη ορθότητας αναδρομικών συναρτήσεων γίνεται με χρήση μαθηματικής επαγωγής. Πλεονεκτήματα συναρτησιακού προγραμματισμού: Συντομία (2-10 φορές μικρότερος κώδικας) Ευκολία στην κατανόηση Λιγότερα σφάλματα εκτέλεσης Επαναχρησιμοποίηση, αφαίρεση, δόμηση Αυτόματη διαχείριση μνήμης Μειονεκτήματα Μειωμένη απόδοση στην εκτέλεση Μεγαλύτερες απαιτήσεις μνήμης ιδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
24 Συμπεράσματα Η απόδειξη της ορθότητας ενός προγράμματος μπορεί να γίνει εύκολα ελέγχοντας τις αντικαταστάσεις (αναγωγές). Η απόδειξη ορθότητας αναδρομικών συναρτήσεων γίνεται με χρήση μαθηματικής επαγωγής. Πλεονεκτήματα συναρτησιακού προγραμματισμού: Συντομία (2-10 φορές μικρότερος κώδικας) Ευκολία στην κατανόηση Λιγότερα σφάλματα εκτέλεσης Επαναχρησιμοποίηση, αφαίρεση, δόμηση Αυτόματη διαχείριση μνήμης Μειονεκτήματα Μειωμένη απόδοση στην εκτέλεση Μεγαλύτερες απαιτήσεις μνήμης ιδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
25 Συμπεράσματα Η απόδειξη της ορθότητας ενός προγράμματος μπορεί να γίνει εύκολα ελέγχοντας τις αντικαταστάσεις (αναγωγές). Η απόδειξη ορθότητας αναδρομικών συναρτήσεων γίνεται με χρήση μαθηματικής επαγωγής. Πλεονεκτήματα συναρτησιακού προγραμματισμού: Συντομία (2-10 φορές μικρότερος κώδικας) Ευκολία στην κατανόηση Λιγότερα σφάλματα εκτέλεσης Επαναχρησιμοποίηση, αφαίρεση, δόμηση Αυτόματη διαχείριση μνήμης Μειονεκτήματα Μειωμένη απόδοση στην εκτέλεση Μεγαλύτερες απαιτήσεις μνήμης Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
26 Συμπεράσματα Η απόδειξη της ορθότητας ενός προγράμματος μπορεί να γίνει εύκολα ελέγχοντας τις αντικαταστάσεις (αναγωγές). Η απόδειξη ορθότητας αναδρομικών συναρτήσεων γίνεται με χρήση μαθηματικής επαγωγής. Πλεονεκτήματα συναρτησιακού προγραμματισμού: Συντομία (2-10 φορές μικρότερος κώδικας) Ευκολία στην κατανόηση Λιγότερα σφάλματα εκτέλεσης Επαναχρησιμοποίηση, αφαίρεση, δόμηση Αυτόματη διαχείριση μνήμης Μειονεκτήματα Μειωμένη απόδοση στην εκτέλεση Μεγαλύτερες απαιτήσεις μνήμης Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
27 Συμπεράσματα Η απόδειξη της ορθότητας ενός προγράμματος μπορεί να γίνει εύκολα ελέγχοντας τις αντικαταστάσεις (αναγωγές). Η απόδειξη ορθότητας αναδρομικών συναρτήσεων γίνεται με χρήση μαθηματικής επαγωγής. Πλεονεκτήματα συναρτησιακού προγραμματισμού: Συντομία (2-10 φορές μικρότερος κώδικας) Ευκολία στην κατανόηση Λιγότερα σφάλματα εκτέλεσης Επαναχρησιμοποίηση, αφαίρεση, δόμηση Αυτόματη διαχείριση μνήμης Μειονεκτήματα Μειωμένη απόδοση στην εκτέλεση Μεγαλύτερες απαιτήσεις μνήμης Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
28 Συμπεράσματα Η απόδειξη της ορθότητας ενός προγράμματος μπορεί να γίνει εύκολα ελέγχοντας τις αντικαταστάσεις (αναγωγές). Η απόδειξη ορθότητας αναδρομικών συναρτήσεων γίνεται με χρήση μαθηματικής επαγωγής. Πλεονεκτήματα συναρτησιακού προγραμματισμού: Συντομία (2-10 φορές μικρότερος κώδικας) Ευκολία στην κατανόηση Λιγότερα σφάλματα εκτέλεσης Επαναχρησιμοποίηση, αφαίρεση, δόμηση Αυτόματη διαχείριση μνήμης Μειονεκτήματα Μειωμένη απόδοση στην εκτέλεση Μεγαλύτερες απαιτήσεις μνήμης Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
29 Συμπεράσματα Η απόδειξη της ορθότητας ενός προγράμματος μπορεί να γίνει εύκολα ελέγχοντας τις αντικαταστάσεις (αναγωγές). Η απόδειξη ορθότητας αναδρομικών συναρτήσεων γίνεται με χρήση μαθηματικής επαγωγής. Πλεονεκτήματα συναρτησιακού προγραμματισμού: Συντομία (2-10 φορές μικρότερος κώδικας) Ευκολία στην κατανόηση Λιγότερα σφάλματα εκτέλεσης Επαναχρησιμοποίηση, αφαίρεση, δόμηση Αυτόματη διαχείριση μνήμης Μειονεκτήματα Μειωμένη απόδοση στην εκτέλεση Μεγαλύτερες απαιτήσεις μνήμης Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
30 Συμπεράσματα Η απόδειξη της ορθότητας ενός προγράμματος μπορεί να γίνει εύκολα ελέγχοντας τις αντικαταστάσεις (αναγωγές). Η απόδειξη ορθότητας αναδρομικών συναρτήσεων γίνεται με χρήση μαθηματικής επαγωγής. Πλεονεκτήματα συναρτησιακού προγραμματισμού: Συντομία (2-10 φορές μικρότερος κώδικας) Ευκολία στην κατανόηση Λιγότερα σφάλματα εκτέλεσης Επαναχρησιμοποίηση, αφαίρεση, δόμηση Αυτόματη διαχείριση μνήμης Μειονεκτήματα Μειωμένη απόδοση στην εκτέλεση Μεγαλύτερες απαιτήσεις μνήμης Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
31 Outline 1 Φιλοσοφία Γλωσσών Προγραμματισμού 2 Συναρτησιακός Προγραμματισμός (Functional Programming) 3 Λογικός Προγραμματισμός (Prolog) 4 Object-Oriented Programming ιδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
32 Κεντρική Ιδέα Το πρόγραμμα είναι εκφρασμένο σε μια μορφή συμβολικής λογικής με δήλωση των σχέσεων μεταξύ των δεδομένων που διαχειρίζεται. Η εκτέλεση του προγράμματος ισοδυναμεί με τη διεξαγωγή συλλογισμών σε αυτή τη λογική. Βιβλιογραφία: W.F. Clocksin and C.S. Mellish, Programming in Prolog, Springer ιδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
33 Κεντρική Ιδέα Το πρόγραμμα είναι εκφρασμένο σε μια μορφή συμβολικής λογικής με δήλωση των σχέσεων μεταξύ των δεδομένων που διαχειρίζεται. Η εκτέλεση του προγράμματος ισοδυναμεί με τη διεξαγωγή συλλογισμών σε αυτή τη λογική. Βιβλιογραφία: W.F. Clocksin and C.S. Mellish, Programming in Prolog, Springer Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
34 Κεντρική Ιδέα Το πρόγραμμα είναι εκφρασμένο σε μια μορφή συμβολικής λογικής με δήλωση των σχέσεων μεταξύ των δεδομένων που διαχειρίζεται. Η εκτέλεση του προγράμματος ισοδυναμεί με τη διεξαγωγή συλλογισμών σε αυτή τη λογική. Βιβλιογραφία: W.F. Clocksin and C.S. Mellish, Programming in Prolog, Springer Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
35 Παράδειγμα Γεγονότα: male(john). male(george). female(mary). female(jenny). parent(john,george). parent(mary,george). parent(john,jenny). parent(mary,jenny). Κανόνες: father(x,y) :- parent(x,y), male(x). mother(x,y) :- parent(x,y), female(x). human(x) :- male(x). human(x) :- female(x). brother(x,y) :- male(x), parent(z,x), parent(z,y). sister(x,y) :- female(x), parent(z,x), parent(z,y). ιδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
36 Ερωτήσεις?- male(john). yes?- male(mary). no?- male(peter). no?- male(x). X = john ; X = george ; no?- brother(george,jenny). yes?- human(x). X = john; X = george; X = mary; X = jenny; no?- mother(x,george). X = mary; no?- sister(x,y). X = jenny, Y = george; X = jenny, Y = jenny; X = jenny, Y = george; X = jenny, Y = jenny; no ιδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
37 Παραδείγματα Ι engineer(x) :- graduate(x), experience(x). rational(x) :- X = A/B, integer(a), integer(b), not(b = 0). Μέγιστος Κοινός Διαιρέτης: gcd(x, 0, X). gcd(0, X, X). gcd(x, Y, D) :- X < Y, Y1 is Y mod X, gcd(x, Y1, D). gcd(x, Y, D) :- Y < X, gcd(y, X, D). ιδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
38 Παραδείγματα Ι engineer(x) :- graduate(x), experience(x). rational(x) :- X = A/B, integer(a), integer(b), not(b = 0). Μέγιστος Κοινός Διαιρέτης: gcd(x, 0, X). gcd(0, X, X). gcd(x, Y, D) :- X < Y, Y1 is Y mod X, gcd(x, Y1, D). gcd(x, Y, D) :- Y < X, gcd(y, X, D). ιδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
39 Παραδείγματα ΙΙ Παραγοντικό: factorial(0, 1). factorial(n, Result) :- N > 0, N1 is N-1, factorial(n1, Facmin), Result is Facmin*N. ιδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
40 Outline 1 Φιλοσοφία Γλωσσών Προγραμματισμού 2 Συναρτησιακός Προγραμματισμός (Functional Programming) 3 Λογικός Προγραμματισμός (Prolog) 4 Object-Oriented Programming ιδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
41 Object-Oriented Programming Γλώσσες Simula (Norway), Smalltalk (Xerox, California), C++ (Denmark), Eiffel (France), Java (Sun Microsystems), C# (Microsoft) Χαρακτηριστικά: messages αντί για procedures (functions) objects αντί για data classes (families of objects) αντί για types Information Hiding Data Abstraction Dynamic Binding Inheritance ιδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
42 Object-Oriented Programming Γλώσσες Simula (Norway), Smalltalk (Xerox, California), C++ (Denmark), Eiffel (France), Java (Sun Microsystems), C# (Microsoft) Χαρακτηριστικά: messages αντί για procedures (functions) objects αντί για data classes (families of objects) αντί για types Information Hiding Data Abstraction Dynamic Binding Inheritance ιδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
43 Object-Oriented Programming Γλώσσες Simula (Norway), Smalltalk (Xerox, California), C++ (Denmark), Eiffel (France), Java (Sun Microsystems), C# (Microsoft) Χαρακτηριστικά: messages αντί για procedures (functions) objects αντί για data classes (families of objects) αντί για types Information Hiding Data Abstraction Dynamic Binding Inheritance ιδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
44 Object-Oriented Programming Γλώσσες Simula (Norway), Smalltalk (Xerox, California), C++ (Denmark), Eiffel (France), Java (Sun Microsystems), C# (Microsoft) Χαρακτηριστικά: messages αντί για procedures (functions) objects αντί για data classes (families of objects) αντί για types Information Hiding Data Abstraction Dynamic Binding Inheritance ιδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
45 Object-Oriented Programming Γλώσσες Simula (Norway), Smalltalk (Xerox, California), C++ (Denmark), Eiffel (France), Java (Sun Microsystems), C# (Microsoft) Χαρακτηριστικά: messages αντί για procedures (functions) objects αντί για data classes (families of objects) αντί για types Information Hiding Data Abstraction Dynamic Binding Inheritance ιδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
46 Object-Oriented Programming Γλώσσες Simula (Norway), Smalltalk (Xerox, California), C++ (Denmark), Eiffel (France), Java (Sun Microsystems), C# (Microsoft) Χαρακτηριστικά: messages αντί για procedures (functions) objects αντί για data classes (families of objects) αντί για types Information Hiding Data Abstraction Dynamic Binding Inheritance ιδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
47 Object-Oriented Programming Γλώσσες Simula (Norway), Smalltalk (Xerox, California), C++ (Denmark), Eiffel (France), Java (Sun Microsystems), C# (Microsoft) Χαρακτηριστικά: messages αντί για procedures (functions) objects αντί για data classes (families of objects) αντί για types Information Hiding Data Abstraction Dynamic Binding Inheritance ιδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
48 Object-Oriented Programming Γλώσσες Simula (Norway), Smalltalk (Xerox, California), C++ (Denmark), Eiffel (France), Java (Sun Microsystems), C# (Microsoft) Χαρακτηριστικά: messages αντί για procedures (functions) objects αντί για data classes (families of objects) αντί για types Information Hiding Data Abstraction Dynamic Binding Inheritance ιδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
49 Object-Oriented Programming Η επίλυση προβλημάτων γίνεται μέσω αντικειμένων (objects) που αλληλεπιδρούν: δεδομένα που ξέρουν να εφαρμόζουν μεθόδους στον εαυτό τους. Οι μέθοδοι μιας κλάσης (class methods) ορίζουν λειτουργίες που η κλάση ξέρει πώς να κάνει δεν ορίζουν αντικείμενα της κλάσης. Οι κλήσεις μεθόδων είναι κάτι σαν τις συνήθεις κλήσεις συναρτήσεων στις μη αντικειμενοστρεφείς γλώσσες. Το πρόγραμμα είναι οργανωμένο ως ένα σύνολο από αλληλεπιδρώντα αντικείμενα Κάθε αντικείμενο περιέχει: δεδομένα (data), που χαρακτηρίζουν την κατάστασή του μεθόδους (methods), δηλαδή κώδικα που υλοποιεί τη συμπεριφορά του ιδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
50 Object-Oriented Programming Η επίλυση προβλημάτων γίνεται μέσω αντικειμένων (objects) που αλληλεπιδρούν: δεδομένα που ξέρουν να εφαρμόζουν μεθόδους στον εαυτό τους. Οι μέθοδοι μιας κλάσης (class methods) ορίζουν λειτουργίες που η κλάση ξέρει πώς να κάνει δεν ορίζουν αντικείμενα της κλάσης. Οι κλήσεις μεθόδων είναι κάτι σαν τις συνήθεις κλήσεις συναρτήσεων στις μη αντικειμενοστρεφείς γλώσσες. Το πρόγραμμα είναι οργανωμένο ως ένα σύνολο από αλληλεπιδρώντα αντικείμενα Κάθε αντικείμενο περιέχει: δεδομένα (data), που χαρακτηρίζουν την κατάστασή του μεθόδους (methods), δηλαδή κώδικα που υλοποιεί τη συμπεριφορά του ιδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
51 Object-Oriented Programming Η επίλυση προβλημάτων γίνεται μέσω αντικειμένων (objects) που αλληλεπιδρούν: δεδομένα που ξέρουν να εφαρμόζουν μεθόδους στον εαυτό τους. Οι μέθοδοι μιας κλάσης (class methods) ορίζουν λειτουργίες που η κλάση ξέρει πώς να κάνει δεν ορίζουν αντικείμενα της κλάσης. Οι κλήσεις μεθόδων είναι κάτι σαν τις συνήθεις κλήσεις συναρτήσεων στις μη αντικειμενοστρεφείς γλώσσες. Το πρόγραμμα είναι οργανωμένο ως ένα σύνολο από αλληλεπιδρώντα αντικείμενα Κάθε αντικείμενο περιέχει: δεδομένα (data), που χαρακτηρίζουν την κατάστασή του μεθόδους (methods), δηλαδή κώδικα που υλοποιεί τη συμπεριφορά του ιδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
52 Object-Oriented Programming Η επίλυση προβλημάτων γίνεται μέσω αντικειμένων (objects) που αλληλεπιδρούν: δεδομένα που ξέρουν να εφαρμόζουν μεθόδους στον εαυτό τους. Οι μέθοδοι μιας κλάσης (class methods) ορίζουν λειτουργίες που η κλάση ξέρει πώς να κάνει δεν ορίζουν αντικείμενα της κλάσης. Οι κλήσεις μεθόδων είναι κάτι σαν τις συνήθεις κλήσεις συναρτήσεων στις μη αντικειμενοστρεφείς γλώσσες. Το πρόγραμμα είναι οργανωμένο ως ένα σύνολο από αλληλεπιδρώντα αντικείμενα Κάθε αντικείμενο περιέχει: δεδομένα (data), που χαρακτηρίζουν την κατάστασή του μεθόδους (methods), δηλαδή κώδικα που υλοποιεί τη συμπεριφορά του ιδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
53 Object-Oriented Programming Η επίλυση προβλημάτων γίνεται μέσω αντικειμένων (objects) που αλληλεπιδρούν: δεδομένα που ξέρουν να εφαρμόζουν μεθόδους στον εαυτό τους. Οι μέθοδοι μιας κλάσης (class methods) ορίζουν λειτουργίες που η κλάση ξέρει πώς να κάνει δεν ορίζουν αντικείμενα της κλάσης. Οι κλήσεις μεθόδων είναι κάτι σαν τις συνήθεις κλήσεις συναρτήσεων στις μη αντικειμενοστρεφείς γλώσσες. Το πρόγραμμα είναι οργανωμένο ως ένα σύνολο από αλληλεπιδρώντα αντικείμενα Κάθε αντικείμενο περιέχει: δεδομένα (data), που χαρακτηρίζουν την κατάστασή του μεθόδους (methods), δηλαδή κώδικα που υλοποιεί τη συμπεριφορά του ιδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
54 Object-Oriented Programming class Circle { real x, y, r; Circle (real radius) { } x = 0; y = 0; r = radius; } real circumference() { return 2*3.14*r; } real area() { return 3.14*r*r; } ιδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
55 Ιεραρχίες κλάσεων Κληρονομικότητα (inheritance) Εξειδίκευση των αντικειμένων μιας κλάσης, υποστηρίζοντας πρόσθετη ή διαφοροποιημένη συμπεριφορά. ιδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
56 Βασικές Αρχές Object-Oriented Programming Αφαίρεση, δόμηση, επαναχρησιμοποίηση Κατά την ανάλυση και τη σχεδίαση: objects ανάλογα με interface και όχι με implementation. Απόκρυψη όσο το δυνατόν περισσότερο της υλοποίησης. Επαναχρησιμοποιήση των αντικείμενων. Ελαχιστοποιήση διαδράσεων (interactions) μεταξύ αντικειμένων. ιδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
57 Βασικές Αρχές Object-Oriented Programming Αφαίρεση, δόμηση, επαναχρησιμοποίηση Κατά την ανάλυση και τη σχεδίαση: objects ανάλογα με interface και όχι με implementation. Απόκρυψη όσο το δυνατόν περισσότερο της υλοποίησης. Επαναχρησιμοποιήση των αντικείμενων. Ελαχιστοποιήση διαδράσεων (interactions) μεταξύ αντικειμένων. ιδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
58 Βασικές Αρχές Object-Oriented Programming Αφαίρεση, δόμηση, επαναχρησιμοποίηση Κατά την ανάλυση και τη σχεδίαση: objects ανάλογα με interface και όχι με implementation. Απόκρυψη όσο το δυνατόν περισσότερο της υλοποίησης. Επαναχρησιμοποιήση των αντικείμενων. Ελαχιστοποιήση διαδράσεων (interactions) μεταξύ αντικειμένων. ιδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
59 Βασικές Αρχές Object-Oriented Programming Αφαίρεση, δόμηση, επαναχρησιμοποίηση Κατά την ανάλυση και τη σχεδίαση: objects ανάλογα με interface και όχι με implementation. Απόκρυψη όσο το δυνατόν περισσότερο της υλοποίησης. Επαναχρησιμοποιήση των αντικείμενων. Ελαχιστοποιήση διαδράσεων (interactions) μεταξύ αντικειμένων. ιδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
60 Βασικές Αρχές Object-Oriented Programming Αφαίρεση, δόμηση, επαναχρησιμοποίηση Κατά την ανάλυση και τη σχεδίαση: objects ανάλογα με interface και όχι με implementation. Απόκρυψη όσο το δυνατόν περισσότερο της υλοποίησης. Επαναχρησιμοποιήση των αντικείμενων. Ελαχιστοποιήση διαδράσεων (interactions) μεταξύ αντικειμένων. ιδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
61 Object-Oriented Programming Συνεπώς: Εύκολη και γρήγορη ανάπτυξη πρωτότυπων συστημάτων λογισμικού. Εύκολη τροποποίηση για επαναχρησιμοποίηση και εύκολος εντοπισμός λαθών. Ομως: απώλεια αποδοτικότητας, κόστος μεταγλωττισμού,... ιδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
62 Object-Oriented Programming Συνεπώς: Εύκολη και γρήγορη ανάπτυξη πρωτότυπων συστημάτων λογισμικού. Εύκολη τροποποίηση για επαναχρησιμοποίηση και εύκολος εντοπισμός λαθών. Ομως: απώλεια αποδοτικότητας, κόστος μεταγλωττισμού,... ιδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
63 Object-Oriented Programming Συνεπώς: Εύκολη και γρήγορη ανάπτυξη πρωτότυπων συστημάτων λογισμικού. Εύκολη τροποποίηση για επαναχρησιμοποίηση και εύκολος εντοπισμός λαθών. Ομως: απώλεια αποδοτικότητας, κόστος μεταγλωττισμού,... ιδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Προγραμματισμός Η/Υ Ιανουάριος / 25
(Imperative Programming) Pascal, C, Ada, Pazcal. (Functional Programming) Prolog (Logic Programming) (object-oriented programming) Java, C#
Φιλοσοφία Γλωσσών Προγραμματισμού Προγραμματιστικό Μοντέλο Γλώσσες Προστακτικός Προγραμματισμός FORTRAN, Algol, COBOL (Imperative Programming) Pascal, C, Ada, Pazcal Συναρτησιακός Προγραμματισμός LISP,
Διαβάστε περισσότεραΚΥΡΙΑ ΜΟΝΤΕΛΑ ΓΛΩΣΣΩΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ
ΚΥΡΙΑ ΜΟΝΤΕΛΑ ΓΛΩΣΣΩΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ 27 Κύρια προγραμματιστικά μοντέλα (1) Προστακτικός προγραμματισμός (imperative programming) FORTRAN, Algol, COBOL, BASIC, C, Pascal, Modula-2, Ada Συναρτησιακός προγραμματισμός
Διαβάστε περισσότεραΜοντέλα Προγραµµατισµού
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ http://www.corelab.ece.ntua.gr/~pagour/introcs/shmmy/ Επιµέλεια: (nickie@softlab.ntua.gr) Συναρτησιακός προγραµµατισµός Λογικός προγραµµατισµός Αντικειµενοστρεφής
Διαβάστε περισσότεραΤεχνολογία Λογισµικού Ι Κεφάλαιο 5
ΕΛΛΗΝΙΚΟ ΑΝΟΙΧΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Πρόγραµµα σπουδών "ΠΛΗΡΟΦΟΡΙΚΗ" - Θ.Ε. ΠΛΗ11 Τεχνολογία Λογισµικού Ι Κεφάλαιο 5 Βασίλειος Βεσκούκης ιδάκτωρ Ηλεκτρολόγος Μηχανικός και Μηχανικός Υπολογιστών v.vescoukis@cs.ntua.gr
Διαβάστε περισσότεραΠληροφορική 2. Γλώσσες Προγραμματισμού
Πληροφορική 2 Γλώσσες Προγραμματισμού 1 2 Γλώσσες προγραμματσιμού Επιτρέπουν την κωδικοποίηση των αλγορίθμων Η εκτέλεση ενός προγράμματος θα πρέπει να δίνει τα ίδια αποτελέσματα με την νοητική εκτέλεση
Διαβάστε περισσότεραΓλώσσες προγραµµατισµού. Ανάπτυξη Συστηµάτων Λογισµικού
ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ http://courses.softlab.ntua.gr/softeng/ ιδάσκοντες: (nickie@softlab.ntua.gr) Βασίλης Βεσκούκης (bxb@softlab.ntua.gr) Γλώσσες Προγραµµατισµού και Ανάπτυξη Συστηµάτων Λογισµικού ΤΛ
Διαβάστε περισσότεραΓλώσσες Προγραμματισμού: Θεωρητικό Υπόβαθρο και Μοντέλα
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Επιμέλεια και παρουσίαση: (kostis@cs.ntua.gr) Αρχικές διαφάνειες: Νίκος Παπασπύρου (nickie@softlab.ntua.gr) Γλώσσες Προγραμματισμού: Θεωρητικό Υπόβαθρο και Μοντέλα
Διαβάστε περισσότεραΑΡΦΕ ΑΝΣΙΚΕΙΜΕΝΟΣΡΕΥΟΤ ΠΡΟΓΡΑΜΜΑΣΙΜΟΤ. Ιωάννης Φατζηλυγερούδης Αναπληρωτής Καθηγητής Τμήμα Μηχ/κών Η/Υ και Πληροφορικής Πανεπιστήμιο Πατρών
ΑΡΦΕ ΑΝΣΙΚΕΙΜΕΝΟΣΡΕΥΟΤ ΠΡΟΓΡΑΜΜΑΣΙΜΟΤ Ιωάννης Φατζηλυγερούδης Αναπληρωτής Καθηγητής Τμήμα Μηχ/κών Η/Υ και Πληροφορικής Πανεπιστήμιο Πατρών ΜΟΡΥΕ ΠΡΟΓΡΑΜΜΑΣΙΜΟΤ Διαδικασιακός ή Διαδικαστικός (Procedural)
Διαβάστε περισσότεραFORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016
FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016 M8 Αντικειμενοστραφής Προγραμματισμός Δρ. Γεώργιος Παπαλάμπρου Επικ. Καθηγητής ΕΜΠ Εργαστήριο Ναυτικής Μηχανολογίας george.papalambrou@lme.ntua.gr
Διαβάστε περισσότεραΚεφάλαιο 1: Εισαγωγή. Αρχές Γλωσσών και Προγραμματισμού και Μεταφραστών. Γιάννης Γαροφαλάκης ΤΜΗΥΠ - Πανεπιστήμιο Πατρών
Κεφάλαιο 1: Εισαγωγή Αρχές Γλωσσών και Προγραμματισμού και Μεταφραστών Εισαγωγή (1) Γιατί υπάρχουν τόσες πολλές Γλώσσες Προγραμματισμού (ΓΠ); o Εξέλιξη έχουμε μάθει καλύτερους τρόπους να κάνουμε πράγματα
Διαβάστε περισσότεραΕισαγωγή στο Συναρτησιακό Προγραμματισμό
Εισαγωγή στο Συναρτησιακό Προγραμματισμό Γιάννης Κασσιός Σε αυτό το μάθημα θα εξερευνήσουμε ένα σπουδαίο μοντέλο προγραμματισμού, το συναρτησιακό προγραμματισμό. Θα δούμε το συναρτησιακό προγραμματισμό
Διαβάστε περισσότεραΠρογραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής
Προγραμματισμός Η/Υ Προτεινόμενα θέματα εξετάσεων Εργαστήριο Μέρος 1 ό ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής Ιανουάριος 2011 Καλογιάννης Γρηγόριος Επιστημονικός/ Εργαστηριακός
Διαβάστε περισσότεραΚεφάλαιο 7: Υποπρογράμματα. Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών
Κεφάλαιο 7: Υποπρογράμματα Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών Ορισμός Αφαίρεση με χρήση υποπρογραμμάτων (subprogram abstraction) είναι η αντιστοίχιση ενός συνόλου εισόδων σε ένα σύνολο εξόδων
Διαβάστε περισσότεραΟντοκεντρικός Προγραμματισμός
Οντοκεντρικός Προγραμματισμός Ενότητα 1: Αντικειμενοστραφής Προγραμματισμός Εισαγωγή OBJECT-ORIENTED PROGRAMMING ΔΙΔΑΣΚΟΝΤΕΣ: Iωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ
Διαβάστε περισσότεραΚεφάλαιο 7: Υπορουτίνες
Κεφάλαιο 7: Υπορουτίνες Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών Ορισμός Αφαίρεση με χρήση υπορουτινών (subroutine abstraction) είναι η αντιστοίχιση ενός συνόλου εισόδων σε ένα σύνολο εξόδων που μπορεί
Διαβάστε περισσότεραΑρχές Προγραμματισμού Υπολογιστών
Αρχές Προγραμματισμού Υπολογιστών Ανάπτυξη Προγράμματος Β ΕΠΑΛ Τομέας Πληροφορικής Βελώνης Γεώργιος Καθηγητής Πληροφορικής ΠΕ20 Κύκλος ανάπτυξης προγράμματος/λογισμικού Η διαδικασία ανάπτυξης λογισμικού,
Διαβάστε περισσότεραΑνάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό Μάριος Αραποστάθης Καθηγητής πληροφορικής Βαρβάκειου Λύκειου http://users.sch.gr/mariosarapostathis 6.1 Η έννοια του
Διαβάστε περισσότεραΜαλούτα Θεανώ Σελίδα 1
ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Α. ΕΡΩΤΗΣΕΙΣ ΘΕΩΡΙΑΣ ΦΥΛΛΑΔΙΟ 6 ο ( Ενότητες 2.3 ) 1.Τι είναι πρόγραμμα; 2. Ποια είναι τα πλεονεκτήματα των γλωσσών υψηλού επιπέδου σε σχέση με τις γλώσσες
Διαβάστε περισσότεραΔιάλεξη 2η: Αλγόριθμοι και Προγράμματα
Διάλεξη 2η: Αλγόριθμοι και Προγράμματα Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα
Διαβάστε περισσότερα10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.
1. Δώστε τον ορισμό του προβλήματος. 2. Σι εννοούμε με τον όρο επίλυση ενός προβλήματος; 3. Σο πρόβλημα του 2000. 4. Σι εννοούμε με τον όρο κατανόηση προβλήματος; 5. Σι ονομάζουμε χώρο προβλήματος; 6.
Διαβάστε περισσότερα<<ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ ΜCs>> 1
ΚΕΦΑΛΑΙΟ 7 ο ΠΡΟΓΡΑΜΜΑ : Το πρόγραμμα αποτελείται από μια σειρά οδηγιών, που ονομάζονται εντολές, για την εκτέλεση τέτοιου είδους πράξεων, καθώς επίσης και από ένα σύνολο πρόσθετων οδηγιών ελέγχου, που
Διαβάστε περισσότεραΚεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος
Κεφάλαιο 2.3: Προγραμματισμός 1 2.3.1 Αναφορά σε γλώσσες προγραμματισμού και «Προγραμματιστικά Υποδείγματα» 2.3.1.1 Πρόγραμμα και Γλώσσες Προγραμματισμού Πρόγραμμα: σύνολο εντολών που χρειάζεται να δοθούν
Διαβάστε περισσότεραΕισαγωγή στις Αρχές της Επιστήμης των ΗΥ
Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ 2.3.1.1. Παπαγιάννη Νάσια Ηλεκτρολόγος Μηχανικός και Μηχανικός Υπολογιστών ΕΜΠ 1 περιλαμβάνει: Η έννοια του προγράμματος Επίλυση προβλήματος 1. Ακριβή προσδιορισμό
Διαβάστε περισσότεραΘεωρητικό Υπόβαθρο και Μοντέλα
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Επιμέλεια και παρουσίαση: (kostis@cs.ntua.gr) Αρχικές διαφάνειες: Νίκος Παπασπύρου (nickie@softlab.ntua.gr) Γλώσσες Προγραμματισμού: Θεωρητικό Υπόβαθρο και Μοντέλα
Διαβάστε περισσότεραΜετάφραση προγραμμάτων
Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άδεια χρήσης άλλου τύπου, αυτή πρέπει να αναφέρεται ρητώς. Μετάφραση
Διαβάστε περισσότεραΓλώσσες Προγραμματισμού: Θεωρητικό Υπόβαθρο και Μοντέλα
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Επιμέλεια και παρουσίαση: Αρχικές διαφάνειες: Νίκος Παπασπύρου (kostis@cs.ntua.gr) (nickie@softlab.ntua.gr) Γλώσσες Προγραμματισμού: Θεωρητικό Υπόβαθρο και Μοντέλα
Διαβάστε περισσότεραΑρχές Γλωσσών Προγραμματισμού και Μεταφραστών
Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών Ενότητα 7: Υπορουτίνες Καθ. Γιάννης Γαροφαλάκης Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ και Πληροφορικής Ορισμός Αφαίρεση με χρήση υπορουτινών (subroutine abstraction)
Διαβάστε περισσότεραΚεφάλαιο 1 Προγραμματισμός Υπολογιστή. Εφαρμογές Πληροφορικής Κεφ. 7 Καραμαούνας Πολύκαρπος 1
Κεφάλαιο 1 Προγραμματισμός Υπολογιστή Καραμαούνας Πολύκαρπος 1 7.1 Η προγραμματιζόμενη μηχανή Από τις βασικότερες διαφορές ανάμεσα στον υπολογιστή και στις περισσότερες ηλεκτρονικές συσκευές είναι η δυνατότητα
Διαβάστε περισσότεραΕλληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 3 : Γλώσσες προγραμματισμού. Δρ.
1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Πληροφορική II Ενότητα 3 : Γλώσσες προγραμματισμού Δρ. Γκόγκος Χρήστος 2 Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Τμήμα Χρηματοοικονομικής
Διαβάστε περισσότεραΕισαγωγή στην επιστήμη των υπολογιστών
Εισαγωγή στην επιστήμη των υπολογιστών Λογισμικό Υπολογιστών Γλώσσες Προγραμματισμού 1 Εξέλιξη Οι γλώσσες προγραμματισμού είναι σύνολα από προκαθορισμένες λέξεις οι οποίες συνδυάζονται σε προγράμματα σύμφωνα
Διαβάστε περισσότεραΑρχές Γλωσσών Προγραμματισμού και Μεταφραστών
Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών Ενότητα 1: Εισαγωγή Καθ. Γιάννης Γαροφαλάκης Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ και Πληροφορικής Εισαγωγή (1) Γιατί υπάρχουν τόσες πολλές Γλώσσες Προγραμματισμού
Διαβάστε περισσότεραΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ
Κεφάλαιο 7 ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ Ερωτήσεις 1. Να αναφέρετε διαφορές μεταξύ γλωσσών μηχανής και γλωσσών χαμηλού επιπέδου. Οι γλώσσες μηχανής κωδικοποιούν τις εντολές τους με ομάδες
Διαβάστε περισσότεραΜέρος Α. Λογισµικό & Προγράµµατα συστήµατος και εφαρµογών ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ. Το σηµερινό µάθηµα. Λογισµικό συστηµάτων & εφαρµογών
ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΟΙΚΟΝΟΜΙΑΣ ΚΑΙ ΙΟΙΚΗΣΗΣ Το σηµερινό µάθηµα ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ιδάσκων: Πέτρος Βασιλικός Λογισµικό Υπολογιστικών Συστηµάτων Λογισµικό & Προγράµµατα συστηµάτων
Διαβάστε περισσότεραΑντικειμενοστρέφεια. Henri Matisse, Harmony in Red, Κωστής Σαγώνας Νίκος Παπασπύρου
Αντικειμενοστρέφεια Henri Matisse, Harmony in Red, 1908 Κωστής Σαγώνας Νίκος Παπασπύρου Ορισμοί αντικειμενοστρέφειας Ποιοι είναι οι ορισμοί των παρακάτω; Αντικειμενοστρεφής
Διαβάστε περισσότεραΑυτόματα και Υπολογιστικά Μοντέλα Automata and Models of Computation
Αυτόματα και Υπολογιστικά Μοντέλα Automata and Models of Computation Διδάσκων: Στάθης Ζάχος Επιμέλεια Διαφανειών: Μάκης Αρσένης CoReLab ΣΗΜΜΥ - Ε.Μ.Π. Φεβρουάριος 2017 Διδάσκων: Στάθης Ζάχος ( CoReLab
Διαβάστε περισσότεραΓλώσσες Προγραμματισμού Μεταγλωττιστές
Γλώσσες Προγραμματισμού Μεταγλωττιστές Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου Δομή Γλώσσες Προγραμματισμού Εισαγωγικά Γλώσσα Μηχανής Γλώσσες υψηλού επιπέδου Μεταγλωττιστές
Διαβάστε περισσότερα02 Αντικειμενοστρεφής Προγραμματισμός
02 Αντικειμενοστρεφής Προγραμματισμός Τεχνολογία Λογισμικού Τμήμα Πληροφορικής & Τηλεπικοινωνιών, ΕΚΠΑ Εαρινό εξάμηνο 2016 17 Δρ. Κώστας Σαΐδης saiko@di.uoa.gr Αντικειμενοστρέφεια Στον προγραμματισμό object
Διαβάστε περισσότεραΕισαγωγή στην Πληροφορική & τον Προγραμματισμό
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Εισαγωγή στην Πληροφορική & τον Προγραμματισμό Ενότητα 4 η : Αλγόριθμος & Πρόγραμμα Ι. Ψαρομήλιγκος Χ. Κυτάγιας Τμήμα Διοίκησης
Διαβάστε περισσότεραΚεφάλαιο 9 Συναρτησιακός προγραμματισμός Υπολογισμός με συναρτήσεις
Κεφάλαιο 9 Συναρτησιακός προγραμματισμός Υπολογισμός με συναρτήσεις Σύνοψη Σκοπός του κεφαλαίου αυτού είναι η εισαγωγή του αναγνώστη στη φιλοσοφία του συναρτησιακού προγραμματισμού. Ο συναρτησιακός προγραμματισμός
Διαβάστε περισσότεραΚεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ( Απαντήσεις & Λύσεις Βιβλίου) 1. Σκοποί κεφαλαίου Κύκλος ανάπτυξης προγράµµατος Κατηγορίες γλωσσών προγραµµατισµού
Διαβάστε περισσότεραΟντοκεντρικός Προγραμματισμός
Οντοκεντρικός Προγραμματισμός Ενότητα 5: H ΓΛΩΣΣΑ C++ Εισαγωγή στην C++ ΔΙΔΑΣΚΟΝΤΕΣ:Iωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής H Γλώσσα C++ ΙΣΤΟΡΙΑ 1967:
Διαβάστε περισσότεραFORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2017
FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2017 M8 Αντικειμενοστραφής Προγραμματισμός Γεώργιος Παπαλάμπρου Επικ. Καθηγητής ΕΜΠ Εργαστήριο Ναυτικής Μηχανολογίας george.papalambrou@lme.ntua.gr ΕΜΠ/ΣΝΜΜ
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Η εξέλιξη των γλωσσών προγραμματισμού Η εξέλιξη των γλωσσών προγραμματισμού είναι μια διαδικασία αφαίρεσης Στην αρχή ένα πρόγραμμα ήταν
Διαβάστε περισσότεραΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. 03/01/09 Χαράλαμπος Τζόκας 1
ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 03/01/09 Χαράλαμπος Τζόκας 1 Πρόγραμμα - Προγραμματισμός Πρόγραμμα: Σύνολο εντολών που πρέπει να δοθούν στον Υπολογιστή, ώστε να υλοποιηθεί ο αλγόριθμος της επίλυσης
Διαβάστε περισσότεραΑνάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον
Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Κεφάλαιο 6ο Εισαγωγή στον Προγραµµατισµό Μέρος Πρώτο (6.1, 6.2 και 6.3) Α. Ερωτήσεις Σωστού Λάθους 1. Η γλώσσα µηχανής είναι µία γλώσσα υψηλού επιπέδου.
Διαβάστε περισσότεραΑναδρομή Ανάλυση Αλγορίθμων
Αναδρομή Ανάλυση Αλγορίθμων Παράδειγμα: Υπολογισμός του παραγοντικού Ορισμός του n! n! = n x (n - 1) x x 2 x 1 Ο παραπάνω ορισμός μπορεί να γραφεί ως n! = 1 αν n = 0 n x (n -1)! αλλιώς Παράδειγμα (συνέχ).
Διαβάστε περισσότεραΕισαγωγή στην επιστήμη των υπολογιστών. Λογισμικό Υπολογιστών Κεφάλαιο 9ο Γλώσσες Προγραμματισμού
Εισαγωγή στην επιστήμη των υπολογιστών Λογισμικό Υπολογιστών Κεφάλαιο 9ο Γλώσσες Προγραμματισμού 1 Εξέλιξη Οι γλώσσες προγραμματισμού είναι σύνολα από προκαθορισμένες λέξεις οι οποίες συνδυάζονται σε προγράμματα
Διαβάστε περισσότεραΕαρινό. Ύλη εργαστηρίου, Ασκήσεις Java
Εξάμηνο Μάθημα Τίτλος 2017 2018 Εαρινό Αντικειμενοστραφής Προγραμματισμός Ι Ύλη εργαστηρίου, Ασκήσεις Java Ημερομηνία Εργαστήριο 5 ο Α. Ύλη εργαστηρίου 5.1 Έννοιες αντικειμενοστραφούς προγραμματισμού,
Διαβάστε περισσότερα3 Αλληλεπίδραση Αντικειμένων
Αφαίρεση και Αρθρωσιμότητα 3 Αλληλεπίδραση Αντικειμένων Πώς συνεργάζονται τα αντικείμενα που δημιουργούμε Αφαίρεση (abstraction) είναι η δυνατότητα να αγνοούμε τις λεπτομέρειες και να εστιάζουμε την προσοχή
Διαβάστε περισσότεραΚΕΦΑΛΑΙΟ 2: Δηλωτικός Προγραμματισμός
ΚΕΦΑΛΑΙΟ 2: Δηλωτικός Προγραμματισμός Λέξεις Κλειδιά Διαδικαστικός προγραμματισμός, Δηλωτικός προγραμματισμός, Διαδικαστική γλώσσα προγραμματισμού, Προστακτική γλώσσα προγραμματισμού, Δηλωτική γλώσσα προγραμματισμού.
Διαβάστε περισσότεραΑφαίρεση στον FP. Πολυμορφισμός Συναρτήσεις υψηλότερης τάξης Οκνηρός και Άπληστος Υπολογισμός
Αφαίρεση στον FP Πολυμορφισμός Συναρτήσεις υψηλότερης τάξης Οκνηρός και Άπληστος Υπολογισμός Πολυμορφισμός Θα χρησιμοποιήσουμε σαν παράδειγμα τη συνάρτηση ταυτότητας Ι, που ορίζεται ως: fun I x = x Ο ορισμός
Διαβάστε περισσότεραΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΣΚΗΣΕΙΣ 6 ΟΥ ΚΕΦΑΛΑΙΟΥ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΡΩΤΗΣΕΙΣ ΣΩΣΤΟ ΛΑΘΟΣ Σημειώστε αν είναι σωστή ή
Διαβάστε περισσότεραΓλώσσες υψηλού επιπέδου Περιέχουν περισσότερες εντολές για την εκτέλεση πολύπλοκων εργασιών Τα προγράµµατα µεταφράζονται σε γλώσσα µηχανής είτε από το
Σηµαντικά σηµεία κεφαλαίου Τα τρία στάδια επίλυσης ενός προβλήµατος: Ακριβής προσδιορισµό του προβλήµατος Ανάπτυξη του αντίστοιχου αλγορίθµου. ιατύπωση του αλγορίθµου σε κατανοητή µορφή από τον υπολογιστή.
Διαβάστε περισσότεραΕισαγωγή στον προγραμματισμό
Ενότητες: Εισαγωγή στον προγραμματισμό Η έννοια του προγράμματος Ιστορική αναδρομή Φυσικές και τεχνητές γλώσσες Τεχνικές σχεδίασης προγραμμάτων Ιεραρχική Σχεδίαση Τμηματικός Προγραμματισμός Δομημένος προγραμματισμός
Διαβάστε περισσότεραΜεθοδολογία Προγραμματισμού
Μεθοδολογία Προγραμματισμού Εισαγωγή στo συναρτησιακό προγραμματισμό με Java Νικόλαος Πεταλίδης Τμήμα Μηχανικών Η/Υ ΤΕΙ Κεντρικής Μακεδονίας Εισαγωγή Εαρινό Εξάμηνο Ν Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας)
Διαβάστε περισσότεραΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Μάθημα 4ο Τμήμα Διοίκησης Επιχειρήσεων α εξάμηνο Β. Φερεντίνος Συναρτήσεις (functions) 56 Τεμαχισμός του προγράμματος σε μικρότερα κομμάτια που είναι πιο κατανοητά, πιο εύκολα
Διαβάστε περισσότεραΠρογραμματισμός και Εφαρμογές Υπολογιστών
Προγραμματισμός και Εφαρμογές Υπολογιστών Ενότητα 1: Αλγόριθμοι και Επίλυση Προβλημάτων Τμήμα: Αγροτικής Οικονομίας & Ανάπτυξης Διδάσκων: Κ.Π. Γιαλούρης Μαθησιακοί Στόχοι Ενότητας Απόκτηση αναλυτικής και
Διαβάστε περισσότεραΣχήματα McCarthy I. Το σχήμα McCarthy είναι ένα γενικότερο προγραμματιστικό σχήμα:
Σχήματα McCarthy I Το σχήμα McCarthy είναι ένα γενικότερο προγραμματιστικό σχήμα: f(x, y) = if g(...) = 0 then h(...) else k(...) όπου g(...), h(...) και k(...) είναι όροι-συναρτήσεις που κατασκευάζονται
Διαβάστε περισσότεραΚεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού
Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού Προπτυχιακό μάθημα Αρχές Γλωσσών Προγραμματισμού Π. Ροντογιάννης 1 Μεταγλωττιστής Πρόγραμμα Διαβάζει προγράμματα δεδομένης γλώσσας (πηγαία γλώσσα) και τα μετατρέπει
Διαβάστε περισσότεραΕισαγωγή στον Προγραμματισμό
Εισαγωγή στον Προγραμματισμό 6.1 Η έννοια του προγράμματος Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει, τρία σημαντικά στάδια: 1. Τον ακριβή προσδιορισμό του προβλήματος. 2. Την ανάπτυξη
Διαβάστε περισσότεραΑ. Ερωτήσεις Ανάπτυξης
οµηµένος Προγραµµατισµός-Κεφάλαιο 7 Σελίδα 1 α ό 10 ΕΝΟΤΗΤΑ ΙΙΙ (ΠΡΟΓΡΑΜΜΑΤΑ) ΚΕΦΑΛΑΙΟ 7: Είδη, Τεχνικές και Περιβάλλοντα Προγραµµατισµού Α. Ερωτήσεις Ανάπτυξης 1. Τι ονοµάζουµε γλώσσα προγραµµατισµού;
Διαβάστε περισσότεραΑπό τον αλγόριθμο στην ανάπτυξη προγράμματος
Από τον αλγόριθμο στην ανάπτυξη προγράμματος 2 [ 23 ] 2. Από τον αλγόριθμο στην ανάπτυξη προγράμματος Στόχοι Μετά την μελέτη του κεφαλαίου θα μπορούμε να: περιγράφουμε την πορεία από τον αλγόριθμο στο
Διαβάστε περισσότεραΠΡΟΧΩΡΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Χαρίδημος Κονδυλάκης Εισαγωγή
ΠΡΟΧΩΡΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Χαρίδημος Κονδυλάκης Εισαγωγή ΟΡΓΑΝΩΣΗ ΜΑΘΗΜΑΤΟΣ Πληροφορίες Διδάσκοντα Διδάσκοντας: Χαρίδημος Κονδυλάκης Email: Kondylak@ics.forth.gr Εβδομαδιαίες Ώρες Διδασκαλίας: 2 ώρες
Διαβάστε περισσότεραΑντικειμενοστρεφής Προγραμματισμός -Python. Κ.Π. Γιαλούρης
Κ.Π. Γιαλούρης Στόχοι του μαθήματος Απόκτηση αναλυτικής και αλγοριθμικής σκέψης Απόκτηση δεξιοτήτων επίλυσης προβλημάτων Γνώση προγραμματισμού σε Python 2 Στόχοι του σημερινού μαθήματος Κατανόηση της έννοιας
Διαβάστε περισσότερατις αναδρομικές ακολουθίες (recursive sequences) στις οποίες ορίζαμε
Κεφάλαιο 9: Αναδρομή Ο τρόπος με τον οποίο σκεφτήκαμε και σχεδιάσαμε τις συναρτήσεις στο προηγούμενο κεφάλαιο ακολουθούσε τη φιλοσοφία του προγραμματισμού που είχαμε αναπτύξει σε όλο το προηγούμενο βιβλίο.
Διαβάστε περισσότεραΠρογραμματισμό για ΗΜΥ
ΕΠΛ 034: Εισαγωγή στον Προγραμματισμό για ΗΜΥ Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 5 Συναρτήσεις Θέματα ιάλεξης Χρησιμότητα Συναρτήσεων Σύνταξη
Διαβάστε περισσότερα6. 1 Η έννοια του προγράμματος
6. 1 Η έννοια του προγράμματος Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει, τρία στάδια. 1.Τον ακριβή προσδιορισμό του προβλήματος. 2.Την ανάπτυξη του αντίστοιχου αλγορίθμου. 3.Τη διατύπωση
Διαβάστε περισσότεραΒασικές Αρχές Προγραμματισμού
Βασικές Αρχές Προγραμματισμού Κεφάλαιο 1 Εισαγωγή Προβλήματα Πρόβλημα: Μία κατάσταση η οποία χρήζει αντιμετώπισης, απαιτεί λύση, η δε λύση της οποίας δεν είναι γνωστή, ούτε προφανής Π.χ. Το πρόβλημα του
Διαβάστε περισσότεραΜεταγλωττιστές Βελτιστοποίηση
Μεταγλωττιστές Βελτιστοποίηση Νίκος Παπασπύρου nickie@softlab.ntua.gr Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχ. Υπολογιστών Εργαστήριο Τεχνολογίας Λογισμικού Πολυτεχνειούπολη, 15780
Διαβάστε περισσότεραΑΕΠΠ Ερωτήσεις θεωρίας
ΑΕΠΠ Ερωτήσεις θεωρίας Κεφάλαιο 1 1. Τα δεδομένα μπορούν να παρέχουν πληροφορίες όταν υποβάλλονται σε 2. Το πρόβλημα μεγιστοποίησης των κερδών μιας επιχείρησης είναι πρόβλημα 3. Για την επίλυση ενός προβλήματος
Διαβάστε περισσότεραΠρογραµµατιστικές τεχνικές
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόµων Τοπογράφων Μηχανικών Προγραµµατιστικές τεχνικές Βασίλειος Βεσκούκης ρ. Ηλεκτρολόγος Μηχανικός & Μηχανικός Υπολογιστών ΕΜΠ v.vescoukis@cs.ntua.gr Ρωµύλος Κορακίτης
Διαβάστε περισσότεραΚεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19
Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών Κεφ. 2 Θεωρητική Επιστήμη Υπολογιστών 2.3.1.1 Έννοια προγράμματος Τι είναι πρόγραμμα και τι προγραμματισμός; Πρόγραμμα είναι το σύνολο εντολών που χρειάζεται
Διαβάστε περισσότερα2.1 Αντικειµενοστρεφής προγραµµατισµός
2.1 Αντικειµενοστρεφής προγραµµατισµός Στον αντικειµενοστρεφή προγραµµατισµό (object oriented programming, OOP) ένα πρόγραµµα υπολογιστή είναι ένα σύνολο αλληλεπιδρώντων αντικειµένων. Μπορεί να ειπωθεί
Διαβάστε περισσότεραΑρχές Τεχνολογίας Λογισμικού Εργαστήριο
Αρχές Τεχνολογίας Λογισμικού Εργαστήριο Κωδικός Μαθήματος: TP323 Ώρες Εργαστηρίου: 2/εβδομάδα (Διαφάνειες Νίκου Βιδάκη) 1 JAVA Inheritance Εβδομάδα Νο. 3 2 Προηγούμενο μάθημα (1/2) Τι είναι αντικείμενο?
Διαβάστε περισσότεραΠεριεχόµενα. Ανασκόπηση - Ορισµοί. Ο κύκλος ανάπτυξης προγράµµατος. Γλώσσες Προγραµµατισµού Ασκήσεις
Προγραµµατισµός Η/Υ Ανασκόπηση - Ορισµοί Περιεχόµενα Ο κύκλος ανάπτυξης προγράµµατος Περιγραφή προβλήµατος Ανάλυση προβλήµατος Λογικό ιάγραµµα Ψευδοκώδικας Κωδικοποίηση Συντήρηση Γλώσσες Προγραµµατισµού
Διαβάστε περισσότεραΚΕΦΑΛΑΙΟ 6 - ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ
ΚΕΦΑΛΑΙΟ 6 - ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Προγραµµατισµός Η/Υ Ο προγραµµατισµός είναι η διατύπωση του αλγορίθµου σε µορφή κατανοητή από τον Η/Υ ώστε να τον εκτελέσει («τρέξει» όπως λέµε στην ορολογία της
Διαβάστε περισσότεραΥΠΟΛΟΓΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ ΓΙΑ ΣΥΣΤΗΜΑΤΑ ΜΕΤΑΔΟΣΗΣ ΠΛΗΡΟΦΟΡΙΑΣ
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΥΠΟΛΟΓΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ ΓΙΑ ΣΥΣΤΗΜΑΤΑ ΜΕΤΑΔΟΣΗΣ ΠΛΗΡΟΦΟΡΙΑΣ Αντικειμενοστραφής προγραμματισμός Web Sites:
Διαβάστε περισσότεραΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. Στέφανος Ουγιάρογλου
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Κεφάλαιο 6 «Εισαγωγή στον Προγραμματισμό» Στέφανος Ουγιάρογλου Διαφάνειες από υλικό του Χ. Μουρατίδη Προγραμματισμός Η/Υ Ο προγραμματισμός είναι η διατύπωση
Διαβάστε περισσότεραΜ Ε Ρ Ο Σ Γ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ
Μ Ε Ρ Ο Σ Γ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 6.1 Γλώσσες Προγραμματισμού 6.1.1 Γλώσσες μηχανής (1 η γενιά) Η γλώσσα στην οποία ένας ηλεκτρονικός υπολογιστής καταλαβαίνει
Διαβάστε περισσότεραΑναδρομικοί Αλγόριθμοι
Αναδρομικός αλγόριθμος (recursive algorithm) Επιλύει ένα πρόβλημα λύνοντας ένα ή περισσότερα στιγμιότυπα του ίδιου προβλήματος. Αναδρομικός αλγόριθμος (recursive algorithm) Επιλύει ένα πρόβλημα λύνοντας
Διαβάστε περισσότεραPROLOG Εισαγωγή (PROgramming in LOGic)
PROLOG Εισαγωγή (PROgramming in LOGic) Γλώσσα Λογικού Προγραμματισμού Βασίζεται στο Προτασιακό Λογισμό 1 ης τάξης Χρησιμοποιεί προτάσεις Horn αλγόριθμος = λογική + έλεγχος Μέσω της Prolog δίνουμε βάρος
Διαβάστε περισσότεραΣχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 7 η Διάλεξη: Σύντομη εισαγωγή στην Java
Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 7 η Διάλεξη: Σύντομη εισαγωγή στην Java Δρ. Απόστολος Γκάμας Λέκτορας (407/80) gkamas@uop.gr Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 1 Εισαγωγή
Διαβάστε περισσότεραΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 6/12/07
Πρώτοι αριθμοί ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 6/12/07 Ένας ακέραιος μεγαλύτερος του 1 είναι πρώτος αν έχει ακριβώς δύο διαιρέτες (τη μονάδα και τον εαυτό του). Πρόβλημα: έλεγχος
Διαβάστε περισσότεραΘέματα Μεταγλωττιστών
Γιώργος Δημητρίου Ενότητα 2 η : Συστήματα τύπων Συστήματα Τύπων (ΣΤ) Το σύστημα τύπων μιας γλώσσας προγραμματισμού με τύπους είναι ένα σύνολο από κανόνες στους οποίους πρέπει να υπακούουν οι τύποι της
Διαβάστε περισσότεραΚεφάλαιο 1. Εισαγωγή
Κεφάλαιο 1 Εισαγωγή Η λέξη Prolog προκύπτει ως συντομογραφία από τις γαλλικές λέξεις «PROgrammation en LOGique» ή κατ αντιστοιχία στην Αγγλική «PROgramming in LOGic» που σημαίνει «προγραμματισμός σε λογική».
Διαβάστε περισσότεραΗ ΑΕΠΠ IN A GLANCE! ΦΡΟΝΤΙΣΤΗΡΙΑ ΠΟΛΥΜΕΝΗ
Η ΑΕΠΠ IN A GLANCE! Κατανομή μονάδων: 40 μονάδες το 1 ο Θέμα, από 20 τα υπόλοιπα τρία. Μην χαίρεστε όμως γιατί η «καθαρή» θεωρία περιορίζεται συνήθως- σε 5 ερωτήσεις σωστού ή λάθους και σε 1-2 ερωτήσεις
Διαβάστε περισσότεραΑντικειμενοστρεφής Προγραμματισμός Διάλεξη 4 : CLASSES
Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 4 : CLASSES Κων. Κόκκινος Αντικειμενοστραφής Προγραμματισμός Η ιδέα του αντικειμενοστραφούς προγραμματισμού Αυτόνομες οντότητες Στιγμιότυπα οντοτήτων Παράδειγμα
Διαβάστε περισσότεραηµιουργία νέου τύπου δεδοµένων από το χρήστη
ηµιουργία νέου τύπου δεδοµένων από το χρήστη program create_a_type type chemical_element character (len=2) integer end type type (chemical_element) type (chemical_element) :: argon,carbon,neon :: Periodic_Table(109)
Διαβάστε περισσότεραΚΑΤΑΝΟΗΣΗ ΑΝΑΛΥΣΗ ΕΠΙΛΥΣΗ. Ο προγραμματισμός ασχολείται με το σύνολο των εντολών που δίνονται στον υπολογιστή ώστε να υλοποιείται ο αλγόριθμος.
ΚΑΤΑΝΟΗΣΗ ΑΝΑΛΥΣΗ ΕΠΙΛΥΣΗ Ο προγραμματισμός ασχολείται με το σύνολο των εντολών που δίνονται στον υπολογιστή ώστε να υλοποιείται ο αλγόριθμος 1 2 3 Εικόνα 43: Διάφορες πλακέτες υπολογιστών Μέσα σε δύο
Διαβάστε περισσότεραΑντικειμενοστρεφής Προγραμματισμός
Αντικειμενοστρεφής Προγραμματισμός Διδάσκουσα: Αναπλ. Καθηγήτρια Ανδριάνα Πρέντζα aprentza@unipi.gr Εργαστηριακός Συνεργάτης: Δρ. Βασιλική Κούφη vassok@unipi.gr Περιεχόμενα Java Classes Java Objects Java
Διαβάστε περισσότεραΣυναρτησιακός Προγραμματισμός: γενικά (Ι) Ο καθαρός Συναρτησιακός Προγραμματισμός (FP) έχει τα εξής χαρακτηριστικά: Το βασικό εργαλείο είναι οι (μαθημ
Συναρτησιακός Προγραμματισμός με Αντικειμενοστραφή Χαρακτηριστικά: η Περίπτωση της Γλώσσας F# Σημειώσεις Σεμιναριακής Παρουσίασης Ιζαμπώ Καράλη Συναρτησιακός Προγραμματισμός: γενικά (Ι) Ο καθαρός Συναρτησιακός
Διαβάστε περισσότεραΠρογραμματιστικές τεχνικές
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόμων Τοπογράφων Μηχανικών Προγραμματιστικές τεχνικές Βασίλειος Βεσκούκης Δρ. Ηλεκτρολόγος Μηχανικός & Μηχανικός Υπολογιστών ΕΜΠ v.vescoukis@cs.ntua.gr Ρωμύλος Κορακίτης
Διαβάστε περισσότερα6. Εισαγωγή στον προγραµµατισµό
6. Εισαγωγή στον προγραµµατισµό 6.1 Η έννοια του προγράµµατος. 6.2 Ιστορική αναδροµή. 6.2.1 Γλώσσες µηχανής. ΗΜ04-Θ1Α 1. Ένα πρόγραµµα σε γλώσσα µηχανής είναι µια ακολουθία δυαδικών ψηφίων. 5. Ένα πρόγραµµα
Διαβάστε περισσότεραΕνότητα 13: Διδασκαλία Οντοκεντρικού Προγραμματισμού. Διδάσκων: Βασίλης Κόμης, Καθηγητής
Διδακτική της Πληροφορικής: Ερευνητικές προσεγγίσεις στη μάθηση και τη διδασκαλία Μάθημα επιλογής B εξάμηνο, Πρόγραμμα Μεταπτυχιακών Σπουδών Τμήμα Επιστημών της Εκπαίδευσης και της Αγωγής στην Προσχολική
Διαβάστε περισσότεραΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ Ενότητα 6: Λογισμικό Υπολογιστών Γλώσσες Προγραμματισμού Πασχαλίδης Δημοσθένης Τμήμα Διαχείρισης Εκκλησιαστικών Κειμηλίων Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε
Διαβάστε περισσότεραΟντοκεντρικός Προγραμματισμός
Οντοκεντρικός Προγραμματισμός Ενότητα 2: Η ΓΛΩΣΣΑ JAVA Κληρονομικότητα ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ
Διαβάστε περισσότεραΠρογραµµατισµός Η/Υ. Μέρος2
Προγραµµατισµός Η/Υ Μέρος2 Περιεχόμενα Επανάληψη Βασικών Σύμβολων Διαγραμμάτων Ροής Αλγόριθμος Ψευδοκώδικας Παραδείγματα Αλγορίθμων Γλώσσες προγραμματισμού 2 Επανάληψη Βασικών Σύμβολων Διαγραμμάτων Ροής
Διαβάστε περισσότεραΗΥ 252: Αντικειµενοστρεφής Προγραµµατισµός
ΗΥ : Αντικειµενοστρεφής Προγραµµατισµός http://www.csd.uoc.gr/~hy Β. Χριστοφίδης christop@ics.forth.gr Τµήµα Επιστήµης Υπολογιστών, Πανεπιστήµιο Κρήτης Ηράκλειο Κρήτης Γενικές Πληροφορίες Ώρες ιδασκαλίας
Διαβάστε περισσότεραΔιάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 3: Προγραμματισμός σε JAVA I Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Στοιχειώδης Προγραμματισμός - Προγραμματισμός με Συνθήκες - Προγραμματισμός με Βρόγχους
Διαβάστε περισσότεραΔιακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά
Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων
Διαβάστε περισσότερα