Ευχαριστίες Εισαγωγή Καλωσορίσατε στη C#... 35

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

Download "Ευχαριστίες Εισαγωγή Καλωσορίσατε στη C#... 35"

Transcript

1

2

3 Περιεχόμενα Ευχαριστίες Εισαγωγή Μέρος I Εισαγωγή στη Microsoft Visual C# και το Microsoft Visual Studio Καλωσορίσατε στη C# Ξεκίνημα στον προγραμματισμό στο περιβάλλον του Visual Studio Γραφή του πρώτου σας προγράμματος Χρήση χώρων ονομάτων Δημιουργία μιας εφαρμογής γραφικών Χρήση μεταβλητών, τελεστών, και παραστάσεων Οι εντολές Χρήση αναγνωριστικών Αναγνώριση λέξεων-κλειδιών Χρήση μεταβλητών Ονομασία μεταβλητών Δήλωση μεταβλητών Πρωτογενείς τύποι δεδομένων Εμφάνιση τιμών πρωτογενών τύπων δεδομένων Χρήση αριθμητικών τελεστών Τελεστές και τύποι δεδομένων Εξέταση των αριθμητικών τελεστών Έλεγχος της προτεραιότητας Χρήση προσεταιριστικότητας για τον υπολογισμό παραστάσεων Η προσεταιριστικότητα και ο τελεστής ανάθεσης τιμής Βηματική αύξηση και μείωση μεταβλητών Προθεματική και επιθεματική μορφή Δήλωση τοπικών μεταβλητών υπονοούμενου τύπου Γρήγορη αναφορά Κεφαλαίου

4 8 Περιεχόμενα 3 Γραφή μεθόδων και εφαρμογή εμβέλειας Δήλωση μεθόδων Καθορισμός της σύνταξης δήλωσης μιας μεθόδου Γραφή εντολών return Κλήση μεθόδων Καθορισμός της σύνταξης κλήσης μιας μεθόδου Εφαρμογή εμβέλειας Ορισμός τοπικής εμβέλειας Ορισμός εμβέλειας κλάσης Υπερφόρτωση μεθόδων Γραφή μεθόδων Γρήγορη αναφορά Κεφαλαίου Χρήση εντολών λήψης αποφάσεων Δήλωση λογικών μεταβλητών Χρήση λογικών τελεστών Τελεστές ισότητας και συγκριτικοί τελεστές Λογικοί τελεστές συνθήκης Σύνοψη προτεραιότητας και προσεταιριστικότητας τελεστών Χρήση εντολών if για τη λήψη αποφάσεων Η σύνταξη της εντολής if Χρήση μπλοκ για ομαδοποίηση εντολών Διαδοχικές εντολές if Χρήση εντολών switch Η σύνταξη της εντολής switch Οι κανόνες της εντολής switch Γρήγορη αναφορά Κεφαλαίου Χρήση σύνθετων εντολών ανάθεσης τιμής και επανάληψης Χρήση σύνθετων τελεστών ανάθεσης τιμής Γραφή εντολών while Γραφή εντολών for Η εμβέλεια μιας εντολής for Γραφή εντολών do Γρήγορη αναφορά Κεφαλαίου Διαχείριση σφαλμάτων και εξαιρέσεων Αντιμετώπιση των σφαλμάτων Δοκιμή κώδικα και σύλληψη εξαιρέσεων Χειρισμός μιας εξαίρεσης Ανεπίλυτες εξαιρέσεις...137

5 Περιεχόμενα 9 Χρήση πολλών χειριστών catch Σύλληψη πολλών εξαιρέσεων Χρήση αριθμητικής ακεραίων checked και unchecked Γραφή εντολών checked Γραφή παραστάσεων checked Μεταβίβαση εξαιρέσεων Χρήση ενός μπλοκ finally Γρήγορη αναφορά Κεφαλαίου Μέρος II Η γλώσσα προγραμματισμού C# 7 Δημιουργία και διαχείριση κλάσεων και αντικειμένων Τι είναι η ταξινόμηση Σκοπός της ενθυλάκωσης Ορισμός και χρήση μιας κλάσης Έλεγχος της προσπελασιμότητας Χρήση μεθόδων κατασκευής Υπερφόρτωση μεθόδων κατασκευής Στατικές μέθοδοι και δεδομένα Δημιουργία κοινόχρηστου πεδίου Δημιουργία στατικού πεδίου με τη λέξη-κλειδί const Γρήγορη αναφορά Κεφαλαίου Τι είναι οι τιμές και οι αναφορές Αντιγραφή μεταβλητών τύπων τιμής και κλάσεων Κενές τιμές και οιονεί κενοί τύποι Χρήση οιονεί κενών τύπων Οι ιδιότητες των οιονεί κενών τύπων Χρήση παραμέτρων ref και out Δημιουργία παραμέτρων ref Δημιουργία παραμέτρων out Οργάνωση της μνήμης του υπολογιστή Χρήση της στοίβας και του σωρού Η κλάση System.Object Πλαισίωση Κατάργηση πλαισίωσης Ασφαλής μετατροπή τύπου δεδομένων Ο τελεστής is Ο τελεστής as Γρήγορη αναφορά Κεφαλαίου

6 10 Περιεχόμενα 9 Δημιουργία τύπων τιμής με απαριθμήσεις και δομές Απαριθμήσεις Δήλωση μιας απαρίθμησης Χρήση μιας απαρίθμησης Επιλογή κυριολεκτικών τιμών απαρίθμησης Επιλογή του υποκείμενου τύπου μιας απαρίθμησης Χρήση τύπων δομής Δήλωση δομής Οι διαφορές μεταξύ δομών και κλάσεων Δήλωση μεταβλητών δομής Η απόδοση αρχικών τιμών σε δομή Αντιγραφή μεταβλητών δομής Γρήγορη αναφορά Κεφαλαίου Χρήση πινάκων και συλλογών Τι είναι ένας πίνακας; Δήλωση μεταβλητών πίνακα Δημιουργία παρουσιών πινάκων Απόδοση αρχικών τιμών σε μεταβλητές πίνακα Δημιουργία πίνακα υπονοούμενου τύπου Πρόσβαση σε μεμονωμένα στοιχεία πίνακα Επανάληψη μέσα σε πίνακα Αντιγραφή πινάκων Τι είναι οι κλάσεις συλλογής; Η κλάση συλλογής ArrayList Η κλάση συλλογής Queue Η κλάση συλλογής Stack Η κλάση συλλογής Hashtable Η κλάση συλλογής SortedList Χρήση λιστών απόδοσης αρχικών τιμών σε συλλογές Σύγκριση πινάκων και συλλογών Χρήση κλάσεων συλλογής για χαρτοπαίγνια Γρήγορη αναφορά Κεφαλαίου

7 Περιεχόμενα Τι είναι οι πίνακες παραμέτρων Χρήση ορισμάτων πινάκων Δήλωση πινάκων παραμέτρων Χρήση πινάκων παραμέτρων αντικειμένων Χρήση πινάκων παραμέτρων Γρήγορη αναφορά Κεφαλαίου Χρήση της κληρονομικότητας Τι είναι η κληρονομικότητα; Εφαρμογή της κληρονομικότητας Βασικές και παράγωγες κλάσεις Κλήση μεθόδων κατασκευής βασικών κλάσεων Ανάθεση κλάσεων Δήλωση νέων μεθόδων Δήλωση εικονικών μεθόδων Υποσκελισμός μεθόδων Προστασία πρόσβασης Μέθοδοι επέκτασης Γρήγορη αναφορά Κεφαλαίου Δημιουργία διασυνδέσεων και ορισμός αφηρημένων κλάσεων 271 Τι είναι οι διασυνδέσεις; Η σύνταξη των διασυνδέσεων Περιορισμοί των διασυνδέσεων Υλοποίηση μιας διασύνδεσης Αναφορά σε μια κλάση μέσω της διασύνδεσής της Χρήση πολλών διασυνδέσεων Αφηρημένες κλάσεις Αφηρημένες μέθοδοι Σφραγισμένες κλάσεις Σφραγισμένες μέθοδοι Υλοποίηση επεκτάσιμου πλαισίου εργασίας Σύνοψη των συνδυασμών λέξεων-κλειδιών Γρήγορη αναφορά Κεφαλαίου

8 12 Περιεχόμενα 14 Συλλογή απορριμμάτων και διαχείριση πόρων Έργα και ημέρες ενός αντικειμένου Γραφή μεθόδων καταστροφής Λόγοι χρήσης της συλλογής απορριμμάτων Τρόπος λειτουργίας της συλλογής απορριμμάτων Συστάσεις Διαχείριση πόρων Μέθοδοι αποκομιδής Αποκομιδή ασφαλής από εξαιρέσεις Η εντολή using Κλήση της μεθόδου Dispose από μια μέθοδο καταστροφής Δημιουργία κώδικα ασφαλούς από εξαιρέσεις Γρήγορη αναφορά Κεφαλαίου Μέρος IIΙ Δημιουργία συστατικών 15 Υλοποίηση ιδιοτήτων για την προσπέλαση πεδίων Υλοποίηση της ενθυλάκωσης με τη χρήση μεθόδων Τι είναι οι ιδιότητες; Χρήση ιδιοτήτων Ιδιότητες μόνο για ανάγνωση Ιδιότητες μόνο για εγγραφή Προσπελασιμότητα ιδιοτήτων Οι περιορισμοί των ιδιοτήτων Σωστή χρήση των ιδιοτήτων Δήλωση ιδιοτήτων διασύνδεσης Χρήση ιδιοτήτων σε μια εφαρμογή Windows Δημιουργία αυτόματων ιδιοτήτων Ανάθεση αρχικών τιμών σε αντικείμενα με τη χρήση ιδιοτήτων Γρήγορη αναφορά Κεφαλαίου Χρήση πινάκων αριθμοδεικτών Τι είναι οι πίνακες αριθμοδεικτών; Ένα παράδειγμα χωρίς πίνακες αριθμοδεικτών Το ίδιο παράδειγμα με πίνακες αριθμοδεικτών Μέθοδοι πρόσβασης πινάκων αριθμοδεικτών Σύγκριση πινάκων αριθμοδεικτών και κοινών πινάκων Πίνακες αριθμοδεικτών στις διασυνδέσεις Χρήση πινάκων αριθμοδεικτών σε μια εφαρμογή Windows Γρήγορη αναφορά Κεφαλαίου

9 Περιεχόμενα Διακοπή ροής προγράμματος και χειρισμός συμβάντων Δήλωση και χρήση εκπροσώπων Το σενάριο του αυτοματοποιημένου εργοστασίου Υλοποίηση του εργοστασίου χωρίς τη χρήση εκπροσώπων Υλοποίηση του εργοστασίου με τη χρήση εκπροσώπου Χρήση εκπροσώπων Παραστάσεις λάμδα και εκπρόσωποι Δημιουργία ενός προσαρμογέα μεθόδου Χρήση μιας παράστασης λάμδα ως προσαρμογέα Η μορφή των παραστάσεων λάμδα Ενεργοποίηση γνωστοποίησης με συμβάντα Δήλωση συμβάντος Συνδρομή σε ένα συμβάν Κατάργηση συνδρομής από ένα συμβάν Ενεργοποίηση συμβάντος Τι είναι τα συμβάντα διασύνδεσης WPF Χρήση συμβάντων Γρήγορη αναφορά Κεφαλαίου Εισαγωγή στα Γενικά Το πρόβλημα με τα αντικείμενα Η λύση των Γενικών Σύγκριση Γενικών και γενικευμένων κλάσεων Γενικά και περιορισμοί Δημιουργία μιας γενικής κλάσης Θεωρία των δυαδικών δένδρων Κατασκευή κλάσης δυαδικού δένδρου με τη χρήση Γενικών Δημιουργία μιας γενικής μεθόδου Ορισμός γενικής μεθόδου για τη δημιουργία δυαδικού δένδρου Γρήγορη αναφορά Κεφαλαίου Απαρίθμηση συλλογών Απαρίθμηση των στοιχείων μιας συλλογής Μη αυτόματη υλοποίηση απαριθμητή Υλοποίηση της διασύνδεσης IEnumerable Υλοποίηση απαριθμητή με τη χρήση επαναλήπτη Ένας απλός επαναλήπτης Ορισμός απαριθμητή για την κλάση Tree<TItem> με τη χρήση επαναλήπτη Γρήγορη αναφορά Κεφαλαίου

10 14 Περιεχόμενα 20 Υποβολή ερωτημάτων σε δεδομένα της μνήμης με παραστάσεις ερωτημάτων Τι είναι ένα Ερώτημα Ενσωματωμένο στη Γλώσσα (LINQ); Χρήση LINQ σε μια εφαρμογή της C# Επιλογή δεδομένων Φιλτράρισμα δεδομένων Διάταξη, ομαδοποίηση, και συνάθροιση δεδομένων Συνένωση δεδομένων Χρήση τελεστών ερωτημάτων Υποβολή ερωτημάτων σε αντικείμενα Tree<TItem> LINQ και καθυστερημένος υπολογισμός Γρήγορη αναφορά Κεφαλαίου Υπερφόρτωση τελεστών Ανάλυση των τελεστών Περιορισμοί τελεστών Υπερφορτωμένοι τελεστές Δημιουργία συμμετρικών τελεστών Σύνθετη ανάθεση τιμής Δήλωση τελεστών βηματικής αύξησης και βηματικής μείωσης Ορισμός ζευγών τελεστών Υλοποίηση ενός τελεστή Οι τελεστές μετατροπής Παροχή ενσωματωμένων μετατροπών Υλοποίηση οριζόμενων από το χρήστη τελεστών μετατροπής Και πάλι η δημιουργία συμμετρικών τελεστών Προσθήκη τελεστή υπονοούμενης μετατροπής Γρήγορη αναφορά Κεφαλαίου Μέρος IV Εφαρμογές των Windows 22 Εισαγωγή στη λειτουργία Windows Presentation Foundation Δημιουργία μιας εφαρμογής WPF Δημιουργία εφαρμογής Windows Presentation Foundation Προσθήκη στοιχείων ελέγχου στη φόρμα Χρήση στοιχείων ελέγχου WPF Αλλαγή ιδιοτήτων δυναμικά Χειρισμός συμβάντων σε φόρμες WPF Επεξεργασία συμβάντων σε φόρμες WPF Γρήγορη αναφορά Κεφαλαίου

11 Περιεχόμενα Μενού και πλαίσια διαλόγου Οδηγίες και στυλ για μενού Μενού και συμβάντα μενού Δημιουργία μενού Χειρισμός συμβάντων μενού Μενού συντόμευσης Δημιουργία μενού συντόμευσης Στοιχεία ελέγχου κοινών πλαισίων διαλόγου Χρήση της κλάσης SaveFileDialog Γρήγορη αναφορά Κεφαλαίου Επικύρωση Επικύρωση δεδομένων Στρατηγικές επικύρωσης καταχώρισης δεδομένων Ένα παράδειγμα πελατολόγιο Επικύρωση με τη χρήση δέσμευσης δεδομένων Αλλαγή της θέσης επικύρωσης Γρήγορη αναφορά Κεφαλαίου Μέρος V Διαχείριση δεδομένων 25 Αναζήτηση πληροφοριών σε μια βάση δεδομένων Ερώτημα σε βάση δεδομένων με τη χρήση του ADO.NET Η βάση δεδομένων Northwind Δημιουργία της βάσης δεδομένων Χρήση του ADO.NET για την αναζήτηση πληροφοριών παραγγελιών Ερώτημα σε βάση δεδομένων με τη χρήση DLINQ Ορισμός κλάσεων οντοτήτων Δημιουργία και εκτέλεση ερωτήματος DLINQ Καθυστερημένη και άμεση προσκόμιση Συνένωση πινάκων και δημιουργία σχέσεων Και πάλι η καθυστερημένη και η άμεση προσκόμιση Ορισμός μιας προσαρμοσμένης κλάσης DataContext Χρήση της DLINQ για την αναζήτηση πληροφοριών παραγγελιών Γρήγορη αναφορά Κεφαλαίου Εμφάνιση και επεξεργασία δεδομένων με τη χρήση δέσμευσης δεδομένων Χρήση δέσμευσης δεδομένων με την DLINQ Χρήση της DLINQ για την τροποποίηση δεδομένων...576

12 16 Περιεχόμενα Ενημέρωση υπαρχόντων δεδομένων Χειρισμός διενέξεων στις ενημερώσεις Προσθήκη και διαγραφή δεδομένων Γρήγορη αναφορά Κεφαλαίου Μέρος VΙ Διαχείριση δεδομένων 27 Εισαγωγή στο ASP.NET Το Διαδίκτυο ως υποδομή Αιτήσεις και αποκρίσεις του διακομιστή Ιστού Διαχείριση κατάστασης Τι είναι το ASP.NET Δημιουργία εφαρμογών Ιστού με το ASP.NET Δόμηση εφαρμογής ASP.NET Τα στοιχεία ελέγχου διακομιστή Δημιουργία και χρήση θέματος Γρήγορη αναφορά Κεφαλαίου Τι είναι τα χειριστήρια επικύρωσης φορμών Ιστού Σύγκριση επικύρωσης στο διακομιστή και στον πελάτη Επικύρωση δεδομένων στο διακομιστή Επικύρωση δεδομένων στο φυλλομετρητή Ιστού Υλοποίηση της επικύρωσης στον πελάτη Γρήγορη αναφορά Κεφαλαίου Ασφάλεια τοποθεσίας Ιστού και προσπέλαση δεδομένων με φόρμες Ιστού Διαχείριση της ασφάλειας Ασφάλεια βασισμένη σε φόρμες Υλοποίηση ασφάλειας βασισμένης σε φόρμες Υποβολή ερωτημάτων και εμφάνιση δεδομένων Το στοιχείο ελέγχου GridView των φορμών Ιστού Εμφάνιση στοιχείων πελατών και ιστορικού παραγγελιών Εμφάνιση δεδομένων ανά σελίδες Επεξεργασία δεδομένων Ενημέρωση γραμμών με ένα στοιχείο ελέγχου GridView Μετακίνηση στις διάφορες φόρμες Γρήγορη αναφορά Κεφαλαίου

13 Περιεχόμενα Δημιουργία και χρήση υπηρεσίας Ιστού Τι είναι μια υπηρεσία Ιστού; Ο ρόλος του SOAP Τι είναι η Γλώσσα Περιγραφής Υπηρεσιών Ιστού; Μη λειτουργικές απαιτήσεις των υπηρεσιών Ιστού Ο ρόλος της τεχνολογίας Windows Communication Foundation Δημιουργία μιας υπηρεσίας Ιστού Δημιουργία της υπηρεσίας Ιστού ProductService Υπηρεσίες Ιστού, πελάτες, και μεσολαβητές Επικοινωνία μέσω SOAP: ο δύσκολος τρόπος Επικοινωνία μέσω SOAP: ο εύκολος τρόπος Αξιοποίηση της υπηρεσίας Ιστού ProductService Γρήγορη αναφορά Κεφαλαίου Ευρετήριο

14

15 Κεφάλαιο 9 Δημιουργία τύπων τιμής με απαριθμήσεις και δομές Μετά την ολοκλήρωση αυτού του κεφαλαίου, θα μπορείτε: Να δηλώνετε έναν τύπο απαρίθμησης. Να δημιουργείτε και να χρησιμοποιείτε έναν τύπο απαρίθμησης. Να δηλώνετε έναν τύπο δομής. Να δημιουργείτε και να χρησιμοποιείτε έναν τύπο δομής. Στο Κεφάλαιο 8, "Τι είναι οι τιμές και οι αναφορές", μάθατε τα δύο θεμελιώδη είδη τύπων που υ- πάρχουν στη γλώσσα Microsoft Visual C#: τους τύπους τιμής (value types) και τους τύπους αναφοράς (reference types). Μια μεταβλητή τύπου τιμής διατηρεί την τιμή της απευθείας στη στοίβα, ενώ μια μεταβλητή τύπου αναφοράς περιέχει μια αναφορά προς ένα αντικείμενο που βρίσκεται στο σωρό. Στο Κεφάλαιο 7, "Δημιουργία και διαχείριση κλάσεων και αντικειμένων" μάθατε να γράφετε τις δικές σας κλάσεις, δημιουργώντας έτσι τους δικούς σας τύπους αναφοράς. Σε αυτό το κεφάλαιο θα μάθετε πώς να γράφετε τους δικούς σας τύπους τιμής. Η C# υποστηρίζει δύο είδη τύπων τιμής: τις απαριθμήσεις και τις δομές. Θα τους εξετάσουμε με τη σειρά. Απαριθμήσεις Ας υποθέσουμε ότι θέλετε να αναπαραστήσετε τις εποχές του έτους σε ένα πρόγραμμα. Θα μπορούσατε να χρησιμοποιήσετε τους ακεραίους 0, 1, 2, και 3 για να αναπαραστήσετε την άνοιξη (spring), το καλοκαίρι (summer), το φθινόπωρο (fall), και το χειμώνα (winter) αντίστοιχα. Αυτό το σύστημα λειτουργεί αλλά δεν είναι και πολύ διαισθητικό. Αν χρησιμοποιούσατε την ακέραια τιμή 0 στον κώδικα, δε θα ήταν προφανές ότι κάποιο 0 αντιπροσωπεύει την άνοιξη. Αυτή η λύση δε θα ήταν επίσης πολύ ανθεκτική. Για παράδειγμα, δε θα σας εμπόδιζε τίποτε να χρησιμοποιήσετε οποιαδήποτε ακέραια τιμή αντί για τις 0, 1, 2, και 3. Η C# παρέχει μια καλύτερη λύση. Μπορείτε να δημιουργήσετε έναν τύπο απαρίθμησης (που ορισμένες φορές ονομάζεται τύπος enum), του οποίου οι τιμές περιορίζονται σε ένα σύνολο συμβολικών ονομάτων. Δήλωση μιας απαρίθμησης Για να δηλώσετε μια απαρίθμηση (enumeration), χρησιμοποιείτε τη λέξη-κλειδί enum, ακολουθούμενη από ένα σύνολο συμβόλων τα οποία καθορίζουν τις έγκυρες τιμές που μπορεί να πάρει ο τύ

16 200 Μέρος 2: Η γλώσσα προγραμματισμού C# πος, κλεισμένα μέσα σε άγκιστρα. Εδώ βλέπετε τον τρόπο δήλωσης μιας απαρίθμησης με το όνομα Season (Εποχή), του οποίου οι τιμές περιορίζονται στα συμβολικά ονόματα Spring, Summer, Fall, και Winter: enum Season Spring, Summer, Fall, Winter Χρήση μιας απαρίθμησης Αφού δηλώσετε μια απαρίθμηση, μπορείτε να τη χρησιμοποιήσετε με τον ίδιο ακριβώς τρόπο όπως και τους άλλους τύπους. Αν το όνομα του τύπου απαρίθμησης είναι Season, μπορείτε να δημιουργήσετε μεταβλητές τύπου Season, πεδία τύπου Season, και παραμέτρους τύπου Season, όπως φαίνεται στο παρακάτω παράδειγμα: enum Season Spring, Summer, Fall, Winter class Example public void Method(Season parameter) Season localvariable;... private Season currentseason; Για να χρησιμοποιήσετε την τιμή μιας μεταβλητής απαρίθμησης, πρέπει πρώτα να της αναθέσετε κάποια τιμή. Σε μια μεταβλητή απαρίθμησης μπορείτε να αναθέσετε μόνο μια τιμή που έχει οριστεί για την απαρίθμηση. Για παράδειγμα: Season colorful = Season.Fall; Console.WriteLine(colorful); // εμφανίζει 'Fall' Σημείωση Όπως με όλους τους τύπους τιμής, μπορείτε να δημιουργήσετε μια οιονεί κενή (nullable) μιας μεταβλητής απαρίθμησης χρησιμοποιώντας τον τροποποιητή?. Στη συνέχεια, μπορείτε να αναθέσετε στη μεταβλητή την τιμή null, καθώς και τις τιμές που ορίζονται στην απαρίθμηση: Season? colorful = null; Παρατηρήστε ότι πρέπει να γράψετε Season.Fall και όχι μόνο Fall. Όλα τα κυριολεκτικά ονόματα απαριθμήσεων έχουν εμβέλεια μέσα στους τύπους απαρίθμησης που δηλώνονται. Αυτό είναι πολύ χρήσιμο επειδή επιτρέπει σε διαφορετικούς τύπους απαρίθμησης να περιλαμβάνουν κυριολεκτικά (literals) με το ίδιο όνομα. Επίσης παρατηρήστε ότι, όταν εμφανίζετε τα περιεχόμενα μιας μεταβλητής απαρίθμησης με τη μέθοδο Console.WriteLine, ο μεταγλωττιστής παράγει κώδικα που γράφει στην κονσόλα το όνομα του κυριολεκτικού του οποίου η τιμή ταιριάζει με την τιμή της μεταβλητής. Αν χρειαστεί, μπορείτε να μετατρέψετε ρητά μια μεταβλητή απαρίθμησης σε συμβολοσειρά που αντιπροσωπεύει την τρέχουσα τιμή της, με τη βοήθεια της ενσωματωμένης μεθόδου ToString την οποία διαθέτουν αυτόματα όλοι οι τύποι απαρίθμησης. Για παράδειγμα:

17 Κεφάλαιο 9: Δημιουργία τύπων τιμής με απαριθμήσεις και δομές 201 string name = colorful.tostring(); Console.WriteLine(name); // επίσης εμφανίζει 'Fall' Πολλοί από τους βασικούς τελεστές που μπορείτε να χρησιμοποιήσετε σε μεταβλητές ακεραίων μπορούν επίσης να χρησιμοποιηθούν στις μεταβλητές απαρίθμησης (εκτός από τους τελεστές bitwise και shift, τους οποίους θα δούμε στο Κεφάλαιο 16, "Χρήση πινάκων αριθμοδεικτών"). Για παράδειγμα, με τον τελεστή == μπορείτε να ελέγξετε αν δύο μεταβλητές απαρίθμησης του ίδιου τύπου είναι ίσες, και μπορείτε επίσης να εκτελέσετε αριθμητικές πράξεις σε μια μεταβλητή απαρίθμησης (αν και το αποτέλεσμα μπορεί να μην έχει πάντοτε νόημα!). Επιλογή κυριολεκτικών τιμών απαρίθμησης Εσωτερικά, μια απαρίθμηση συσχετίζει μια ακέραια τιμή με κάθε στοιχείο. Εξ ορισμού, η αρίθμηση αρχίζει από το 0 για το πρώτο στοιχείο και αυξάνεται κατά 1. Μπορείτε να ανακτήσετε την υποκείμενη ακέραια τιμή μιας μεταβλητής απαρίθμησης. Για το σκοπό αυτόν, πρέπει να τη μετατρέψετε στον υποκείμενο τύπο της. Από την εξέταση της κατάργησης της πλαισίωσης στο Κεφάλαιο 8, θυμηθείτε ότι η μετατροπή τύπου (cast) μετατρέπει τα δεδομένα από έναν τύπο σε έναν άλλο, με την προϋπόθεση ότι η μετατροπή είναι έγκυρη και έχει νόημα. Για παράδειγμα, το επόμενο τμήμα κώδικα θα εμφανίσει την τιμή 2 και όχι τη λέξη Fall (η Spring είναι η τιμή 0, η Summer η 1, η Fall η 2, και η Winter η 3): enum Season Spring, Summer, Fall, Winter... Season colorful = Season.Fall; Console.WriteLine((int)colorful); // εμφανίζει '2' Αν προτιμάτε, μπορείτε να συσχετίσετε μια συγκεκριμένη ακέραια σταθερά (όπως η τιμή 1) με ένα κυριολεκτικό (literal) απαρίθμησης (σαν τη μεταβλητή Spring), όπως στο παρακάτω παράδειγμα: enum Season Spring = 1, Summer, Fall, Winter Σημαντικό Η ακέραια τιμή την οποία δίνετε ως αρχική σε ένα κυριολεκτικό απαρίθμησης, πρέπει να είναι μια σταθερή τιμή κατά το χρόνο μεταγλώττισης (όπως η τιμή 1). Αν δε δώσετε ρητά σε ένα κυριολεκτικό απαρίθμησης μια σταθερή ακέραια τιμή, ο μεταγλωττιστής τού δίνει μια τιμή μεγαλύτερη κατά 1 σε σχέση με την τιμή του προηγούμενου κυριολεκτικού της απαρίθμησης εκτός από το πρώτο, στο οποίο δίνει την προεπιλεγμένη τιμή 0. Στο προηγούμενο παράδειγμα, οι υποκείμενες τιμές των κυριολεκτικών απαρίθμησης Spring, Summer, Fall, και Winter είναι αντίστοιχα οι τιμές 1, 2, 3, και 4. Επιτρέπεται να δώσετε την ίδια υποκείμενη τιμή σε περισσότερα από ένα κυριολεκτικά απαρίθμησης. Για παράδειγμα, στην Αγγλία, το κυριολεκτικό απαρίθμησης Fall αναφέρεται ως Autumn. Μπορείτε να συμπεριλάβετε και τις δύο γλωσσικές συνήθειες ως εξής: enum Season Spring, Summer, Autumn = Fall, Winter

18 202 Μέρος 2: Η γλώσσα προγραμματισμού C# Επιλογή του υποκείμενου τύπου μιας απαρίθμησης Όταν δηλώνετε έναν τύπο απαρίθμησης, τα κυριολεκτικά της απαρίθμησης παίρνουν τιμές τύπου int. Μπορείτε να βασίσετε το δικό σας τύπο απαρίθμησης και σε κάποιο διαφορετικό υποκείμενο ακέραιο τύπο. Για παράδειγμα, για να δηλώσετε ότι ο υποκείμενος τύπος της απαρίθμησης Season είναι ο short αντί του int, μπορείτε να χρησιμοποιήσετε την παρακάτω εντολή: enum Season : short Spring, Summer, Fall, Winter Ο κύριος λόγος για να κάνετε κάτι τέτοιο είναι η οικονομία μνήμης ο τύπος int καταλαμβάνει περισσότερη μνήμη από τον τύπο short και, αν δε χρειάζεστε ολόκληρο το εύρος των τιμών του τύπου int, ένας μικρότερος τύπος δεδομένων είναι πιο εύλογος. Μπορείτε να βασίσετε μια απαρίθμηση σε οποιονδήποτε από τους επόμενους οκτώ ακέραιους τύπους: byte, sbyte, short, ushort, int, uint, long, ή ulong. Οι τιμές όλων των κυριολεκτικών της απαρίθμησης πρέπει να χωρούν στο εύρος του επιλεγμένου βασικού τύπου. Για παράδειγμα, αν βασίσετε μια απαρίθμηση στον τύπο δεδομένων byte, μπορείτε να έχετε ένα μέγιστο αριθμό 256 κυριολεκτικών (ξεκινώντας από το 0). Τώρα που γνωρίζετε πώς δηλώνετε μια απαρίθμηση, το επόμενο βήμα είναι να τη χρησιμοποιήσετε. Στην επόμενη άσκηση, θα δουλέψετε με μια εφαρμογή κονσόλας για να δηλώσετε και να χρησιμοποιήσετε μια κλάση απαρίθμησης που αναπαριστά τους μήνες του έτους. Δημιουργήστε και χρησιμοποιήστε έναν τύπο απαρίθμησης 1. Ξεκινήστε το Microsoft Visual Studio 2008 αν δεν είναι ήδη ανοιχτό. 2. Ανοίξτε το έργο StructsAndEnums από το φάκελο \Microsoft Press\Visual CSharp Step By Step\Chapter 9\StructsAndEnums του φακέλου Documents του λογαριασμού σας. 3. Στο παράθυρο Διορθωτή κώδικα και κειμένου, εμφανίστε το αρχείο Month.cs. Το πηγαίο αρχείο περιέχει έναν κενό χώρο ονομάτων με το όνομα StructsAndEnums (δομές και απαριθμήσεις). 4. Στο χώρο ονομάτων StructsAndEnums, προσθέστε έναν τύπο απαρίθμησης με το όνομα Month για να αναπαραστήσετε τους μήνες του έτους, όπως βλέπετε εδώ με έντονα γράμματα. Τα 12 κυριολεκτικά της απαρίθμησης Month είναι οι μήνες January (Ιανουάριος) έως December (Δεκέμβριος). namespace StructsAndEnums enum Month January, February, March, April, May, June, July, August, September, October, November, December

19 Κεφάλαιο 9: Δημιουργία τύπων τιμής με απαριθμήσεις και δομές Εμφανίστε το αρχείο Program.cs στο παράθυρο Διορθωτή κώδικα και κειμένου. Όπως στις ασκήσεις των προηγούμενων κεφαλαίων, η μέθοδος Main καλεί τη μέθοδο Entrance και παγιδεύει τυχόν εξαιρέσεις που προκύπτουν. 6. Στο παράθυρο Διορθωτή κώδικα και κειμένου, προσθέστε στη μέθοδο Entrance μια εντολή για να δηλώσετε μια μεταβλητή τύπου Month με το όνομα first και να της δώσετε ως αρχική τιμή την τιμή Month.January. Προσθέστε μία ακόμη εντολή που θα εμφανίζει την τιμή της πρώτης μεταβλητής στην κονσόλα. Η μέθοδος Entrance θα πρέπει να μοιάζει με αυτή: static void Entrance() Month first = Month.January; Console.WriteLine(first); Σημείωση Όταν πληκτρολογήσετε την τελεία μετά από το Month, η λειτουργία Intellisense θα εμφανίσει αυτόματα όλες τις τιμές της απαρίθμησης Month. 7. Από το μενού Debug, επιλέξτε τη διαταγή Start Without Debugging. Το Visual Studio 2008 μεταγλωττίζει και εκτελεί το πρόγραμμα. Βεβαιωθείτε ότι στην κονσόλα εμφανίζεται η λέξη January. 8. Πατήστε το πλήκτρο Enter για να κλείσετε το πρόγραμμα και να επιστρέψετε στο περιβάλλον προγραμματισμού του Visual Studio Προσθέστε δύο ακόμη εντολές στη μέθοδο Entrance, για να αυξήσετε τη μεταβλητή first και να εμφανίσετε τη νέα της τιμή στην κονσόλα, όπως βλέπετε εδώ με έντονα γράμματα: static void Entrance() Month first = Month.January; Console.WriteLine(first); first++; Console.WriteLine(first); 10. Από το μενού Debug, επιλέξτε τη διαταγή Start Without Debugging. Το Visual Studio 2008 μεταγλωττίζει και εκτελεί το πρόγραμμα. Βεβαιωθείτε ότι στην κονσόλα εμφανίζονται οι λέξεις January και February. Παρατηρήστε ότι η εκτέλεση μιας μαθηματικής πράξης (όπως η αύξηση της τιμής) σε μια μεταβλητή απαρίθμησης αλλάζει την εσωτερική ακέραια τιμή της μεταβλητής. Στην οθόνη εμφανίζεται η αντίστοιχη τιμή της απαρίθμησης. 11. Πατήστε το πλήκτρο Enter για να κλείσετε το πρόγραμμα και να επιστρέψετε στο περιβάλλον προγραμματισμού του Visual Studio 2008.

20 204 Μέρος 2: Η γλώσσα προγραμματισμού C# 12. Τροποποιήστε την πρώτη εντολή της μεθόδου Entrance ώστε η μεταβλητής first να παίρνει ως αρχική την τιμή Month.December, όπως βλέπετε εδώ με έντονα γράμματα: static void Entrance() Month first = Month.December; Console.WriteLine(first); first++; Console.WriteLine(first); 13. Από το μενού Debug, επιλέξτε τη διαταγή Start Without Debugging. Το Visual Studio 2008 μεταγλωττίζει και εκτελεί το πρόγραμμα. Αυτή τη φορά στην κονσόλα εμφανίζεται η λέξη December, ακολουθούμενη από τον αριθμό 12. Αν και μπορείτε να εκτελέσετε αριθμητικές πράξεις σε μια απαρίθμηση, αν τα αποτελέσματα της πράξης βρεθούν έξω από το εύρος τιμών που ορίστηκε για την απαρίθμηση, το μόνο που μπορεί να κάνει το σύστημα χρόνου εκτέλεσης είναι να χειριστεί τη μεταβλητή ως την αντίστοιχη ακέραια τιμή. 14. Πατήστε το πλήκτρο Enter για να κλείσετε το πρόγραμμα και να επιστρέψετε στο περιβάλλον προγραμματισμού του Visual Studio Χρήση τύπων δομής Στο Κεφάλαιο 8, είδαμε ότι οι κλάσεις ορίζουν τύπους αναφοράς οι οποίοι δημιουργούνται πάντοτε στο σωρό. Σε μερικές περιπτώσεις, η κλάση μπορεί να περιέχει τόσο λίγα δεδομένα ώστε η επιβάρυνση από τη διαχείριση του σωρού καταλήγει δυσανάλογα μεγάλη. Σε αυτές τις περιπτώσεις, είναι καλύτερα να ορίσετε τον τύπο ως δομή (structure). Επειδή οι δομές αποθηκεύονται στη στοίβα, η επιβάρυνση από τη διαχείριση της μνήμης συχνά μειώνεται, με την προϋπόθεση ότι η δομή είναι αρκετά μικρή. Μια δομή μπορεί να έχει τα δικά της πεδία, μεθόδους, και μεθόδους κατασκευής όπως ακριβώς μια κλάση και αντίθετα με μια απαρίθμηση. Συνήθεις τύποι δομών Ίσως δεν το έχετε αντιληφθεί, αλλά έχετε ήδη χρησιμοποιήσει δομές σε προηγούμενες ασκήσεις αυτού του βιβλίου. Στη γλώσσα C#, οι πρωτογενείς αριθμητικοί τύποι int, long, και float είναι ψευδώνυμα των δομών System.Int32, System.Int64, και System.Single αντίστοιχα. Αυτές οι δομές διαθέτουν πεδία και μεθόδους, και μπορείτε να καλέσετε μεθόδους για μεταβλητές και κυριολεκτικά αυτών των τύπων. Για παράδειγμα, όλες αυτές οι δομές διαθέτουν μια μέθοδο ToString, που μπορεί να μετατρέψει μια αριθμητική τιμή στην ισοδύναμη αναπαράσταση συμβολοσειράς. Οι παρακάτω εντολές είναι όλες έγκυρες στη γλώσσα C#: int i = 99; Console.WriteLine(i.ToString()); Console.WriteLine(55.ToString()); float f = F; Console.WriteLine(f.ToString()); Console.WriteLine(98.765F.ToString());

21 Κεφάλαιο 9: Δημιουργία τύπων τιμής με απαριθμήσεις και δομές 205 Δε θα δείτε αυτή τη χρήση της μεθόδου ToString και πολύ συχνά, επειδή η μέθοδος Console.WriteLine την καλεί αυτόματα κάθε φορά που χρειάζεται. Η χρήση των στατικών μεθόδων που αποκαλύπτουν αυτές οι δομές είναι πολύ πιο συνηθισμένη. Για παράδειγμα, σε προηγούμενα κεφάλαια χρησιμοποιήσαμε τη στατική μέθοδο int.parse για τη μετατροπή μιας συμβολοσειράς στην αντίστοιχη ακέραια τιμή της. Αυτό που κάνατε στην πραγματικότητα είναι να καλείτε τη μέθοδο Parse της δομής Int32: string s = "42"; int i = int.parse(s); // Ακριβώς ίδιο με το Int32.Parse Οι δομές αυτές περιλαμβάνουν επίσης μερικά χρήσιμα στατικά πεδία. Για παράδειγμα, η τιμή Int32.MaxValue είναι η μέγιστη τιμή η οποία μπορεί να αποθηκευτεί στον τύπο int, και η Int32.MinValue είναι η μικρότερη τιμή που μπορείτε να αποθηκεύσετε στον τύπο int. Ο παρακάτω πίνακας δείχνει τους πρωτογενείς τύπους της γλώσσας C#, τους αντίστοιχους ισοδύναμους τύπους στο Πλαίσιο Εφαρμογών.NET, και το αν κάθε τύπος είναι κλάση ή δομή. Λέξη-κλειδί Ισοδύναμος τύπος Κλάση ή δομή bool System.Boolean Δομή byte System.Byte Δομή decimal; System.Decimal Δομή double System.Double Δομή float System.Single Δομή int System.Int32 Δομή long System.Int64 Δομή object System.Object Κλάση sbyte System.Sbyte Δομή short System.Int16 Δομή string System.String Κλάση uint System.UInt32 Δομή ulong System.UInt64 Δομή ushort System.UInt16 Δομή

22 206 Μέρος 2: Η γλώσσα προγραμματισμού C# Δήλωση δομής Για να δηλώσετε το δικό σας τύπο τιμής δομής, χρησιμοποιείτε τη λέξη-κλειδί struct ακολουθούμενη από το όνομα του τύπου, και μετά από το σώμα της δομής ανάμεσα σε αριστερό και δεξιό άγκιστρο. Για παράδειγμα, ακολουθεί μια δομή με το όνομα Time (χρόνος), που περιέχει τρία δημόσια πεδία τύπου int με τα ονόματα hours (ώρες), minutes (λεπτά), και seconds (δευτερόλεπτα): struct Time public int hours, minutes, seconds; Όπως στις κλάσεις, στις περισσότερες περιπτώσεις δε συνιστάται ο ορισμός των πεδίων μιας δομής ως δημοσίων (public) δεν υπάρχει τρόπος να εξασφαλίσετε ότι τα δημόσια πεδία θα περιέχουν έγκυρες τιμές. Για παράδειγμα, ο καθένας θα μπορούσε να δώσει στα πεδία minutes ή seconds τιμές μεγαλύτερες από 60. Μια καλύτερη ιδέα είναι να ορίσετε τα πεδία ως ιδιωτικά (private) και να δημιουργήσετε τη δική σας δομή με μεθόδους κατασκευής και μεθόδους απόδοσης αρχικών τιμών και χειρισμού των πεδίων αυτών, όπως φαίνεται στο παρακάτω παράδειγμα: struct Time public Time(int hh, int mm, int ss) hours = hh % 24; minutes = mm % 60; seconds = ss % 60; public int Hours() return hours;... private int hours, minutes, seconds; Σημείωση Εξ ορισμού, δεν μπορείτε να χρησιμοποιήσετε πολλούς από τους συνήθεις τελεστές στους δικούς σας τύπους δομών. Για παράδειγμα, δεν μπορείτε να χρησιμοποιήσετε τελεστές όπως ο τελεστής ισότητας (==) και ο τελεστής "διάφορο" (!=) στις δικές σας μεταβλητές δομών. Όμως, μπορείτε ρητά να δηλώσετε και να υλοποιήσετε τελεστές για τους δικούς τους τύπους δομών. Τη σύνταξη γι' αυτό θα τη δούμε στο Κεφάλαιο 21, "Υπερφόρτωση τελεστών". Χρησιμοποιήστε δομές για να υλοποιήσετε απλές έννοιες των οποίων το βασικό γνώρισμα είναι η τιμή τους. Για παράδειγμα, ο τύπος int είναι ένας τύπος τιμής επειδή το βασικό του γνώρισμα είναι η τιμή του. Αν έχετε δύο μεταβλητές τύπου int που περιέχουν την ίδια τιμή (όπως η τιμή 42), αυτές είναι ισοδύναμες. Όταν αντιγράφετε μια μεταβλητή τύπου τιμής, παίρνετε δύο αντίγραφα της ίδιας τιμής. Όταν όμως αντιγράφετε μια μεταβλητή τύπου αναφοράς, παίρνετε δύο αναφορές προς το ίδιο αντικείμενο. Συμπερασματικά, χρησιμοποιήστε δομές για μικρές τιμές δεδομένων όπου η αντι-

23 Κεφάλαιο 9: Δημιουργία τύπων τιμής με απαριθμήσεις και δομές 207 γραφή της τιμής είναι το ίδιο ή σχεδόν το ίδιο αποδοτική με την αντιγραφή μιας διεύθυνσης. Χρησιμοποιήστε κλάσεις για πιο σύνθετα δεδομένα ώστε να έχετε τη δυνατότητα να επιλέξετε την αντιγραφή μόνο της διεύθυνσης της πραγματικής τιμής όταν θέλετε να βελτιώσετε την απόδοση του κώδικά σας. Οι διαφορές μεταξύ δομών και κλάσεων Οι δομές και οι κλάσεις είναι συντακτικά παρόμοιες, αλλά παρουσιάζουν μερικές σημαντικές διαφορές. Ας δούμε μερικές από αυτές. Δεν μπορείτε να δηλώσετε μια προεπιλεγμένη μέθοδο κατασκευής (μια μέθοδο κατασκευής χωρίς παραμέτρους) για μια δομή. Το παρακάτω παράδειγμα θα μεταγλωττιζόταν αν η Time ήταν κλάση, επειδή όμως η Time είναι δομή δεν πρόκειται να μεταγλωττιστεί: struct Time public Time()... // σφάλμα χρόνου μεταγλώττισης... Ο λόγος για τον οποίο δεν μπορείτε να δηλώσετε τη δική σας προεπιλεγμένη μέθοδο κατασκευής σε μια δομή είναι επειδή ο μεταγλωττιστής δημιουργεί πάντοτε μια τέτοια. Σε μια κλάση, ο μεταγλωττιστής δημιουργεί την προεπιλεγμένη μέθοδο κατασκευής μόνο στην περίπτωση που δε θα τη γράψετε σεις. Η προεπιλεγμένη μέθοδος κατασκευής που δημιουργεί ο μεταγλωττιστής για μια δομή δίνει πάντοτε στα πεδία τις τιμές 0, false, ή null όπως ακριβώς για μια κλάση. Επομένως, πρέπει να εξασφαλίσετε ότι μια τιμή δομής η οποία δημιουργείται από την προεπιλεγμένη μέθοδο κατασκευής θα συμπεριφέρεται εύλογα και θα έχει έννοια γι' αυτές τις προεπιλεγμένες τιμές. Αν δε θέλετε να χρησιμοποιήσετε αυτές τις προεπιλεγμένες τιμές, μπορείτε να δώσετε στα πεδία διαφορετικές αρχικές τιμές, δημιουργώντας μια μη προεπιλεγμένη μέθοδο κατασκευής. Αν όμως δε δώσετε αρχικές τιμές σε κάποιο πεδίο της μεθόδου κατασκευής, ο μεταγλωττιστής δεν πρόκειται να το κάνει για λογαριασμό σας. Αυτό σημαίνει ότι πρέπει να δώσετε ρητά αρχικές τιμές σε όλα τα πεδία όλων των μεθόδων κατασκευής της δομής, διαφορετικά θα πάρετε ένα σφάλμα χρόνου μεταγλώττισης. Για παράδειγμα, παρόλο που αν η Time ήταν κλάση το παρακάτω παράδειγμα θα μεταγλωττιζόταν και θα έδινε αρχική τιμή 0 στο πεδίο seconds, επειδή η Time είναι δομή το πρόγραμμα δε θα μεταγλωττιστεί: struct Time public Time(int hh, int mm) hours = hh; minutes = mm; // σφάλμα μεταγλώττισης: η seconds δεν πήρε αρχική τιμή... private int hours, minutes, seconds;

24 208 Μέρος 2: Η γλώσσα προγραμματισμού C# Σε μια κλάση, μπορείτε να δώσετε αρχικές τιμές σε πεδία παρουσιών στη θέση που δηλώνονται. Αυτό είναι αδύνατον για μια δομή. Για παράδειγμα, ο παρακάτω κώδικας θα μεταγλωττιζόταν αν η Time ήταν κλάση, επειδή όμως είναι δομή προκαλείται ένα σφάλμα χρόνου μεταγλώττισης: struct Time... private int hours = 0; private int minutes; private int seconds; // σφάλμα χρόνου μεταγλώττισης Ο παρακάτω πίνακας συνοψίζει τις βασικές διαφορές μεταξύ δομών και κλάσεων. Ερώτηση Δομή Κλάση Είναι τύπος τιμής ή τύπος αναφοράς; Οι παρουσίες βρίσκονται στο σωρό ή στη στοίβα; Μπορείτε να δηλώσετε μια προεπιλεγμένη μέθοδο κατασκευής; Αν δηλώσετε τη δική σας μέθοδο κατασκευής, ο μεταγλωττιστής θα εξακολουθήσει να δημιουργεί την προεπιλεγμένη μέθοδο κατασκευής; Αν δε δώσετε αρχική τιμή σε ένα πεδίο της δικής σας μεθόδου κατασκευής, ο μεταγλωττιστής θα του δώσει αυτόματα αρχική τιμή; Επιτρέπεται να δώσετε αρχικές τιμές στα πεδία παρουσιών κατά τη δήλωσή τους; Η δομή είναι τύπος τιμής. Οι παρουσίες των δομών ονομάζονται τιμές και βρίσκονται στη στοίβα. Όχι Ναι Όχι Όχι Η κλάση είναι τύπος αναφοράς. Οι παρουσίες των κλάσεων ονομάζονται αντικείμενα και βρίσκονται στο σωρό. Εκτός από αυτές, υπάρχουν και άλλες διαφορές μεταξύ κλάσεων και δομών που έχουν σχέση με την κληρονομικότητα. Αυτές οι διαφορές εξετάζονται στο Κεφάλαιο 12, "Χρήση της κληρονομικότητας". Τώρα που γνωρίζετε πώς να δηλώνετε δομές, το επόμενο βήμα σας είναι να τις χρησιμοποιήσετε για να δημιουργήσετε τιμές. Δήλωση μεταβλητών δομής Αφού ορίσετε έναν τύπο δομής, μπορείτε να τον χρησιμοποιήσετε με τον ίδιο ακριβώς τρόπο όπως και οποιονδήποτε άλλο. Για παράδειγμα, αν έχετε ορίσει τη δομή Time, μπορείτε να δημιουργήσετε μεταβλητές, πεδία, και παραμέτρους τύπου Time, όπως φαίνεται στο επόμενο παράδειγμα: struct Time... private int hours, minutes, seconds; Ναι Όχι Ναι Ναι

25 Κεφάλαιο 9: Δημιουργία τύπων τιμής με απαριθμήσεις και δομές 209 class Example public void Method(Time parameter) Time localvariable;... private Time currenttime; Σημείωση Μπορείτε να δημιουργήσετε μια οιονεί κενή (nullable) έκδοση μιας δομής χρησιμοποιώντας τον τροποποιητή?. Στη συνέχεια, μπορείτε να αναθέσετε την τιμή null στη μεταβλητή: Time? currenttime = null; Η απόδοση αρχικών τιμών σε δομή Σε προηγούμενη ενότητα περιγράψαμε τον τρόπο απόδοσης αρχικών τιμών στα πεδία δομής με τη χρήση μιας μεθόδου κατασκευής. Επειδή όμως οι δομές είναι τύποι τιμής, μπορείτε να δημιουργήσετε μεταβλητές τύπου δομής χωρίς να καλέσετε κάποια μέθοδο κατασκευής, όπως στο παρακάτω παράδειγμα: Time now; Στο παράδειγμα αυτό, δημιουργείται η μεταβλητή now αλλά δε δίνονται αρχικές τιμές στα πεδία της. Κάθε προσπάθεια πρόσβασης στις τιμές των πεδίων θα έχει ως αποτέλεσμα ένα σφάλμα του μεταγλωττιστή. Στην επόμενη εικόνα φαίνεται η κατάσταση των πεδίων της μεταβλητής now: Αν καλέσετε μια μέθοδο κατασκευής, οι κανόνες των μεθόδων κατασκευής δομών που περιγράψαμε προηγουμένως εγγυώνται ότι όλα τα πεδία της δομής θα πάρουν αρχικές τιμές: Time now = new Time();

26

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

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

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

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

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

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

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

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

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

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Επεξεργασία πινάκων

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Επεξεργασία πινάκων Ενότητα 4 Επεξεργασία πινάκων 36 37 4.1 Προσθήκη πεδίων Για να εισάγετε ένα πεδίο σε ένα πίνακα που υπάρχει ήδη στη βάση δεδομένων σας, βάζετε τον κέρσορα του ποντικιού στο πεδίο πάνω από το οποίο θέλετε

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

Δεδομένα, τελεστές, είσοδος/έξοδος

Δεδομένα, τελεστές, είσοδος/έξοδος 2 Δεδομένα, τελεστές, είσοδος/έξοδος Τι θα δούμε σε αυτό το μάθημα 1. βασικοί τύποι δεδομένων 2. ακέραιοι 3. κινητής υποδιαστολής 4. ο τύπος decimal 5. χαρακτήρες 6. bool 7. string 8. χρήση μεταβλητών

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

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

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

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

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ (Οι ερωτήσεις µε κίτρινη υπογράµµιση είναι εκτός ύλης για φέτος) ΕΙΣΑΓΩΓΗ Q1. Οι Πρωταρχικοί τύποι (primitive types) στη Java 1. Είναι όλοι οι ακέραιοι και όλοι οι πραγµατικοί

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

Λίγα λόγια από το συγγραφέα Κεφάλαιο 1: Βάσεις δεδομένων και Microsoft Access Κεφάλαιο 2: Microsoft Access

Λίγα λόγια από το συγγραφέα Κεφάλαιο 1: Βάσεις δεδομένων και Microsoft Access Κεφάλαιο 2: Microsoft Access Περιεχόμενα Λίγα λόγια από το συγγραφέα... 7 Κεφάλαιο 1: Βάσεις δεδομένων και Microsoft Access... 9 Κεφάλαιο 2: Microsoft Access 2002... 20 Κεφάλαιο 3: Το σύστημα Βοήθειας του Microsoft Office ΧΡ... 36

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

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

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

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

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

Περιεχόμενα. Πρόλογος... 21 Περιεχόμενα Πρόλογος... 21 Κεφάλαιο 1: Εισαγωγή στον προγραμματισμό... 25 Εισαγωγή...27 Πώς να διαβάσετε αυτό το βιβλίο...27 Η δομή των κεφαλαίων...28 Γιατί να μάθω προγραμματισμό;...31 Γιατί να μάθω C;...31

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

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Τμήμα Πληροφορικής & Επικοινωνιών Τομέας Υπολογιστικών Τεχνικών & Συστημάτων Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Ιωάννης Γεωργουδάκης - Πάρις Μαστοροκώστας Σεπτέμβριος 2011 ΠΕΡΙΕΧΟΜΕΝΑ

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

Περιεχόμενα. Μέρος 1: Βασικές έννοιες Πληροφορικής και επικοινωνιών Μέρος 2: Χρήση υπολογιστή και διαχείριση αρχείων Πρόλογος...

Περιεχόμενα. Μέρος 1: Βασικές έννοιες Πληροφορικής και επικοινωνιών Μέρος 2: Χρήση υπολογιστή και διαχείριση αρχείων Πρόλογος... Περιεχόμενα Πρόλογος...11 Μέρος 1: Βασικές έννοιες Πληροφορικής και επικοινωνιών... 13 1.1 Εισαγωγή στους υπολογιστές... 15 1.2 Μονάδες μέτρησης... 27 1.3 Οι βασικές λειτουργίες ενός ηλεκτρονικού υπολογιστή...

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

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

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

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

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

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

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

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

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

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

Πρότυπα βιβλίων εργασίας και ονόματα κελιών

Πρότυπα βιβλίων εργασίας και ονόματα κελιών Περιεχόμενα Λίγα λόγια από το συγγραφέα...7 Κεφάλαιο 1: Ρυθμίσεις γραμμών εργαλείων και μενού...9 Κεφάλαιο 2: Διαχείριση παραθύρων και προβολές...25 Κεφάλαιο 3: Εισαγωγή δεδομένων...44 Κεφάλαιο 4: Προσαρμογή

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

Δομημένος Προγραμματισμός (ΤΛ1006)

Δομημένος Προγραμματισμός (ΤΛ1006) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής

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

Προγραμματισμός Η/Υ (ΤΛ2007 )

Προγραμματισμός Η/Υ (ΤΛ2007 ) Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2015-16

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

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

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

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

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

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

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

Κλήση Συναρτήσεων ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ. Γεώργιος Παπαϊωάννου ( )

Κλήση Συναρτήσεων ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ. Γεώργιος Παπαϊωάννου ( ) ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ Γεώργιος Παπαϊωάννου (2013-16) gepap@aueb.gr Περιγραφή: Μορφές μεταβίβασης ορισμάτων σε συναρτήσεις (και μεθόδους) και οι επιπτώσεις τους Επιστροφή τιμών από κλήση συναρτήσεων Υπερφόρτωση

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

a = 10; a = k; int a,b,c; a = b = c = 10;

a = 10; a = k; int a,b,c; a = b = c = 10; C: Από τη Θεωρία στην Εφαρµογή Κεφάλαιο 4 ο Τελεστές Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας Ο τελεστής εκχώρησης = Ο τελεστής = χρησιµοποιείται για την απόδοση τιµής (ή αλλιώς ανάθεση τιµής) σε µία µεταβλητή Π.χ.

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07 Αριθμητική στο δυαδικό σύστημα (γενικά) Συμπληρωματικά για δυαδικό σύστημα Η πρόσθεση στηρίζεται στους κανόνες: 0 + 0 = 0, 0 + 1 = 1, 1

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

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED αντικειμενοστραφής προγραμματισμός ΕΚΔΟΣΗ 1.0. Σόλωνος 108,Τηλ Φαξ

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED αντικειμενοστραφής προγραμματισμός ΕΚΔΟΣΗ 1.0. Σόλωνος 108,Τηλ Φαξ ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED αντικειμενοστραφής προγραμματισμός ΕΚΔΟΣΗ 1.0 ΤΙ ΕΙΝΑΙ ΤΟ ADVANCED Οι Advanced θεματικές ενότητες είναι κατάλληλες για άτομα που επιθυμούν να συνεχίσουν σπουδές στο χώρο

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

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Constructors, equals, tostring ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Constructors, equals, tostring Constructors (Δημιουργοί) O Constructor είναι μια «μέθοδος» η οποία καλείται όταν δημιουργούμε το αντικείμενο

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

Σχεδιασμός των Πινάκων μίας Βάσης Δεδομένων

Σχεδιασμός των Πινάκων μίας Βάσης Δεδομένων Σχεδιασμός των Πινάκων μίας Βάσης Δεδομένων 3 ΚΥΡΙΑ ΣΗΜΕΙΑ ΤΟΥ ΚΕΦΑΛΑΙΟΥ Επιλογή τύπου δεδομένων και ιδιότητες πεδίων Δημιουργία πινάκων Συσχετισμός πινάκων ΑΡΧΕΙΑ ΕΡΓΑΣΙΑΣ ΠΑΡΑΓΓΕΛΙΕΣ, ΠΑΡΑΓΓΕΛΙΕΣ ΤΕΛΙΚΟ

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

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

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

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

Περιεχόμενα. Κεφάλαιο 1 Εισαγωγή στην Access...9. Κεφάλαιο 2 Χειρισμός πινάκων... 25

Περιεχόμενα. Κεφάλαιο 1 Εισαγωγή στην Access...9. Κεφάλαιο 2 Χειρισμός πινάκων... 25 Περιεχόμενα Κεφάλαιο 1 Εισαγωγή στην Access...9 Γνωριμία με την Access... 12 Δημιουργία βάσης δεδομένων... 18 Άνοιγμα και κλείσιμο βάσης δεδομένων... 21 Ερωτήσεις ανακεφαλαίωσης... 22 Πρακτική εξάσκηση...

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

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

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

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

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα;

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα; Εισαγωγή Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα; 1. Σελίδα μαθήματος Εγγραφή Ο κάθε φοιτητής πρέπει να κάνει εγγραφή στη σελίδα του μαθήματος στην πλατφόρμα e-class

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

Προγραμματισμός Η/Υ (ΤΛ2007 )

Προγραμματισμός Η/Υ (ΤΛ2007 ) Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Πέμπτη (5 η ) τρίωρη διάλεξη. Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/

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

Λίγα λόγια από το συγγραφέα...7

Λίγα λόγια από το συγγραφέα...7 Περιεχόμενα Λίγα λόγια από το συγγραφέα...7 Κεφάλαιο 1: Σχεδιασμός βάσης δεδομένων και δημιουργία πίνακα...9 Κεφάλαιο 2: Περαιτέρω τροποποίηση δομής πίνακα...41 Κεφάλαιο 3: Σχέσεις...84 Κεφάλαιο 4: Ερωτήματα...105

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

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

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

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

Περιεχόμενα. Κεφάλαιο 1 Εισαγωγή στην Access Κεφάλαιο 2 Χειρισμός πινάκων... 27

Περιεχόμενα. Κεφάλαιο 1 Εισαγωγή στην Access Κεφάλαιο 2 Χειρισμός πινάκων... 27 Περιεχόμενα Κεφάλαιο 1 Εισαγωγή στην Access... 9 Γνωριμία με την Access... 12 Δημιουργία βάσης δεδομένων... 22 Άνοιγμα και κλείσιμο βάσης δεδομένων... 24 Ερωτήσεις ανακεφαλαίωσης... 25 Πρακτική εξάσκηση...

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

Προγραμματισμός Η/Υ (ΤΛ2007 )

Προγραμματισμός Η/Υ (ΤΛ2007 ) Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2014-15

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

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

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

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

Ακαδημαϊκό Έτος , Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS

Ακαδημαϊκό Έτος , Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS Ακαδημαϊκό Έτος 2016-2017, Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS A. Εισαγωγή στις βάσεις δεδομένων - Γνωριμία με την ACCESS B. Δημιουργία Πινάκων 1. Εξήγηση των

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

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

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

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

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

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

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

Περιεχόμενα. 1 Προετοιμασία βιβλίου εργασίας 47. 2 Εργασία με δεδομένα και πίνακες Excel 75. Ευχαριστίες...11. Εισαγωγή στο Microsoft Excel 2010...

Περιεχόμενα. 1 Προετοιμασία βιβλίου εργασίας 47. 2 Εργασία με δεδομένα και πίνακες Excel 75. Ευχαριστίες...11. Εισαγωγή στο Microsoft Excel 2010... Περιεχόμενα Ευχαριστίες...11 Εισαγωγή στο Microsoft Excel 2010...13 Τροποποίηση της εμφάνισης της Κορδέλας...29 Χαρακτηριστικά και συμβάσεις του βιβλίου...35 Χρήση των αρχείων εξάσκησης...37 Βοήθεια...41

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

ΕΡΓΑΣΙΑ 2. Κατασκευάζοντας Ημερολόγια. Ημερομηνία Ανάρτησης: 23/02/2018 Ημερομηνία Παράδοσης: 13/03/2018, 09:00

ΕΡΓΑΣΙΑ 2. Κατασκευάζοντας Ημερολόγια. Ημερομηνία Ανάρτησης: 23/02/2018 Ημερομηνία Παράδοσης: 13/03/2018, 09:00 ΕΡΓΑΣΙΑ 2 Κατασκευάζοντας Ημερολόγια Ημερομηνία Ανάρτησης: 23/02/2018 Ημερομηνία Παράδοσης: 13/03/2018, 09:00 Εισαγωγή Σκοπός της παρούσας άσκησης είναι η απόκτηση εμπειρίας στη χρήση πινάκων (πολλαπλών

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

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

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

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

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

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

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

Microsoft Excel Κεφάλαιο 1. Εισαγωγή. Βιβλίο εργασίας

Microsoft Excel Κεφάλαιο 1. Εισαγωγή. Βιβλίο εργασίας Περιεχόμενα Κεφάλαιο 1 Microsoft Excel 2010... 7 Κεφάλαιο 2 Η δομή ενός φύλλου εργασίας... 19 Κεφάλαιο 3 ημιουργία νέου βιβλίου εργασίας και καταχώριση δεδομένων... 24 Κεφάλαιο 4 Συμβουλές για την καταχώριση

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

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων Δομημένος Προγραμματισμός Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 2 Ορισμός

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

Kεφάλαιο 11 Λίστες και Ανάλυση Δεδομένων Kεφάλαιο 12 Εργαλεία ανάλυσης πιθανοτήτων Kεφάλαιο 13 Ανάλυση δεδομένων...

Kεφάλαιο 11 Λίστες και Ανάλυση Δεδομένων Kεφάλαιο 12 Εργαλεία ανάλυσης πιθανοτήτων Kεφάλαιο 13 Ανάλυση δεδομένων... Μέρος 2 Kεφάλαιο 11 Λίστες και Ανάλυση Δεδομένων... 211 Kεφάλαιο 12 Εργαλεία ανάλυσης πιθανοτήτων... 241 Kεφάλαιο 13 Ανάλυση δεδομένων... 257 Kεφάλαιο 14 Συναρτήσεις Μέρος Β... 285 Kεφάλαιο 15 Ευρετήριο

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

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Σχεδίαση Βάσεων Δεδομένων

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Σχεδίαση Βάσεων Δεδομένων Ενότητα 3 Σχεδίαση Βάσεων Δεδομένων 17 18 3.1 Εισαγωγή Μία βάση δεδομένων αποτελείται από δεδομένα για διάφορα θέματα τα οποία όμως σχετίζονται μεταξύ τους και είναι καταχωρημένα με συγκεκριμένο τρόπο.

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

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΚΑΙ ΠΙΝΑΚΕΣ

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΚΑΙ ΠΙΝΑΚΕΣ ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΚΑΙ ΠΙΝΑΚΕΣ Γεώργιος Παπαϊωάννου (2013-16) gepap@aueb.gr Περιγραφή: Βασικοί Τύποι Πίνακες (μέρος 1) Συμβολοσειρές Ο Προεπεξεργαστής Τελευταία ενημέρωση: Σεπτέμβριος 2016 Εισαγωγή - 2 short:

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

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 3: Προγραμματισμός σε JAVA I Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Στοιχειώδης Προγραμματισμός - Προγραμματισμός με Συνθήκες - Προγραμματισμός με Βρόγχους

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

Προγραμματισμός Δομές Δεδομένων

Προγραμματισμός Δομές Δεδομένων Προγραμματισμός Δομές Δεδομένων Προγραμματισμός Δομές Δεδομένων (Data Structures) Καινούργιοι τύποι δεδομένων που αποτελούνται από την ομαδοποίηση υπαρχόντων τύπων δεδομένων Ομαδοποίηση πληροφορίας που

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

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

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

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

Περιεχόμενα. Κεφάλαιο 1 Γνωριμία με το Excel...9

Περιεχόμενα. Κεφάλαιο 1 Γνωριμία με το Excel...9 Περιεχόμενα Κεφάλαιο 1 Γνωριμία με το Excel...9 Τα στοιχεία του παραθύρου του Excel... 10 Κελιά και διευθύνσεις... 13 Σε ποιο κελί θα τοποθετηθούν τα δεδομένα;... 14 Καταχώριση δεδομένων... 15 Τι καταλαβαίνει

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

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

Περιεχόμενα. Πρόλογος 15 Περιεχόμενα Πρόλογος 15 1 Δημιουργία προγραμμάτων Java 25 Ορισμός βασικής ορολογίας προγραμματισμού 26 Σύγκριση διαδικαστικού και αντικειμενοστρεφούς προγραμματισμού 29 Διαδικαστικός προγραμματισμός 29

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

Περιεχόμενα. Κεφάλαιο 1 Γνωριμία με το Excel... 9

Περιεχόμενα. Κεφάλαιο 1 Γνωριμία με το Excel... 9 Περιεχόμενα Κεφάλαιο 1 Γνωριμία με το Excel... 9 Τα στοιχεία του παραθύρου του Excel... 10 Κελιά και διευθύνσεις... 13 Σε ποιο κελί θα τοποθετηθούν τα δεδομένα;... 14 Καταχώριση δεδομένων... 15 Τι καταλαβαίνει

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

3. Εκφράσεις και έλεγχος ροής

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

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

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

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

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

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

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

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

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

Αντικειµενοστρεφής Προγραµµατισµός 16 η διάλεξη Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 Προηγούµενη ιάλεξη

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

Περιεχόμενα. Λίγα λόγια από το συγγραφέα Windows Vista Επιφάνεια εργασίας Γραμμή εργασιών... 31

Περιεχόμενα. Λίγα λόγια από το συγγραφέα Windows Vista Επιφάνεια εργασίας Γραμμή εργασιών... 31 Περιεχόμενα Λίγα λόγια από το συγγραφέα... 7 91 Windows Vista... 9 92 Επιφάνεια εργασίας... 18 93 Γραμμή εργασιών... 31 94 Χειρισμός παραθύρων... 53 95 Το παράθυρο Υπολογιστής... 77 96 Το μενού Έναρξη...

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

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

Συγχώνευση αλληλογραφίας και συγχώνευση μιας πηγής δεδομένων με ένα κύριο έγγραφο όπως ένα γράμμα ή ένα έγγραφο ετικετών 3.5.1.1 Συγχώνευση αλληλογραφίας και συγχώνευση μιας πηγής δεδομένων με ένα κύριο έγγραφο όπως ένα γράμμα ή ένα έγγραφο ετικετών Ένα σύνηθες πρόβλημα που υπάρχει, είναι η ανάγκη αποστολής επιστολών ή πληροφοριών

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

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

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

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

Σύντομα περιεχόμενα. Ανακύκλωση δεξιοτήτων 154. Ανακύκλωση δεξιοτήτων 274. Ανακύκλωση δεξιοτήτων Δημιουργία πινάκων βάσεων δεδομένων 54

Σύντομα περιεχόμενα. Ανακύκλωση δεξιοτήτων 154. Ανακύκλωση δεξιοτήτων 274. Ανακύκλωση δεξιοτήτων Δημιουργία πινάκων βάσεων δεδομένων 54 Σύντομα περιεχόμενα Πρόλογος 5 1 Βασικές έννοιες βάσεων δεδομένων 25 2 Δημιουργία πινάκων βάσεων δεδομένων 54 3 Εργασία με πίνακες και εγγραφές βάσεων δεδομένων 74 4 Τροποποίηση πινάκων και πεδίων 100

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

Προγραμματισμό για ΗΜΥ

Προγραμματισμό για ΗΜΥ ΕΠΛ 34: Εισαγωγή στον Προγραμματισμό για ΗΜΥ Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 12 Πίνακες εικτών (Pointers Arrays) Θέματα ιάλεξης Στην ενότητα

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα Μαθήματα από το πρώτο εργαστήριο Δημιουργία αντικειμένου Scanner Scanner input = new Scanner(System.in); Το

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

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

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

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

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

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

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

1 ΕΙΣΑΓΩΓΗ. Πρωταρχικοί Τύποι

1 ΕΙΣΑΓΩΓΗ. Πρωταρχικοί Τύποι 1 ΕΙΣΑΓΩΓΗ Η γλώσσα προγραµµατισµού Java είναι ισχυρά τυποποιηµένη (strongly typed), που σηµαίνει ότι κάθε µεταβλητή και κάθε έκφραση έχει κάποιο τύπο, ο οποίος πρέπει να είναι γνωστός κατά το χρόνο της

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

Περιεχόμενα. 1 Tο βιβλίο "με μια ματιά" Εισαγωγή στη Microsoft Access Γνωριμία με τις βάσεις δεδομένων της Access...

Περιεχόμενα. 1 Tο βιβλίο με μια ματιά Εισαγωγή στη Microsoft Access Γνωριμία με τις βάσεις δεδομένων της Access... Περιεχόμενα Ευχαριστίες...11 1 Tο βιβλίο "με μια ματιά"... 13 Χωρίς τεχνικούς όρους!...13 Σύντομη παρουσίαση...14 Μερικές συμβάσεις...16 Μία τελευταία λέξη (ή και δύο)...16 2 Εισαγωγή στη Microsoft Access

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

Ενότητα. Επεξεργασία πινάκων

Ενότητα. Επεξεργασία πινάκων Ενότητα 4 Επεξεργασία πινάκων 2 3 4.1 Προσθήκη πεδίων Για να εισάγετε ένα πεδίο σε ένα πίνακα που υπάρχει ήδη στη βάση δεδομένων σας, βάζετε τον κέρσορα του ποντικιού στο πεδίο πάνω από το οποίο θέλετε

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργία Κλάσεων και Αντικειμένων

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Μαθήματα από τα εργαστήρια

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Μαθήματα από τα εργαστήρια ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Μαθήματα από τα εργαστήρια ΕΡΓΑΣΤΗΡΙΟ 1 Μαθήματα από το πρώτο εργαστήριο Δημιουργία αντικειμένου Scanner Scanner input = new Scanner(System.in); Το αντικείμενο

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

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

ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ Τελεστές - Κατηγορίες Εκφράσεις - Κατηγορίες Υπολογισμός εκφράσεων Προτάσεις - Κατηγορίες

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα

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

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

#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128]

#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128] ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εξετάσεις Α Περιόδου 2017 (27/1/2017) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................

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

Ανάπτυξη εφαρμογής Input-Output

Ανάπτυξη εφαρμογής Input-Output Ανάπτυξη εφαρμογής Input-Output Πίνακας Περιεχομένων Ανάπτυξη εφαρμογής Input-Output... 1 1. Εκτέλεση του περιβάλλοντος ανάπτυξης εφαρμογών της Visual Basic 2008 Express Edition... 1 2. Δημιουργία νέου

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

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

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

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

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

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

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

Βάσεις δεδομένων (Access)

Βάσεις δεδομένων (Access) Βάσεις δεδομένων (Access) Όταν εκκινούμε την Access εμφανίζεται το παρακάτω παράθυρο: Κουμπί Κενή βάση δεδομένων Κουμπί του Office Για να φτιάξουμε μια νέα ΒΔ κάνουμε κλικ στο κουμπί «Κενή βάση δεδομένων»

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Μέθοδοι Παράδειγμα Θέλουμε ένα πρόγραμμα που να προσομοιώνει την κίνηση ενός αυτοκινήτου, το οποίο κινείται και τυπώνει τη θέση του.

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 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 στην

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

Προγραμματισμός Η/Υ (ΤΛ2007 )

Προγραμματισμός Η/Υ (ΤΛ2007 ) Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2015-16

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας Στην άσκηση αυτή θα υλοποιήσετε μια κλάση Geometric η οποία διαχειρίζεται μια γεωμετρική ακολουθία ακεραίων

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

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

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

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

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

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

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

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

Εισαγωγή στη γλώσσα προγραμματισμού C++ Εισαγωγή στη γλώσσα προγραμματισμού C++ Περιβάλλον Εργασίας 2 Περιβάλλον Εργασίας 1. Χρήση απλού κειμενογράφου και Μεταγλωττιστή 2. Ολοκληρωμένα Περιβάλλοντα Εργασίας (Integrated Development Environments)

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

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

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

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

Αναφορές, είκτες και Αλφαριθμητικά

Αναφορές, είκτες και Αλφαριθμητικά Αναφορές, είκτες και Αλφαριθμητικά Ο τελεστής αναφοροποίησης Αναφορές είκτες Πίνακες και δείκτες Ο τελεστής new και delete υναμικοί πίνακες είκτες προς συναρτήσεις Αλφαριθμητικά της C Πίνακες Αλφαριθμητικών

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα Μαθήματα από το πρώτο εργαστήριο Δημιουργία αντικειμένου Scanner Scanner input = new Scanner(System.in); Το αντικείμενο input

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

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

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

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

Άσκηση Access 1. Να δημιουργηθεί μία βάση δεδομένων για ένα ξενοδοχείο με το όνομα Hotel. Πατάμε το εικονίδιο Κενή βάση δεδομένων επάνω δεξιά:

Άσκηση Access 1. Να δημιουργηθεί μία βάση δεδομένων για ένα ξενοδοχείο με το όνομα Hotel. Πατάμε το εικονίδιο Κενή βάση δεδομένων επάνω δεξιά: Άσκηση Access 1. Να δημιουργηθεί μία βάση δεδομένων για ένα ξενοδοχείο με το όνομα Hotel. Πατάμε το εικονίδιο Κενή βάση δεδομένων επάνω δεξιά: και μετά στα αριστερά εισάγουμε το όνομα του αρχείου και πατάμε

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Μέθοδοι Παράδειγμα 1 Θέλουμε ένα πρόγραμμα που να προσομοιώνει την κίνηση ενός αυτοκινήτου, το οποίο κινείται και τυπώνει τη θέση του.

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

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf("%u\n", x); Β. unsigned char

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf(%u\n, x); Β. unsigned char ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εξετάσεις Β Περιόδου 2015 (8/9/2015) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................

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

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

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

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

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

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

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

Περιεχόμενα. Λίγα λόγια από το συγγραφέα... 7

Περιεχόμενα. Λίγα λόγια από το συγγραφέα... 7 Περιεχόμενα Λίγα λόγια από το συγγραφέα... 7 Μέρος 1 1 Βασικοί όροι... 11 2 Βασική δομή κώδικα HTML... 25 3 Μορφοποίηση κειμένου... 39 4 Μορφοποίηση παραγράφων... 51 5 Εισαγωγή εικόνας... 63 6 Λίστες με

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

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος http://www.teiser.gr/icd/staff/lantzos lantzos@teiser.gr 1 Πώς δημιουργούμε πρόγραμμα Η/Υ; 1. Ανάλυση του προβλήματος 2. Επινόηση & Σχεδιασμός

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

Τύποι δεδομένων, τελεστές, μεταβλητές

Τύποι δεδομένων, τελεστές, μεταβλητές Τύποι δεδομένων, τελεστές, μεταβλητές Βασικά στοιχεία της γλώσσας Η Java χαρακτηρίζεται από ένα αρκετά καλά οργανωμένο σύνολο εντολών κι ένα μέρος της επιτυχίας της οφείλεται στα διάφορα APIs (βιβλιοθήκες)

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