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

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

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

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

Διαδικτυακές Εφαρμογές Ενότητα 7: Προσπέλαση ΒΔ με το JDBC

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

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 8: Αρχεία. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 2: Κλάσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 3: Constructors και destructors

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 5: Κληρονομικότητα. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 7: Υπερφόρτωση τελεστών. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

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

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 6: Φιλικές συναρτήσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Προγραμματισμός H/Y Ενότητα 4: Δείκτες. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 1: Εισαγωγή. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

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

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

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

Ηλεκτρονικοί Υπολογιστές

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

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Προγραμματισμός H/Y Ενότητα 1: Εισαγωγή. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Προγραμματισμός H/Y Ενότητα 6: Δομές (structures) Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Οντοκεντρικός Προγραμματισμός

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

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

Προγραμματισμός H/Y Ενότητα 5: Συναρτήσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

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

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 7: Πίνακες (Arrays)

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 9: Ειδικά θέματα γλώσσας C/C++. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

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

Διαδικτυακές Εφαρμογές. Ενότητα 2: Enterprise Java Beans και Java Server Faces Μιχάλας Άγγελος Βούρκας Δημήτριος Τμήμα Μηχανικών Πληροφορικής ΤΕ

Διαδικτυακές Εφαρμογές Ενότητα 4: Streams

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

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

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

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Διαδικτυακές Εφαρμογές Ενότητα 1: JPA

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

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 9 : ΕΞΑΙΡΕΣΕΙΣ ΚΑΙ Ο ΧΕΙΡΙΣΜΟΣ ΤΟΥΣ

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

Χειρισµός Σφαλµάτων. Γρηγόρης Τσουµάκας. Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης. Έκδοση:

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Προγραμματισμός H/Y Ενότητα 2: Εντολές ελέγχου ροής. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

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

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

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

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

Μεταγλωττιστές. Ενότητα 6: Λεκτική ανάλυση (Μέρος 2 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

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

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

ΒΟΗΘΗΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ

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

Οντοκεντρικός Προγραμματισμός

Εισαγωγή στην Διοίκηση Επιχειρήσεων

ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ(Visual Basic)

Προγραμματισμός H/Y Ενότητα 3: Πίνακες αριθμών και χαρακτήρων. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

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

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 2 - Εργαστήριο

Μεταγλωττιστές. Ενότητα 4: Τυπικές γλώσσες (Μέρος 3 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

Οντοκεντρικός Προγραμματισμός

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 10: Exceptions handling (Χειρισμός εξαιρέσεων)

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

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

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

Προγραμματισμός H/Y Ενότητα 7: Αρχεία. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

ΜΑΘΗΜΑ: Δίκτυα Υψηλών Ταχυτήτων

ΜΑΘΗΜΑ: Μεταγλωττιστές

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Μεταγλωττιστές. Ενότητα 5: Λεκτική ανάλυση (Μέρος 1 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

ΜΑΘΗΜΑ: Ηλεκτρονικά Ισχύος

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

Οντοκεντρικός Προγραμματισμός

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

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

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

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

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

Πρόγραµµα 9.1 Πέρασµα δεδοµένων στην µνήµη

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Οντοκεντρικός Προγραμματισμός

Ηλεκτρονικοί Υπολογιστές

Οντοκεντρικός Προγραμματισμός

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Εισαγωγή στην Διοίκηση Επιχειρήσεων

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

Εισαγωγή στην Διοίκηση Επιχειρήσεων

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

ΟΙΚΟΝΟΜΕΤΡΙΑ. Ενότητα 3: Πολλαπλή Παλινδρόμηση. Αναπλ. Καθηγητής Νικόλαος Σαριαννίδης Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

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

Transcript:

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα του ΤΕΙ Δυτικής Μακεδονίας και της Ανώτατης Εκκλησιαστικής Ακαδημίας Θεσσαλονίκης» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3

Τύποι Δεδομένων Τελεστές

Σκοποί ενότητας Σε αυτή την παρουσίαση θα ασχοληθούμε με τους τύπους δεδομένων, τους πίνακες και με τις εξαιρέσεις, ύλη που αντιστοιχεί στα κεφάλαια 3 και 4 του βιβλίου. Λόγω του γεγονότος ότι το μάθημα απευθύνεται σε άτομα με κάποια εμπειρία στον προγραμματισμό, κάποια θέματα του βιβλίου θεωρούνται γνωστά κι έχουν παραληφθεί στην παρουσίαση. 5

Περιεχόμενα ενότητας (1/2) Τύποι δεδομένων. Πίνακες. Παράδειγμα χρήσης πίνακα σε μεθόδους. Εξαιρέσεις. Παράδειγμα δημιουργίας και έγερσης εξαίρεσης. Try-catch-finally blocks. 6

Περιεχόμενα ενότητας (2/2) Παράδειγμα χειρισμού εξαίρεσης. Εντολή finally. Μεταβίβαση εξαίρεσης στον επόμενο χειριστή. 7

Τύποι Δεδομένων Πίνακας 1. Πρωτογενείς τύποι δεδομένων: int, float, double, chars, πηγή: ο διδάσκων (2015). 8

Πίνακες (1/8) Οι πίνακες στην JAVA δηλώνονται ως εξής: <Τύπος ή κλάση> [ ] <μεταβλητή>; <Τύπος ή κλάση> <μεταβλητή>[ ]; 9

Παραδείγματα: Πίνακες (2/8) int[ ] nums; Byte buff[ ]; float matrix [ ] [ ]; //Διδιάστατος πίνακας A a[ ]; B[ ] a; 10

Πίνακες (3/8) Ο πίνακας δεν δημιουργείται κατά την δήλωσή του (δεν έχουμε προσδιορίσει το μέγεθός του). 11

Πίνακες (4/8) Για την κατασκευή του πίνακα κάνουμε τα εξής: <μεταβλητή πίνακα> = new <τύπος ή κλάση> [ <μέγεθος> ]; 12

Παραδείγματα. Πίνακες (5/8) int [ ] a; a = new int[200]; Byte buff [ ] = new byte[1024]; A a = new A[4]; 13

Πίνακες (6/8) Αρχικοποίηση δισδιάστατου πίνακα. float matrix [ ][ ]; matrix = new float[30][40]; 14

Πίνακες (7/8) Αναφορά σε στοιχείο του πίνακα: a[2] = 5; matrix[0][8] = (float) (buff[19] + buff[25]); Για έναν πίνακας είναι μεγέθους Ν, οι έγκυροι δείκτες έχουν τιμές κυμαίνονται από 0 έως Ν-1. Οι μέθοδοι επιτρέπεται να παίρνουν σαν όρισμα ένα πίνακα ή να επιστρέφουν ένα πίνακα. 15

Πίνακες (8/8) Ένας πίνακας είναι ένα αντικείμενο. Η κλάση του δημιουργείται αυτόματα από την γλώσσα και είναι υποκλάση της Array. Κάθε πίνακας περιέχει μια μεταβλητή-μέλος length που επιστρέφει το μέγεθός του πίνακα. 16

Παράδειγμα χρήσης πίνακα σε μεθόδους int[] give_ints() { int I[ ] = new int[3]; I[0] = I[1] = I[2] = 7; return I; } ή int give_ints() [ ] {...} void get_ints(int[ ] i) {i[0] = i[1]+i[2]; } ή void get_ints(int i[ ]) {... } Παράδειγμα length μεταβλητής for (int i=0; i<a.length; i++) { System.out.println(a [ i ]); } 17

Εξαιρέσεις (1/2) Όταν σε ένα πρόγραμμα συμβεί κάποιο λάθος, ο κώδικας εγείρει (throw) μία εξαίρεση. Στη Java οι εξαιρέσεις εκπροσωπούνται από αντικείμενα της κλάσης Exception ή υποκλάσεών της. Υποκλάσεις της Exception είτε προϋπάρχουν (πχ, IOException, NullPointerException) είτε ορίζονται από τον προγραμματιστή. 18

Εξαιρέσεις (2/2) Η έγερση εξαίρεσης θα έχει ως αποτέλεσμα τον τερματισμό του thread στο οποίο συνέβη το σφάλμα και θα τυπωθεί κάποιο μήνυμα. Σε προγράμματα μπορούν να ορισθούν χειριστές εξαιρέσεων (exception handlers). Εξαιρέσεις προκαλούνται από το runtime system, όπως στην περίπτωση διαίρεσης με το μηδέν. 19

Παράδειγμα δημιουργίας και έγερσης εξαίρεσης 20

Try-catch-finally blocks (1/2) Χρησιμοποιούνται για τη διαχείριση εξαιρέσεων. try blocks: περιέχουν κώδικα που μπορεί να προκαλέσει εξαιρέσεις (συναρτήσεις που έχουν δηλωθεί ότι εγείρουν εξαιρέσεις). catch blocs: εμπεριέχουν κώδικα που εκτελείται όταν εντοπιστεί η εξαίρεση που προορίζονται να εντοπίσουν. 21

Try-catch-finally blocks (2/2) Σε ένα try block μπορούν να αντιστοιχούν πολλά catch blocks αναλόγως του πλήθους των εξαιρέσεων που μπορούν να εμφανιστούν στον κώδικα του try block. Αν η εξαίρεση που διαχειρίζεται ένα catch block είναι υπερκλάση άλλων εξαιρέσεων, το block παράλληλα διαχειρίζεται και όλες τις εξαιρέσεις υποκλάσεις. finally block: Περιέχει κώδικα που θα εκτελεστεί ανεξαρτήτως του αν θα παρουσιαστεί εξαίρεση ή όχι. 22

Παράδειγμα χειρισμού εξαίρεσης try { p.a = 10;} catch (NullPointerException e) {println( Το p ήταν null );} catch (Exception e) {println( Κάποιοι μήνυμα σφάλματος );} finally {Αυτός ο κώδικας εκτελείται πάντα.} 23

Εντολή Finally Η finally εκτελείται ακόμα και όταν το try block περιέχει τις εντολές return, break, continue ή throw. Θα τυπώνει πάντα το μήνυμα finally αλλά το μήνυμα after try μόνο όταν a 10. 24

Μεταβίβαση εξαίρεσης στον επόμενο χειριστή Για να περαστεί ο χειρισμός της εξαίρεσης στον επόμενο, exception handler, χρησιμοποιούμε την throw και για αντικείμενο εξαίρεσης την εξαίρεση που πιάσαμε. Έπειτα από το throw η εκτέλεση του τρέχοντος κώδικα χειρισμού διακόπτεται οριστικά. 25

Βιβλιογραφία 1. Java προγραμματισμός, Όγδοη έκδοση, Deitel Paul J., Deitel Harvey M., Εκδόσεις Γκιούρδας Μ.. 2. Απόλυτη Java, Savitch, Εκδόσεις ΙΩΝ, 2008. 3. Πλήρες εγχειρίδιο της Java 6, Lemay Cadenhead, Εκδόσεις Γκιούρδας Μ., Αθήνα 2007. 26

Τέλος Ενότητας