(Imperative Programming) Pascal, C, Ada, Pazcal. (Functional Programming) Prolog (Logic Programming) (object-oriented programming) Java, C#

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "(Imperative Programming) Pascal, C, Ada, Pazcal. (Functional Programming) Prolog (Logic Programming) (object-oriented programming) Java, C#"

Transcript

1 Φιλοσοφία Γλωσσών Προγραμματισμού Προγραμματιστικό Μοντέλο Γλώσσες Προστακτικός Προγραμματισμός 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# Στάθης Ζάχος 1

2 2

3 Κεφάλαιο 1 Συναρτησιακός Προγραμματισμός Ο συναρτησιακός προγραμματισμός τραβάει ιστορικά τις ρίζες του από τον λ-λογισμό του Church και την συνδυαστική λογική του Curry. Μία από τις πρώτες γλώσσες με μεγάλη διάδοση πού στηριζόταν στον λ-λογισμό είναι η LISP (John McCarthy, 1961). Στην δεκαετία του 80 ο συναρτησιακός προγραμματισμός (Functional Programming) πήρε νέα ώθηση από τις εργασίες των John Backus, David Turner, Robin Milner κτλ. Αυτό που προσπαθούμε να κάνουμε τον συναρτησιακό προγραμματισμό είναι να ορίσουμε μία συνάρτηση που να επιλύει το ζητούμενο πρόβλημα. Αυτή η συνάρτηση μπορεί βέβαια να χρησιμοποιεί άλλες συναρτήσεις (ή ακόμα και τον εαυτό της). Ο ρόλος του υπολογιστή είναι απλός: Του δίνουμε μία έκφραση και μας την αποτιμά. Αν μέσα στην έκφραση αυτή εμφανίζεται το όνομα μίας συνάρτησης που έχουμε ορίσει, τότε ο υπολογιστής χρησιμοποιεί τον ορισμό προκειμένου να ανάγει την έκφραση σε μία μορφή που θα τον φέρει κοντύτερα στο επιδιωκόμενο αποτέλεσμα, που δεν είναι άλλο από το να αποτιμήσει την έκφραση που του δώσαμε. Ας υποθέσουμε ότι έχουμε ανοικτό το τερματικό του υπολογιστή (terminal) και φορτώνουμε την γλώσσα FP (μια υποθετική συναρτησιακή γλώσσα). Βρισκόμαστε σε ένα διαλογικό περιβάλλον (interactive environment) που συγκρατεί και χρησιμοποιεί όλους τους ορισμούς που έχετε κάνει. Αμέσως εμφανίζεται στην οθόνη το prompt? και ο υπολογιστής περιμένει να του δώσετε μια έκφραση για να την υπολογίσει. Εστω πως εσείς γράφετε:? 2+2 ο υπολογιστής θα απαντήσει 4 Σε αυτήν την περίπτωση ανήγαγε την αρχική έκφραση 2+2 στην απλούστερη 4. Η πιο ενδιαφέρουσα όμως περίπτωση είναι να δημιουργήσουμε ένα σύνολο ορισμών, που ονομάζεται script, και να το υποβάλλουμε στον υπολογιστή. Εστω το παρακάτων script: double x = 2*x min x y = x, if x <= y y, if x > y Η σημασία είναι ότι ορίσαμε δύο συναρτήσεις την double και την min. Η double έχει μία παράμετρο, την x, και δίνει ώς αποτέλεσμα το διπλάσιο της x. Προσέξτε ότι ο ορισμός έχει την μορφή εξίσωσης που λέει ότι η έκφραση double x μπορεί να αντικατασταθεί (να αναχθεί) από την 2*x. Μπορεί τώρα να γίνει ο εξής διάλογος με τον υπολογιστή:? double (min 3 4) 6 3

4 1.1 Σειρά των αναγωγών (Reductions) Ο υπολογιστής προκειμένου να παράγει το αποτέλεσμα 6 έκανε μια σειρά αναγωγών: χρησιμοποίησε την προκαθορισμένη σημασία του τελεστή * και το script που του δώσαμε. Η διαδικασία της εκτέλεσης του προγράμματος δεν είναι τίποτα περισσότερο από μία ακολουθία αντικαταστάσεων (αναγωγών) κάποιων εκφράσεων από άλλες ισοδύναμές τους. Για παράδειγμα, για την παραπάνω έκφραση υπάρχει η εξής ακολουθία αναγωγών: αλλά υπάρχει και αυτή η ακολουθία αναγωγών: double (3 + 4) double 7 2*7 14 double (3 + 4) 2*(3 + 4) 2*7 14 Ας ονομάσουμε ΑΕ (αναγώγιμη έκφραση) κάθε έκφραση που εμφανίζεται στην πορεία των αναγωγών και υπάρχει η δυνατότητα να αναχθεί. Στο παραπάνω παράδειγμα ΑΕ είναι οι double (3 + 4), 2*7, 3+4 κτλ. Το 7 ή το 14 μόνα τους δεν είναι ΑΕ αφού δεν μπορούν να αναχθούν σε τίποτα άλλο. Η πρώτη ακολουθία αναγωγών συμφωνεί με την τακτική των εσωτερικότερων αναγωγών (innermost reductions) ενώ η δεύτερη με την τακτική των εξωτερικότερων αναγωγών (outermost reductions). Συγκεκριμένα η τακτική των εσωτερικότερων αναγωγών λέει ότι κάθε φορά αντικαθιστούμε μία ΑΕ η οποία δεν περιέχει άλλη ΑΕ. Για παράδειγμα στην αρχική έκφραση αντικαθιστούμε την ΑΕ (3 + 4) που δεν περιέχει καμία ΑΕ. Αντίθετα, η τακτική των εξωτερικότερων αναγωγών λέει να αντικαθιστούμε κάθε φορά μία ΑΕ που δεν περιέχεται από άλλη ΑΕ. Οι εξωτερικότερες αναγωγές έχουν το εξής πλεονέκτημα: Εφόσον υπάρχει η δυνατότητα η ζητούμενη έκφραση να αναχθεί σε κάποιο αποτέλεσμα, εφαρμόζοντας εξωτερικότερες αναγωγές θα φτάσουμε σε αυτό το αποτέλεσμα. Αυτό δεν συμβαίνει πάντα με τις εσωτερικότερες αναγωγές. Αυτή η διαπίστωση επιβεβαιώνεται από το παρακάτω παράδειγμα: f x y = if (x == 0) then 1 else y? f 0 (1/0) Με την τακτική των εσ. αν. ο υπολογιστής θα επιδιώξει να αναγάγει την ΑΕ 1/0 πράγμα που είναι αδύνατο. Κατά συνέπεια δεν θα βγάλει αποτέλεσμα. Με την τακτική των εξ. αν. θα δώσει αποτέλεσμα 1 χωρίς να απασχοληθεί καν με την αναγωγή του 1/0, αφού άλλωστε δεν πρόκειται το 1/0 να χρησιμοποιηθεί. Μάλιστα η τακτική των εξ. αν. λέγεται και lazy evaluation (οκνηρή αποτίμηση) αφού δεν αναγάγει κάποιο ΑΕ αν αυτή η αναγωγή δεν είναι απαραίτητη. Ας δούμε μερικά παραδείγματα: Παράδειγμα 1: inc n = n + 1 f t = t * inc t y = f (f 2) Σημείωση: Οι τύποι των παραπάνω συναρτήσεων/τιμών είναι: inc, f :: Int -> Int x, y :: Int Ας ανάγουμε την έκφραση y χρησιμοποιώντας εσωτ. αναγωγές: 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 Χρησιμοποιώντας εξωτ. αναγωγές βλέπουμε ότι καταλήγουμε στο ίδιο αποτέλεσμα αλλά με σημαντικά περισσότερο αριθμό βημάτων: 4

5 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) Παράδειγμα 2: 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)))... η οποία δεν σταματάει! Πάντως ισχύει ότι εάν δύο διαφορετικοί τρόποι αποτίμησης σταματήσουν (καταλήξουν), τότε η τιμή θα είναι ίδια (δηλαδή μοναδική). Αυτή η τιμή λέγεται κανονική μορφή (normal form). Μπορεί όμως να διαφέρει σημαντικά ο αριθμός των αναγωγών ως την κανονική μορφή. 1.2 Συναρτήσεις Στον συναρτησιακό προγραμματισμό, οι συναρτήσεις μπορεί να παίρνουν ως παραμέτρους άλλες συναρτήσεις και μπορεί και το αποτέλεσμα τους να είναι μία συνάρτηση. Για παράδειγμα μπορούμε να ορίσουμε μια συνάρτηση twice η οποία θα δέχεται ως πρώτο όρισμα μια συνάρτηση f και έναν ακέραιο x και επιστρέφει ακέραιο. Η f θα είναι μια συνάρτηση που δέχεται έναν ακέραιο και επιστρέφει ακέραιο (οι πληροφορίες για τους τύπους των μεταβλητών μπορούν να γραφούν στο πρόγραμμα Haskell όπως φαίνεται παρακάτω): 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 x = f where f y = x + y Ανώνυμες Συναρτήσεις Σε συναρτησιακές γλώσσες υπάρχει η δυνατότητα δήλωσης ανώνυμων συναρτήσεων όπως και στις προστακτικές γλώσσες μπορούμε να χρησιμοποιήσουμε αριθμητικές σταθερές χωρίς να τους δώσουμε όνομα (στις συναρτησιακές γλώσσες οι συναρτήσεις και οι αριθμητικές τιμές είναι αντικείμενα πρώτης τάξης). Για παράδειγμα η συνάρτηση που απεικονίζει το n στο n + 1 μπορεί να οριστεί ανώνυμα ως εξής:\n -> n + 1. Άλλα παραδείγματα: twice :: (Int -> Int, Int) -> Int twice (f, x) = f (f x) plus2 :: Int -> Int plus2 x = twice (\n -> n + 1, x) plusn :: Int -> (Int -> Int) plusn x = \y -> x + y 5

6 1.3 Currying Μια συνάρτηση με δύο παραμέτρους ισοδυναμεί με μια συνάρτηση που δέχεται την πρώτη παράμετρο και επιστρέφει μια συνάρτηση που δέχεται τη δεύτερη. Αυτή η ιδέα, η χρήση δηλαδή της δεύτερης ισοδύναμης μορφής των συναρτήσεων με πολλές παραμέτρους ονομάζεται currying. Ας δούμε μερικά παραδείγματα: Παράδειγμα 1: Η συνάρτηση max: max :: (Int, Int) -> Int max (x, y) = if x > y then x else y Μπορεί να γραφεί διαφορετικά με την τεχνική currying ως εξής: max :: Int -> (Int -> Int) max x = \y -> (if x > y then x else y) Η max παίρνει ένα όρισμα τύπου Int και δίνει μία συνάρτηση τύπου Int -> Int. Άρα μία έκφραση σαν την max 2 5 ισοδυναμεί με (max 2) 5 παρά με max(2, 5). Αυτή είναι και η ουσία του currying: Μπορούμε να αντικαταστήσουμε μια συνάρτηση n ορισμάτων με μία (n 1) ορισμάτων αφού εφαρμόσουμε το πρώτο όρισμα, κατόπιν μια (n 2) ορισμάτων αφού εφαρμόσουμε το δεύτερο όρισμα, κοκ. Παράδειγμα 2: Εστω η συνάρτηση add: add :: (Int, Int) -> Int add (x, y) = x + y Μπορεί να γραφεί διαφορετικά με την τεχνική currying ως εξής: add :: Int -> (Int -> Int) add x = \y -> x + y Δηλαδή η add δέχεται το πρώτο όρισμα x και επιστρέφει μια συνάρτηση (την οποία ορίζει ανώνυμα) η οποία δέχεται το δεύτερο όρισμα y και επιστρέφει το άθροισμα x + y. Ισχύει λοιπόν η παρακάτω ισοδυναμία: add (x, y) == (add x) y Η Haskell προσφέρει κι έναν τρόπο να γραφούν με απλούστερο τρόπο οι add, max : add :: Int -> Int -> Int add x y = x + y max :: Int -> Int -> Int max x y = if x > y then x else y Με τις curried συναρτήσεις επιτρέπεται η μερική εφαρμογή. Ας δούμε ένα παράδειγμα αναγωγών της έκφρασης twice (add 20) 2: twice (add 20) 2 add 20 (add 20 2) add 20 (20+2) 20+(20+2) 42 6

7 1.4 Παραδείγματα Η παρακάτω συνάρτηση δέχεται έναν ακέραιο n και υπολογίζει το παραγοντικό n! του n: factorial n = if n <= 1 then 1 else n * factorial (n-1) Παρακάτω βλέπουμε πώς μπορεί να γραφεί η συνάρτηση που υπολογίζει τον Μέγιστου Κοινό Διαιρέτη με χρήση του αλγόριθμους του Ευκλείδη σε Haskell χρησιμοποιώντας αναδρομή: gcd (n, 0) = n gcd (n, m) = if (n < m) then gcd (m, n) else gcd (m, n mod m) 1.5 Επίλογος Οπως θα έχετε ήδη παρατηρήσει οι συναρτήσεις στον συναρτησιακό προγραμματισμό δεν έχουν παρενέργειες (side effects). Η σημασία κάθε έκφρασης δεν είναι τίποτα περισσότερο από την τιμή της. Ενα συναρτησιακό πρόγραμμα δεν είναι τίποτα παραπάνω από μία σειρά εξισώσεων ενώ η εκτέλεση ενός προγράμματος είναι μία σειρά αναγωγών. Συχνά η μαθηματική περιγραφή ενός προβλήματος είναι και το πρόγραμμα που το λύνει. Επιπλέον η απόδειξη της ορθότητας ενός προγράμματος μπορεί να γίνει εύκολα με έλεγχο των αντικαταστάσεων (αναγωγών) που έχουμε ορίσει, ενώ η απόδειξη ορθότητας αναδρομικών συναρτήσεων γίνεται με χρήση μαθηματικής επαγωγής. 7

8 8

9 Κεφάλαιο 2 Λογικός Προγραμματισμός (Prolog) 2.1 Ιστορία Η γλώσσα Prolog, η οποία αναπτύχθηκε σε ορισμένα ερευνητικά ινστιτούτα της Γαλλίας και της Μ. Βρετανίας στα μέσα της δεκαετίας με επικεφαλή τον Alain Colmerauer, και η οποία είναι η πιο πετυχημένη προσπάθεια για την επίτευξη του στόχου που καλείται Λογικός Προγραμματισμός. Η Prolog (αρχικά τού PROgramming in LOGic) υιοθετεί μια τελείως διαφορετική φιλοσοφία υψηλού επιπέδου (ηιγη λε ελ) από αυτήν των συνηθισμένων διαδικαστικών ή προστακτικών γλωσσών προγραμματισμού (Pascal, C, Basic, Fortran κτλ.), και γι αυτό ακριβώς είναι ευκολότερο να μάθει να σκέφτεται σ αυτή τη γλώσσα κάποιος που δεν έχει καμμία εμπειρία από προγραμματισμό, παρά ο έμπειρος προγραμματιστής. Η Prolog υλοποιεί ένα υποσύνολο του κατηγορηματικού λογισμού πρώτης τάξης (first order logic or predicate calculus). Στο πρόγραμμα δεν υλοποιούμε τις ρουτίνες επίλυσης του προβλήματος, απλώς δίνουμε τα δεδομένα του προβλήματος και τους κανόνες που διέπουν το πρόβλημα (τους νόμους που επιδρούν πάνω στα δεδομένα) σε μορφή σύμφωνη με το συντακτικό της Prolog. Ετσι, ένα πρόγραμμα Prolog δεν είναι τίποτα άλλο από μία συλλογή δεδομένων: γεγονότων (facts) και κανόνων (rules) που επιδρούν στα γεγονότα αυτά. Κατά τη διάρκεια της εκτέλεσης παράγονται νέα δεδομένα, αλλάζουν δεδομένα, ή και αποσύρονται (χάνονται) ορισμένα από αυτά. Η Prolog είναι μια πολύ χρήσιμη γλώσσα για προβλήματα που περιγράφονται με κάποιους (συμβολικούς) περιορισμούς πάνω στις παραμέτρους (μεταβλητές) του προβλήματος. Εξ αιτίας αυτού του γεγονότος η Prolog έχει επικρατήσει μαζί με τη Lisp στο χώρο της τεχνητής νοημοσύνης. 2.2 Η φιλοσοφία της γλώσσας Prolog Δεδομένα-Τρόπος Οπως έχει ήδη ειπωθεί, η φιλοσοφία και δομή της Prolog δεν είναι η ίδια με αυτή των διαδικαστικών ή πιο γενικά προστακτικών γλωσσών. Σε αυτές, ο προγραμματιστής που επιθυμεί να γράψει ένα πρόγραμμα για την επίλυση ενός προβλήματος, περιγράφει τη μέθοδο επίλυσης του προβλήματος και τα δεδομένα που χρειάζονται. Αντίθετα στην Prolog ο προγραμματιστής περιγράφει μόνο τα δεδομένα, δηλαδή το χώρο του προβλήματος και όχι τον τρόπο με τον οποίο θα βρεθούν σε αυτόν οι απαντήσεις (ο τρόπος όπως θα φανεί παρακάτω είναι ένας, καθώς κάθε πρόγραμμα Prolog μπορεί να θεωρηθεί τύπος της Λογικής, και έτσι ουσιαστικά υλοποιείται με μία μόνο διαδικασία (αλγόριθμο): την εξαντλητική αναζήτηση επαλήθευσης του τύπου μέσω του backtracking και του unification. Κατόπιν, ο προγραμματιστής ρωτάει την Prolog συγκεκριμένα ερωτήματα τα οποία το σύστημα Prolog προσπαθεί να απαντήσει. Για παράδειγμα, έστω ότι ο προγραμματιστής θέλει να φτιάξει ένα πρόγραμμα που δοκιμάζει και βρίσκει ποιός από κάποιους δυνατούς συνδυασμούς ανοίγει μία υποθετική κλεκτρονική κλειδαρια. Ο ψευδοκώδικας σε προστακτική γλώσσα θα ήταν κάπως έτσι: 9

10 begin repeat find the next combination; try the current combination to check if it is correct; until the right combination has been found end Σε αντίθεση, ο ψευδοκώδικας στην Prolog θα ήταν κάπως έτσι: Ο Α είναι δυνατός συνδυασμός αν έχει αυτά και αυτά τα χαρακτηριστικά. Ο Β είναι συνδυασμός που ανοίγει την κλειδαριά αν έχει αυτά τα χαρακτηριστικά. Κατόπιν, ο προγραμματιστής θα ρωτούσε το σύστημα: Ποιός συνδυασμός είναι δυνατός και ανοίγει την κλειδαριά? Τότε, το σύστημα βρίσκει ένα δυνατό συνδυασμό, ελέγχει αν είναι δεκτός (δηλαδή αν ανοίγει την κλειδαρία) και τότε σταματά, αλλιώς συνεχίζει μέχρι να βρεί κάποιον που να ικανοποιεί τα παραπάνω Δηλώσεις κατηγορήματα και γεγονότα κανόνες Η βασική έννοια που χρησιμοποιείται στην περιγραφή των δεδομένων είναι το κατηγόρημα. Το κατηγόρημα (predicate) είναι ουσιαστικά μια ιδιότητα. Βλέπουμε, για παράδειγμα, ότι οι φράσεις: Ο Χ είναι ψηλός. ή Χ + 2 = 4. ή Χ + Υ = 5. % κατηγόρημα μιας θέσης % κατηγόρημα μιας θέσης % κατηγόρημα δύο θέσεων δηλώνουν ιδιότητες κάποιων αντικειμένων. Βλέπουμε ότι τοποθετώντας κάποια συγκεκριμένα αντικείμενα στις θέσεις ενός κατηγορήματος, κατασκευάζουμε μια πρόταση: Ο Γιάννης είναι ψηλός. % βάζουμε τη λέξη Γιάννης ή = 4. % βάζουμε τον αριθμό 2 ή = 5. % βάζουμε τον αριθμό 2 στην πρώτη θέση και τον αριθμό 2 στη δεύτερη θέση. Οι προτάσεις που κατασκευάζονται με αυτόν τον τρόπο είναι ατομικές προτάσεις στον κατηγορηματικού λογισμό. Μεταφράζοντας τέτοιες προτάσεις σε μορφή κατανοητή από την Prolog κατασκευάζουμε τα γεγονότα (facts). Το τελευταίο παράδειγμα δηλώσεων ( = 5 ) δείχνει ότι μια δήλωση που κάνουμε στην Prolog δεν είναι κατ ανάγκη αληθής στον πραγματικό κόσμο, εφόσον η Prolog δεν ασχολείται (και δεν μπορεί να ασχοληθεί) με το εάν οι δηλώσεις που κάνουμε είναι αληθείς ή όχι. Η Prolog απλά θεωρεί αληθές ό,τι προκύπτει από τις δηλώσεις. Η λεπτομέρεια αυτή, δηλαδή ότι όλα τα ερωτήματα που έχουν νόημα για την Prolog, αφορούν το κατά πόσον κάποιες προτάσεις προκύπτουν ή όχι από τις δηλώσεις που έχουν γίνει και μόνο, αποτελεί ένα πολύ σημαντικό χαρακτηριστικό της Prolog που είναι γνωστό σαν υπόθεση κλειστού κόσμου (closed world assumption). Τα παραπάνω παραδείγματα θα μπορούσαν να γραφούν στην Prolog σαν γεγονότα ως εξής: tall(john). equals( plus(2, 2), 4 ). equals( plus(2, 2), 5 ). 10

11 Οι κανόνες τώρα, είναι γενικά προτάσεις του κατηγορηματικού λογισμού που περιγράφουν μια συνεπαγωγή (implication). Δηλαδή, προσδιορίζουμε τις συνθήκες που εάν ισχύουν τότε ισχύει και το συμπέρασμα. Οι παρακάτω προτάσεις αποτελούν κανόνες: Ο Χ είναι μηχανικός αν ο Χ έχει τελειώσει πολυτεχνείο και είναι έμπειρος. Ο Χ είναι ρητός αν ο Χ μπορεί να γραφτεί στη μορφή Α/Β, όπου Α, Β φυσικοί και Β όχι ίσος με μηδέν. Ας γράψουμε τους παραπάνω κανόνες πιο τυπικά στη γλώσσα της Συμβολικός Λογικής: (Χ είναι μηχανικός) (Ο Χ έχει τελειώσει πολυτεχνείο) (Ο Χ είναι έμπειρος) (X Q) ((X = A/B) (A Z) (B Z) (B 0)) Σε μορφή κανόνων στην Prolog: engineer(x) :- graduate(x), experience(x). rational(x) :- X = A/B, integer(a), integer(b), not(b = 0). Εν όψει των παραπάνω, ο ψευδοκώδικας σε Prolog για το παράδειγμα που αφορούσε την κλειδαριά θα μπορούσε να γραφτεί ως εξής: (Χ είναι δυνατός συνδυασμός) (Χ έχει αυτό το χαρακτηριστικό) (Χ έχει το άλλο χαρακτηριστικό). (Χ ανοίγει την κλειδαριά) (Χ έχει αυτήν την ιδιότητα) (Χ έχει την άλλη ιδιότητα). και η ερώτηση ως εξής: Υπάρχει Χ τέτοιο ώστε (Χ είναι δυνατός συνδυασμός) και (Χ ανοίγει την κλειδαριά)? Εντολές Θα πρέπει ήδη να έχει γίνει φανερό ότι άλλη μια σημαντική διαφορά μεταξύ Prolog και προστακτικών γλώσσών είναι η ανυπαρξία εντολών με την προστακτική έννοια, εφόσον η επίλυση προβλημάτων απαιτεί πλέον μόνο την περιγραφή των δεδομένων και των ερωτησεων. Στο πράδειγμα με την κλειδαριά είναι προφανής ο προστακτικός χαρακτήρας του προγράμματος σε προστακτική γλώσσα. Αντίθετα, σε Prolog δεν υπάρχει ένδειξη προσταγής, τουλάχιστον γλωσσική. Ουσιαστικά, μπορεί να ειπωθεί ότι στις προστακτικές γλώσσες υπάρχουν δύο γενικές κατηγορίες εντολών (χωρίς αυτό να αποτελεί ένα εντελώς γενικό και ισχύον σχόλιο): 1. κάνε αυτό (π.χ. WRITELN(... );) [assignment and procedure calls] 2. αν συμβαίνει αυτό και αυτό, κάνε αυτό (π.χ. if (a == b) then WRITELN(... );) [control statements] Αντίθετα, στην Prolog δεν υπάρχει καμία από τις παραπάνω κατηγορίες εντολών. Μάλιστα, αν εντολή ονομάζουμε την προσταγή προς τον υπολογιστή, φτάνουμε στο συμπέρασμα ότι στην Prolog δεν υπάρχουν καθόλου εντολές, παρά μόνον δηλωτικές προτάσεις (δηλαδή δηλώσεις γενονότων και κανόνων) και ερωτήσεις. Με άλλα λόγια, εφόσον δεν περιγράφεται ο τρόπος επίλυσης στην Prolog, δεν υπάρχει η ανάγκη προσταγής του υπολογιστή, παρά μόνον ίσως στην διαδικασία διατύπωσης των ερωτημάτων, όπου θα μπορούσε να θεωρηθεί ότι οι ερωτήσεις αποτελούν εντολές της μορφής βρες την απάντηση της ερώτησης:

12 2.2.4 Παραδείγματα Παράδειγμα 1: Γεγονότα: 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). Ερωτήσεις:?- male(john). yes?- male(mary). no?- male(peter). no?- male(x). X = john ; X = george ; no?- human(x). X = john; X = george; X = mary; X = jenny; no?- brother(george,jenny). yes?- mother(x,george). X = mary; 12

13 no?- sister(x,y). X = jenny, Y = george; X = jenny, Y = jenny; X = jenny, Y = george; X = jenny, Y = jenny; no Παράδειγμα 2 (Μέγιστος Κοινός Διαιρέτης): 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). Παράδειγμα 3 (Παραγοντικό): factorial(0, 1). factorial(n, Result) :- N > 0, N1 is N-1, factorial(n1, Facmin), Result is Facmin*N. 2.3 Επίλογος Προσπαθήσαμε να δώσουμε τις αρχές που διέπουν την φιλοσοφία του προγραμματισμού στην Prolog, γλώσσας πάρα-πολύ-υψηλού επιπέδου, η οποία έχει χρησιμοποιηθεί με τεράστια επιτυχία τόσο στην τεχνητή νοημοσύνη, όσο και σε άλλες περιοχές της επιστήμης των υπολογιστών. Μέσα από αυτά που είπαμε ελπίζουμε να δώσουμε το ερέθισμα για μια πιο βαθιά μελέτη της γλώσσας αυτής, μιας γλώσσας που εκτός από την ευχέρειά της στον συμβολικό υπολογισμό (symbolic computation) και την δυνατότητά της να υποχρεώνει σχεδόν το χρήστη να γράφει ευανάγνωστα προγράμματα, που να φανερώνουν τη λογική τους, έχει και το μεγάλο πλεονέκτημα να είναι εύκολο να υλοποιηθεί σε παράλληλες μηχανές. 13

14

15

16

17

18

19

Outline. 4 Object-Oriented Programming

Outline. 4 Object-Oriented Programming Προγραμματισμός Ηλεκτρονικών Υπολογιστών Φιλοσοφίες γλωσσών προγραμματισμού Διδάσκων: Στάθης Ζάχος Επιμέλεια Διαφανειών: Μάκης Αρσένης CoReLab ΣΗΜΜΥ - Ε.Μ.Π. Ιανουάριος 2016 ιδάσκων: Στάθης Ζάχος ( CoReLab

Διαβάστε περισσότερα

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

ΚΥΡΙΑ ΜΟΝΤΕΛΑ ΓΛΩΣΣΩΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΚΥΡΙΑ ΜΟΝΤΕΛΑ ΓΛΩΣΣΩΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ 27 Κύρια προγραμματιστικά μοντέλα (1) Προστακτικός προγραμματισμός (imperative programming) FORTRAN, Algol, COBOL, BASIC, C, Pascal, Modula-2, Ada Συναρτησιακός προγραμματισμός

Διαβάστε περισσότερα

Κεφάλαιο 9 Συναρτησιακός προγραμματισμός Υπολογισμός με συναρτήσεις

Κεφάλαιο 9 Συναρτησιακός προγραμματισμός Υπολογισμός με συναρτήσεις Κεφάλαιο 9 Συναρτησιακός προγραμματισμός Υπολογισμός με συναρτήσεις Σύνοψη Σκοπός του κεφαλαίου αυτού είναι η εισαγωγή του αναγνώστη στη φιλοσοφία του συναρτησιακού προγραμματισμού. Ο συναρτησιακός προγραμματισμός

Διαβάστε περισσότερα

Πληροφορική 2. Γλώσσες Προγραμματισμού

Πληροφορική 2. Γλώσσες Προγραμματισμού Πληροφορική 2 Γλώσσες Προγραμματισμού 1 2 Γλώσσες προγραμματσιμού Επιτρέπουν την κωδικοποίηση των αλγορίθμων Η εκτέλεση ενός προγράμματος θα πρέπει να δίνει τα ίδια αποτελέσματα με την νοητική εκτέλεση

Διαβάστε περισσότερα

Μαλούτα Θεανώ Σελίδα 1

Μαλούτα Θεανώ Σελίδα 1 ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Α. ΕΡΩΤΗΣΕΙΣ ΘΕΩΡΙΑΣ ΦΥΛΛΑΔΙΟ 6 ο ( Ενότητες 2.3 ) 1.Τι είναι πρόγραμμα; 2. Ποια είναι τα πλεονεκτήματα των γλωσσών υψηλού επιπέδου σε σχέση με τις γλώσσες

Διαβάστε περισσότερα

Υπολογιστικά & Διακριτά Μαθηματικά

Υπολογιστικά & Διακριτά Μαθηματικά Υπολογιστικά & Διακριτά Μαθηματικά Ενότητα 2:Στοιχεία Μαθηματικής Λογικής Στεφανίδης Γεώργιος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό,

Διαβάστε περισσότερα

Μοντέλα Προγραµµατισµού

Μοντέλα Προγραµµατισµού ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ http://www.corelab.ece.ntua.gr/~pagour/introcs/shmmy/ Επιµέλεια: (nickie@softlab.ntua.gr) Συναρτησιακός προγραµµατισµός Λογικός προγραµµατισµός Αντικειµενοστρεφής

Διαβάστε περισσότερα

ΑΕΠΠ Ερωτήσεις θεωρίας

ΑΕΠΠ Ερωτήσεις θεωρίας ΑΕΠΠ Ερωτήσεις θεωρίας Κεφάλαιο 1 1. Τα δεδομένα μπορούν να παρέχουν πληροφορίες όταν υποβάλλονται σε 2. Το πρόβλημα μεγιστοποίησης των κερδών μιας επιχείρησης είναι πρόβλημα 3. Για την επίλυση ενός προβλήματος

Διαβάστε περισσότερα

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Προβλήματα, αλγόριθμοι, ψευδοκώδικας Προβλήματα, αλγόριθμοι, ψευδοκώδικας October 11, 2011 Στο μάθημα Αλγοριθμική και Δομές Δεδομένων θα ασχοληθούμε με ένα μέρος της διαδικασίας επίλυσης υπολογιστικών προβλημάτων. Συγκεκριμένα θα δούμε τι

Διαβάστε περισσότερα

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

ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΥΠΟΛΟΓΙΣΤΩΝ Εισαγωγή ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΥΠΟΛΟΓΙΣΤΩΝ Όπως για όλες τις επιστήμες, έτσι και για την επιστήμη της Πληροφορικής, ο τελικός στόχος της είναι η επίλυση προβλημάτων. Λύνονται όμως όλα τα προβλήματα;

Διαβάστε περισσότερα

Τεχνολογία Λογισµικού Ι Κεφάλαιο 5

Τεχνολογία Λογισµικού Ι Κεφάλαιο 5 ΕΛΛΗΝΙΚΟ ΑΝΟΙΧΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Πρόγραµµα σπουδών "ΠΛΗΡΟΦΟΡΙΚΗ" - Θ.Ε. ΠΛΗ11 Τεχνολογία Λογισµικού Ι Κεφάλαιο 5 Βασίλειος Βεσκούκης ιδάκτωρ Ηλεκτρολόγος Μηχανικός και Μηχανικός Υπολογιστών v.vescoukis@cs.ntua.gr

Διαβάστε περισσότερα

Εισαγωγή στο Συναρτησιακό Προγραμματισμό

Εισαγωγή στο Συναρτησιακό Προγραμματισμό Εισαγωγή στο Συναρτησιακό Προγραμματισμό Γιάννης Κασσιός Σε αυτό το μάθημα θα εξερευνήσουμε ένα σπουδαίο μοντέλο προγραμματισμού, το συναρτησιακό προγραμματισμό. Θα δούμε το συναρτησιακό προγραμματισμό

Διαβάστε περισσότερα

Η ΑΕΠΠ IN A GLANCE! ΦΡΟΝΤΙΣΤΗΡΙΑ ΠΟΛΥΜΕΝΗ

Η ΑΕΠΠ IN A GLANCE! ΦΡΟΝΤΙΣΤΗΡΙΑ ΠΟΛΥΜΕΝΗ Η ΑΕΠΠ IN A GLANCE! Κατανομή μονάδων: 40 μονάδες το 1 ο Θέμα, από 20 τα υπόλοιπα τρία. Μην χαίρεστε όμως γιατί η «καθαρή» θεωρία περιορίζεται συνήθως- σε 5 ερωτήσεις σωστού ή λάθους και σε 1-2 ερωτήσεις

Διαβάστε περισσότερα

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL)

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) Pascal- Εισαγωγή Η έννοια του προγράμματος Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει, όπως έχει ήδη αναφερθεί, τρία εξίσου

Διαβάστε περισσότερα

Αφαίρεση στον FP. Πολυμορφισμός Συναρτήσεις υψηλότερης τάξης Οκνηρός και Άπληστος Υπολογισμός

Αφαίρεση στον FP. Πολυμορφισμός Συναρτήσεις υψηλότερης τάξης Οκνηρός και Άπληστος Υπολογισμός Αφαίρεση στον FP Πολυμορφισμός Συναρτήσεις υψηλότερης τάξης Οκνηρός και Άπληστος Υπολογισμός Πολυμορφισμός Θα χρησιμοποιήσουμε σαν παράδειγμα τη συνάρτηση ταυτότητας Ι, που ορίζεται ως: fun I x = x Ο ορισμός

Διαβάστε περισσότερα

Αρχές Προγραμματισμού Υπολογιστών

Αρχές Προγραμματισμού Υπολογιστών Αρχές Προγραμματισμού Υπολογιστών Ανάπτυξη Προγράμματος Β ΕΠΑΛ Τομέας Πληροφορικής Βελώνης Γεώργιος Καθηγητής Πληροφορικής ΠΕ20 Κύκλος ανάπτυξης προγράμματος/λογισμικού Η διαδικασία ανάπτυξης λογισμικού,

Διαβάστε περισσότερα

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος Κεφάλαιο 2.3: Προγραμματισμός 1 2.3.1 Αναφορά σε γλώσσες προγραμματισμού και «Προγραμματιστικά Υποδείγματα» 2.3.1.1 Πρόγραμμα και Γλώσσες Προγραμματισμού Πρόγραμμα: σύνολο εντολών που χρειάζεται να δοθούν

Διαβάστε περισσότερα

Γλώσσες Προγραμματισμού: Θεωρητικό Υπόβαθρο και Μοντέλα

Γλώσσες Προγραμματισμού: Θεωρητικό Υπόβαθρο και Μοντέλα ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Επιμέλεια και παρουσίαση: (kostis@cs.ntua.gr) Αρχικές διαφάνειες: Νίκος Παπασπύρου (nickie@softlab.ntua.gr) Γλώσσες Προγραμματισμού: Θεωρητικό Υπόβαθρο και Μοντέλα

Διαβάστε περισσότερα

Κεφάλαιο 1: Εισαγωγή. Αρχές Γλωσσών και Προγραμματισμού και Μεταφραστών. Γιάννης Γαροφαλάκης ΤΜΗΥΠ - Πανεπιστήμιο Πατρών

Κεφάλαιο 1: Εισαγωγή. Αρχές Γλωσσών και Προγραμματισμού και Μεταφραστών. Γιάννης Γαροφαλάκης ΤΜΗΥΠ - Πανεπιστήμιο Πατρών Κεφάλαιο 1: Εισαγωγή Αρχές Γλωσσών και Προγραμματισμού και Μεταφραστών Εισαγωγή (1) Γιατί υπάρχουν τόσες πολλές Γλώσσες Προγραμματισμού (ΓΠ); o Εξέλιξη έχουμε μάθει καλύτερους τρόπους να κάνουμε πράγματα

Διαβάστε περισσότερα

Γλώσσες υψηλού επιπέδου Περιέχουν περισσότερες εντολές για την εκτέλεση πολύπλοκων εργασιών Τα προγράµµατα µεταφράζονται σε γλώσσα µηχανής είτε από το

Γλώσσες υψηλού επιπέδου Περιέχουν περισσότερες εντολές για την εκτέλεση πολύπλοκων εργασιών Τα προγράµµατα µεταφράζονται σε γλώσσα µηχανής είτε από το Σηµαντικά σηµεία κεφαλαίου Τα τρία στάδια επίλυσης ενός προβλήµατος: Ακριβής προσδιορισµό του προβλήµατος Ανάπτυξη του αντίστοιχου αλγορίθµου. ιατύπωση του αλγορίθµου σε κατανοητή µορφή από τον υπολογιστή.

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. Στέφανος Ουγιάρογλου

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. Στέφανος Ουγιάρογλου ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Κεφάλαιο 6 «Εισαγωγή στον Προγραμματισμό» Στέφανος Ουγιάρογλου Διαφάνειες από υλικό του Χ. Μουρατίδη Προγραμματισμός Η/Υ Ο προγραμματισμός είναι η διατύπωση

Διαβάστε περισσότερα

Pascal, απλοί τύποι, τελεστές και εκφράσεις

Pascal, απλοί τύποι, τελεστές και εκφράσεις Pascal, απλοί τύποι, τελεστές και εκφράσεις 15 Νοεμβρίου 2011 1 Γενικά Στην standard Pascal ορίζονται τέσσερις βασικοί τύποι μεταβλητών: integer: Παριστάνει ακέραιους αριθμούς από το -32768 μέχρι και το

Διαβάστε περισσότερα

Σημειωματάριο μαθήματος 1ης Νοε. 2017

Σημειωματάριο μαθήματος 1ης Νοε. 2017 Σημειωματάριο μαθήματος 1ης Νοε. 2017 Παραδείγματα συναρτήσεων. Αναδρομικές συναρτήσεις. Ξεκινήσαμε πακετάροντας παλαιότερό μας κώδικα για τον υπολογισμό των διαιρετών ενός φυσικού αριθμού σε συνάρτηση.

Διαβάστε περισσότερα

Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον

Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Κεφάλαιο 6ο Εισαγωγή στον Προγραµµατισµό Μέρος Πρώτο (6.1, 6.2 και 6.3) Α. Ερωτήσεις Σωστού Λάθους 1. Η γλώσσα µηχανής είναι µία γλώσσα υψηλού επιπέδου.

Διαβάστε περισσότερα

ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ

ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ Κεφάλαιο 7 ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ Ερωτήσεις 1. Να αναφέρετε διαφορές μεταξύ γλωσσών μηχανής και γλωσσών χαμηλού επιπέδου. Οι γλώσσες μηχανής κωδικοποιούν τις εντολές τους με ομάδες

Διαβάστε περισσότερα

Κεφάλαιο 1. Εισαγωγή

Κεφάλαιο 1. Εισαγωγή Κεφάλαιο 1 Εισαγωγή Η λέξη Prolog προκύπτει ως συντομογραφία από τις γαλλικές λέξεις «PROgrammation en LOGique» ή κατ αντιστοιχία στην Αγγλική «PROgramming in LOGic» που σημαίνει «προγραμματισμός σε λογική».

Διαβάστε περισσότερα

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα Διάλεξη 2η: Αλγόριθμοι και Προγράμματα Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα

Διαβάστε περισσότερα

PROLOG Εισαγωγή (PROgramming in LOGic)

PROLOG Εισαγωγή (PROgramming in LOGic) PROLOG Εισαγωγή (PROgramming in LOGic) Γλώσσα Λογικού Προγραμματισμού Βασίζεται στο Προτασιακό Λογισμό 1 ης τάξης Χρησιμοποιεί προτάσεις Horn αλγόριθμος = λογική + έλεγχος Μέσω της Prolog δίνουμε βάρος

Διαβάστε περισσότερα

ΕΡΩΤΗΣΕΙΣ ΑΞΙΟΛΟΓΗΣΗΣ

ΕΡΩΤΗΣΕΙΣ ΑΞΙΟΛΟΓΗΣΗΣ Α) Να γράψετε στο τετράδιό σας τον αριθμό κάθε πρότασης και δίπλα το γράμμα "Σ", αν είναι σωστή, ή το γράμμα "Λ", αν είναι λανθασμένη. (Μονάδες 25) 1. Ένα αδόμητο πρόβλημα είναι ταυτόχρονα και ανοικτό

Διαβάστε περισσότερα

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ( Απαντήσεις & Λύσεις Βιβλίου) 1. Σκοποί κεφαλαίου Κύκλος ανάπτυξης προγράµµατος Κατηγορίες γλωσσών προγραµµατισµού

Διαβάστε περισσότερα

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΣΚΗΣΕΙΣ 6 ΟΥ ΚΕΦΑΛΑΙΟΥ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΡΩΤΗΣΕΙΣ ΣΩΣΤΟ ΛΑΘΟΣ Σημειώστε αν είναι σωστή ή

Διαβάστε περισσότερα

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό Μάριος Αραποστάθης Καθηγητής πληροφορικής Βαρβάκειου Λύκειου http://users.sch.gr/mariosarapostathis 6.1 Η έννοια του

Διαβάστε περισσότερα

Υπολογιστικά & Διακριτά Μαθηματικά

Υπολογιστικά & Διακριτά Μαθηματικά Υπολογιστικά & Διακριτά Μαθηματικά Ενότητα 11: Αριθμητική υπολοίπων-δυνάμεις Στεφανίδης Γεώργιος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

Διαβάστε περισσότερα

Χρησιμοποιείται για να αποφασίσει το πρόγραμμα αν θα κάνει κάτι σε ένα σημείο της εκτέλεσής του, εξετάζοντας αν ισχύει ή όχι μια συνθήκη.

Χρησιμοποιείται για να αποφασίσει το πρόγραμμα αν θα κάνει κάτι σε ένα σημείο της εκτέλεσής του, εξετάζοντας αν ισχύει ή όχι μια συνθήκη. Εργαστήριο 4: 4.1 Η Δομή Ελέγχου if Χρησιμοποιείται για να αποφασίσει το πρόγραμμα αν θα κάνει κάτι σε ένα σημείο της εκτέλεσής του, εξετάζοντας αν ισχύει ή όχι μια συνθήκη. Γενική Μορφή: Παρατηρήσεις:

Διαβάστε περισσότερα

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος. 1. Δώστε τον ορισμό του προβλήματος. 2. Σι εννοούμε με τον όρο επίλυση ενός προβλήματος; 3. Σο πρόβλημα του 2000. 4. Σι εννοούμε με τον όρο κατανόηση προβλήματος; 5. Σι ονομάζουμε χώρο προβλήματος; 6.

Διαβάστε περισσότερα

τις αναδρομικές ακολουθίες (recursive sequences) στις οποίες ορίζαμε

τις αναδρομικές ακολουθίες (recursive sequences) στις οποίες ορίζαμε Κεφάλαιο 9: Αναδρομή Ο τρόπος με τον οποίο σκεφτήκαμε και σχεδιάσαμε τις συναρτήσεις στο προηγούμενο κεφάλαιο ακολουθούσε τη φιλοσοφία του προγραμματισμού που είχαμε αναπτύξει σε όλο το προηγούμενο βιβλίο.

Διαβάστε περισσότερα

<<ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ ΜCs>> 1

<<ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ ΜCs>> 1 ΚΕΦΑΛΑΙΟ 7 ο ΠΡΟΓΡΑΜΜΑ : Το πρόγραμμα αποτελείται από μια σειρά οδηγιών, που ονομάζονται εντολές, για την εκτέλεση τέτοιου είδους πράξεων, καθώς επίσης και από ένα σύνολο πρόσθετων οδηγιών ελέγχου, που

Διαβάστε περισσότερα

Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής

Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής Προγραμματισμός Η/Υ Προτεινόμενα θέματα εξετάσεων Εργαστήριο Μέρος 1 ό ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής Ιανουάριος 2011 Καλογιάννης Γρηγόριος Επιστημονικός/ Εργαστηριακός

Διαβάστε περισσότερα

Αριθμητική Ανάλυση και Εφαρμογές

Αριθμητική Ανάλυση και Εφαρμογές Αριθμητική Ανάλυση και Εφαρμογές Διδάσκων: Δημήτριος Ι. Φωτιάδης Τμήμα Μηχανικών Επιστήμης Υλικών Ιωάννινα 07-08 Αριθμητική Παραγώγιση Εισαγωγή Ορισμός 7. Αν y f x είναι μια συνάρτηση ορισμένη σε ένα διάστημα

Διαβάστε περισσότερα

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

Μ Ε Ρ Ο Σ Γ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Μ Ε Ρ Ο Σ Γ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 6.1 Γλώσσες Προγραμματισμού 6.1.1 Γλώσσες μηχανής (1 η γενιά) Η γλώσσα στην οποία ένας ηλεκτρονικός υπολογιστής καταλαβαίνει

Διαβάστε περισσότερα

Κεφάλαιο 3 Η Σημασιολογία των Γλωσσών Προγραμματισμού

Κεφάλαιο 3 Η Σημασιολογία των Γλωσσών Προγραμματισμού Κεφάλαιο 3 Η Σημασιολογία των Γλωσσών Προγραμματισμού Προπτυχιακό μάθημα Αρχές Γλωσσών Προγραμματισμού Π. Ροντογιάννης 1 Εισαγωγή Γνώση γλώσσας από τη σκοπιά Του συντακτικού (syntax) Περιγραφή με γραμματικές

Διαβάστε περισσότερα

Επιµέλεια Θοδωρής Πιερράτος

Επιµέλεια Θοδωρής Πιερράτος Εισαγωγή στον προγραµµατισµό Η έννοια του προγράµµατος Ο προγραµµατισµός ασχολείται µε τη δηµιουργία του προγράµµατος, δηλαδή του συνόλου εντολών που πρέπει να δοθούν στον υπολογιστή ώστε να υλοποιηθεί

Διαβάστε περισσότερα

FORTRAN και Αντικειμενοστραφής Προγραμματισμός

FORTRAN και Αντικειμενοστραφής Προγραμματισμός FORTRAN και Αντικειμενοστραφής Προγραμματισμός Παραδόσεις Μαθήματος 2016 Δρ Γ Παπαλάμπρου Επίκουρος Καθηγητής ΕΜΠ georgepapalambrou@lmentuagr Εργαστήριο Ναυτικής Μηχανολογίας (Κτίριο Λ) Σχολή Ναυπηγών

Διαβάστε περισσότερα

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

ΚΕΦΑΛΑΙΟ 6 - ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΚΕΦΑΛΑΙΟ 6 - ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Προγραµµατισµός Η/Υ Ο προγραµµατισµός είναι η διατύπωση του αλγορίθµου σε µορφή κατανοητή από τον Η/Υ ώστε να τον εκτελέσει («τρέξει» όπως λέµε στην ορολογία της

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΜΟΣ Εντολές επιλογής και αποφάσεων 1 ο Φύλλο Εργασιών Εισαγωγικές ασκήσεις για την εντολή if ΑΠΑΝΤΗΣΕΙΣ

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΜΟΣ Εντολές επιλογής και αποφάσεων 1 ο Φύλλο Εργασιών Εισαγωγικές ασκήσεις για την εντολή if ΑΠΑΝΤΗΣΕΙΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΜΟΣ Κεφάλαιο 10 : Εντολές επιλογής και αποφάσεων 1 ο Φύλλο Εργασιών Εισαγωγικές ασκήσεις για την εντολή if ΑΠΑΝΤΗΣΕΙΣ 1. Ποιες από τις παρακάτω εντολές είναι σωστές; α) if A + B

Διαβάστε περισσότερα

Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ

Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ 2.3.1.1. Παπαγιάννη Νάσια Ηλεκτρολόγος Μηχανικός και Μηχανικός Υπολογιστών ΕΜΠ 1 περιλαμβάνει: Η έννοια του προγράμματος Επίλυση προβλήματος 1. Ακριβή προσδιορισμό

Διαβάστε περισσότερα

Κεφάλαιο 1 Προγραμματισμός Υπολογιστή. Εφαρμογές Πληροφορικής Κεφ. 7 Καραμαούνας Πολύκαρπος 1

Κεφάλαιο 1 Προγραμματισμός Υπολογιστή. Εφαρμογές Πληροφορικής Κεφ. 7 Καραμαούνας Πολύκαρπος 1 Κεφάλαιο 1 Προγραμματισμός Υπολογιστή Καραμαούνας Πολύκαρπος 1 7.1 Η προγραμματιζόμενη μηχανή Από τις βασικότερες διαφορές ανάμεσα στον υπολογιστή και στις περισσότερες ηλεκτρονικές συσκευές είναι η δυνατότητα

Διαβάστε περισσότερα

ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ ΔΟΜΗΜΕΝΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Γ ΕΠΑΛ

ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ ΔΟΜΗΜΕΝΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Γ ΕΠΑΛ ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ ΔΟΜΗΜΕΝΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Γ ΕΠΑΛ ΘΕΜΑ Α Α.1 Να χαρακτηρίσετε σωστή (Σ) ή λανθασμένη (Λ) καθεμία από τις παρακάτω προτάσεις (Μονάδες 10) 1. Ένας αλγόριθμος μπορεί να έχει άπειρα βήματα

Διαβάστε περισσότερα

ΜΕΡΙΚΑ ΣΤΟΙΧΕΙΑ ΓΙΑ ΤΙΣ ΓΛΩΣΣEΣ ΠPOΓPAMMATIΣMOY

ΜΕΡΙΚΑ ΣΤΟΙΧΕΙΑ ΓΙΑ ΤΙΣ ΓΛΩΣΣEΣ ΠPOΓPAMMATIΣMOY ΜΕΡΙΚΑ ΣΤΟΙΧΕΙΑ ΓΙΑ ΤΙΣ ΓΛΩΣΣEΣ ΠPOΓPAMMATIΣMOY Mία γλώσσα προγραμματισμού συνίσταται από ένα περιορισμένο υποσύνολο της αγγλικής γλώσσας και το οποίο αποτελείται από εκφράσεις σαφώς ορισμένες, χωρίς παρερμηνεία.

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ' ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΚΥΚΛΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΥΠΗΡΕΣΙΩΝ 2005

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ' ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΚΥΚΛΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΥΠΗΡΕΣΙΩΝ 2005 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ' ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΚΥΚΛΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΥΠΗΡΕΣΙΩΝ 2005 ΕΚΦΩΝΗΣΕΙΣ ΘΕΜΑ 1ο Α. 1. Να αναφέρετε ονοµαστικά τα κριτήρια που πρέπει απαραίτητα

Διαβάστε περισσότερα

Ε Ι Α Γ Ω Γ Η Σ Ο Ν Π Ρ Ο Γ Ρ Α Μ Μ Α Σ Ι Μ Ο Κ Ε Υ Α Λ Α Ι Ο 6. Σο πρόγραμμα γράφεται σε κάποια γλώσσα προγραμματισμού.

Ε Ι Α Γ Ω Γ Η Σ Ο Ν Π Ρ Ο Γ Ρ Α Μ Μ Α Σ Ι Μ Ο Κ Ε Υ Α Λ Α Ι Ο 6. Σο πρόγραμμα γράφεται σε κάποια γλώσσα προγραμματισμού. Κεφάλαιο 6 6.1 Η έννοια του προγράμματος Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει τρία σημαντικά στάδια : Σον ακριβή προσδιορισμό του προβλήματος Σην ανάπτυξη του αντίστοιχου αλγορίθμου

Διαβάστε περισσότερα

Α. Ερωτήσεις Ανάπτυξης

Α. Ερωτήσεις Ανάπτυξης οµηµένος Προγραµµατισµός-Κεφάλαιο 7 Σελίδα 1 α ό 10 ΕΝΟΤΗΤΑ ΙΙΙ (ΠΡΟΓΡΑΜΜΑΤΑ) ΚΕΦΑΛΑΙΟ 7: Είδη, Τεχνικές και Περιβάλλοντα Προγραµµατισµού Α. Ερωτήσεις Ανάπτυξης 1. Τι ονοµάζουµε γλώσσα προγραµµατισµού;

Διαβάστε περισσότερα

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων

Διαβάστε περισσότερα

Περιληπτικά, τα βήματα που ακολουθούμε γενικά είναι τα εξής:

Περιληπτικά, τα βήματα που ακολουθούμε γενικά είναι τα εξής: Αυτό που πρέπει να θυμόμαστε, για να μη στεναχωριόμαστε, είναι πως τόσο στις εξισώσεις, όσο και στις ανισώσεις 1ου βαθμού, που θέλουμε να λύσουμε, ακολουθούμε ακριβώς τα ίδια βήματα! Εκεί που πρεπει να

Διαβάστε περισσότερα

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

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Εισαγωγή στην Πληροφορική & τον Προγραμματισμό Ενότητα 4 η : Αλγόριθμος & Πρόγραμμα Ι. Ψαρομήλιγκος Χ. Κυτάγιας Τμήμα Διοίκησης

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. 03/01/09 Χαράλαμπος Τζόκας 1

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. 03/01/09 Χαράλαμπος Τζόκας 1 ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 03/01/09 Χαράλαμπος Τζόκας 1 Πρόγραμμα - Προγραμματισμός Πρόγραμμα: Σύνολο εντολών που πρέπει να δοθούν στον Υπολογιστή, ώστε να υλοποιηθεί ο αλγόριθμος της επίλυσης

Διαβάστε περισσότερα

Σχήματα McCarthy I. Το σχήμα McCarthy είναι ένα γενικότερο προγραμματιστικό σχήμα:

Σχήματα McCarthy I. Το σχήμα McCarthy είναι ένα γενικότερο προγραμματιστικό σχήμα: Σχήματα McCarthy I Το σχήμα McCarthy είναι ένα γενικότερο προγραμματιστικό σχήμα: f(x, y) = if g(...) = 0 then h(...) else k(...) όπου g(...), h(...) και k(...) είναι όροι-συναρτήσεις που κατασκευάζονται

Διαβάστε περισσότερα

ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ-ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΚΑΔΗΜΑΪΚΟ ΕΠΑΛ- ΚΑΝΙΓΓΟΣ 13- ΤΗΛ

ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ-ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΚΑΔΗΜΑΪΚΟ ΕΠΑΛ- ΚΑΝΙΓΓΟΣ 13- ΤΗΛ ΘΕΜ 1.. Χαρακτηρίστε τις προτάσεις που ακολουθούν ως Σωστό, αν οι προτάσεις είναι σωστές και ως Λάθος αν οι προτάσεις είναι λάθος. 1.Είναι πάντα δυνατή η μετατροπή της εντολής WHILE DO σε FOR DO. 2. Στην

Διαβάστε περισσότερα

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών Ενότητα 1: Εισαγωγή Καθ. Γιάννης Γαροφαλάκης Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ και Πληροφορικής Εισαγωγή (1) Γιατί υπάρχουν τόσες πολλές Γλώσσες Προγραμματισμού

Διαβάστε περισσότερα

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ - ΓΛΩΣΣΑ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Τεχνικές Σχεδίασης Αλγορίθμων Εισαγωγή στον Προγραμματισμό - ΓΛΩΣΣΑ Επιμέλεια: Ομάδα Διαγωνισμάτων από Το στέκι των πληροφορικών ο Θέμα 1 Α. α) Ποια είναι

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό 6.1 Η έννοια του προγράμματος Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει, τρία σημαντικά στάδια: 1. Τον ακριβή προσδιορισμό του προβλήματος. 2. Την ανάπτυξη

Διαβάστε περισσότερα

Κεφάλαιο 1 Διαδικαστικός και δηλωτικός προγραμματισμός

Κεφάλαιο 1 Διαδικαστικός και δηλωτικός προγραμματισμός Κεφάλαιο 1 Διαδικαστικός και δηλωτικός προγραμματισμός Σύνοψη Στο κεφάλαιο αυτό γίνεται συγκριτική παρουσίαση, κυρίως μέσω απλών παραδειγμάτων, του διαδικαστικού και του δηλωτικού προγραμματισμού, δύο

Διαβάστε περισσότερα

Εισαγωγή στην επιστήμη των υπολογιστών

Εισαγωγή στην επιστήμη των υπολογιστών Εισαγωγή στην επιστήμη των υπολογιστών Λογισμικό Υπολογιστών Γλώσσες Προγραμματισμού 1 Εξέλιξη Οι γλώσσες προγραμματισμού είναι σύνολα από προκαθορισμένες λέξεις οι οποίες συνδυάζονται σε προγράμματα σύμφωνα

Διαβάστε περισσότερα

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

Δομημένος Προγραμματισμός Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Δομημένος Προγραμματισμός Ενότητα 1: Εισαγωγή Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά Το έργο

Διαβάστε περισσότερα

Αντικειμενοστρεφής Προγραμματισμός -Python. Κ.Π. Γιαλούρης

Αντικειμενοστρεφής Προγραμματισμός -Python. Κ.Π. Γιαλούρης Κ.Π. Γιαλούρης Στόχοι του μαθήματος Απόκτηση αναλυτικής και αλγοριθμικής σκέψης Απόκτηση δεξιοτήτων επίλυσης προβλημάτων Γνώση προγραμματισμού σε Python 2 Στόχοι του σημερινού μαθήματος Κατανόηση της έννοιας

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει τρία εξίσου σημαντικά στάδια.

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει τρία εξίσου σημαντικά στάδια. ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει τρία εξίσου σημαντικά στάδια. Τον ακριβή προσδιορισμό του προβλήματος. Την ανάπτυξη του αντίστοιχου αλγορίθμου.

Διαβάστε περισσότερα

6. 1 Η έννοια του προγράμματος

6. 1 Η έννοια του προγράμματος 6. 1 Η έννοια του προγράμματος Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει, τρία στάδια. 1.Τον ακριβή προσδιορισμό του προβλήματος. 2.Την ανάπτυξη του αντίστοιχου αλγορίθμου. 3.Τη διατύπωση

Διαβάστε περισσότερα

Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού

Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού Προπτυχιακό μάθημα Αρχές Γλωσσών Προγραμματισμού Π. Ροντογιάννης 1 Μεταγλωττιστής Πρόγραμμα Διαβάζει προγράμματα δεδομένης γλώσσας (πηγαία γλώσσα) και τα μετατρέπει

Διαβάστε περισσότερα

Κεφάλαιο 7: Υπορουτίνες

Κεφάλαιο 7: Υπορουτίνες Κεφάλαιο 7: Υπορουτίνες Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών Ορισμός Αφαίρεση με χρήση υπορουτινών (subroutine abstraction) είναι η αντιστοίχιση ενός συνόλου εισόδων σε ένα σύνολο εξόδων που μπορεί

Διαβάστε περισσότερα

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client ΕΣΔ 516 Τεχνολογίες Διαδικτύου Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client Περιεχόμενα Περιεχόμενα Javascript και HTML Βασική σύνταξη Μεταβλητές Τελεστές Συναρτήσεις

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 2: Δηλωτικός Προγραμματισμός

ΚΕΦΑΛΑΙΟ 2: Δηλωτικός Προγραμματισμός ΚΕΦΑΛΑΙΟ 2: Δηλωτικός Προγραμματισμός Λέξεις Κλειδιά Διαδικαστικός προγραμματισμός, Δηλωτικός προγραμματισμός, Διαδικαστική γλώσσα προγραμματισμού, Προστακτική γλώσσα προγραμματισμού, Δηλωτική γλώσσα προγραμματισμού.

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 10 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ

ΚΕΦΑΛΑΙΟ 10 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΚΕΦΑΛΑΙΟ 10 Όπως είδαμε και σε προηγούμενο κεφάλαιο μια από τις βασικότερες τεχνικές στον Δομημένο Προγραμματισμό είναι ο Τμηματικός Προγραμματισμός. Τμηματικός προγραμματισμός ονομάζεται η τεχνική σχεδίασης

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 1ο 3ο. ΚΕΦΑΛΑΙΟ 5ο 6ο. ΚΕΦΑΛΑΙΟ 7ο. Δομημένος Προγραμματισμός - Γενικές Ασκήσεις Επανάληψης

ΚΕΦΑΛΑΙΟ 1ο 3ο. ΚΕΦΑΛΑΙΟ 5ο 6ο. ΚΕΦΑΛΑΙΟ 7ο. Δομημένος Προγραμματισμός - Γενικές Ασκήσεις Επανάληψης ΚΕΦΑΛΑΙΟ 1ο 3ο 1. Συμπληρώστε τα κενά με τη λέξη που λείπει. α. Ένα πρόβλημα το χωρίζουμε σε άλλα απλούστερα, όταν είναι ή όταν έχει τρόπο επίλυσης. β. Η επίλυση ενός προβλήματος προϋποθέτει την του. γ.

Διαβάστε περισσότερα

Η ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ Εντολές Επανάληψης REPEAT UNTIL, FOR, WHILE

Η ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ Εντολές Επανάληψης REPEAT UNTIL, FOR, WHILE ΕΡΓΑΣΤΗΡΙΟ 7 Ο Η ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ Εντολές Επανάληψης REPEAT UNTIL, FOR, WHILE Βασικές Έννοιες: Δομή Επανάληψης, Εντολές Επανάληψης (For, While do, Repeat until), Αλγόριθμος, Αθροιστής, Μετρητής, Παράσταση

Διαβάστε περισσότερα

TO ΥΠΟΠΡΟΓΡΑΜΜΑ ΣΥΝΑΡΤΗΣΗ

TO ΥΠΟΠΡΟΓΡΑΜΜΑ ΣΥΝΑΡΤΗΣΗ Μάθημα 7 - Υποπρογράμματα Εργαστήριο 11 Ο TO ΥΠΟΠΡΟΓΡΑΜΜΑ ΣΥΝΑΡΤΗΣΗ Βασικές Έννοιες: Υποπρόγραμμα, Ανάλυση προβλήματος, top down σχεδίαση, Συνάρτηση, Διαδικασία, Παράμετρος, Κλήση συνάρτησης, Μετάβαση

Διαβάστε περισσότερα

Επικοινωνία:

Επικοινωνία: Σπύρος Ζυγούρης Καθηγητής Πληροφορικής Επικοινωνία: spzygouris@gmail.com Πως ορίζεται ο τμηματικός προγραμματισμός; Πρόγραμμα Εντολή 1 Εντολή 2 Εντολή 3 Εντολή 4 Εντολή 5 Εντολή 2 Εντολή 3 Εντολή 4 Εντολή

Διαβάστε περισσότερα

Λογικός τύπος Τελεστές σύγκρισης Λογικοί τελεστές Εντολές επιλογής Εμβέλεια Μαθηματικές συναρτήσεις Μιγαδικός τύπος ΔΕΥΤΕΡΗ ΔΙΑΛΕΞΗ

Λογικός τύπος Τελεστές σύγκρισης Λογικοί τελεστές Εντολές επιλογής Εμβέλεια Μαθηματικές συναρτήσεις Μιγαδικός τύπος ΔΕΥΤΕΡΗ ΔΙΑΛΕΞΗ ΔΕΥΤΕΡΗ ΔΙΑΛΕΞΗ Λογικός τύπος ( ) Ο τύπος είναι κατάλληλoς για την αναπαράσταση ποσοτήτων που μπορούν να πάρουν δύο μόνο τιμές (π.χ. ναι/όχι, αληθές/ψευδές, ). Τιμές ή Δήλωση Εκχώρηση Ισοδυναμία με ακέραιους

Διαβάστε περισσότερα

K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων

K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων Γιάννης Λιαπέρδος TEI Πελοποννήσου Σχολή Τεχνολογικών Εφαρμογών Τμήμα Μηχανικών Πληροφορικής ΤΕ Η έννοια του συνδυαστικού

Διαβάστε περισσότερα

Προγραμματισμός ΙI (Θ)

Προγραμματισμός ΙI (Θ) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Προγραμματισμός ΙI (Θ) Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Μάρτιος 2017 Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017

Διαβάστε περισσότερα

επιµέλεια Θοδωρής Πιερράτος

επιµέλεια Θοδωρής Πιερράτος Βασικές έννοιες προγραµµατισµού Η ύλη που αναπτύσσεται σε αυτό το κεφάλαιο είναι συναφής µε την ύλη που αναπτύσσεται στο 2 ο κεφάλαιο. Όπου υπάρχουν διαφορές αναφέρονται ρητά. Προσέξτε ιδιαίτερα, πάντως,

Διαβάστε περισσότερα

Κεφάλαιο 7: Υποπρογράμματα. Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

Κεφάλαιο 7: Υποπρογράμματα. Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών Κεφάλαιο 7: Υποπρογράμματα Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών Ορισμός Αφαίρεση με χρήση υποπρογραμμάτων (subprogram abstraction) είναι η αντιστοίχιση ενός συνόλου εισόδων σε ένα σύνολο εξόδων

Διαβάστε περισσότερα

Προγραµµατισµός Η/Υ. Μέρος2

Προγραµµατισµός Η/Υ. Μέρος2 Προγραµµατισµός Η/Υ Μέρος2 Περιεχόμενα Επανάληψη Βασικών Σύμβολων Διαγραμμάτων Ροής Αλγόριθμος Ψευδοκώδικας Παραδείγματα Αλγορίθμων Γλώσσες προγραμματισμού 2 Επανάληψη Βασικών Σύμβολων Διαγραμμάτων Ροής

Διαβάστε περισσότερα

Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19

Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19 Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών Κεφ. 2 Θεωρητική Επιστήμη Υπολογιστών 2.3.1.1 Έννοια προγράμματος Τι είναι πρόγραμμα και τι προγραμματισμός; Πρόγραμμα είναι το σύνολο εντολών που χρειάζεται

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 6 ΟΥ ΚΕΦΑΛΑΙΟΥ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 6.1 Τι ονοµάζουµε πρόγραµµα υπολογιστή; Ένα πρόγραµµα

Διαβάστε περισσότερα

Εφαρμογές της Λογικής στην Πληροφορική

Εφαρμογές της Λογικής στην Πληροφορική Σχολή Εφαρμοσμένων Μαθηματικών και Φυσικών Επιστημών Εθνικό Μετσόβιο Πολυτεχνείο Εφαρμογές της Λογικής στην Πληροφορική Ενότητα 2 Πέτρος Στεφανέας, Γεώργιος Κολέτσος Άδεια Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Να επιλύουμε και να διερευνούμε γραμμικά συστήματα. Να ορίζουμε την έννοια του συμβιβαστού και ομογενούς συστήματος.

Να επιλύουμε και να διερευνούμε γραμμικά συστήματα. Να ορίζουμε την έννοια του συμβιβαστού και ομογενούς συστήματος. Ενότητα 2 Γραμμικά Συστήματα Στην ενότητα αυτή θα μάθουμε: Να επιλύουμε και να διερευνούμε γραμμικά συστήματα. Να ορίζουμε την έννοια του συμβιβαστού και ομογενούς συστήματος. Να ερμηνεύουμε γραφικά τη

Διαβάστε περισσότερα

4. Ο,τιδήποτε δεν ορίζεται με βάση τα (1) (3) δεν είναι προτασιακός τύπος.

4. Ο,τιδήποτε δεν ορίζεται με βάση τα (1) (3) δεν είναι προτασιακός τύπος. Κεφάλαιο 10 Μαθηματική Λογική 10.1 Προτασιακή Λογική Η γλώσσα της μαθηματικής λογικής στηρίζεται βασικά στις εργασίες του Boole και του Frege. Ο Προτασιακός Λογισμός περιλαμβάνει στο αλφάβητό του, εκτός

Διαβάστε περισσότερα

α. Λογικό διάγραμμα είναι η μέθοδος που χρησιμοποιεί απλά σχήματα που υποστηρίζονται με απλές λέξεις για την αναπαράσταση συγκεκριμένων λειτουργιών.

α. Λογικό διάγραμμα είναι η μέθοδος που χρησιμοποιεί απλά σχήματα που υποστηρίζονται με απλές λέξεις για την αναπαράσταση συγκεκριμένων λειτουργιών. ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΤΑΞΗ ΕΠΑΛ (Α ΟΜΑΔΑ) & ΜΑΘΗΜΑΤΑ ΕΙΔΙΚΟΤΗΤΑΣ ΣΑΒΒΑΤΟ 16/04/2016 - ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ (ΑΠΟΦΟΙΤΟΙ) ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΞΙ (6) ΘΕΜΑ Α Α1. Να χαρακτηρίσετε τις προτάσεις

Διαβάστε περισσότερα

Περιεχόµενα. Ανασκόπηση - Ορισµοί. Ο κύκλος ανάπτυξης προγράµµατος. Γλώσσες Προγραµµατισµού Ασκήσεις

Περιεχόµενα. Ανασκόπηση - Ορισµοί. Ο κύκλος ανάπτυξης προγράµµατος. Γλώσσες Προγραµµατισµού Ασκήσεις Προγραµµατισµός Η/Υ Ανασκόπηση - Ορισµοί Περιεχόµενα Ο κύκλος ανάπτυξης προγράµµατος Περιγραφή προβλήµατος Ανάλυση προβλήµατος Λογικό ιάγραµµα Ψευδοκώδικας Κωδικοποίηση Συντήρηση Γλώσσες Προγραµµατισµού

Διαβάστε περισσότερα

Προγραμματισμός και Εφαρμογές Υπολογιστών

Προγραμματισμός και Εφαρμογές Υπολογιστών Προγραμματισμός και Εφαρμογές Υπολογιστών Ενότητα 1: Αλγόριθμοι και Επίλυση Προβλημάτων Τμήμα: Αγροτικής Οικονομίας & Ανάπτυξης Διδάσκων: Κ.Π. Γιαλούρης Μαθησιακοί Στόχοι Ενότητας Απόκτηση αναλυτικής και

Διαβάστε περισσότερα

Εισαγωγή στον προγραμματισμό

Εισαγωγή στον προγραμματισμό Ενότητες: Εισαγωγή στον προγραμματισμό Η έννοια του προγράμματος Ιστορική αναδρομή Φυσικές και τεχνητές γλώσσες Τεχνικές σχεδίασης προγραμμάτων Ιεραρχική Σχεδίαση Τμηματικός Προγραμματισμός Δομημένος προγραμματισμός

Διαβάστε περισσότερα

Αριθμητική Ανάλυση και Εφαρμογές

Αριθμητική Ανάλυση και Εφαρμογές Αριθμητική Ανάλυση και Εφαρμογές Διδάσκων: Δημήτριος Ι. Φωτιάδης Τμήμα Μηχανικών Επιστήμης Υλικών Ιωάννινα 07-08 Πεπερασμένες και Διαιρεμένες Διαφορές Εισαγωγή Θα εισάγουμε την έννοια των διαφορών με ένα

Διαβάστε περισσότερα

Μεταγλωττιστές Βελτιστοποίηση

Μεταγλωττιστές Βελτιστοποίηση Μεταγλωττιστές Βελτιστοποίηση Νίκος Παπασπύρου nickie@softlab.ntua.gr Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχ. Υπολογιστών Εργαστήριο Τεχνολογίας Λογισμικού Πολυτεχνειούπολη, 15780

Διαβάστε περισσότερα

Θεωρητικό Υπόβαθρο και Μοντέλα

Θεωρητικό Υπόβαθρο και Μοντέλα ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Επιμέλεια και παρουσίαση: (kostis@cs.ntua.gr) Αρχικές διαφάνειες: Νίκος Παπασπύρου (nickie@softlab.ntua.gr) Γλώσσες Προγραμματισμού: Θεωρητικό Υπόβαθρο και Μοντέλα

Διαβάστε περισσότερα

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών Ενότητα 7: Υπορουτίνες Καθ. Γιάννης Γαροφαλάκης Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ και Πληροφορικής Ορισμός Αφαίρεση με χρήση υπορουτινών (subroutine abstraction)

Διαβάστε περισσότερα

Εντολές ελέγχου ροής if, for, while, do-while

Εντολές ελέγχου ροής if, for, while, do-while Εντολές ελέγχου ροής if, for, while, do-while 1 Μαρτίου 014 1 Εντολές εκτέλεσης υπό συνθήκη Μπορούμε να εκτελέσουμε εντολές της γλώσσας σε περίπτωση που κάποια συνθήκη ισχύει χρησιμοποιώντας την εντολή

Διαβάστε περισσότερα

Μεθοδολογία Προγραμματισμού

Μεθοδολογία Προγραμματισμού Μεθοδολογία Προγραμματισμού Εισαγωγή στo συναρτησιακό προγραμματισμό με Java Νικόλαος Πεταλίδης Τμήμα Μηχανικών Η/Υ ΤΕΙ Κεντρικής Μακεδονίας Εισαγωγή Εαρινό Εξάμηνο Ν Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας)

Διαβάστε περισσότερα

Αλγόριθμος. Αλγόριθμο ονομάζουμε τη σαφή και ακριβή περιγραφή μιας σειράς ξεχωριστών οδηγιών βημάτων με σκοπό την επίλυση ενός προβλήματος.

Αλγόριθμος. Αλγόριθμο ονομάζουμε τη σαφή και ακριβή περιγραφή μιας σειράς ξεχωριστών οδηγιών βημάτων με σκοπό την επίλυση ενός προβλήματος. Αλγόριθμος Αλγόριθμο ονομάζουμε τη σαφή και ακριβή περιγραφή μιας σειράς ξεχωριστών οδηγιών βημάτων με σκοπό την επίλυση ενός προβλήματος. Εντολές ή οδηγίες ονομάζονται τα βήματα που αποτελούν έναν αλγόριθμο.

Διαβάστε περισσότερα

Πρόβλημα είναι μια κατάσταση η οποία χρήζει αντιμετώπισης, απαιτεί λύση, η δε λύση της δεν είναι γνωστή, ούτε προφανής.

Πρόβλημα είναι μια κατάσταση η οποία χρήζει αντιμετώπισης, απαιτεί λύση, η δε λύση της δεν είναι γνωστή, ούτε προφανής. Κεφάλαιο 2 - Πρόβλημα 2.1.1. Η έννοια του προβλήματος Πρόβλημα είναι μια κατάσταση η οποία χρήζει αντιμετώπισης, απαιτεί λύση, η δε λύση της δεν είναι γνωστή, ούτε προφανής. 2.1.2. Κατηγορίες προβλημάτων

Διαβάστε περισσότερα

Δομές Ακολουθίας- Επιλογής - Επανάληψης. Δομημένος Προγραμματισμός

Δομές Ακολουθίας- Επιλογής - Επανάληψης. Δομημένος Προγραμματισμός Δομές Ακολουθίας- Επιλογής - Επανάληψης Δομημένος Προγραμματισμός 1 Βασικές Έννοιες αλγορίθμων Σταθερές Μεταβλητές Εκφράσεις Πράξεις Εντολές 2 Βασικές Έννοιες Αλγορίθμων Σταθερά: Μια ποσότητα που έχει

Διαβάστε περισσότερα