Περιεχόμενα. Κεφάλαιο 1: Εισαγωγή Κεφάλαιο 2: Μια πρώτη ματιά στη C

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

Download "Περιεχόμενα. Κεφάλαιο 1: Εισαγωγή...17. Κεφάλαιο 2: Μια πρώτη ματιά στη C++...49"

Transcript

1

2

3 Περιεχόμενα Κεφάλαιο 1: Εισαγωγή...17 O στόχος του βιβλίου και σε ποιους απευθύνεται...19 Πως να διαβάσετε αυτό το βιβλίο...20 Η γλώσσα C++ Ιστορική αναδρομή...21 Τα χαρακτηριστικά της C Βασικές έννοιες του προγραμματισμού...26 Μεταβλητές...26 Σταθερές...28 Εντολές...28 Αναγνωριστικά...29 Φιλοσοφίες και τεχνικές προγραμματισμού...29 Αντικειμενοστρεφής προγραμματισμός...32 Κλάσεις και αντικείμενα (classes and objects)...33 Ενθυλάκωση (Encapsulation)...36 Κληρονομικότητα (Inheritance)...37 Πολυμορφισμός (Polymorphism)...38 Σχεδιασμός και ανάπτυξη προγραμμάτων...40 Λογικό διάγραμμα...40 Ανικειμενοστρεφής σχεδιασμός - UML...43 Κεφάλαιο 2: Μια πρώτη ματιά στη C Το πρώτο σας πρόγραμμα στη C Η δομή ενός προγράμματος στη C Ο προ-μεταγλωττιστής της C Η οδηγία #include...69 Η οδηγία #define...69

4 H γλώσσα C++ σε βάθος Κεφάλαιο 3: Προετοιμασία για αργότερα...77 Η C++ και η μνήμη...78 Δύο αντικείμενα, μια συνάρτηση και μια εντολή...80 Ολίγη if παρακαλώ...87 Κεφάλαιο 4: Οι βασικοί τύποι δεδομένων της C Ο τύπος δεδομένων int...96 Σταθερές τύπου int...96 Μεταβλητές τύπου int...96 Δυαδικοί αριθμοί Προτεραιότητα τελεστών Ο τύπος δεδομένων float Σταθερές τύπου float Μεταβλητές τύπου float Χρήση δεδομένων τύπου κινητής υποδιαστολής Ο τύπος δεδομένων char Σταθερές τύπου char Μεταβλητές τύπου char Πίνακας ASCII Ο τύπος wchar_t Ο τύπος δεδομένων bool Σταθερές τύπου bool Μεταβλητές τύπου bool Σταθερές και αυτόματη μετατροπή τύπου Απόλυτος προσδιορισμός τύπου σταθερών Κεφάλαιο 5: Εντολές συνθήκης Η εντολή if Η εντολή switch - case Ο τελεστής?

5 Περιεχόμενα Κεφάλαιο 6: Εντολές αλλαγής ροής και επανάληψης Η "επικίνδυνη" εντολή goto Ο βρόχος while O βρόχος do-while Ο βρόχος for Ο τελεστής "κόμμα" (,) Η εντολή break Η εντολή continue Κεφάλαιο 7: Συναρτήσεις Oρισμός μιας συνάρτησης Συναρτήσεις που επιστρέφουν τιμή Συναρτήσεις που δεν επιστρέφουν τιμή Παράμετροι συνάρτησης Χρήση συναρτήσεων βιβλιοθήκης Μετατροπή τύπου (type casting) Υπερφόρτωση συναρτήσεων Παράμετροι συνάρτησης με προκαθορισμένες τιμές Υπερφόρτωση συναρτήσεων και ασάφεια Κεφάλαιο 8: Εμβέλεια μεταβλητών Τοπικές μεταβλητές (local variables) Καθολικές μεταβλητές (global variables) Δήλωση τοπικών μεταβλητών σε σύνθετη πρόταση Δήλωση τοπικής μεταβλητής σε βρόχο for Στατικές τοπικές μεταβλητές (static local variables) Κεφάλαιο 9: Δείκτες Μεταβλητές δείκτη (pointer variables) Δήλωση μιας μεταβλητής δείκτη Οι τελεστές & και *

6 H γλώσσα C++ σε βάθος Μέχρι τώρα μάθαμε ότι Η αριθμητική των δεικτών Δείκτες τύπου Void Δείκτης NULL Κεφάλαιο 10: Προχωρημένα θέματα συναρτήσεων Κλήση συνάρτησης με τιμή, με δείκτες και με αναφορά Συναρτήσεις που επιστρέφουν ως τιμή ένα δείκτη Συναρτήσεις που επιστρέφουν ως τιμή μια αναφορά Δείκτες σε συναρτήσεις!!! Εμβόλιμες συναρτήσεις (inline functions) Κεφάλαιο 11: Πίνακες Πίνακες μιας διάστασης Οι πίνακες μιας διάστασης και οι δείκτες Προσοχή Προσοχή!!! Μεταβίβαση ενός πίνακα ως παραμέτρου μιας συνάρτησης Πίνακες χαρακτήρων Συναρτήσεις και πίνακες χαρακτήρων Συναρτήσεις βιβλιοθήκης που εφαρμόζονται σε συμβολοσειρές Αρχική τιμή ενός πίνακα μίας διάστασης Χειρισμός πινάκων μίας διάστασης Πίνακες πολλών διαστάσεων Πίνακες δύο διαστάσεων Πίνακες δύο διαστάσεων και δείκτες Πίνακες δύο διαστάσεων για αποθήκευση σειρών χαρακτήρων Μέγεθος πίνακα Πίνακες δεικτών σε συναρτήσεις

7 Περιεχόμενα Κεφάλαιο 12: Τύποι δεδομένων οριζόμενοι από το χρήστη Δομές (structures) Μεταβίβαση των μελών μιας δομής σε μια συνάρτηση Μεταβίβαση ολόκληρης της δομής σε συνάρτηση Δείκτες σε δομές Δομές μέσα σε δομές Μέλη εύρους ενός, ή περισσοτέρων, bit (bit fields) Ενώσεις (unions) Απαριθμήσεις (Enumerations) Η χρήση της typedef Κεφάλαιο 13: Κλάσεις και αντικείμενα Τι είναι μια κλάση (class) Τι είναι ένα αντικείμενο (object) Ορισμός μιας κλάσης Ορισμός και χρήση αντικειμένων Δημόσια και ιδιωτικά μέλη μιας κλάσης Συναρτήσεις δόμησης και αποδόμησης Υπερφόρτωση συναρτήσεων-μελών Ανάθεση τιμών σε αντικείμενα Πίνακες από αντικείμενα Κεφάλαιο 14: Προχωρημένα θέματα κλάσεων και αντικειμένων Αντικείμενα ως παράμετροι σε συναρτήσεις Συναρτήσεις που επιστρέφουν αντικείμενα Φίλιες συναρτήσεις μιας κλάσης Δείκτες σε αντικείμενα Στατικά μέλη μιας κλάσης Κεφάλαιο 15: Υπερφόρτωση τελεστών Υπερφόρτωση τελεστών με τη χρήση συναρτήσεων-μελών Υπερφόρτωση τελεστών με τη χρήση συναρτήσεων που δεν είναι μέλη της κλάσης

8 H γλώσσα C++ σε βάθος Κεφάλαιο 16: Κληρονομικότητα Δημιουργία μιας παράγωγης κλάσης Δημόσια (public) πρόσβαση βασικής κλάσης Ιδιωτική (private) πρόσβαση βασικής κλάσης Προστατευμένη (protected) πρόσβαση βασικής κλάσης Συνοψίζοντας Αλλαγή προσδιορισμού πρόσβασης για συγκεκριμένα μέλη Πολλαπλά επίπεδα κληρονομικότητας Κληρονομικότητα και συναρτήσεις δόμησης και αποδόμησης Κεφάλαιο 17: Προχωρημένα θέματα κληρονομικότητας Δείκτες σε παράγωγες κλάσεις Εικονικές συναρτήσεις (virtual functions) Γνήσιες εικονικές συναρτήσεις (pure virtual functions) Κληρονομικότητα πολλών επιπέδων Πολλαπλή κληρονομικότητα (multiple inheritance) Κεφάλαιο 18: Ρεύματα εισόδου & εξόδου της C Προκαθορισμένα αντικείμενα ρευμάτων Οι τελεστές εισαγωγής << και εξαγωγής >> Μορφοποιημένη είσοδος/έξοδος (formatted Ι/Ο) Σημαίες μορφοποίησης (format flags) Χειριστές (manipulators) Μορφοποίηση με συναρτήσεις-μέλη Χειρισμός αρχείων Μορφοποιημένη είσοδος/έξοδος σε αρχεία κειμένου Μη μορφοποιημένη είσοδος/έξοδος σε δυαδικά αρχεία Αρχεία και αντικείμενα Τυχαία προσπέλαση αρχείων Παράμετροι γραμμής εντολής

9 Περιεχόμενα Κεφάλαιο 19: Αναδρομή Κεφάλαιο 20: Αναζήτηση και ταξινόμηση Σειριακή αναζήτηση Δυαδική αναζήτηση (binary search) Ταξινόμηση φυσαλίδας (bubble sort) Ταξινόμηση quick sort Αντικειμενοστρεφής προσέγγιση Ταξινόμηση πίνακα αντικειμένων Κεφάλαιο 21: Δυναμική διαχείριση μνήμης Δυναμική κατανομή μνήμης Αλλαγή στο μέγεθος ενός πίνακα Συναρτήσεις δόμησης και αποδόμησης στις περιπτώσεις δυναμικής κατανομής μνήμης Συναρτήσεις δόμησης αντιγράφου (copy constructors) Ο παλαιός μηχανισμός δυναμικής κατανομής μνήμης Κεφάλαιο 22: Δυναμικές δομές δεδομένων Συνδεδεμένες λίστες Απλά συνδεδεμένη λίστα (simple linked list) Κυκλικά συνδεδεμένη λίστα (circularly linked list) Διπλά συνδεδεμένη λίστα (double linked list) Κυκλικά διπλά συνδεδεμένη λίστα Προσθήκη νέου κόμβου σε μια λίστα Υλοποίηση συνδεδεμένης λίστας στη C Δυαδικά δένδρα Χειρισμός ενός δυαδικού δένδρου Προσθήκη νέου κόμβου Αναζήτηση κόμβου Επίσκεψη ενός δυαδικού δέντρου Διαγραφή κόμβου από το δυαδικό δέντρο Υλοποίηση της δομής δυαδικού δένδρου

10 H γλώσσα C++ σε βάθος Κεφάλαιο 23: Πρότυπα, εξαιρέσεις και χώροι ονομάτων Πρότυπα συναρτήσεων και κλάσεων Πρότυπα συναρτήσεων (function templates) Πρότυπα κλάσεων (class templates) Εξαιρέσεις Γενικά Ο χειρισμός εξαιρέσεων της C Συνοψίζοντας Χώροι ονομάτων Κεφάλαιο 24: Μια ματιά στη καθιερωμένη βιβλιοθήκη προτύπων Τι είναι η καθιερωμένη βιβλιοθήκη προτύπων STL; Η κλάση string Διαχείριση αντικειμένων της κλάσης string Strings ως ρεύματα εισόδου/εξόδου Αποδέκτες, αλγόριθμοι και επαναλήπτες Αποδέκτες Επαναλήπτες (iterators) Αλγόριθμοι Αλγόριθμοι και αντικείμενα συναρτήσεων Διανύσματα (vectors) Λίστες (lists) Χάρτες (maps) Συμβατότητα αλγορίθμων, επαναληπτών και αποδεκτών Για κάτι περισσότερο Παράρτημα Α: Επιλεγμένες συναρτήσεις βιβλιοθήκης της C Αρχείο κεφαλίδας <cctype> Αρχείο κεφαλίδας <cstdlib> Αρχείο κεφαλίδας <cstring> Αρχείο κεφαλίδας <cmath>

11 Περιεχόμενα Παράρτημα Β: Το ολοκληρωμένο περιβάλλον του DEV C Εγκατάσταση του DEV C Οι βασικές λειτουργίες του DEV C Βιβλιογραφία Βιβλιογραφικές πηγές Αναφορές στο διαδίκτυο Ευρετήριο

12 H γλώσσα C++ σε βάθος Αντικειμενοστρεφής προγραμματισμός Μια από τις καθημερινές μου συνήθειες είναι να φτιάχνω τον πρωινό μου καφέ. Ας προσπαθήσουμε να αναλύσουμε λίγο αυτή τη διαδικασία. Η πρώτη ύλη που διαθέτουμε (τα δεδομένα μας) είναι ο καφές, η ζάχαρη, το νερό και το γάλα, αποθηκευμένα στα ντουλάπια και στο ψυγείο της κουζίνας μας. Εμείς παίρνουμε τα υλικά που χρειαζόμαστε με απευθείας πρόσβαση στους αποθηκευτικούς μας χώρους και κάνουμε την απαραίτητη επεξεργασία για να φτιάξουμε τον καφέ μας. Ο συγκάτοικός μας έχει και αυτός πρόσβαση στα ίδια υλικά και φτιάχνει και αυτός τον καφέ του ακολουθώντας την ίδια ή διαφορετική διαδικασία. Παρατηρούμε ότι με την παραπάνω διαδικασία... Τα υλικά μας (δεδομένα) είναι εκτεθειμένα στον οποιονδήποτε έχει πρόσβαση στους αποθηκευτικούς μας χώρους (ντουλάπια, ψυγείο). Με αυτόν τον τρόπο μπορεί να γίνει αλόγιστη χρήση των υλικών ακόμη και για διαφορετικό σκοπό (π.χ. να ξοδέψουμε ζάχαρη και γάλα για την κατασκευή ενός κέϊκ). Η επεξεργασία των υλικών για την κατασκευή του καφέ δεν είναι αυτοματοποιημένη και ο καθένας μπορεί να ακολουθεί μια εντελώς διαφορετική διαδικασία. Αν αλλάξει ο χώρος που αποθηκεύουμε τα υλικά (π.χ. τα βάλουμε σε άλλο ντουλάπι), πρέπει να αλλάξουμε και τη διαδικασία επεξεργασίας ώστε να τα παίρνουμε από το νέο αποθηκευτικό χώρο. Στην περίπτωση που θέλουμε να φτιάχνουμε διαφορετικά είδη καφέ (π.χ. καπουτσίνο, φραπέ, εσπρέσο), θα πρέπει κάθε φορά να χρησιμοποιούμε διαφορετική διαδικασία επεξεργασίας. Αν θελήσουμε να φτιάξουμε καφέ όχι στο σπίτι μας αλλά σε έναν άλλο χώρο, θα πρέπει αρχικά να μάθουμε πού είναι τα υλικά μας (τα δεδομένα μας), ενώ ίσως χρειαστεί να τροποποιήσουμε τη διαδικασία κατασκευής του καφέ ανάλογα με τις δυνατότητες του χώρου στον οποίο βρισκόμαστε. Για παράδειγμα, διαφορετική διαδικασία θα ακολουθήσουμε για να ζεστάνουμε το νερό ανάλογα με το αν ο χώρος διαθέτει υγραέριο, ηλεκτρική κουζίνα, ή φούρνο μικροκυμάτων. 32

13 Κεφάλαιο 1: Εισαγωγή Μετά από αρκετό καιρό υπομονής, η κατάσταση δεν πήγαινε άλλο. Πότε ανακάλυπτα την τελευταία στιγμή ότι τελείωσε ο καφές γιατί τον είχε χρησιμοποιήσει ο συγκάτοικος μου, πότε η ζάχαρη γιατί έκανε γλυκό η φίλη μου, πότε δεν έβρισκα καθόλου τα υλικά γιατί αποφάσισε η καθαρίστρια να τα βάλει σε διαφορετικό ντουλάπι. Και δε φτάνουν όλα αυτά, κάθε φορά ο καφές ήταν διαφορετικός, είτε γιατί έπεφτε λίγο περισσότερη ζάχαρη, είτε γιατί δεν υπολόγιζα σωστά το γάλα! Σκεφτόμουνα λοιπόν, μήπως υπάρχει κάποιο αντικείμενο που να φτιάχνει καφέ και να με βγάλει από όλη αυτή τη διαδικασία. Έτσι αποφάσισα να αγοράσω μια μηχανή για καφέ και αμέσως όλα μου τα προβλήματα λύθηκαν. Τα υλικά πλέον ήταν μέσα στη μηχανή. Κανείς δεν είχε πρόσβαση σε αυτά και κανείς δε διανοείτο να διαρρήξει τη μηχανή για να βγάλει λίγο καφέ ή ζάχαρη. Ποτέ πια δε χρειάστηκε να ψάχνω πού είναι ο καφές, η ζάχαρη, ή το γάλα η δε μηχανή από μόνη της με ειδοποιούσε όταν κόντευαν να τελειώσουν τα υλικά που περιέχει. Κάθε φορά απλά πατούσα το κουμπί και ο καφές γινόταν χωρίς ιδιαίτερο κόπο και, το κυριότερο, πάντα με τις ίδιες αναλογίες. Η μηχανή είχε τη δυνατότητα να φτιάχνει καφέ διαφόρων ειδών. Εγώ απλά πατούσα το σωστό κουμπί χωρίς να με απασχολεί η διαφορετική διαδικασία που ακολουθούσε η μηχανή για να φτιάξει τον καφέ που ζήτησα. Και φυσικά όταν πήγαινα σε κάποιο άλλο χώρο, απλά έπαιρνα τη μηχανή μαζί μου ή φρόντιζα να υπάρχει μια ακριβώς ίδια. Συγχαρητήρια, μόλις αντιληφθήκατε τις βασικές αρχές και τα πλεονεκτήματα του αντικειμενοστρεφούς προγραμματισμού. Κλάσεις και αντικείμενα (classes and objects) Παρατηρούμε ότι από τη στιγμή που αποφασίσαμε να κατασκευάσουμε (ή να αγοράσουμε) ένα αντικείμενο (καφετιέρα) το οποίο έκανε τη εργασία που μέχρι τώρα υλοποιούσαμε με αποσπασματικές διαδικασίες, λύθηκαν τα περισσότερα προβλήματα που είχαμε. 33

14 H γλώσσα C++ σε βάθος Μήπως λοιπόν η καλύτερη προσέγγιση και στην κατασκευή των προγραμμάτων βρίσκεται στη χρήση αντικειμένων; Τα προγράμματα με τις παραδοσιακές, διαδικαστικές, τεχνικές προγραμματισμού, ρίχνουν το βάρος περισσότερο στις διαδικασίες παρά στα δεδομένα. Ας επισημάνουμε επίσης ότι ο φυσικός και ο τεχνητός κόσμος στον οποίο ζούμε είναι πιο κοντά στη φιλοσοφία του αντικειμενοστρεφούς παρά του διαδικαστικού προγραμματισμού. Οι κλάσεις (classes) και τα αντικείμενα (objects) είναι έννοιες πάνω στις οποίες βασίζεται όλη η φιλοσοφία και τα χαρακτηριστικά των γλωσσών αντικειμενοστρεφούς προγραμματισμού. Η κλάση (class) είναι μια έννοια η οποία προσδιορίζει μια κατηγορία αντικειμένων και ταυτόχρονα περιγράφει τα κοινά χαρακτηριστικά τους. Π.χ. η κλάση "Καφετιέρα" περιγράφει μια κατηγορία συσκευών για την κατασκευή καφέ. Σχήμα 1.3 Παράδειγμα κλάσης - η κλάση "Καφετιέρα" 34

15 Κεφάλαιο 1: Εισαγωγή Όλα τα αντικείμενα αυτής της κλάσης έχουν κάποια κοινά χαρακτηριστικά και λειτουργίες. Π.χ. όλες οι καφετιέρες έχουν χώρο για νερό, καφέ, γάλα και ζάχαρη. Επίσης όλες διαθέτουν λειτουργία για να φτιάξουν καφέ σκέτο, γλυκό ή μέτριο. Ένα αντικείμενο (object) μιας κλάσης έχει όλα τα χαρακτηριστικά και τις λειτουργίες της κλάσης στην οποία ανήκει. Ένα αντικείμενο λέμε ότι αποτελεί ένα "στιγμιότυπο" (instance) μιας κλάσης. Μία κλάση δεν αναφέρεται σε κανένα συγκεκριμένο αντικείμενο, αλλά είναι μια γενική έννοια που προσδιορίζει μια κατηγορία αντικειμένων. Π.χ. η κλάση "Αυτοκίνητο" δεν αναφέρεται σε κανένα συγκεκριμένο αυτοκίνητο, αλλά αποτελεί μια έννοια που προσδιορίζει μια κατηγορία οχημάτων. Στο παρακάτω σχήμα φαίνεται πιο αναλυτικά η κλάση "Καφετιέρα" και δύο αντικείμενα που ανήκουν σε αυτή την κλάση. Σχήμα 1.4 Αντικείμενα μιας κλάσης - αντικείμενα της κλάσης "Καφετιέρα" 35

16 H γλώσσα C++ σε βάθος Στη συγκεκριμένη περίπτωση, η κλάση προσδιορίζει τα χαρακτηριστικά, χρώμα, μέγεθος, ποσότητες νερού, ζάχαρης, καφέ και γάλακτος που θα έχουν τα αντικείμενα χωρίς όμως να αναφέρονται συγκεκριμένες τιμές. Παρατηρούμε ότι τα δύο αντικείμενα της κλάσης έχουν όλα τα παραπάνω χαρακτηριστικά, αλλά με συγκεκριμένες τιμές το καθένα. Επίσης στην κλάση "Καφετιέρα" ο- ρίζονται και οι λειτουργίες που θα επιτελούν τα αντικείμενα αυτής της κλάσης: Φτιάξιμο καφέ τριών ειδών (σκέτος, μέτριος, γλυκός), γέμισμα της καφετιέρας με υλικά (καφέ, ζάχαρη, κ.λπ.), καθώς και έλεγχος για επάρκεια υλικών. Ενθυλάκωση (Encapsulation) Τα χαρακτηριστικά και οι λειτουργίες ενός α- ντικειμένου μπορεί να είναι εκτεθειμένα στον χρήστη ώστε να μπορεί να αλλάξει άμεσα τις τιμές τους ή να χρησιμοποιήσει τις λειτουργίες του. Μπορεί δηλαδή να αλλάξει την ποσότητα του "Νερού" και να ενεργοποιήσει την λειτουργία του "Ελέγχου". Η χρήση των κλάσεων και των αντικειμένων δίνει επίσης τη δυνατότητα να "αποκρύψουμε" μερικά από τα χαρακτηριστικά και τις λειτουργίες ενός αντικειμένου ώστε ο χρήστης να μην έχει άμεση πρόσβαση σε αυτά. Π.χ. φανταζόμαστε αυτή τη δυνατότητα σαν ένα κάλυμμα το οποίο απαγορεύει την πρόσβαση στους α- ποθηκευτικούς χώρους των υλικών και στο κουμπί της λειτουργίας "Έλεγχος". Σε αυτή την περίπτωση, η πλήρωση των υλικών μπορεί να γίνεται από τη λειτουργία "Γέμισμα" και ο έλεγχος να γίνεται αυτόματα χωρίς να χρειάζεται να τον ενεργοποιήσουμε άμεσα από το αντίστοιχο κουμπί. H Ενθυλάκωση δίνει τη δυνατότητα στις γλώσσες αντικειμενοστρεφούς προγραμματισμού να ομαδοποιούν και να αποκρύπτουν δεδομένα και διαδικασίες των αντικειμένων. 36

17 Κεφάλαιο 1: Εισαγωγή Κληρονομικότητα (Inheritance) Η κληρονομικότητα (inheritance) είναι ένα από τα βασικά χαρακτηριστικά του αντικειμενοστρεφούς προγραμματισμού. Μια κλάση μπορεί να παράγεται από μια άλλη κλάση (τη βασική) και ταυτόχρονα να κληρονομεί τα χαρακτηριστικά και τις λειτουργίες της. Στη νέα κλάση (παράγωγη) μπορεί να οριστούν επιπλέον χαρακτηριστικά και λειτουργίες. Σχήμα 1.5 Παράδειγμα κληρονομικότητας με την κλάση "Καφετιέρα" Στο παραπάνω σχήμα, η κλάση "Μηχανή Καπουτσίνο" παράγεται από τη βασική κλάση "Καφετιέρα". Στη νέα παράγωγη κλάση ορίζεται ως επιπλέον χαρα- 37

18 H γλώσσα C++ σε βάθος κτηριστικό η ποσότητα της σαντιγί (απαραίτητη για την κατασκευή καπουτσίνο) και ως επιπλέον λειτουργία η δυνατότητα της μηχανής να φτιάχνει καπουτσίνο με πάτημα του ανάλογου κουμπιού. Κληρονομικότητα (inheritance) είναι η δυνατότητα παραγωγής μιας νέας κλάσης από μια υπάρχουσα κλάση (βασική). Η νέα κλάση (παράγωγη) κληρονομεί όλα τα χαρακτηριστικά και τις λειτουργίες της βασικής κλάσης, αλλά ταυτόχρονα μπορεί να ορίσει δικά της επιπλέον χαρακτηριστικά και λειτουργίες. Πολυμορφισμός (Polymorphism) Ας υποθέσουμε ότι κατασκευάζουμε μια "έξυπνη" καφετιέρα η οποία ανάλογα με το βότανο και τα άλλα υλικά που τις βάζουμε φτιάχνει το αντίστοιχο ρόφημα. Για παράδειγμα, αν της βάλουμε τσάι, θα φτιάξει τσάι αν της βάλουμε Ελληνικό καφέ, θα φτιάξει Ελληνικό καφέ αν της βάλουμε και σαντιγί, θα το καταλάβει μόνη της και θα φτιάξει καπουτσίνο. Κάθε φορά η καφετιέρα ακολουθεί διαφορετική διαδικασία για να φτιάξει το κατάλληλο ρόφημα. Αυτό δεν απασχολεί καθόλου τον χρήστη, ο οποίος το μόνο που κάνει είναι να πατάει το κουμπί (λειτουργία) ρόφημα. Έτσι η καφετιέρα μας, ανάλογα με τα υλικά που της βάζουμε, ακολουθεί διαφορετική διαδικασία, άγνωστη για τον χρήστη για να μας φτιάξει το κατάλληλο ρόφημα. Η τεχνική για να κατασκευάσουμε μια τέτοια καφετιέρα λέγεται Πολυμορφισμός. Πολυμορφισμός (polymorphism) είναι η δυνατότητα που παρέχουν οι αντικειμενοστρεφείς γλώσσες προγραμματισμού στα αντικείμενα ώστε να συμπεριφέρονται διαφορετικά, ανάλογα με τον τρόπο με τον οποίο χρησιμοποιούνται. Επίσης ο πολυμορφισμός δίνει τη δυνατότητα σε οντότητες που έχουν συγκεκριμένη λειτουργία να την διαφοροποιήσουν ανάλογα με τον τρόπο χρήσης 38

19 Κεφάλαιο 1: Εισαγωγή τους. Γνωρίζουμε τη χρήση του συν (+) ως τελεστή της πρόσθεσης. Μπορούμε να φανταστούμε τη χρήση του + για να προσθέσουμε αντικείμενα, π.χ. δύο καφετιέρες; Βέβαια ΟΧΙ, διότι γνωρίζουμε ότι ο τελεστής + ορίζεται και χρησιμοποιείται μόνο για την πρόσθεση αριθμητικών δεδομένων. Όμως οι αντικειμενοστρεφείς γλώσσες προγραμματισμού μας δίνουν την δυνατότητα να αλλάξουμε τη συνήθη χρήση ενός τελεστή και να τον αναγκάσουμε να επιτελέσει διαφορετική λειτουργία ανάλογα με τα αντικείμενα στα οποία εφαρμόζεται. Για παράδειγμα, μπορούμε να ορίσουμε ότι όταν ο τελεστής + εφαρμόζεται σε αντικείμενα της κλάσης "Καφετιέρα", θα προσθέτει τις ποσότητες των υλικών, τα μεγέθη των συσκευών, και θα βγάζει ένα ενδιάμεσο χρώμα (μεταξύ των χρωμάτων των δύο συσκευών). Επομένως η πράξη Philips + AEG θα έχει ως αποτέλεσμα να δημιουργηθεί ένα νέο αντικείμενο (π.χ. το ΝΕW) της ίδιας κλάσης "Καφετιέρα" με ποσότητες υ- λικών το άθροισμα των ποσοτήτων των αντίστοιχων υλικών των αντικειμένων Philips και AEG, με μέγεθος το άθροισμα των μεγεθών και με ένα ενδιάμεσο χρώμα. Σχήμα 1.6 Υπερφόρτωση του τελεστή + για την κλάση "Καφετιέρα" Η δυνατότητα που μας παρέχουν οι αντικειμενοστρεφείς γλώσσες, να αλλάζουμε τη συμπεριφορά των τελεστών ανάλογα με τα αντικείμενα στα οποία εφαρμόζονται, καλείται υπερφόρτωση τελεστών. Η υπερφόρτωση τελεστών (operator overloading) είναι ένα ακόμη χαρακτηριστικό του πολυμορφισμού. 39

20 H γλώσσα C++ σε βάθος Σχεδιασμός και ανάπτυξη προγραμμάτων Είναι προφανές ότι το γράψιμο ενός προγράμματος προϋποθέτει τη γνώση του αντικειμένου στο οποίο θα αναφέρεται το συγκεκριμένο πρόγραμμα. Για παράδειγμα, αν θέλουμε να φτιάξουμε ένα πρόγραμμα το οποίο θα απευθύνεται σε οδοντίατρους, θα πρέπει καταρχήν να γνωρίζουμε τον τρόπο με τον οποίο δουλεύει ένας οδοντίατρος, τι απαιτήσεις έχει, τι πληροφορίες θέλει να κρατάει για τους ασθενείς του κ.λπ. Αυτό το στάδιο, κατά το οποίο εμείς ουσιαστικά "μαθαίνουμε" τον τρόπο δουλειάς του οδοντίατρου διακρίνοντας και κατανοώντας τα επιμέρους απλούστερα τμήματα από τα οποία αποτελείται η εργασία του, λέγεται ανάλυση. Μετά το στάδιο της ανάλυσης ακολουθεί το στάδιο του σχεδιασμού. Στο στάδιο αυτό μπορούμε, αν αυτό κριθεί απαραίτητο, να προτείνουμε νέους καλύτερους τρόπους εργασίας ή ακόμη και νέες δυνατότητες. Η ανάλυση και ο σχεδιασμός δεν έχουν απαραίτητα άμεση σχέση με τον προγραμματισμό, αλλά χρησιμοποιούνται ως αναγκαία εργαλεία για τη σωστή και επαγγελματική κατάστρωση προγραμμάτων. Λογικό διάγραμμα Στα στάδια της ανάλυσης και του σχεδιασμού ο αναλυτής χρησιμοποιεί, εκτός των άλλων "εργαλείων" του, γεωμετρικά σχήματα για να δώσει μια εικόνα της λειτουργίας του υπό μελέτη συστήματος. Η σχηματική αυτή απεικόνιση ενός συστήματος καλείται λογικό διάγραμμα ή διάγραμμα ροής (flow chart). Σε αυτό το βιβλίο χρησιμοποιείται συχνά το λογικό διάγραμμα για να επεξηγηθεί η λειτουργία µιας διαδικασίας ή ενός προγράμματος. Τα γεωμετρικά σχήματα που χρησιμοποιούνται σε ένα λογικό διάγραμμα είναι καθορισμένα και κάθε ένα δείχνει μια συγκεκριμένη λειτουργία. Κάθε σχήμα αντιστοιχεί σε μια κατηγορία διαδικασίας του υπό μελέτη συστήματος. Για παράδειγμα, ο ρόμβος δείχνει έλεγχο, ενώ το ορθογώνιο παραλληλόγραμμο επεξεργασία. Στον πίνακα που ακολουθεί, αναφέρονται τα σχήματα που συνήθως χρησιμοποιούνται σε ένα λογικό διάγραμμα. 40

21 Κεφάλαιο 1: Εισαγωγή Γεωμετρικό σχήμα Λειτουργία Αρχή/Τέλος διαδικασίας Επεξεργασία Έλεγχος Είσοδος/Έξοδος πληροφοριών Μεταφορά ελέγχου Σχήμα 1.7 Τα σχήματα του λογικού διαγράμματος Μέσα σε κάθε γεωμετρικό σχήμα περιγράφεται με απλά λόγια η διαδικασία που εκτελείται. Στη διαδικασία του ελέγχου είναι δυνατές μόνο δύο αποφάσεις: Ναι ή Όχι. Ανάλογα με το αποτέλεσμα του ελέγχου, το διάγραμμα ροής μας οδηγεί σε διαφορετικό παρακλάδι του. Οχι Ναι 41

22 H γλώσσα C++ σε βάθος Το επόμενο λογικό διάγραμμα δείχνει τη διαδικασία που ακολουθείται όταν κάποιος καλεί το ασανσέρ μέχρι να πάει στον όροφο που τον ενδιαφέρει. Αναμφίβολα υπάρχουν πολλές εκδοχές για το σύστημα αυτό. Το λογικό διάγραμμα που ακολουθεί δείχνει εποπτικά τη λειτουργία της συγκεκριμένης διαδικασίας. Σχήμα 1.8 Το λογικό διάγραμμα της διαδικασίας κλήσης ενός ασανσέρ Το λογικό διάγραμμα ενός προβλήματος δεν καθορίζεται μονοσήμαντα. Μπορεί να είναι από εντελώς επιγραμματικό ως πολύ αναλυτικό, ανάλογα με τη χρήση για την οποία προορίζεται. 42

23 Κεφάλαιο 1: Εισαγωγή Το λογικό διάγραμμα είναι ανεξάρτητο από τον προγραμματισμό. Χρησιμοποιείται συχνά για να μπορέσουμε να απεικονίσουμε τη λογική ενός προγράμματος πριν αρχίσουμε να το αναπτύσσουμε. Το λογικό διάγραμμα βοηθάει να κατανοήσουμε τον τρόπο με τον οποίο θα προσεγγίσουμε τη λύση. Δεν είναι απαραίτητο να φτιάχνουμε λογικό διάγραμμα πριν αρχίσουμε την ανάπτυξη ενός προγράμματος. Όμως το βέβαιο είναι ότι, αν δεν είμαστε σε θέση να φτιάξουμε το λογικό διάγραμμα ενός προγράμματος, είναι αδύνατο να φτιάξουμε το πρόγραμμα και να δουλεύει σωστά. Σε ένα λογικό διάγραμμα ποτέ δεν αναφέρουμε εντολές κάποιας γλώσσας προγραμματισμού, αλλά περιγράφουμε τις διαδικασίες με απλά λόγια. Το λογικό διάγραμμα πρέπει να είναι τόσο αναλυτικό ώστε να είναι εμφανείς οι διαδικασίες που πρέπει να δείξουμε, και τόσο γενικό ώστε να μην υπεισέρχεται σε άχρηστες λεπτομέρειες. Όταν σε ένα λογικό διάγραμμα οι διαδικασίες δεν είναι συγκεκριμένου τύπου (π.χ. έλεγχος, είσοδος/έξοδος) τότε χρησιμοποιούμε μόνο το σχήμα της επεξεργασίας (ορθογώνιο) και το διάγραμμα σε αυτή την περίπτωση λέγεται διάγραμμα block. Ανικειμενοστρεφής σχεδιασμός - UML Το λογικό διάγραμμα δίνει τη δυνατότητα άριστης απεικόνισης της λύσης ενός προβλήματος, δεν είναι όμως ο ιδανικός τρόπος για την αναπαράσταση πολύπλοκων εφαρμογών καθώς και οντοτήτων που χρησιμοποιεί η αντικειμενοστρεφής σχεδίαση προγραμμάτων. Η γλώσσα UML έχει ιδιαίτερη εφαρμογή στην ανάπτυξη και μοντελοποίηση αντικειμενοστρεφών εφαρμογών. Η UML (Unified Modeling Language) είναι μια γλώσσα μοντελοποίησης, η οποία μέσω συγκεκριμένων στοιχείων και διαγραμμάτων μας δίνει τη δυνατότητα να απεικονίσουμε πολύπλοκες εφαρμογές. Η χρήση της UML βοηθάει στην επικοινωνία των ομάδων εργασίας για την ανάπτυξη ενός συστήματος, στην παραπέρα ανάπτυξή του, αλλά και στην τελική του αξιολόγηση. Δεν είναι στους στόχους του παρόντος βιβλίου η κάλυψη της UML, η οποία ούτως ή άλλως θα απαιτούσε ένα βιβλίο από μόνη της. Στη Βιβλιογραφία (σελ. 827) θα βρείτε αναφορές για τη UML τόσο σε βιβλία όσο και στο Διαδίκτυο. 43

24 H γλώσσα C++ σε βάθος Παραδείγματα Π1.1 Ας υποθέσουμε ότι θέλουμε να παίξουμε ένα παιχνίδι στο οποίο κάποιος βάζει έναν τυχαίο αριθμό στο μυαλό του και εμείς προσπαθούμε να τον βρούμε. Λέμε συνέχεια αριθμούς στον παίκτη και αυτός μας απαντά αν ο κρυφός α- ριθμός είναι μεγαλύτερος ή μικρότερος. Το παιχνίδι τελειώνει μόλις βρούμε τον αριθμό. Το λογικό διάγραμμα απεικονίζει τη διαδικασία του παιχνιδιού. Μια μικρή παραλλαγή του παιχνιδιού, στην ο- ποία μόλις βρεθεί ο α- ριθμός ο παίκτης μας ρωτάει αν θέλουμε να ξαναπαίξουμε, φαίνεται στο διπλανό λογικό διάγραμμα. Στην περίπτωση που α- παντήσουμε ΝΑΙ, τότε ο παίκτης βάζει έναν άλλο αριθμό στο μυαλό του και το παιχνίδι ξαναρχίζει. Στην περίπτωση που απαντήσουμε αρνητικά το παιχνίδι σταματάει. 44

25 Κεφάλαιο 1: Εισαγωγή Π1.2 Η διαδικασία, που φαίνεται στο διπλανό λογικό διάγραμμα, ζητάει συνέχεια αριθμούς και εμφανίζει στο τέλος το συνολικό τους άθροισμα. Η διαδικασία σταματάει όταν δοθεί ο αριθμός 0. Σκεφτείτε τις τροποποιήσεις που θα πρέπει να γίνουν ώστε η διαδικασία να σταματάει όταν δοθούν 100 αριθμοί. Ανασκόπηση Κεφαλαίου 1 Η C++ είναι μια αντικειμενοστρεφής μεταγλωττιζόμενη γλώσσα τα χαρακτηριστικά της οποίας ευνοούν τον τμηματικό προγραμματισμό. Στη C++ αρκετές λειτουργίες υλοποιούνται από τα αντικείμενα και στις συναρτήσεις βιβλιοθήκης που τη συνοδεύουν. Τα διαφορετικά είδη δεδομένων που μπορεί να χειριστεί μια γλώσσα λέγονται τύποι δεδομένων. Μια μεταβλητή είναι το όνομα μιας θέσης μνήμης, της οποίας η τιμή μπορεί να μεταβάλλεται. Ο αντικειμενοστρεφής προγραμματισμός βασίζεται στη "μοντελοποίηση" του προβλήματος χρησιμοποιώντας αντικείμενα. Κάθε αντικείμενο ανήκει σε μια κλάση η οποία προσδιορίζει τα χαρακτηριστικά και τις λειτουργίες του. Τα κύρια χαρακτηριστικά του αντικειμενοστρεφούς προγραμματισμού είναι η ενθυλάκωση, η κληρονομικότητα και ο πολυμορφισμός. Το λογικό διάγραμμα είναι ένας εποπτικός τρόπος παρουσίασης μιας διαδικασίας ή ενός προγράμματος και συμβάλλει στην κατανόησή του. H UML αντίστοιχα είναι μια γλώσσα μοντελοποίησης, η οποία έχει εφαρμογή στον σχεδιασμό αντικειμενοστρεφών πολύπλοκων συστημάτων. 45

26

Περιεχόμενα. Πρόλογος... 17

Περιεχόμενα. Πρόλογος... 17 Περιεχόμενα Πρόλογος... 17 Κεφάλαιο 1: Εισαγωγή... 19 Πώς να διαβάσετε αυτό το βιβλίο... 20 Η γλώσσα C Ιστορική αναδρομή... 22 Τα χαρακτηριστικά της C... 23 C Μια δομημένη γλώσσα... 23 C Μια γλώσσα για

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

Περιεχόμενα. Λίγα λόγια για αυτή την έκδοση... 23

Περιεχόμενα. Λίγα λόγια για αυτή την έκδοση... 23 Περιεχόμενα Λίγα λόγια για αυτή την έκδοση...... 23 Κεφάλαιο 1 Εισαγωγή... 25 O στόχος του βιβλίου και σε ποιους απευθύνεται... 27 Πώς να διαβάσετε αυτό το βιβλίο... 27 Εκπαίδευση από απόσταση... 29 Ιστορική

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

ΚΕΦΑΛΑΙΟ 2: Τύποι δεδομένων και εμφάνιση στοιχείων...33

ΚΕΦΑΛΑΙΟ 2: Τύποι δεδομένων και εμφάνιση στοιχείων...33 ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος του συγγραφέα... 13 Πρόλογος του καθηγητή Τιμολέοντα Σελλή... 15 ΚΕΦΑΛΑΙΟ 1: Εργαλεία γλωσσών προγραμματισμού...17 1.1 Γλώσσες προγραμματισμού τρίτης γεννεάς... 18 τι είναι η γλώσσα

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

Περιεχόμενα. Λίγα λόγια για αυτή την έκδοση... 23

Περιεχόμενα. Λίγα λόγια για αυτή την έκδοση... 23 Περιεχόμενα Λίγα λόγια για αυτή την έκδοση...... 23 Κεφάλαιο 1 Εισαγωγή... 25 O στόχος του βιβλίου και σε ποιους απευθύνεται... 27 Πώς να διαβάσετε αυτό το βιβλίο... 27 Εκπαίδευση από απόσταση... 29 Ιστορική

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

Από την πρώτη στην τέταρτη έκδοση...

Από την πρώτη στην τέταρτη έκδοση... Από την πρώτη στην τέταρτη έκδοση... Όταν το Φεβρουάριο του 2004 έστειλα την πρότασή μου στον ΚΛΕΙΔΑΡΙΘ- ΜΟ για την έκδοση ενός βιβλίου για τη γλώσσα C, δεν θα μπορούσα ποτέ να φανταστώ ότι οχτώ χρόνια

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

Βασικά Στοιχεία της Java

Βασικά Στοιχεία της Java Βασικά Στοιχεία της Java Παύλος Εφραιμίδης Java Βασικά Στοιχεία της γλώσσας Java 1 Τύποι Δεδομένων Η Java έχει δύο κατηγορίες τύπων δεδομένων: πρωτογενείς (primitive) τύπους δεδομένων αναφορές Java Βασικά

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

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Μεταβλητές,

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

Ανάπτυξη και Σχεδίαση Λογισμικού

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Βασικά Στοιχεία Το αλφάβητο της C Οι βασικοί τύποι της C Δηλώσεις μεταβλητών Είσοδος/Έξοδος Βασικές εντολές της C Αλφάβητο

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

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

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

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

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

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

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

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

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

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

Επανάληψη για τις Τελικές εξετάσεις

Επανάληψη για τις Τελικές εξετάσεις Επανάληψη για τις Τελικές εξετάσεις ( ιάλεξη 21) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Εισαγωγή Το µάθηµα EPL032 έχει ως βασικό στόχο την επίλυση προβληµάτων πληροφορικής µε την χρήση της γλώσσας προγραµµατισµού

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

ΠΕΡΙΕΧΟΜΕΝΑ ΜΕΡΟΣ Α : ΘΕΜΑΤΑ ΒΑΣΗΣ 1. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ...11 2. ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ...30

ΠΕΡΙΕΧΟΜΕΝΑ ΜΕΡΟΣ Α : ΘΕΜΑΤΑ ΒΑΣΗΣ 1. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ...11 2. ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ...30 ΠΕΡΙΕΧΟΜΕΝΑ ΜΕΡΟΣ Α : ΘΕΜΑΤΑ ΒΑΣΗΣ 1. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ...11 1.1 Τι είναι Πληροφορική;...11 1.1.1 Τι είναι η Πληροφορική;...12 1.1.2 Τι είναι ο Υπολογιστής;...14 1.1.3 Τι είναι το Υλικό και το

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

Περιεχόμενα. Περιεχόμενα

Περιεχόμενα. Περιεχόμενα Περιεχόμενα xv Περιεχόμενα 1 Αρχές της Java... 1 1.1 Προκαταρκτικά: Κλάσεις, Τύποι και Αντικείμενα... 2 1.1.1 Βασικοί Τύποι... 5 1.1.2 Αντικείμενα... 7 1.1.3 Τύποι Enum... 14 1.2 Μέθοδοι... 15 1.3 Εκφράσεις...

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

Ενδεικτική περιγραφή μαθήματος

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

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

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

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δρ. Κόννης Γιώργος Πανεπιστήμιο Κύπρου - Τμήμα Πληροφορικής Προγραμματισμός Στόχοι 1 Να περιγράψουμε τις έννοιες του Υπολογιστικού Προβλήματος και του Προγράμματος/Αλγορίθμου

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C Εισαγωγή στην C Μορφή Προγράµµατος σε γλώσσα C Τµήµα Α Με την εντολή include συµπεριλαµβάνω στο πρόγραµµα τα πρότυπα των συναρτήσεων εισόδου/εξόδου της C.Το αρχείο κεφαλίδας stdio.h είναι ένας κατάλογος

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

5. ΣΥΝΑΡΤΗΣΕΙΣ. (Πρόχειρο σχέδιο - Μαθήµατος 3) p23-29. 5.1 Συναρτήσεις, που δεν επιστρέφουν κάποια τιµή

5. ΣΥΝΑΡΤΗΣΕΙΣ. (Πρόχειρο σχέδιο - Μαθήµατος 3) p23-29. 5.1 Συναρτήσεις, που δεν επιστρέφουν κάποια τιµή (Πρόχειρο σχέδιο - Μαθήµατος 3) p23-29 5. ΣΥΝΑΡΤΗΣΕΙΣ 5.1 Συναρτήσεις, που δεν επιστρέφουν κάποια τιµή Η συνάρτηση είναι void, δεν επιστρέφει κάποια τιµή. //Oρισµός συνάρτησης χωρίς παραµέτρους // 12.

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

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εργαστήριο 9η εβδομάδα. Κοζάνη, 2 Δεκεμβρίου 2008. Δίνονται παραδείγματα που αποσαφηνίζουν και συμπληρώνουν όσα αναφέρθηκαν στο μάθημα σχετικά με τις δομές

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

S, (5, -3, 34, -23, 7) ( /, @, *, _

S, (5, -3, 34, -23, 7) ( /, @, *, _ 1 Τι είναι αρχείο Οι πληροφορίες που καλείται να διαχειριστεί ο Η/Υ είναι τόσες πολλές που η μνήμη του δεν φτάνει να τις επεξεργαστεί όλες μαζί. Γι αυτό τον λόγο αποθηκεύονται σε μονάδες αποθήκευσης (π.χ

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

12. ΑΛΦΑΡΙΘΜΗΤΙΚΑ. υο είδη αλφαριθµητικών Τα αλφαριθµητικά της C πίνακες τύπου char Ta αντικείµενα της κλάσης string

12. ΑΛΦΑΡΙΘΜΗΤΙΚΑ. υο είδη αλφαριθµητικών Τα αλφαριθµητικά της C πίνακες τύπου char Ta αντικείµενα της κλάσης string 12. ΑΛΦΑΡΙΘΜΗΤΙΚΑ υο είδη αλφαριθµητικών Τα αλφαριθµητικά της C πίνακες τύπου char Ta αντικείµενα της κλάσης string Aλφαριθµητικά της C int main() const int max=80; char str[max); //κάθε char δεσµεύει

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

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5.1 Εισαγωγή στους αλγορίθμους 5.1.1 Εισαγωγή και ορισμοί Αλγόριθμος (algorithm) είναι ένα πεπερασμένο σύνολο εντολών οι οποίες εκτελούν κάποιο ιδιαίτερο έργο. Κάθε αλγόριθμος

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

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η μέθοδος main(), εμφάνιση μηνυμάτων, Java προγράμματα που εκτελούν αριθμητικές πράξεις Γαβαλάς Δαμιανός

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

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

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

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

Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ

Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ Σχεδιασμός και υλοποίηση υποδομής σημείωσης διεργασιών στον

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

ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή

ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή Στο εργαστήριο αυτό θα μάθουμε για τη χρήση συναρτήσεων με σκοπό την κατασκευή αυτόνομων τμημάτων προγραμμάτων που υλοποιούν μία συγκεκριμένη διαδικασία, τα οποία

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

Ανάπτυξη και Σχεδίαση Λογισμικού

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Εκφράσεις και Λίγες Εντολές Οι εκφράσεις της C Τελεστές Απλές και σύνθετες εντολές Εντολές ελέγχου (επιλογής) Εισαγωγή σε

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

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

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

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Εργαστήριο 1 Εισαγωγή στη C Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Διαδικαστικά Ιστοσελίδα μαθήματος: http://eclass.uoa.gr/courses/f30/ Υποχρεωτική παρακολούθηση: Παρασκευή 14:00 16:00 στην

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

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

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

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

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

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

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

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

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

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

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ και ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ 2.1 Να δοθεί ο ορισμός

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

Εισαγωγή στην γλώσσα προγραμματισμού C

Εισαγωγή στην γλώσσα προγραμματισμού C Εισαγωγή στην γλώσσα προγραμματισμού C Χαρακτηριστικά της C Ιδιαίτερα δημοφιλής Έχει χρησιμοποιηθεί για τον προγραμματισμό ευρέος φάσματος συστημάτων και εφαρμογών Γλώσσα μετρίου επιπέδου Φιλοσοφία: Ο

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

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

Περιεχόμενα. Δομές δεδομένων. Τεχνικές σχεδίασης αλγορίθμων. Εισαγωγή στον προγραμματισμό. Υποπρογράμματα. Επαναληπτικά κριτήρια αξιολόγησης Περιεχόμενα Δομές δεδομένων 37. Δομές δεδομένων (θεωρητικά στοιχεία)...11 38. Εισαγωγή στους μονοδιάστατους πίνακες...16 39. Βασικές επεξεργασίες στους μονοδιάστατους πίνακες...25 40. Ασκήσεις στους μονοδιάστατους

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

ΑΛΓΟΡΙΘΜΟΙ. Τι είναι αλγόριθμος

ΑΛΓΟΡΙΘΜΟΙ. Τι είναι αλγόριθμος ΑΛΓΟΡΙΘΜΟΙ Στο σηµείωµα αυτό αρχικά εξηγείται η έννοια αλγόριθµος και παραθέτονται τα σπουδαιότερα κριτήρια που πρέπει να πληρεί κάθε αλγόριθµος. Στη συνέχεια, η σπουδαιότητα των αλγορίθµων συνδυάζεται

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

Αντικείμενα (Objects) στην Java. Αντικείμενα στη Java. Δημιουργία Αντικειμένων. Δηλώσεις Μεταβλητών (2) Ο τελεστής new (1)

Αντικείμενα (Objects) στην Java. Αντικείμενα στη Java. Δημιουργία Αντικειμένων. Δηλώσεις Μεταβλητών (2) Ο τελεστής new (1) Αντικείμενα (Objects) στην Java Αντικείμενα στη Java Παύλος Εφραιμίδης Ένα πρόγραμμα Java κατά την εκτέλεσή του δημιουργεί αντικείμενα τα αντικείμενα αλληλεπιδρούν, στέλνοντας μηνύματα το ένα στο άλλο

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

Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών

Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Υλοποίηση ΑΤΔ με Συνδεδεμένες Λίστες -

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

53 Χρόνια ΦΡΟΝΤΙΣΤΗΡΙΑ ΜΕΣΗΣ ΕΚΠΑΙΔΕΥΣΗΣ Σ Α Β Β Α Ϊ Δ Η Μ Α Ν Ω Λ Α Ρ Α Κ Η

53 Χρόνια ΦΡΟΝΤΙΣΤΗΡΙΑ ΜΕΣΗΣ ΕΚΠΑΙΔΕΥΣΗΣ Σ Α Β Β Α Ϊ Δ Η Μ Α Ν Ω Λ Α Ρ Α Κ Η 53 Χρόνια ΦΡΟΝΤΙΣΤΗΡΙΑ ΜΕΣΗΣ ΕΚΠΑΙΔΕΥΣΗΣ Σ Α Β Β Α Ϊ Δ Η Μ Α Ν Ω Λ Α Ρ Α Κ Η ΠΑΓΚΡΑΤΙ: Φιλολάου & Εκφαντίδου 26 : 210/76.01.470 210/76.00.179 ΘΕΜΑ Α Α1. Να γράψετε στο τετράδιό σας τον αριθμό καθεμιάς

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

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

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

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

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ 1) Πότε χρησιμοποιείται η δομή επανάληψης

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

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) Ιστοσελίδα του µαθήµατος. Περιεχόµενα. ηµήτριος Κατσαρός, Ph.D. Κλάσεις.

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) Ιστοσελίδα του µαθήµατος. Περιεχόµενα. ηµήτριος Κατσαρός, Ph.D. Κλάσεις. 1 Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Χειµώνας 2005 ιάλεξη 5η Ιστοσελίδα του µαθήµατος 2 http://skyblue.csd.auth.gr/~dimitris/courses/cpp_fall05.htm Θα

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

Εργαστήριο #12. Βήμα 1 ο. Βήμα 2 ο. Βήμα 3 ο. Βήμα 4 ο.

Εργαστήριο #12. Βήμα 1 ο. Βήμα 2 ο. Βήμα 3 ο. Βήμα 4 ο. Εργαστήριο #12 Από τα προηγούμενα εργαστήρια: Το εργαστήριο αυτό είναι ανεξάρτητο από τα προηγούμενα επειδή όμως ασχολείται με τη γλώσσα JavaScript, βεβαιωθείτε ότι έχετε διαβάσει το εισαγωγικό Παράρτημα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΠΡΟΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΜΑΘΗΜΑ: ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ ΜΟΝΤΕΛΑ ΣΥΣΤΗΜΑΤΟΣ Διδάσκων: Γ. Χαραλαμπίδης, Επ. Καθηγητής

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

ΜΑΘΗΜΑ: Εργαλεία Ανάπτυξης εφαρμογών internet.

ΜΑΘΗΜΑ: Εργαλεία Ανάπτυξης εφαρμογών internet. ΜΑΘΗΜΑ: Εργαλεία Ανάπτυξης εφαρμογών internet. ΩΡΕΣ ΔΙΔΑΣΚΑΛΙΑΣ: ΕΙΔΟΣ ΜΑΘΗΜΑΤΟΣ: Μικτό Γενικός σκοπός είναι να αποκτήσει ο καταρτιζόμενος τις αναγκαίες γνώσεις σχετικά με εργαλεία και τις τεχνικές για

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

Αναδρομή. Τι γνωρίζετε για τη δυνατότητα «κλήσης» αλγορίθμων; Τι νόημα έχει;

Αναδρομή. Τι γνωρίζετε για τη δυνατότητα «κλήσης» αλγορίθμων; Τι νόημα έχει; ΜΑΘΗΜΑ 7 Κλήση αλγορίθμου από αλγόριθμο Αναδρομή Σ χ ο λ ι κ ο Β ι β λ ι ο ΥΠΟΚΕΦΑΛΑΙΟ 2.2.7: ΕΝΤΟΛΕΣ ΚΑΙ ΔΟΜΕΣ ΑΛΓΟΡΙΘΜΟΥ ΠΑΡΑΓΡΑΦΟI 2.2.7.5: Κλήση αλγορίθμου από αλγόριθμο 2.2.7.6: Αναδρομή εισαγωγη

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

Διάλεξη 16-17: Πολυμορφισμός (Polymorphism) Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 16-17: Πολυμορφισμός (Polymorphism) Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 16-17: Πολυμορφισμός (Polymorphism) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: -Υπερφόρτωση (Overloading), Μεθόδων (Method Overloading), Τελεστών (Operator Overloading (C++, C#))

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

ΑΡΧΗ 2ΗΣ ΣΕΛΙΔΑΣ Γ Α... Β

ΑΡΧΗ 2ΗΣ ΣΕΛΙΔΑΣ Γ Α... Β ΘΕΜΑ Α ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ ΠΡΟΣΟΜΟΙΩΣΗ ΑΠΟΛΥΤΗΡΙΩΝ ΕΞΕΤΑΣΕΩΝ Γ' ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΔΕΥΤΕΡΑ 11 ΑΠΡΙΛΙΟΥ 2011 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ

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

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

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

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

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 12: Δέντρα ΙΙ -Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Δυαδικά Δένδρα - Δυαδικά Δένδρα Αναζήτησης(ΔΔΑ) - Εύρεση Τυχαίου, Μέγιστου, Μικρότερου στοιχείου - Εισαγωγή

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

ΓΛΩΣΣΙΚΗ ΤΕΧΝΟΛΟΓΙΑ. Python & NLTK: Εισαγωγή

ΓΛΩΣΣΙΚΗ ΤΕΧΝΟΛΟΓΙΑ. Python & NLTK: Εισαγωγή ΓΛΩΣΣΙΚΗ ΤΕΧΝΟΛΟΓΙΑ Python & NLTK: Εισαγωγή Εισαγωγή Γιατί Python? Παρουσίαση NLTK Πηγές και χρήσιμα εργαλεία Φροντιστήριο σε Python Στο φροντιστήριο: Εισαγωγή στην Python Ζητήματα προγραμματισμού για

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

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος 2009-2010. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος 2009-2010. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Είσοδος/Έξοδος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2009-2010 Είσοδος/Έξοδος Μέχρι τώρα όποτε θέλαμε να διαβάσουμε χρησιμοποιούσαμε πάντα

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

Περιεχόµενα. I Βασικές Γνώσεις 1

Περιεχόµενα. I Βασικές Γνώσεις 1 Περιεχόµενα I Βασικές Γνώσεις 1 1 Μοντελοποίηση Προγραµµάτων 3 1.1 Ψευδογλώσσα....................... 6 1.2 Διαγράµµατα Ροής..................... 6 1.3 Παραδείγµατα σε Ψευδογλώσσα και Διαγράµµατα Ροής.

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

Διάλεξη 13: Δομές Δεδομένων ΙΙ (Ταξινομημένες Λίστες)

Διάλεξη 13: Δομές Δεδομένων ΙΙ (Ταξινομημένες Λίστες) Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 13: Δομές Δεδομένων ΙΙ (Ταξινομημένες Λίστες) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132 13-1 Περιεχόμενο

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

Κεφάλαιο 7. Τρισδιάστατα Μοντέλα

Κεφάλαιο 7. Τρισδιάστατα Μοντέλα Κεφάλαιο 7. 7.1 ομές εδομένων για Γραφικά Υπολογιστών. Οι δομές δεδομένων αποτελούν αντικείμενο της επιστήμης υπολογιστών. Κατά συνέπεια πρέπει να γνωρίζουμε πώς οργανώνονται τα γεωμετρικά δεδομένα, προκειμένου

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

ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ. Σχηματική παράσταση του προγράμματος. logariasmos

ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ. Σχηματική παράσταση του προγράμματος. logariasmos ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ ΒΑΣΙΚΗ ΚΑΙ ΠΑΡΑΓΩΓΕΣ ΚΛΑΣΕΙΣ #include class logariasmos //basikh klash //prostateymeno dedomeno-melos float ypoloipo; logariasmos() //dhlosh constructor ypoloipo=0; float pareypoloipo()

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

Σκοπός του μαθήματος

Σκοπός του μαθήματος ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Εισαγωγή Βασικές Έννοιες Βαγγελιώ Καβακλή Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας Πανεπιστήμιο Αιγαίου Εαρινό Εξάμηνο 2012-2013 1 Σκοπός του μαθήματος Η απόκτηση των γνώσεων

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

ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΠΛΗΡΟΦΟΡΙΚΗ (Τάξη: Γ ) ΓΕΝΙΚΟ ΛΥΚΕΙΟ

ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΠΛΗΡΟΦΟΡΙΚΗ (Τάξη: Γ ) ΓΕΝΙΚΟ ΛΥΚΕΙΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΠΛΗΡΟΦΟΡΙΚΗ (Τάξη: Γ ) ΓΕΝΙΚΟ ΛΥΚΕΙΟ 2015 ΕΙΔΙΚΟΙ ΕΠΙΣΤΗΜΟΝΕΣ ΑΞΙΟΛΟΓΗΣΗΣ: Μαυρίδης Ιωάννης, Αν. Καθηγητής Πανεπιστημίου Μακεδονίας (Συντονιστής) Βαρζάκας Παναγιώτης, Aν. Καθηγητής AΤΕΙ

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

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM). Μνήμες Ένα από τα βασικά πλεονεκτήματα των ψηφιακών συστημάτων σε σχέση με τα αναλογικά, είναι η ευκολία αποθήκευσης μεγάλων ποσοτήτων πληροφοριών, είτε προσωρινά είτε μόνιμα Οι πληροφορίες αποθηκεύονται

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

ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ

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

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

Εισαγωγή στην Πληροφορική Προγραμματισμός-Λειτουργικά

Εισαγωγή στην Πληροφορική Προγραμματισμός-Λειτουργικά Εισαγωγή στην Πληροφορική Προγραμματισμός-Λειτουργικά Ηλ. Γκρίνιας Τ. Ε. Ι. Σερρών Τμήμα Πληροφορικής και Επικοινωνιών Αλγόριθμοι Ορισμός: ο αλγόριθμος είναι μια σειρά από πεπερασμένα βήματα που καθορίζουν

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

4 Συλλογές Αντικειμένων

4 Συλλογές Αντικειμένων 4 Συλλογές Αντικειμένων Πώς χειριζόμαστε αντικείμενα σε ομάδες με επανάληψη Η Απαίτηση Συλλογών Αντικειμένων Πολλές εφαρμογές χρειάζονται πλήθος αντικειμένων: Κατάλογος βιβλίων Φοιτητολόγιο Πελατολόγιο

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

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

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

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

Τεχνητή Νοημοσύνη. 2η διάλεξη (2015-16) Ίων Ανδρουτσόπουλος. http://www.aueb.gr/users/ion/

Τεχνητή Νοημοσύνη. 2η διάλεξη (2015-16) Ίων Ανδρουτσόπουλος. http://www.aueb.gr/users/ion/ Τεχνητή Νοημοσύνη 2η διάλεξη (2015-16) Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Οι διαφάνειες αυτής της διάλεξης βασίζονται στα βιβλία: Τεχνητή Νοημοσύνη των Βλαχάβα κ.ά., 3η έκδοση, Β. Γκιούρδας

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java III Το if-else statement Το if-else statement δουλεύει καλά όταν στο condition θέλουμε να περιγράψουμε μια επιλογή με δύο πιθανά ενδεχόμενα.

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

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

ΠΛΗΡΟΦΟΡΙΚΗ ΣΤΟ ΕΝΙΑΙΟ ΛΥΚΕΙΟ ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΠΛΗΡΟΦΟΡΙΚΗ ΣΤΟ ΕΝΙΑΙΟ ΛΥΚΕΙΟ ΑΝΑΛΥΤΙΚΟ ΠΡΟΓΡΑΜΜΑ Α ΛΥΚΕΙΟΥ Σεπτέμβριος 2007 ΑΝΑΛΥΤΙΚΟ ΠΡΟΓΡΑΜΜΑ - Α ΕΝΙΑΙΟΥ ΛΥΚΕΙΟΥ Το μάθημα της Πληροφορικής στην Α Λυκείου έχει ως

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

Παιχνίδια σε Javascript

Παιχνίδια σε Javascript Παιχνίδια σε Javascript Μάθημα 1ο Μια Γρήγορη Εισαγωγή στη Γλώσσα Τα Εργαλεία Την Javascript μπορούμε (όπως και την HTML) να τη γράψουμε σε ένα απλό συντάκτη κειμένου, ή σε ένα περιβάλλον όπως το Bluefish

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

Παιχνιδάκια με τη LOGO

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

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

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

ΣΥΝΟΠΤΙΚΟΣ ΟΔΗΓΟΣ ΓΛΩΣΣΑΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C ΣΥΝΟΠΤΙΚΟΣ ΟΔΗΓΟΣ ΓΛΩΣΣΑΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C 1 Εισαγωγή Ο προγραμματισμός είναι μια διαδικασία επίλυσης προβλημάτων με χρήση Η/Υ. Ένα πρόγραμμα είναι ένα σύνολο εντολών κάποιας γλώσσας προγραμματισμού,

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

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

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

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

ΣΤΟΙΧΕΙΑ ΤΗΣ ΓΛΩΣΣΑΣ C++ Constructors, Destructors, Pointers IO Streams, File Streams

ΣΤΟΙΧΕΙΑ ΤΗΣ ΓΛΩΣΣΑΣ C++ Constructors, Destructors, Pointers IO Streams, File Streams ΣΤΟΙΧΕΙΑ ΤΗΣ ΓΛΩΣΣΑΣ C++ Constructors, Destructors, Pointers IO Streams, File Streams CONSTRUCTORS DESTRUCTORS Η κλάση mystring class mystring private: char s[100]; public: char *GetString(); void SetString(char

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

Διάλεξη 15: Αναδρομή (Recursion) Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 15: Αναδρομή (Recursion) Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 15: Αναδρομή (Recursion) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Η έννοια της αναδρομής Μη αναδρομικός / Αναδρομικός Ορισμός Συναρτήσεων Παραδείγματα Ανάδρομης Αφαίρεση της Αναδρομής

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

ΠΕΡΙΕΧΟΜΕΝΑ. 1.1. Υλικό και Λογισμικό.. 1 1.2 Αρχιτεκτονική Υπολογιστών.. 3 1.3 Δομή, Οργάνωση και Λειτουργία Υπολογιστών 6

ΠΕΡΙΕΧΟΜΕΝΑ. 1.1. Υλικό και Λογισμικό.. 1 1.2 Αρχιτεκτονική Υπολογιστών.. 3 1.3 Δομή, Οργάνωση και Λειτουργία Υπολογιστών 6 ΠΕΡΙΕΧΟΜΕΝΑ 1. Εισαγωγή στην Δομή, Οργάνωση, Λειτουργία και Αξιολόγηση Υπολογιστών 1.1. Υλικό και Λογισμικό.. 1 1.2 Αρχιτεκτονική Υπολογιστών.. 3 1.3 Δομή, Οργάνωση και Λειτουργία Υπολογιστών 6 1.3.1 Δομή

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

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

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Γραφήματα. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Δομές Δεδομένων Γραφήματα Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Γραφήματα Κατευθυνόμενο Γράφημα Ένα κατευθυνόμενο γράφημα G είναι ένα ζευγάρι (V, E) όπου V είναι ένα

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

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

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

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

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

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

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

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

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Κατακερματισμός. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Δομές Δεδομένων Κατακερματισμός Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Λεξικό Dictionary Ένα λεξικό (dictionary) είναι ένας αφηρημένος τύπος δεδομένων (ΑΤΔ) που διατηρεί

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

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών: Εργαστηριακή Άσκηση 2012-2013

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών: Εργαστηριακή Άσκηση 2012-2013 Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών: Εργαστηριακή Άσκηση 2012-2013 27 Μαρτίου 2013 Περίληψη Σκοπός της παρούσας εργασίας είναι η εξοικείωσή σας με τις θεμελιώδεις θεωρητικές και πρακτικές πτυχές

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

Πιο συγκεκριμένα, η χρήση του MATLAB προσφέρει τα ακόλουθα πλεονεκτήματα.

Πιο συγκεκριμένα, η χρήση του MATLAB προσφέρει τα ακόλουθα πλεονεκτήματα. i Π Ρ Ο Λ Ο Γ Ο Σ Το βιβλίο αυτό αποτελεί μια εισαγωγή στα βασικά προβλήματα των αριθμητικών μεθόδων της υπολογιστικής γραμμικής άλγεβρας (computational linear algebra) και της αριθμητικής ανάλυσης (numerical

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

ΕΠΛ233 Βιβλιοθήκες και Προσδιοριστές Πρόσβασης στην JAVA

ΕΠΛ233 Βιβλιοθήκες και Προσδιοριστές Πρόσβασης στην JAVA Βιβλιοθήκες και Προσδιοριστές Πρόσβασης στην JAVA 2 «Μονάδα Μετάφρασης» 2 «Μονάδα Μετάφρασης» Όταν δημιουργείται ένα αρχείο πηγαίου κώδικα στην Java, το αρχείο καλείται µονάδα µετάφρασης (compilation unit)

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

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Σκοπός Nα κατασκευάσουν πίνακες από δεδομένα. Να κατασκευάσουν συναρτήσεις με πίνακες. Να κάνουν χρήση

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

Πρόλογος. if (παράσταση) εντολή1 else εντολή2. Από εδώ και πέρα θα αναφέρεται ως K&R.

Πρόλογος. if (παράσταση) εντολή1 else εντολή2. Από εδώ και πέρα θα αναφέρεται ως K&R. Περιεχόμενα Πρόλογος v ΚΕΦΑΛΑΙΟ 1 Προπαρασκευαστική εισαγωγή 1 ΚΕΦΑΛΑΙΟ 2 Τύποι, τελεστές, και παραστάσεις 43 ΚΕΦΑΛΑΙΟ 3 Η ροή του ελέγχου 59 ΚΕΦΑΛΑΙΟ 4 Συναρτήσεις και δομή του προγράμματος 69 ΚΕΦΑΛΑΙΟ

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

Δομές Δεδομένων. Ενότητα 4: Ο ΑΤΔ Λίστα & Υλοποίηση Λίστας με σειριακή αποθήκευση- Ο ΑΤΔ Συνδεδεμένη Λίστα- Υλοποίηση ΑΤΔ Συνδεδεμένη Λίστα με πίνακα

Δομές Δεδομένων. Ενότητα 4: Ο ΑΤΔ Λίστα & Υλοποίηση Λίστας με σειριακή αποθήκευση- Ο ΑΤΔ Συνδεδεμένη Λίστα- Υλοποίηση ΑΤΔ Συνδεδεμένη Λίστα με πίνακα Ενότητα 4: Ο ΑΤΔ Λίστα & Υλοποίηση Λίστας με σειριακή αποθήκευση- Ο ΑΤΔ Συνδεδεμένη Λίστα- Υλοποίηση ΑΤΔ Συνδεδεμένη Λίστα με πίνακα Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

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

Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-2

Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-2 Εισαγωγή στην C Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Σύνταξη και Σηµασιολογία της C Σχολιασµός Μεταβλητές / Σταθερές Τύποι εδοµένων και Τελεστές Βιβλίο µαθήµατος: Chapter 2,, Sec.

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

Πληρουορική Γ Γσμμασίοσ

Πληρουορική Γ Γσμμασίοσ Πληρουορική Γ Γσμμασίοσ Προγραμματισμός και Αλγόριθμοι Από το και τημ Χελώμα στημ Ευριπίδης Βραχνός http://evripides.mysch.gr/ 2014 2015 1 Προγραμματισμός Ζάννειο Πρότυπο Πειραματικό Γυμνάσιο Πειραιά Ενότητα:

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

Διάλεξη 20: Χαμηλού Επιπέδου Προγραμματισμός II

Διάλεξη 20: Χαμηλού Επιπέδου Προγραμματισμός II Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 20: Χαμηλού Επιπέδου Προγραμματισμός II (Κεφάλαια 25.2, KNK-2ED) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132

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

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

Εισαγωγή στους Υπολογιστές Εισαγωγή στους Υπολογιστές Ενότητα 2: Αλγόριθμοι, Διαγράμματα Ροής, Εισαγωγή στην Python μεταβλητές, βασικές δομές δεδομένων, έλεγχος ροής Αβούρης Νικόλαος Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών

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

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

Εισαγωγή στον Προγ/μό Η/Υ Εισαγωγή στον Προγ/μό Η/Υ Ενότητα 7 2ο μέρος: Επιπλέον έννοιες σχετικά με αντικείμενα Διδάσκων: Μιχάλης Τίτσιας Περιεχόμενα Τι μπορεί να περιέχει μια τάξη Μέθοδοι τάξης και σταθερές τάξης Πολυμορφισμός

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

ΚΕΦΑΛΑΙΟ 18. 18 Μηχανική Μάθηση

ΚΕΦΑΛΑΙΟ 18. 18 Μηχανική Μάθηση ΚΕΦΑΛΑΙΟ 18 18 Μηχανική Μάθηση Ένα φυσικό ή τεχνητό σύστηµα επεξεργασίας πληροφορίας συµπεριλαµβανοµένων εκείνων µε δυνατότητες αντίληψης, µάθησης, συλλογισµού, λήψης απόφασης, επικοινωνίας και δράσης

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΠΡΟΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΜΑΘΗΜΑ: ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ ΔΙΑΔΙΚΑΣΙΕΣ ΠΑΡΑΓΩΓΗΣ ΛΟΓΙΣΜΙΚΟΥ Διδάσκων: Γ. Χαραλαμπίδης,

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

Εργαστήριο #10 (Ε10) 1

Εργαστήριο #10 (Ε10) 1 Εργαστήριο #10 Από τα προηγούμενα εργαστήρια......θα χρειαστείτε ορισμένες από τις οδηγίες μορφοποίησης CSS (ανατρέξτε στις εκφωνήσεις του 8 ου και 9 ου εργαστηρίου).! Οδηγίες Στη δυναμική δημιουργία ιστοσελίδων

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

Στοίβες με Δυναμική Δέσμευση Μνήμης

Στοίβες με Δυναμική Δέσμευση Μνήμης ΕΠΛ 231 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ 10/02/10 Παύλος Αντωνίου Στοίβες με Δυναμική Δέσμευση Μνήμης Στοίβα: Στοίβα είναι μια λίστα που έχει ένα επιπλέον περιορισμό. Ο περιορισμός είναι ότι οι εισαγωγές

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

Σενάριο 15: Ενεργός Μετεωρολογικός Χάρτης

Σενάριο 15: Ενεργός Μετεωρολογικός Χάρτης Σενάριο 15: Ενεργός Μετεωρολογικός Χάρτης Ταυτότητα Σεναρίου Τίτλος : Ενεργός Μετεωρολογικός Χάρτης Γνωστικό Αντικείμενο: Εφαρμογές Πληροφορικής-Υπολογιστών Διδακτική Ενότητα: Διερευνώ - Δημιουργώ Ανακαλύπτω,

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

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Σκοπός Να αναπτύξουν ένα πρόγραμμα όπου θα επαναλάβουν τα βήματα ανάπτυξης μιας παραθυρικής εφαρμογής.

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

Προγραμματισμός Ι (ΗΥ120)

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 1: Εισαγωγή Ποιος είμαι εγώ! Ναύπλιο, 4/1976-9/1993 Williamsburg, VA, USA, 7/2004-7/2006 2 Πάτρα, 9/1993-6/2004 Μυτιλήνη, 10/2006-2/2007 Βόλος, 2/2007 - Ο Υπεύθυνος των

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

SIMATIC MANAGER SIMATIC MANAGER

SIMATIC MANAGER SIMATIC MANAGER 1 Προγραμματισμός του PLC. 1. Γενικά Μια προσεκτική ματιά σε μια εγκατάσταση που θέλουμε να αυτοματοποιήσουμε, μας δείχνει ότι αυτή αποτελείται από επιμέρους τμήματα τα οποία είναι συνδεδεμένα μεταξύ τους

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