6 η Διάλεξη Python Κλάσεις & Αντικείμενα

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

Download "6 η Διάλεξη Python Κλάσεις & Αντικείμενα"

Transcript

1 6 η Διάλεξη Python Κλάσεις & Αντικείμενα

2 Αντικειμενοστραφής προγραμματισμός Όλα τα προγράμματα που γράψαμε μέχρι στιγμής, τα σχεδιάσαμε με τη χρήση συναρτήσεων, δηλαδή μπλοκ εντολών που χειρίζονται δεδομένα. Αυτή η μέθοδος αποκαλείται διαδικασιοστρεφής προγραμματισμός Υπάρχει και άλλη μέθοδος συγγραφής προγραμμάτων, η οποία συνδυάζει δεδομένα και λειτουργικότητα εμπερικλείοντας τα σε ένα αντικείμενο. Οι κλάσεις και τα αντικείμενα είναι οι δύο κύριες πτυχές του αντικειμενοστραφούς προγραμματισμού. Μια κλάση δημιουργεί ένα νέο τύπο, όπου τα αντικείμενα είναι υποστάσεις (instances) της κλάσης. Μια αναλογία θα ήταν με μεταβλητές του τύπου int και μεταφράζεται αντίστοιχα λέγοντας ότι οι μεταβλητές που αποθηκεύουν ακέραιους αριθμούς είναι υποστάσεις (αντικείμενα) της κλάσης int

3 Αντικειμενοστραφής προγραμματισμός Τα αντικείμενα αποθηκεύουν δεδομένα με τη χρήση κοινών μεταβλητών που ανήκουν στο αντικείμενο. Οι μεταβλητές που ανήκουν σε ένα αντικείμενο ή κλάση αναφέρονται ως πεδία (fields) Τα αντικείμενα μπορούν επίσης να είναι λειτουργικά με τη χρήση συναρτήσεων που ανήκουν σε μια κλάση. Τέτοιες συναρτήσεις αποκαλούνται μέθοδοι της κλάσης. Η ορολογία αυτή είναι σημαντική διότι μας επιτρέπει να ξεχωρίσουμε ανεξάρτητες συναρτήσεις και μεταβλητές από αυτές που ανήκουν σε ένα αντικείμενο ή κλάση. Καθολικά, τα πεδία και οι μέθοδοι αναφέρονται ως ιδιο χαρακτηριστικά (attributes) αυτής της κλάσης.

4 Αντικειμενοστραφής προγραμματισμός Τα πεδία είναι δύο τύπων -μπορεί να ανήκουν στην υπόσταση/αντικείμενο της κλάσης ή στην ίδια την κλάση. Αποκαλούνται μεταβλητές υπόστασης (instance variables) και μεταβλητές κλάσης αντίστοιχα. Μια κλάση δημιουργείται με τη λέξη-κλειδί class. Τα πεδία και οι μέθοδοι της κλάσης απαριθμούνται σε μια πλοκάδα κώδικα σε εσοχή. Οι μέθοδοι κλάσης έχουν μια συγκεκριμένη διαφορά από τις κοινές συναρτήσεις - πρέπει να έχουν ένα επιπλέον όνομα και πρέπει να προστεθεί στην αρχή της λίστας παραμέτρων, εσείς δε χρειάζεται να ορίσετε μια τιμή σε αυτή την παράμετρο όταν καλείτε τη μέθοδο, σας το παρέχει η Python. Αυτή η συγκεκριμένη μεταβλητή αναφέρεται στο ίδιο το αντικείμενο και κατά συνθήκη, της αποδίδεται το όνομα self.

5 Αντικειμενοστραφής προγραμματισμός Παρόλο που μπορείτε να δώσετε οποιοδήποτε όνομα σε αυτή την παράμετρο, συνιστάται το όνομα μεταβλητής self -οποιοδήποτε άλλο όνομα είναι απαξιωτικό. Υπάρχουν πολλά πλεονεκτήματα για τη χρήση ενός πρότυπου ονόματος μεταβλητής -ο κάθε αναγνώστης του κώδικα του προγράμματος σας θα το αναγνωρίσει άμεσα. Ακόμη και γραφικά περιβάλλοντα ανάπτυξης λογισμικού (Integrated Development Environments) θα σας συνδράμουν, αν χρησιμοποιείτε το όνομα μεταβλητής self Θα αναρωτιέστε πώς η Python ορίζει την τιμή για τη self και γιατί σας απαλλάσσει από τον χειροκίνητο ορισμό της. Παράδειγμα: Έστω μια κλάση MyClass και μια υπόσταση αυτής myobject. Αν καλέσετε μια μέθοδο αυτού του αντικειμένου myobject.method(arg1, arg2), μετατρέπεται αυτόματα από την Python σε MyClass.method(myobject, arg1, arg2) -αυτή είναι και η ιδιαιτερότητα του ονόματος μεταβλητής self. Αυτό σημαίνει επίσης ότι εάν έχετε μια μέθοδο η οποία δεν λαμβάνει ορίσματα, τότε θα πρέπει να έχει τουλάχιστον ένα όρισμα, τη μεταβλητή self.

6 Κλάσεις Η απλούστερη κλάση φαίνεται στο παρακάτω παράδειγμα. #!/usr/bin/python # Filename: simplestclass.py class Person: pass # Ένα κενό μπλοκ p = Person() print(p) Συνηθίζεται ο πρώτος χαρακτήρας του ονόματος μιας κλάσης να αναγράφεται με κεφαλαία.

7 Κλάσεις Στο παραπάνω πρόγραμμα δημιουργούμε 2 αντικείμενα της κλάσης Point. H εκτύπωση ενός αντικειμένου μας πληροφορεί για την κλάση του και τη διεύθυνση μνήμης που καταλαμβάνει

8 Κλάσεις Η προσθήκη χαρακτηριστικών σε ένα αντικείμενο μπορεί να γίνει δυναμικά όποτε αυτό είναι απαραίτητο χρησιμοποιώντας το συμβολισμό object.attribute=value:

9 Μέθοδοι αντικειμένου class Person: def sayhi(self): print('hello, how are you?' ) p = Person() p.sayhi() # Αυτό το σύντομο παράδειγμα θα μπορούσε να γραφτεί και ως Person().sayHi() Εδώ βλέπουμε τη μεταβλητή self σε δράση. Παρατηρήστε πως η μέθοδος sayhi δε δέχεται παραμέτρους, αλλά εμπερικλείει τη μεταβλητή self στον ορισμό της συνάρτησης.

10 Η μέθοδος init Υπάρχουν πολλά ονόματα μεθόδων που έχουν ειδική σημασία στις κλάσεις Python. Η μέθοδος init εκτελείται μόλις ένα αντικείμενο μιας κλάσης αρχικοποιείται. Η μέθοδος αυτή είναι χρήσιμη για την κατάλληλη αρχικοποίηση που επιθυμείτε για το αντικείμενο σας. Παράδειγμα: #!/usr/bin/python # Filename: class_init.py class Person: def init (self, name): self. name = name def sayhi(self): print('hello, my name is', self. name) p = Person('Swaroop' ) p. sayhi() # Αυτό το σύντομο παράδειγμα μπορεί να γραφτεί και ως Person('Swaroop' ). sayhi() Η μέθοδος init λαμβάνει ως παράμετρο την name (μαζί με self). Δημιουργούμε ένα νέο πεδίο που αποκαλείται επίσης name. Προσέξτε ότι πρόκειται για δύο διαφορετικές μεταβλητές παρότι αναφέρονται και οι δύο ως 'name'. Δεν πρόκειται να υπάρξει σύγχυση εδώ διότι ο διάστικτος συμβολισμός (dotted notation) self.name σημαίνει ότι υπάρχει μεταβλητή που λέγεται "name" και είναι μέρος του αντικειμένου που λέγεται "self" ενώ το άλλο name είναι μια τοπική μεταβλητή. Δεν καλούμε ρητά τη μέθοδο init, αλλά μεταφέρουμε τα ορίσματα εντός των παρενθέσεων μετά το όνομα της κλάσης, όταν δημιουργούμε μια νέα υπόσταση της κλάσης.

11 Η μέθοδος init Το πρώτο όρισμα μιας μεθόδου μιας κλάσης πρέπει να είναι μια αναφορά στο τρέχον στιγμιότυπο της κλάσης. Συνήθως χρησιμοποιείται η λέξη self χωρίς να είναι απαραίτητο. Όταν το πρόγραμμα εκτελείται κάθε αναφορά της self στο κώδικα αντικαθίσταται με το αντικείμενο Τα χαρακτηριστικά χ και y δημιουργούνται κατά την αρχικοποίηση του αντικειμένου. Αν θέλουμε να δημιουργήσουμε ένα αντικείμενο με διαφορετικές αρχικές τιμές από τις προκαθορισμένες πρέπει να επεκτείνουμε τη μέθοδο init

12 Κλάσεις - Παραδείγματα Η κληση μιας μεθόδου γίνεται με τη χρήση του συμβολισμού της τελείας Object.method() Εκτός από χαρακτηριστικά των αντικειμένων υπάρχουν και τα χαρακτηριστικά κλάσεων. Πρόσβαση σε αυτά έχουμε ως εξής: class.attribute

13 Κλάσεις - Παραδείγματα Η προσθήκη ενός κλειδιού στη λίστα data θα γίνει 3 φορές, όση είναι η τιμή της μεταβλητής limit.στη συνέχεια αλλάζουμε την τιμή της μεταβλητής limit σε 4 για να προσθέσουμε 4 κωδικούς

14 Μεταβλητές κλάσης και αντικειμένου Τα δεδομένα, δηλαδή τα πεδία, δεν είναι παρά συνηθισμένες μεταβλητές και οροθετούνται από τους χώρους ονομάτων (namespaces) των κλάσεων και αντικειμένων. Αυτό σημαίνει πρακτικά ότι τα ονόματα αυτά είναι έγκυρα μόνο εντός αυτών των κλάσεων και αντικειμένων. Γι' αυτό αποκαλούνται name Spaces. Υπάρχουν δύο τύποι πεδίων (fields) -μεταβλητές κλάσης και μεταβλητές αντικειμένων και οι οποίες ταξινομούνται ανάλογα με την κλάση ή αντικείμενο που τις κατέχει αντίστοιχα. Οι Μεταβλητές κλάσης είναι κοινόχρηστες -μπορούν να προσπελαστούν από όλες τις υποστάσεις αυτής της κλάσης. Υπάρχει μόνο ένα αντίγραφο της μεταβλητής κλάσης και όταν κάποιο αντικείμενο τροποποιήσει τη μεταβλητή αυτή, η τροποποίηση θα είναι εμφανής σε όλες τις υποστάσεις. Οι μεταβλητές αντικειμένου ανήκουν μεμονωμένα σε κάθε αντικείμενο/υπόσταση της κλάσης. Στην περίπτωση αυτή, κάθε αντικείμενο έχει το δικό του αντίγραφο του πεδίου, δηλαδή δεν είναι κοινόχρηστες και δεν σχετίζονται σε καμία περίπτωση με το συνονόματο πεδίο σε μια διαφορετική υπόσταση.

15 Μεταβλητές κλάσης και αντικειμένου

16 Μεταβλητές κλάσης και αντικειμένου droid1 = Robot('R2-D2' ) droid1. sayhi() Robot. howmany() droid2 = Robot('C-3PO' ) droid2. sayhi() Robot. howmany() print("\nrobots can do some work here. \n") print("robots have finished their work. So let's destroy them.") del droid1 del droid2 Αν δώσουμε της παραπάνω εντολές θα πάρουμε ως έξοδο: (Initializing R2-D2) Greetings, my masters call me R2-D2. We have 1 robots. (Initializing C-3PO) Greetings, my masters call me C-3PO. We have 2 robots. Robots can do some work here. Robots have finished their work. So let's destroy them.

17 Μεταβλητές κλάσης και αντικειμένου R2-D2 is being destroyed! There are still 1 robots working. C-3PO is being destroyed! C-3PO was the last one. We have 0 robots. Η μεταβλητή population ανήκει στην κλάση Robot και συνεπώς είναι μια μεταβλητή κλάσης. Η μεταβλητή name ανήκει στο αντικείμενο (έχει ανατεθεί με τη χρήση της self) και είναι μια μεταβλητή αντικειμένου. Άρα, αναφερόμαστε στη μεταβλητή κλάσης population ως Robot.population και όχι ως self.population. Αναφερόμαστε στη μεταβλητή αντικειμένου name με το συμβολισμό self.name των μεθόδων αυτού του αντικειμένου. Να θυμάστε αυτή την απλή διαφορά μεταξύ των μεταβλητών κλάσεων και αντικειμένων. Σημειώστε επίσης ότι μια μεταβλητή αντικειμένου με το ίδιο όνομα μιας μεταβλητής κλάσης θα αποκρύψει τη μεταβλητή κλάσης!

18 Μεταβλητές κλάσης και αντικειμένου Το πεδίο howmany είναι πράγματι μια μέθοδος που ανήκει στην κλάση και όχι στο αντικείμενο. Αυτό σημαίνει ότι μπορούμε να οριστεί είτε ως classmethod ή ως staticmethod, ανάλογα με το αν θα πρέπει να γνωρίζουμε σε ποια κλάση ανήκει. Δεδομένου ότι δε χρειαζόμαστε τέτοιες πληροφορίες, θα επιλέξουμε τη staticmethod. Θα είχαμε επίσης το ίδιο αποτέλεσμα με τη χρήση διακοσμητών def howmany(): '''Prints the current population.''' print('we have {0:d} robots.'. format(robot. population)) Μπορούμε να φανταστούμε τους διακοσμητές ως συντομεύσεις για την κλήση μιας ρητής εντολής (explicit statement), όπως είδαμε σε αυτό το παράδειγμα. Παρατηρήστε ότι η μέθοδος init χρησιμοποιείται για την αρχικοποίηση της υπόστασης Robot με ένα όνομα. Σε αυτή τη μέθοδο, ο αριθμός του πληθυσμού population αυξάνεται κατά 1, προσθέτοντας ένα ακόμη ρομπότ. Παρατηρήστε επίσης ότι οι τιμές της κλάσης self.name είναι ειδικές για κάθε αντικείμενο, γεγονός που υποδεικνύει τη φύση των μεταβλητών αντικειμένου.

19 Μεταβλητές κλάσης και αντικειμένου Θυμηθείτε ότι οφείλετε να αναφέρεστε στις μεταβλητές και μεθόδους του ιδίου αντικειμένου αποκλειστικά με τη χρήση της μεθόδου self. Αυτό αποκαλείται ως αναφορά ιδιοχαρακτηριστικού (attribute reference) Σε αυτό το πρόγραμμα, βλέπουμε επίσης τη χρήση docstrings για κλάσεις αλλά και για μεθόδους. Μπορούμε να προσπελάσουμε τις docstring της κλάσης ενόσω τρέχει το πρόγραμμα χρησιμοποιώντας το Robot. doc και τη μέθοδο docstring ως Robot.sayHi. doc Ακριβώς όπως η μέθοδος init, υπάρχει η ειδική μέθοδος del και καλείται όταν τερματίζεται ένα αντικείμενο, δηλαδή όταν αποδεσμεύεται και επιστρέφεται στο σύστημα για επαναχρησιμοποίηση αυτή η περιοχή μνήμης. Σε αυτή τη μέθοδο, μειώνουμε τον αριθμό των ρομπότ Robot.population κατά 1. Η μέθοδος del εκτελείται όταν το αντικείμενο δεν είναι σε χρήση πλέον και δεν εγγυάται πότε θα εκτελεστεί αυτή. Αν θέλετε να το δείτε σε δράση, πρέπει να χρησιμοποιήσετε την εντολή del και το έχουμε κάνει εδώ.

20 Μεταβλητές κλάσης και αντικειμένου Όλα τα μέλη κλάσης (class members) (συμπεριλαμβανομένων και των μελών δεδομένων (data members)) είναι δημόσια (public) και όλες οι μέθοδοι είναι εικονικές (virtual) στην Python. Μια εξαίρεση: Για την ονομασία μελών δεδομένων με τη χρήση του διπλού προθέματος κάτω παύλας (double underscore prefix), π.χ privatevar, η Python χρησιμοποιεί κατάτμηση ονόματος (name-mangling) για να οριστεί η μεταβλητή ως ιδιωτική αποτελεσματικά Άρα, η σύμβαση που ακολουθείται είναι ότι η χρήση μιας μεταβλητής εντός αποκλειστικά μιας κλάσης ή ενός αντικειμένου, οφείλει να ξεκινά με μια κάτω παύλα και ότι όλα τα υπόλοιπα ονόματα είναι δημόσια (public) και μπορούν να χρησιμοποιηθούν από άλλες κλάσεις/αντικείμενα. Να θυμάστε ότι μιλάμε μόνο για μια σύμβαση και δεν επιβάλλεται από την Python (με εξαίρεση το διπλό πρόθεμα κάτω παύλας)

21 Κληρονομικότητα (Inheritance) Ένα από τα σημαντικά οφέλη του αντικειμενοστραφούς προγραμματισμού είναι η επαναχρησιμοποίηση (reuse) του κώδικα και ένας από τους τρόπους που επιτυγχάνεται είναι μέσω του μηχανισμού της κληρονομικότητας. Ας υποθέσουμε ότι θέλετε να γράψετε ένα πρόγραμμα που καταγράφει τους καθηγητές και τους μαθητές ενός κολλεγίου. Έχουν κάποια κοινά χαρακτηριστικά - ονοματεπώνυμο, ηλικία και διεύθυνση κατοικίας. Επίσης, έχουν ιδιαίτερα χαρακτηριστικά - μισθοδοσία, μαθήματα και άδειες για τους καθηγητές, βαθμολογία και δίδακτρα για τους μαθητές. Μπορείτε να δημιουργήσετε δύο ανεξάρτητες κλάσεις για κάθε τύπο και να τις επεξεργαστείτε, αλλά η προσθήκη ενός νέου κοινού χαρακτηριστικού θα απαιτούσε την προσθήκη του και στις δύο αυτές ανεξάρτητες κλάσεις. Καταντά δύσχρηστη αυτή η προσέγγιση.

22 Κληρονομικότητα (Inheritance) Μια καλύτερη λύση θα ήταν να δημιουργηθεί μια κοινή κλάση με το όνομα SchoolMember και κατόπιν οι κλάσεις καθηγητές και μαθητές να κληρονομήσουν από αυτή, δηλαδή να γίνουν υποτύποι αυτού του τύπου (κλάση) και στη συνέχεια να προσθέσουμε ειδικά χαρακτηριστικά σε αυτούς τους υποτύπους Εάν προσθέσουμε/αλλάξουμε κάποια λειτουργία στην κλάση SchoolMember, αυτομάτως ενημερώνονται και οι υποτύποι. Για παράδειγμα, ένα πεδίο αριθμού ταυτότητας για τους μαθητές και τους καθηγητές είναι εφικτό εύκολα με την προσθήκη του στην κλάση SchoolMember. Ωστόσο, οι αλλαγές σε έναν υποτύπο δεν επηρεάζουν τους άλλους υποτύπους. Ένα άλλο πλεονέκτημα είναι ότι εάν μπορούμε να αναφερθούμε σε ένα αντικείμενο καθηγητή ή μαθητή ως αντικείμενο SchoolMember, θα μας φανεί χρήσιμο σε καταστάσεις για τον υπολογισμό του συνολικού αριθμού των μελών του κολλεγίου. Η ιδιότητα αυτή αποκαλείται πολυμορφισμός (polymorphism) όπου ένας υποτύπος μπορεί να αντικατασταθεί σε κάθε περίπτωση που περιμένουμε ένα γονικό τύπο, δηλαδή το αντικείμενο μπορούμε να το χειριστούμε σαν μια υπόσταση της γονικής κλάσης

23 Κληρονομικότητα (Inheritance) Η κλάση SchoolMember σε αυτή την περίπτωση ονομάζεται βασική κλάση (base class) ή υπερκλάση (superclass). Οι κλάσεις Teacher και Student αποκαλούνται παράγωγες κλάσεις (derived classes) ή υποκλάσεις (subclasses) class SchoolMember: '''Represents any school member.''' def init (self, name, age): self. name = name self. age = age print('(initialized SchoolMember: {0})'. format(self. name)) def tell(self): ''Tell my details.''' print('name:"{0}" Age:"{1}"'. format(self. name, self. age), end="")

24 Κληρονομικότητα (Inheritance) class Teacher(SchoolMember): '''Represents a teacher.''' def init (self, name, age, salary): SchoolMember. init (self, name, age) self. salary = salary print('(initialized Teacher: {0})'. format(self. name)) def tell(self): SchoolMember. tell(self) print('salary: "{0:d}"'. format(self. salary)) class Student(SchoolMember): '''Represents a student.''' def init (self, name, age, marks): SchoolMember. init (self, name, age) self. marks = marks print('(initialized Student: {0})'. format(self. name)) def tell(self): SchoolMember. tell(self) print('marks: "{0:d}"'. format(self. marks))

25 Κληρονομικότητα (Inheritance) t = Teacher('Mrs. Shrividya', 40, 30000) s = Student('Swaroop', 25, 75) print() # εκτυπώνει μια κενή γραμμή members = [t, s] for member in members: member. tell() # works for both Teachers and Students

26 Κληρονομικότητα (Inheritance) Έξοδος: $ python inherit.py (Initialized SchoolMember: Mrs. Shrividya) (Initialized Teacher: Mrs. Shrividya) (Initialized SchoolMember: Swaroop) (Initialized Student: Swaroop) Name:"Mrs. Shrividya" Age:"40" Salary: "30000" Name:"Swaroop" Age:"25" Marks: "75"

27 Κληρονομικότητα (Inheritance) Η Python υποστηρίζει την πολλαπλή κληρονομικότητα. Ο ορισμός μιας κλάσης που κληρονομεί περισσότερες κλάσεις έχει τη μορφή: class ονομα_κλάσης(υπερκλάση1,υπερκλάση2, ): εντολές

28 Κληρονομικότητα (Inheritance) Αν στο προηγούμενο πρόγραμμα αφαιρέσουμε το χαρακτήρα # και εκτελεστή η τελευταία εντολή, Θα πάρουμε μήνυμα σφάλματος της μορφής: Child object has no attribute name Γιατί η τιμή της name δεν είναι γνωστή στο αντικείμενο τύπου Child, επειδή η μέθοδος init της κλάσης Father δεν εκτελείται αυτόματα. Η μέθοδος init της υπερκλάσης καλείται μόνο όταν η υποκλάση δε διαθέτει μέθοδο αρχικοποίησης ή γίνει έμμεση άμμεση αναφορά στην αντίστοιχη μέθοδο της υπερκλάσης. Η κλήση σε οποιαδήποτε μέθοδο μιας υπερκλάσης γίνεται με τη μέθοδο super() ή ρητά χρησιμοποιώντας το όνομα της υπερκλάσης:

29 Ενθυλάκωση Η python δεν υποστηρίζει πραγματική ενθυλάκωση, αφού δεν επιτρέπει περιορισμούς πρόσβασης Για να επισημάνουμε ένα αναγνωριστικό ως ιδιωτικό θέτουμε ως πρώτο χαρακτήρα στο όνομά του την κάτω παύλα (_). Χωρίς να περιορίζεται η πρόσβαση απλά αποθαρρύνεται η προσπέλασή του έξω από την κλάση. Αν το όνομα ενός αναγνωριστικού αρχίζει με δύο κάτω παύλες ( ) τότε η πρόσβαση επιτρέπεται μόνο μέσα από τη κλάση Η μέθοδος printdata() ιδιωτική, η κλήσης της στη γραμμή 9 είναι επιτυχής Αντίθετα η άμεση κλήση της στη γραμμη 10 θα δημιουργήσει εξαίρεση

30 Ενθυλάκωση Ένα ιδιωτικό αναγνωριστικό μπορεί να προσπελαστεί έμμεσα με το συμβολισμό: Instancename_classname_attribute

31 Στατικές μέθοδοι και μέθοδοι κλάσης Μια κλάση στη Python μπορεί να διαθέτει και στατικές μεθόδους. Μια στατική μέθοδος μπορεί να κληθεί χωρίς τη δημιουργία στιγμιότυπού και είναι κοινή για όλα τα στιγμιότυπα και τις υποκλάσεις Μια μέθοδος κλάσης μπορεί να κληθεί χωρίς τη δημιουργία στιγμιότυπου, αρκεί να έχει όμως ως πρώτη παράμετρο μια αναφορά στη κλάση Η κύρια χρήση των μεθόδων κλάσης είναι η δημιουργία εναλλακτικών κατασκευαστών καθώς η python διαθέτει μια μόνο μέθοδο κατασκευαστή ( init ) Η δημιουργία μιας στατικής μεθόδου γίνεται με τη χρήση του πριν τον ορισμό της. Η δημιουργία μιας μεθόδους κλάσης γίνεται με τη χρήση του πριν από τον ορισμό της.

32 Στατικές μέθοδοι και μέθοδοι κλάσης Οι μέθοδοι stotalarea() και ctotalarea() υπολογίζουν και επιστρέφουν την επιφάνεια όλων των στιγμιότυπων που έχουν δημιουργηθεί. Ο ορισμός της μεθόδου ctotalarea() διαθέτει ως 1 η παράμετρο μια αναφορά cls. Η ύπαρξη της αναφοράς στη κλάση έχει σαν αποτέλεσμα μια υποκλάση της να μπορεί να καλέσει τη δική της ομώνυμή μέθοδο και όχι της γονικής Η κλήση της γίνεται με αναφορά κλάσης όπως φαίνεται στις τελευταίες γραμμές του κώδικα

33 Στατικές μέθοδοι και μέθοδοι κλάσης Το επόμενο παράδειγμα δημιουργεί δύο στιγμιότυπα της κλάσης integer, το P το πρώτο με τη χρήση της init και το δεύτερο με τη μέθοδο κλάσης new_int()

34 Υπερφόρτωση Τελεστών Η υπερφόρτωση τελεστών μας επιτρέπει να ορίζουμε τη λειτουργία των τελεστών όταν τους χρησιμοποιούμαι σε κλάσεις οριζόμενες από το χρήστη. Η παρακάτω κλάση αναπαριστά ένα μιγαδικό αριθμό: Η μέθοδος add() της κλάσης προσθέτει 2 αντικείμενα τύπου Cplx. Θα ήταν όμως πιο καλά να εκτελέσουμε την πρόσθεση με την εντολή a+b αντί να καλέσουμε τη μέθοδο a.add(b). Με την υπερφόρτωση τελεστών μπορούμε να υπερφορτώσουμε τον τελεστή + ορίζοντας τη μέθοδο add στην προηγούμενη κλάση η οποία θα εκτελεί την πρόσθεση 2 αντικειμένων της.

35 Υπερφόρτωση Τελεστών Η ειδική μέθοδος str μας επιτρέπει να αναπαραστήσουμε ένα αντικείμενο ως αλφαριθμητικό. Καλείται αυτόματα όταν τυπώνουμε ένα αντικείμενο με τη συνάρτηση print()

36 Υπερφόρτωση Τελεστών ΤΕΛΕΣΤΗΣ ΠΑΡΑΣΤΑΣΗ ΜΕΘΟΔΟΣ Πρόσθεση a+b a. add(b) Αφαίρεση a1-b a. sub (b) Πολλαπλασιασμός a1*b a mul (b) Ύψωση σε δύναμη a1**b a. pow (b) Διαίρεση a1/b a. truediv (b) Ακέραια διαίρεση a1//b a. floordiv (b) Υπόλοιπο ακέραιας διαίρεσης a1%b a. mod (b) Αριστερή ολίσθηση a1<<b a. lshift (b) Δεξιά ολίσθηση a1>>b a. rshift (b) Bitwise And a1 & b a. and (b) Bitwise OR a1 b a. or (b) Bitwise XOR a1 ^b a. xor (b) Bitwise Not ~a a. invert () Μικρότερο a<b a. lt (b) Μικρότερο ή ίσο a<=b a. le (b) Ίσο a==b a. eq (b) Όχι ίσο a!=b a. ne (b) Μεγαλύτερο a>b a. gt (b) Μεγαλύτερο ή ίσο a>=b a. ge (b)

37 Υπερφόρτωση Τελεστών Αν θέλουμε να δούμε αν 2 μιγαδικοί είναι ίσοι θα πρέπει στη κλάση Cplx να ορίσουμε τη μέθοδο eq ():

38 Παραδείγματα: Κύκλος

39 Παραδείγματα: Κατοικίδια Η κλάση Pet διαθέτει 2 μεθόδους τη getname() και gettype(), οι οποίες επιστρέφουν το όνομα και το είδος του κατοικίδιου. Η μέθοδος str () αναπαριστά το αντικείμενο ως αλφαριθμητικό. Καλείται αυτόματα όταν τυπώνουμε ένα αντικείμενο με τη print(). Η κλάση Dog κληρονομεί όλα τα χαρακτηριστικά της κλάσης Pet. Έχει μια παραπάνω μέθοδο τη likecats() για το να συμπαθεί τις γάτες ή όχι. Το ίδιο φτιάχνουμε και για την Cat.

40 Παραδείγματα: Αναπαράσταση διανύσματος στο χώρο Magnitude=m Distance= Ο υπολογισμός του μήκους του διανύσματος έγινε χρησιμοποιώντας γεννήτρια εκφράσεων που έχει παρόμοια σύνταξη με τις υπογιζόμενες λίστες απλά αντί για αγκύλες βάζουμε παρενθέσεις. Η ενσωματωμένη μέθδος zip() επιτρέπει να διατρέξουμε παράλληλα 2 (ή περισσότερες ακολουθίες με τον ίδιο βρόγχο for. H sum και η sqrt είναι συναρτήσεις της βιβλιοθήκης math

41 Παραδείγματα: Κατασκευή κλάσης για την αποθήκευση στοιχείων πελατών

42 Παραδείγματα: Κατασκευή κλάσης που θα αρχικοποιείται με όνομα & επώνυμο. Η κλάση θα περιέχει και μια μέθοδο κατασκευαστή που θα επιτρέπει τη δημιουργία ενός στιγμιότυπου το οποίο αρχικοποιείται με ένα αλφαριθμητικό Η μέθοδος splitname() έχει ως πρώτη παράμετρο μια αναφορά στη κλάση cls και ως δεύτερη παράμετρο το ονοματεπώνυμο. Η μέθοδος split() χωρίζει ένα αλφαριθμητικό στις λέξεις από τις οποίες αποτελείται χρησιμοποιώντας το κενό χαρακτήρα ως προκαθορισμένο διαχωριστικό χαρακτήρα. Η μέθοδος κλάσης αρχικοποιεί και επιστρέφει το αντικείμενο

43 Παραδείγματα: Κατασκευή κλάσης για την χρησιμοποίησή της ως επαναλήπτη Η δημιουργία επαναλήπτη απαιτεί τον ορισμό της μεθόδου iter η οποία επιστρέφει ένα αντικείμενο iterator και της μεθόδου next που επιστρέφει το επόμενο διαθέσιμο στοιχείο. Η μέθοδος iter απλώς επιστρέφει μια αναφορά στο αντικείμενο. Κάθε επανάληψη του βρόγχου for καλεί τη μέθοδο next η οποία επιστρέφει την επόμενη τιμή μέχρι να προκληθεί μια εξαίρεση Stopiteration όταν δεν υπάρχουν άλλες.

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Εισαγωγή στη Python Νικόλαος Ζ. Ζάχαρης Αναπληρωτής

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

Κλάσεις και αντικείμενα #include <iostream.h<

Κλάσεις και αντικείμενα #include <iostream.h< Κλάσεις και αντικείμενα #include class Person private: char name[30]; int age; public: void readdata() cout > name; cout > age; void

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

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ Εισαγωγή στην γλώσσα προγραμματισμού Ακαδημαϊκό έτος 2016-2017, Εαρινό εξάμηνο Οι σημειώσεις βασίζονται στα συγγράμματα: A byte of Python (ελληνική

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

Κλάσεις στην Python. Δημιουργία κλάσεων

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

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

Αντικειμενοστρεφής προγραμματισμός Object Oriented Programming (OOP) Σπάχος Κυριάκος Καθηγητής Πληροφορικής ΠΕ19

Αντικειμενοστρεφής προγραμματισμός Object Oriented Programming (OOP) Σπάχος Κυριάκος Καθηγητής Πληροφορικής ΠΕ19 Αντικειμενοστρεφής προγραμματισμός Object Oriented Programming (OOP) Σπάχος Κυριάκος Καθηγητής Πληροφορικής ΠΕ19 Διαδικασιακός προγραμματισμός Ο Διαδικασιακός προγραμματισμός δίνει έμφαση στις ενέργειες/διεργασίες/εντολές

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

Εισαγωγή στον Προγ/μό Υπολογιστών

Εισαγωγή στον Προγ/μό Υπολογιστών Εισαγωγή στον Προγ/μό Υπολογιστών Διάλεξη 1 Εκφράσεις, κλητικές εκφράσεις, ονόματα Περιεχόμενα Εκφράσεις (expressions) Τελεστές (operators) της Python Κλητικές εκφράσεις (call expressions) Ονόματα (names)

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

Γραφικά υπολογιστών Εργαστήριο 9 Κλάσεις στην Python. Σκοπός της 9ης άσκησης είναι να μάθουμε αντικειμενοστρεφή προγραμματισμό στην Python.

Γραφικά υπολογιστών Εργαστήριο 9 Κλάσεις στην Python. Σκοπός της 9ης άσκησης είναι να μάθουμε αντικειμενοστρεφή προγραμματισμό στην Python. Γραφικά υπολογιστών Εργαστήριο 9 Κλάσεις στην Python Σκοπός της 9ης άσκησης είναι να μάθουμε αντικειμενοστρεφή προγραμματισμό στην Python. 1. Εισαγωγή Κάθε χαρακτήρας σε ένα παιχνίδι χρειάζεται κάποια

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

Αρχές Τεχνολογίας Λογισμικού Εργαστήριο

Αρχές Τεχνολογίας Λογισμικού Εργαστήριο Αρχές Τεχνολογίας Λογισμικού Εργαστήριο Κωδικός Μαθήματος: TP323 Ώρες Εργαστηρίου: 2/εβδομάδα (Διαφάνειες Νίκου Βιδάκη) 1 JAVA Inheritance Εβδομάδα Νο. 3 2 Προηγούμενο μάθημα (1/2) Τι είναι αντικείμενο?

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

Εισαγωγή σε αντικειμενοστραφή concepts. Και λίγη C#

Εισαγωγή σε αντικειμενοστραφή concepts. Και λίγη C# Εισαγωγή σε αντικειμενοστραφή concepts Και λίγη C# Κλάσεις Κλάση: τύπος δεδομένων που αποτελεί συλλογή πεδίων, ορισμών συναρτήσεων/μεθόδων και ορισμών άλλων τύπων δεδομένων. Αντίστοιχο σκεπτικό με struct

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

Κλάσεις στην Python. Δημιουργία κλάσεων

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

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

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #2

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #2 Ανασκόπηση Μια εφαρμογή Java είναι ένα σύνολο από συνεργαζόμενες κλάσεις Διάλεξη #2: Αντικείμενα, Κλάσεις και Μέθοδοι Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 1 Εισαγωγή στον Αντικειμενοστρεφή

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

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python Εισαγωγή στην Επιστήμη Υπολογιστών Εισαγωγή στην Python Python scripts Ένα πρόγραμμα στην Python (συχνά αποκαλείται script) αποτελείται από μία ακολουθία ορισμών και εντολών. H ακολουθία των ορισμών και

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

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

Αντικειμενοστραφής Προγραμματισμός Κλάσεις Αντικειμενοστραφής Προγραμματισμός Κλάσεις-Αντικείμενα Ένα παράδειγμα Συναρτήσεις κατασκευής (Constructors) Συνάρτηση καταστροφής (Destructor) Συναρτήσεις πρόσβασης (Access Functions) Συνάρτηση

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

2.1 Αντικειµενοστρεφής προγραµµατισµός

2.1 Αντικειµενοστρεφής προγραµµατισµός 2.1 Αντικειµενοστρεφής προγραµµατισµός Στον αντικειµενοστρεφή προγραµµατισµό (object oriented programming, OOP) ένα πρόγραµµα υπολογιστή είναι ένα σύνολο αλληλεπιδρώντων αντικειµένων. Μπορεί να ειπωθεί

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

Σύνθεση και Κληρονομικότητα

Σύνθεση και Κληρονομικότητα Σύνθεση και Κληρονομικότητα Σύνθεση (composition) Κληρονομικότητα (inheritance) Υπερφόρτωση κληρονομημένων μελών Εικονικές συναρτήσεις και Πολυμορφισμός Αφηρημένες (abstract) βασικές κλάσεις 1 Σύνθεση

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

ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ) ΚΑΙ ΜΑΘΗΜΑΤΩΝ ΕΙΔΙΚΟΤΗΤΑΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ΚΑΙ Β ) ΤΕΤΑΡΤΗ 20 ΙΟΥΝΙΟΥ 2018

ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ) ΚΑΙ ΜΑΘΗΜΑΤΩΝ ΕΙΔΙΚΟΤΗΤΑΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ΚΑΙ Β ) ΤΕΤΑΡΤΗ 20 ΙΟΥΝΙΟΥ 2018 ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ) ΚΑΙ ΜΑΘΗΜΑΤΩΝ ΘΕΜΑ Α ΕΙΔΙΚΟΤΗΤΑΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ΚΑΙ Β ) ΤΕΤΑΡΤΗ 20 ΙΟΥΝΙΟΥ 2018 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Α1. Να χαρακτηρίσετε

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

ΑΡΦΕ ΑΝΣΙΚΕΙΜΕΝΟΣΡΕΥΟΤ ΠΡΟΓΡΑΜΜΑΣΙΜΟΤ. Ιωάννης Φατζηλυγερούδης Αναπληρωτής Καθηγητής Τμήμα Μηχ/κών Η/Υ και Πληροφορικής Πανεπιστήμιο Πατρών

ΑΡΦΕ ΑΝΣΙΚΕΙΜΕΝΟΣΡΕΥΟΤ ΠΡΟΓΡΑΜΜΑΣΙΜΟΤ. Ιωάννης Φατζηλυγερούδης Αναπληρωτής Καθηγητής Τμήμα Μηχ/κών Η/Υ και Πληροφορικής Πανεπιστήμιο Πατρών ΑΡΦΕ ΑΝΣΙΚΕΙΜΕΝΟΣΡΕΥΟΤ ΠΡΟΓΡΑΜΜΑΣΙΜΟΤ Ιωάννης Φατζηλυγερούδης Αναπληρωτής Καθηγητής Τμήμα Μηχ/κών Η/Υ και Πληροφορικής Πανεπιστήμιο Πατρών ΜΟΡΥΕ ΠΡΟΓΡΑΜΜΑΣΙΜΟΤ Διαδικασιακός ή Διαδικαστικός (Procedural)

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

Σύνθεση και Κληρονομικότητα

Σύνθεση και Κληρονομικότητα Σύνθεση και Κληρονομικότητα Σύνθεση (composition) Κληρονομικότητα (inheritance) Υπερφόρτωση κληρονομημένων μελών Εικονικές συναρτήσεις και Πολυμορφισμός Αφηρημένες (abstract) βασικές κλάσεις 1 Σύνθεση

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

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 2 : ΜΕΤΑΒΛΗΤΕΣ ΤΕΛΕΣΤΕΣ & ΕΚΦΡΑΣΕΙΣ ΕΛΕΓΧΟΣ ΡΟΗΣ

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 2 : ΜΕΤΑΒΛΗΤΕΣ ΤΕΛΕΣΤΕΣ & ΕΚΦΡΑΣΕΙΣ ΕΛΕΓΧΟΣ ΡΟΗΣ Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 2 : ΜΕΤΑΒΛΗΤΕΣ ΤΕΛΕΣΤΕΣ & ΕΚΦΡΑΣΕΙΣ ΕΛΕΓΧΟΣ ΡΟΗΣ Κων. Κόκκινος Μεταβλητές-1 Οι μεταβλητές αποτελούν θέσεις μνήμης στις οποίες αποθηκεύονται τιμές αντίστοιχες

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

Στοιχειώδης προγραμματισμός σε C++

Στοιχειώδης προγραμματισμός σε C++ Στοιχειώδης προγραμματισμός σε C++ Σύντομο Ιστορικό. Το πρόγραμμα Hello World. Ο τελεστής εξόδου. Μεταβλητές και δηλώσεις τους. Αντικείμενα, μεταβλητές, σταθερές. Ο τελεστής εισόδου. Θεμελιώδεις τύποι.

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

Εισαγωγή στον Προγραµµατισµό, Αντώνιος Συµβώνης, ΣΕΜΦΕ, ΕΜΠ,, Slide 6

Εισαγωγή στον Προγραµµατισµό, Αντώνιος Συµβώνης, ΣΕΜΦΕ, ΕΜΠ,, Slide 6 Ανασκόπηση Μια εφαρµογή Java είναι ένα σύνολο από συνεργαζόµενες κλάσεις Εβδοµάδα 2: Αντικείµενα, Κλάσεις και Μέθοδοι Εισαγωγή στον Προγραµµατισµό,,, Slide 1 Εισαγωγή στον Προγραµµατισµό,,, Slide 2 Ανασκόπηση:

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

ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΞΙ (6)

ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΞΙ (6) ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ Γ HMEΡΗΣΙΩΝ Δ ΕΣΠΕΡΙΝΩΝ ΑΥΤΟΤΕΛΩΝ ΕΙΔΙΚΩΝ ΤΜΗΜΑΤΩΝ & ΤΜΗΜΑΤΩΝ ΣΥΝΔΙΔΑΣΚΑΛΙΑΣ ΕΠΑΓΓΕΛΜΑΤΙΚΩΝ ΛΥΚΕΙΩΝ ΤΕΤΑΡΤΗ 20 ΙΟΥΝΙΟΥ 2018 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ

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

ΚΕΦΑΛΑΙΟ 8. Κλάσεις και αντικείμενα. 8.1 Εισαγωγή

ΚΕΦΑΛΑΙΟ 8. Κλάσεις και αντικείμενα. 8.1 Εισαγωγή ΚΕΦΑΛΑΙΟ 8 Κλάσεις και αντικείμενα Σύνοψη Σ αυτό το κεφάλαιο εμβαθύνουμε σε έννοιες του αντικειμενοστραφούς προγραμματισμού όπως οι κλάσεις, τα αντικείμενα, ο πολυμορφισμός, και η κληρονομικότητα. Προαπαιτούμενη

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

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL 8.1. Εισαγωγή ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PACAL Πως προέκυψε η γλώσσα προγραμματισμού Pascal και ποια είναι τα γενικά της χαρακτηριστικά; Σχεδιάστηκε από τον Ελβετό επιστήμονα της Πληροφορικής Nicklaus Wirth to

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

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων 2 Βασικές Εντολές 2.1. Εντολές Οι στην Java ακολουθούν το πρότυπο της γλώσσας C. Έτσι, κάθε εντολή που γράφουμε στη Java θα πρέπει να τελειώνει με το ερωτηματικό (;). Όπως και η C έτσι και η Java επιτρέπει

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

ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ ΤΡΙΤΗ 11 ΙΟΥΝΙΟΥ 2019 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ

ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ ΤΡΙΤΗ 11 ΙΟΥΝΙΟΥ 2019 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ ΤΡΙΤΗ 11 ΙΟΥΝΙΟΥ 2019 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΘΕΜΑ Α Α1. Να χαρακτηρίσετε τις προτάσεις που ακολουθούν, γράφοντας στο τετράδιό σας, δίπλα στο

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

Γλωσσική Τεχνολογία. Object-Orientation in Python

Γλωσσική Τεχνολογία. Object-Orientation in Python Γλωσσική Τεχνολογία Object-Orientation in Python Everything Is an Object >>> a=[1,2,3] >>> b=a >>> b.append(4) Τι περιέχουν τα a και b? >>> def hello():... print "hello world!"... >>> def fcall(f):...

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

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική Ενότητα 7: Συναρτήσεις Νικόλαος Στεργιούλας Τμήμα Φυσικής Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

Με τι ασχολείται ο αντικειμενοστραφής προγραμματισμός

Με τι ασχολείται ο αντικειμενοστραφής προγραμματισμός 1 2 Η Αρχή Ο αντικειμενοστραφής προγραμματισμός άρχισε να χρησιμοποιείται από τους προγραμματιστές, όταν ουσιαστικά ο διαδικαστικός (δομημένος) προγραμματισμός, δεν μπορούσε να ανταποκριθεί στις νέες απαιτήσεις

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

Προγραμματισμός Ι. Εγγραφές. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Εγγραφές. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Εγγραφές Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Η Ανάγκη Ομαδοποίησης Πολλές φορές έχουμε πληροφορίες διαφορετικού τύπου οι οποίες όμως έχουν μεγάλη

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

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

Προγραμματιστικά Εργαλεία και Τεχνολογίες για Επιστήμη Δεδομένων Προγραμματιστικά Εργαλεία και Τεχνολογίες για Επιστήμη Δεδομένων Παράδοση 1/1/2019, Νίκος Παπασπύρου. Εργαστηριακή εξέταση, πρόβλημα bigpair Δίνονται δύο ακολουθίες a(1),..., a(n) και b(1),..., b(m), αποτελούμενες

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

Προγραμματισμός Ι. Εισαγωγή στην C++ Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Εισαγωγή στην C++ Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Εισαγωγή στην C++ Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Η γλώσσα C++ Σχεδιάστηκε το 1979 από τον Bjarne Stroustrup στα Bell Laboratories Βασίζεται

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

ΟΜΟΣΠΟΝΔΙΑ ΕΚΠΑΙΔΕΥΤΙΚΩΝ ΦΡΟΝΤΙΣΤΩΝ ΕΛΛΑΔΟΣ (Ο.Ε.Φ.Ε.) ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2019 Β ΦΑΣΗ

ΟΜΟΣΠΟΝΔΙΑ ΕΚΠΑΙΔΕΥΤΙΚΩΝ ΦΡΟΝΤΙΣΤΩΝ ΕΛΛΑΔΟΣ (Ο.Ε.Φ.Ε.) ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2019 Β ΦΑΣΗ ΤΑΞΗ: 3 η ΤΑΞΗ ΕΠΑ.Λ. ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ / ΕΙΔΙΚΟΤΗΤΑΣ Ημερομηνία: Σάββατο 20 Απριλίου 2019 Διάρκεια Εξέτασης: 3 ώρες ΘΕΜΑ Α ΕΚΦΩΝΗΣΕΙΣ Α1. Να γράψετε στο τετράδιό σας τον αριθμό καθεμιάς

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

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Δυναμική Διαχείριση Μνήμης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2011-2012 Ανάγκη για Δυναμική Μνήμη Στατική Μνήμη Μέχρι τώρα χρησιμοποιούσαμε

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

Λειτουργικά. Συστήματα Ι. Φ ρ ο ν τ ι σ τ ή ρ ι ο. Αριστείδης Ηλίας. Εργαστήριο Ηλεκτρονικών Υπολογιστών

Λειτουργικά. Συστήματα Ι. Φ ρ ο ν τ ι σ τ ή ρ ι ο. Αριστείδης Ηλίας. Εργαστήριο Ηλεκτρονικών Υπολογιστών Λειτουργικά Αριστείδης Ηλίας Συστήματα Ι Φ ρ ο ν τ ι σ τ ή ρ ι ο Shell Scripting Εισαγωγή Ένα shell script είναι μια λίστα εντολών που εκτελούνται ακολουθιακά Εκτελούνται ανάλογα με το κέλυφος και για

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

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

Αντικειμενοστρεφής Προγραμματισμός Αντικειμενοστρεφής Προγραμματισμός Διδάσκουσα: Αναπλ. Καθηγήτρια Ανδριάνα Πρέντζα aprentza@unipi.gr Εργαστηριακός Συνεργάτης: Δρ. Βασιλική Κούφη vassok@unipi.gr Περιεχόμενα Java Classes Java Objects Java

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

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΧΗΜΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟ ΚΕΝΤΡΟ Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού Μάθημα 2ο Μεταβλητές Μεταβλητή ονομάζεται ένα μέγεθος

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΝΑΠΤΥΞΗ ΚΑΙ ΣΧΕΔΙΑΣΗ ΛΟΓΙΣΜΙΚΟΥ Η γλώσσα προγραμματισμού C ΕΡΓΑΣΤΗΡΙΟ 2: Εκφράσεις, πίνακες και βρόχοι 14 Απριλίου 2016 Το σημερινό εργαστήριο

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Πίνακες Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Πίνακες Πολλές φορές θέλουμε να κρατήσουμε στην μνήμη πολλά αντικείμενα

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

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008 Παράδειγμα: Μηχανή για Εισιτήρια 2 Ορισμός Κλάσεων Σύνταξη κλάσης: πεδία, κατασκευαστές, μέθοδοι Ένας αυτόματος εκδότης εισιτηρίων είναι μια μηχανή που δέχεται χρήματα και εκδίδει ένα εισιτήριο. Εκδίδει

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

(Διαφάνειες Νίκου Βιδάκη)

(Διαφάνειες Νίκου Βιδάκη) (Διαφάνειες Νίκου Βιδάκη) JAVA Inheritance Εβδομάδα Νο. 3 2 Προηγούμενο μάθημα (1/2) Τι είναι αντικείμενο? Ανάλυση αντικειμένων Πραγματικά αντικείμενα Καταστάσεις Συμπεριφορές Αντικείμενα στον προγραμματισμό

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

ΣΥΝΟΛΟ ΣΕΛΙ ΩΝ: ΕΠΤΑ (7)

ΣΥΝΟΛΟ ΣΕΛΙ ΩΝ: ΕΠΤΑ (7) ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΠΑΝΕΛΛΑ ΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΗΜΕΡΗΣΙΩΝ ΕΣΠΕΡΙΝΩΝ ΕΠΑΓΓΕΛΜΑΤΙΚΩΝ ΛΥΚΕΙΩΝ ΤΡΙΤΗ 11 ΙΟΥΝΙΟΥ 2019 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΣΥΝΟΛΟ ΣΕΛΙ ΩΝ: ΕΠΤΑ (7) ΘΕΜΑ Α Α1. Να χαρακτηρίσετε

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

Προγραμματισμός Ι. Κλάσεις και Αντικείμενα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Κλάσεις και Αντικείμενα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Κλάσεις και Αντικείμενα Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Κλάσεις Η γενική μορφή μιας κλάσης είναι η εξής: class class-name { private data and

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

Προγράμματα με δομή Κληρονομικότητας

Προγράμματα με δομή Κληρονομικότητας Προγράμματα με δομή Κληρονομικότητας Η μέθοδος print της εφαρμογής DoME Η μέθοδος print στην κλάση Item τυπώνει: title: A Swingin Affair (64 mins) my favorite Sinatra album title: O Brother, Where Art

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

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

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

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

public void printstatement() { System.out.println("Employee: " + name + " with salary: " + salary);

public void printstatement() { System.out.println(Employee:  + name +  with salary:  + salary); Κληρονομικότητα Η κληρονομικότητα (inheritance) αποτελεί έναν από τους χαρακτηριστικότερους μηχανισμούς των αντικειμενοστρεφών γλωσσών προγραμματισμού. Επιτρέπει την δημιουργία μιας νέας κλάσης απορροφώντας

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

Κλάσεις και Αντικείµενα

Κλάσεις και Αντικείµενα Κλάσεις και Αντικείµενα Γρηγόρης Τσουµάκας Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Κλάσεις και Αντικείµενα 2 Τα αντικείµενα σε µια αντικειµενοστρεφή γλώσσα προγραµµατισµού, µοντελοποιούν

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

«ΕΙΔΙΚΑ ΘΕΜΑΣΑ ΣΟΝ ΠΡΟΓΡΑΜΜΑΣΙΜΟ ΤΠΟΛΟΓΙΣΩΝ» Κεφάλαιο 4: Αντικειμενοςτρεφήσ Προγραμματιςμόσ

«ΕΙΔΙΚΑ ΘΕΜΑΣΑ ΣΟΝ ΠΡΟΓΡΑΜΜΑΣΙΜΟ ΤΠΟΛΟΓΙΣΩΝ» Κεφάλαιο 4: Αντικειμενοςτρεφήσ Προγραμματιςμόσ «ΕΙΔΙΚΑ ΘΕΜΑΣΑ ΣΟΝ ΠΡΟΓΡΑΜΜΑΣΙΜΟ ΤΠΟΛΟΓΙΣΩΝ» Κεφάλαιο 4: Αντικειμενοςτρεφήσ Προγραμματιςμόσ 1 4.1. Οριςμόσ φνθετων τφπων κλάςεων 2 Με εξαίρεςη τουσ βαςικούσ τύπουσ τησ Java (int, float, boolean, κλπ) τα

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

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

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

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

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

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

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

3 Αλληλεπίδραση Αντικειμένων

3 Αλληλεπίδραση Αντικειμένων Αφαίρεση και Αρθρωσιμότητα 3 Αλληλεπίδραση Αντικειμένων Πώς συνεργάζονται τα αντικείμενα που δημιουργούμε Αφαίρεση (abstraction) είναι η δυνατότητα να αγνοούμε τις λεπτομέρειες και να εστιάζουμε την προσοχή

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

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

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

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

Διάλεξη 2. Μεταβλητές - Δομές Δεδομένων - Eίσοδος δεδομένων - Έξοδος: Μορφοποίηση - Συναρτήσεις. Διοργάνωση : ΚΕΛ ΣΑΤΜ

Διάλεξη 2. Μεταβλητές - Δομές Δεδομένων - Eίσοδος δεδομένων - Έξοδος: Μορφοποίηση - Συναρτήσεις. Διοργάνωση : ΚΕΛ ΣΑΤΜ Διάλεξη 2 Μεταβλητές - Δομές Δεδομένων - Eίσοδος δεδομένων - Έξοδος: Μορφοποίηση - Συναρτήσεις Διοργάνωση : ΚΕΛ ΣΑΤΜ Διαφάνειες: Skaros, MadAGu Παρουσίαση: MadAGu Άδεια: Creative Commons 3.0 2 Internal

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

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python Εισαγωγή στην Επιστήμη Υπολογιστών Εισαγωγή στην Python Β Μέρος Δομή Ελέγχου if-elif-else Επαναληπτική Δομή Ελέγχου while Επαναληπτική Δομή Ελέγχου for Αλληλεπίδραση χρήστη-προγράμματος Συναρτήσεις Η δομή

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

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

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

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

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

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΚΕΦΑΛΑΙΟ 2 2.4 Βασικές συνιστώσες/εντολές ενός αλγορίθμου 2.4.1 Δομή ακολουθίας ΚΕΦΑΛΑΙΟ 7 7.1 7.9 Σταθερές (constants): Προκαθορισμένες τιμές που παραμένουν

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

Pascal. 15 Νοεμβρίου 2011

Pascal. 15 Νοεμβρίου 2011 Pascal 15 Νοεμβρίου 011 1 Procedures σε Pascal Στην Pascal μπορούμε να ορίσουμε διαδικασίες (procedures). Αυτές είναι ομάδες εντολών οι οποίες έχουν ένα όνομα. Γράφοντας το όνομα μιας διαδικασίας μπορούμε

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

Γραφικά υπολογιστών Εργαστήριο 1 Εισαγωγή στην Python

Γραφικά υπολογιστών Εργαστήριο 1 Εισαγωγή στην Python Γραφικά υπολογιστών Εργαστήριο 1 Εισαγωγή στην Python Σκοπός της 1ης άσκησης είναι η εξοικείωση με τη γλώσσα προγραμματισμού Python, την οποία και θα χρησιμοποιήσουμε και στις υπόλοιπες εργαστηριακές ασκήσεις.

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

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια:

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια: Εργαστήριο 6: 6.1 Δομές Επανάληψης Βρόγχοι (Loops) Όταν θέλουμε να επαναληφθεί μια ομάδα εντολών τη βάζουμε μέσα σε ένα βρόχο επανάληψης. Το αν θα (ξανα)επαναληφθεί η εκτέλεση της ομάδας εντολών καθορίζεται

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

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

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

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

ΣΤΗΛΗ Β ΑΠΟΤΕΛΕΣΜΑ 1. float(10) α pow(2,3) β abs(-10) γ int(5.6) δ. 10 ε. 5.6 Μονάδες 8 ΣΤΗΛΗ Α ΣΥΝΑΡΤΗΣΗ

ΣΤΗΛΗ Β ΑΠΟΤΕΛΕΣΜΑ 1. float(10) α pow(2,3) β abs(-10) γ int(5.6) δ. 10 ε. 5.6 Μονάδες 8 ΣΤΗΛΗ Α ΣΥΝΑΡΤΗΣΗ ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΠΑΝΕΛΛΑ ΙΚΕΣ ΕΞΕΤΑΣΕΙΣ HMEΡΗΣΙΩΝ KAI ΕΣΠΕΡΙΝΩΝ ΕΠΑΓΓΕΛΜΑΤΙΚΩΝ ΛΥΚΕΙΩΝ ΠΕΜΠΤΗ 26 ΣΕΠΤΕΜΒΡΙΟΥ 2019 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΣΥΝΟΛΟ ΣΕΛΙ ΩΝ: ΕΠΤΑ (7)

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

Διαγράμματα Κλάσεων στη Σχεδίαση

Διαγράμματα Κλάσεων στη Σχεδίαση Διαγράμματα Κλάσεων στη Σχεδίαση περιεχόμενα παρουσίασης Αφηρημένες κλάσεις Ιδιότητες Λειτουργίες Απλοί τύποι Συσχετίσεις Εξάρτηση Διεπαφές αφηρημένες κλάσεις Οι αφηρημένες κλάσεις δεν μπορούν να δημιουργήσουν

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

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

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

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

Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript

Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript Β.1 Τύποι Δεδομένων Όλες οι γλώσσες προγραμματισμού (πρέπει να) υποστηρίζουν πέντε (5) πρωταρχικούς τύπους δεδομένων: char (character) int (integer)

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

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

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

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Αριθμητική Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Δεύτερο Πρόγραμμα 1 / * Second Simple Program : add 2 numbers * / 2

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 «Προγραμματισμός Η/Υ» - Τετράδιο Εργαστηρίου #4 2 Γενικά Στο Τετράδιο #4 του Εργαστηρίου θα αναφερθούμε σε θέματα διαχείρισης πινάκων

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

Ανακτήθηκε από την ΕΚΠΑΙΔΕΥΤΙΚΗ ΚΛΙΜΑΚΑ

Ανακτήθηκε από την ΕΚΠΑΙΔΕΥΤΙΚΗ ΚΛΙΜΑΚΑ ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΠΑΝΕΛΛΑ ΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΗΜΕΡΗΣΙΩΝ ΕΣΠΕΡΙΝΩΝ ΕΠΑΓΓΕΛΜΑΤΙΚΩΝ ΛΥΚΕΙΩΝ ΤΡΙΤΗ 11 ΙΟΥΝΙΟΥ 2019 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΣΥΝΟΛΟ ΣΕΛΙ ΩΝ: ΕΠΤΑ (7) ΘΕΜΑ Α Α1. Να χαρακτηρίσετε

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

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ Η ΓΛΩΣΣΑ PASCAL ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ Απλοί ή στοιχειώδης Τ.Δ. Ακέραιος τύπος Πραγματικός τύπος Λογικός τύπος Χαρακτήρας Σύνθετοι Τ.Δ. Αλφαριθμητικός 1. Ακέραιος (integer) Εύρος: -32768 έως 32767 Δήλωση

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

Διαδικασιακός Προγραμματισμός

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 2 η Τύποι Δεδομένων Δήλωση Μεταβλητών Έξοδος Δεδομένων Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα

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

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

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

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

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή Στόχοι και αντικείμενο ενότητας Η έννοια του Τελεστή #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Εκφράσεις Προτεραιότητα Προσεταιριστικότητα Χρήση παρενθέσεων Μετατροπές Τύπων Υπονοούμενες και ρητές μετατροπές

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Συναρτήσεις Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Συναρτήσεις Ως τώρα γράφαμε όλα τα προγράμματα μας μέσα στην main..1

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

Υπερφόρτωση τελεστών

Υπερφόρτωση τελεστών Υπερφόρτωση τελεστών 19 Νοεμβρίου 2012 1 Γενικά Στα προηγούμενα είδαμε ότι ορίζοντας μία κλάση, ορίζουμε ένα νέο τύπο τον οποίο μπορούμε να χρησιμοποιήσουμε για να δηλώσουμε αντικείμενα αυτής της νέας

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

Εργαστήριο 6 ο 7 ο / Ερωτήματα Ι

Εργαστήριο 6 ο 7 ο / Ερωτήματα Ι Εργαστήριο 6 ο 7 ο / Ερωτήματα Ι Απλά ερωτήματα Επιλογής Ερωτήματα με Ενώσεις πινάκων Ερωτήματα με Παραμετρικά Κριτήρια Ερωτήματα με Υπολογιζόμενα πεδία Απλά ερωτήματα Επιλογής Τα Ερωτήματα μας επιτρέπουν

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

Προγραμματισμός Υπολογιστών Τάξη Γ Αθανασιάδης Χρήστος ΠΕ19 ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ

Προγραμματισμός Υπολογιστών Τάξη Γ Αθανασιάδης Χρήστος ΠΕ19 ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ 2 στον Προγραμματισμό Υπολογιστών ΘΕΜΑ Α Α1. Να χαρακτηρίσετε τις προτάσεις που ακολουθούν, γράφοντας στο τετράδιό σας, δίπλα στο γράμμα που αντιστοιχεί σε κάθε πρόταση

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

Διαδικασιακός Προγραμματισμός

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 13 η Δομές & Ενώσεις Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή

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

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΞΙ (6)

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΞΙ (6) ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ HMEΡΗΣΙΩΝ ΚΑΙ ΕΣΠΕΡΙΝΩΝ ΕΠΑΓΓΕΛΜΑΤΙΚΩΝ ΛΥΚΕΙΩΝ ΠΑΡΑΣΚΕΥΗ 22 ΣΕΠΤΕΜΒΡΙΟΥ 2017 ΘΕΜΑ Α ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ:

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

ΕισαγωγήστουςΗ/Υ. PHP Hypertext Preprocessor

ΕισαγωγήστουςΗ/Υ. PHP Hypertext Preprocessor ΕισαγωγήστουςΗ/Υ PHP Hypertext Preprocessor ΤιείναιηPHP; PHP είναιµία server-based scripting language σχεδιασµένη ειδικά για το web. Σε µία html σελίδα µπορούµε να ενσωµατώσουµε php κώδικα που εκτελείται

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

Εισαγωγή στα Αντικείμενα

Εισαγωγή στα Αντικείμενα 1 CSE-391: Artificial Intelligence University of Pennsylvania Matt Huenerfauth Εισαγωγή στα Αντικείμενα Δεκέμβριος 2016 2 Όλα είναι αντικείμενα Στην Python ότι χρησιμοποιούμε είναι αντικείμενο: hello.upper()

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

Αντικειμενοστρέφεια. Henri Matisse, Harmony in Red, Κωστής Σαγώνας Νίκος Παπασπύρου

Αντικειμενοστρέφεια. Henri Matisse, Harmony in Red, Κωστής Σαγώνας Νίκος Παπασπύρου Αντικειμενοστρέφεια Henri Matisse, Harmony in Red, 1908 Κωστής Σαγώνας Νίκος Παπασπύρου Ορισμοί αντικειμενοστρέφειας Ποιοι είναι οι ορισμοί των παρακάτω; Αντικειμενοστρεφής

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

Ειδικά Θέματα Προγραμματισμού

Ειδικά Θέματα Προγραμματισμού Ειδικά Θέματα Προγραμματισμού Ενότητα 2: Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

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

Εισαγωγή στον Προγραμματισμό Python Μάθημα 4: Συναρτήσεις (functions) και δομοστοιχεία (modules) στην Python

Εισαγωγή στον Προγραμματισμό Python Μάθημα 4: Συναρτήσεις (functions) και δομοστοιχεία (modules) στην Python Εισαγωγή στον Προγραμματισμό Python Μάθημα 4: Συναρτήσεις (functions) και δομοστοιχεία (modules) στην Python Νοέμβριος 2014 Χ. Αλεξανδράκη, Γ. Δημητρακάκης Συναρτήσεις (Functions) Στον προγραμματισμό,

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

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

ΕΡΓΑΣΙΕΣ ΟΝΤΟΚΕΝΤΡΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΕΡΓΑΣΙΕΣ ΟΝΤΟΚΕΝΤΡΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ 2016-2017 ΕΡΓΑΣΙΑ 1 (JAVA) Παράδοση 26/4/2017 Στα πλαίσια της εργασίας θα υλοποιηθεί ένα απλοϊκό πρόγραμμα κρατήσεων Ξενοδοχείων. Για απλοποίηση θα περιοριστούμε

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

ΠΟΛΥΜΟΡΦΙΣΜΟΣ. 4.1 Κληρονομικότητα και Αρχή της Υποκατάστασης

ΠΟΛΥΜΟΡΦΙΣΜΟΣ. 4.1 Κληρονομικότητα και Αρχή της Υποκατάστασης ΠΟΛΥΜΟΡΦΙΣΜΟΣ Λόγω της θεμελιώδους σημασίας της έννοιας του πολυμορφισμού (polymorphism) στην αντικειμενοστρεφή σχεδίαση, κρίνεται σκόπιμο στο σημείο αυτό του βιβλίου να αναλυθεί εκτενέστερα. Ο πολυμορφισμός

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

Τυπικές χρήσεις της Matlab

Τυπικές χρήσεις της Matlab Matlab Μάθημα 1 Τι είναι η Matlab Ολοκληρωμένο Περιβάλλον Περιβάλλον ανάπτυξης Διερμηνευμένη γλώσσα Υψηλή επίδοση Ευρύτητα εφαρμογών Ευκολία διατύπωσης Cross platform (Wintel, Unix, Mac) Τυπικές χρήσεις

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

Οικονόμου Βαγγέλησ Διάλεξη Νο 2. Δομημένοσ Προγραμματιςμόσ - Διάλεξη 2

Οικονόμου Βαγγέλησ Διάλεξη Νο 2. Δομημένοσ Προγραμματιςμόσ - Διάλεξη 2 Οικονόμου Βαγγέλησ Διάλεξη Νο 2 Δομημένοσ Προγραμματιςμόσ - Διάλεξη 2 1 Η έννοια τησ μεταβλητήσ έδωςε λύςη ςτο πρόβλημα τησ αναφοράσ ςτην κύρια μνήμη του υπολογιςτή. Οι γλώςςεσ προγραμματιςμού υποςτηρίζουν

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

Εαρινό. Ύλη εργαστηρίου, Ασκήσεις Java

Εαρινό. Ύλη εργαστηρίου, Ασκήσεις Java Εξάμηνο Μάθημα Τίτλος 2017 2018 Εαρινό Αντικειμενοστραφής Προγραμματισμός Ι Ύλη εργαστηρίου, Ασκήσεις Java Ημερομηνία Εργαστήριο 5 ο Α. Ύλη εργαστηρίου 5.1 Έννοιες αντικειμενοστραφούς προγραμματισμού,

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

Προγραμματισμός Υπολογιστών & Εφαρμογές Python. Κ.Π. Γιαλούρης

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

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

Εισαγωγή στον Προγ/μό Υπολογιστών

Εισαγωγή στον Προγ/μό Υπολογιστών Εισαγωγή στον Προγ/μό Υπολογιστών Διάλεξη 10 Αντικειμενοστραφής Προγραμματισμός (object-oriented programming) Περιεχόμενα 1. Αντικειμενοστραφής προγραμματισμός 2. Τάξεις και αντικείμενα 3. Ορισμός τάξεων

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

Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα.

Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα. Ερωτήσεις προόδου C Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα. #include // δίνει οδηγία στον compiler να // συμπεριλάβει την βιβλιοθήκη stdio int

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

3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting)

3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting) Εργαστήριο 3: 3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting) Η C++, όπως όλες οι γλώσσες προγραμματισμού, χρησιμοποιεί τελεστές για να εκτελέσει τις αριθμητικές και λογικές λειτουργίες.

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

ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ

ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Εισαγωγή στη Python Νικόλαος Ζ. Ζάχαρης Αναπληρωτής

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

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΩΝ & Δ ΤΑΞΗΣ ΕΣΠΕΡΙΝΩΝ ΥΠΟΛΕΙΠΟΜΕΝΕΣ ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ HMEΡΗΣΙΩΝ ΚΑΙ ΕΣΠΕΡΙΝΩΝ ΕΠΑΓΓΕΛΜΑΤΙΚΩΝ ΛΥΚΕΙΩΝ

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΩΝ & Δ ΤΑΞΗΣ ΕΣΠΕΡΙΝΩΝ ΥΠΟΛΕΙΠΟΜΕΝΕΣ ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ HMEΡΗΣΙΩΝ ΚΑΙ ΕΣΠΕΡΙΝΩΝ ΕΠΑΓΓΕΛΜΑΤΙΚΩΝ ΛΥΚΕΙΩΝ ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ ΥΠΟΛΕΙΠΟΜΕΝΕΣ ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ HMEΡΗΣΙΩΝ ΚΑΙ ΕΣΠΕΡΙΝΩΝ ΕΠΑΓΓΕΛΜΑΤΙΚΩΝ ΛΥΚΕΙΩΝ ΤΕΤΑΡΤΗ 28 ΙΟΥΝΙΟΥ 2017 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΠΤΑ (7) ΘΕΜΑ

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

Συναρτήσεις στη Visual Basic 6.0

Συναρτήσεις στη Visual Basic 6.0 Προγραμματισμός & Εφαρμογές Υπολογιστών Μάθημα 4ο Συναρτήσεις στη Visual Basic 6.0 Κ. Κωστοπούλου Σειρά εκτέλεσης των πράξεων Όταν ορίζετε μια ακολουθία αριθμητικών πράξεων είναι δυνατόν να προκύψει αμφισημία.

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

Φυσικές και τεχνητές γλώσσες. Το αλφάβητο της ΓΛΩΣΣΑΣ, Τύποι Δεδομένων. Σταθερές, Μεταβλητές, Τελεστές, Συναρτήσεις, Δομή Προγράμματος

Φυσικές και τεχνητές γλώσσες. Το αλφάβητο της ΓΛΩΣΣΑΣ, Τύποι Δεδομένων. Σταθερές, Μεταβλητές, Τελεστές, Συναρτήσεις, Δομή Προγράμματος Φυσικές και τεχνητές γλώσσες. Το αλφάβητο της ΓΛΩΣΣΑΣ, Τύποι Δεδομένων. Σταθερές, Μεταβλητές, Τελεστές, Συναρτήσεις, Δομή Προγράμματος Ενότητες βιβλίου: 6.3, 7.1-7.6, 7.10, 8.1 Ώρες διδασκαλίας: 2 Φυσικές

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

Διαδικασιακός Προγραμματισμός

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 4 η Τελεστές Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή Σωτήρης

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Η εξέλιξη των γλωσσών προγραμματισμού Η εξέλιξη των γλωσσών προγραμματισμού είναι μια διαδικασία αφαίρεσης Στην αρχή ένα πρόγραμμα ήταν

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

Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος Κων/νος Φλώρος

Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος Κων/νος Φλώρος Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος 2012-13 Κων/νος Φλώρος Απλοί τύποι δεδομένων Οι τύποι δεδομένων προσδιορίζουν τον τρόπο παράστασης των

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Έλεγχος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Σχεσιακοί Τελεστές και Ισότητας Ένα πρόγραμμα εκτός από αριθμητικές πράξεις

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