ios Developing Κεφάλα Αικατερίνη Μουρίκης Ευάγγελος Επιβλέπων: Μηνάς Δασυγένης

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

Download "ios Developing Κεφάλα Αικατερίνη Μουρίκης Ευάγγελος Επιβλέπων: Μηνάς Δασυγένης"

Transcript

1 ios Developing Κεφάλα Αικατερίνη Μουρίκης Ευάγγελος Επιβλέπων: Μηνάς Δασυγένης

2 ios Συσκευές

3 Λόγος επιλογής προγραμματισμού σε ios

4 Δείγμα τελευταίων εκδόσεων

5 Υιοθέτηση των IOS 6 και IOS 7 (1/2)

6 Υιοθέτηση των IOS 6 και IOS 7 (2/2) Κύριοι λόγοι 1. ασφάλεια 2. σύστημα αναβάθμισης

7 Τεχνολογίες σχετικά με το ios 7 Hardware Software Πρότυπο Αναπτυξιακό Περιβάλλον Cocoa Cocoa Touch

8 Προαπαιτούμενα για προγραμματισμό σε ios υπολογιστής με λειτουργικό OSX Xcode

9 ios Apple Developer Program Για να ανέβει η εφαρμογή στο App Store χρειάζεται εγγραφή με κόστος 99$/χρόνο. Για προγραμματισμό εφαρμογών δεν απαιτείται καθόλου κόστος παρά μόνο τα δύο προαπαιτούμενα που αναφέρθηκαν.

10 Εγγραφή για Apple Developer Program (1/5)

11 Εγγραφή για Apple Developer Program (2/5)

12 Εγγραφή για Apple Developer Program (3/5)

13 Εγγραφή για Apple Developer Program (4/5)

14 Εγγραφή για Apple Developer Program (5/5)

15 Xcode 5.0

16 Εφαρμογή Prototyping (1/2)

17 Εφαρμογή Prototyping (2/2) 1. Σχέδιο στο χαρτί 2. Φωτογραφία του σχεδίου 3. Προσομοίωση του σχεδίου

18 Εισαγωγή σε Xcode και Objective-C

19 Σχεδιαστικό πρότυπο που χρησιμοποιείται στο ios Στον ios προγραμματισμό κυριαρχεί ένα είδος σχεδιαστικού προτύπου, το MVC.

20 Ορισμός MVC Σχεδιαστικό πρότυπο Ορίζει το ρόλο που παίζουν τα αντικείμενα στην εφαρμογή, αλλά και τον τρόπο με τον οποίο επικοινωνούν.

21 Ακρωνύμιο MVC Model View Controller

22 MVC - Μοντέλο Αντικείμενα μοντέλου ενσωματώνουν συγκεκριμένα στοιχεία σε μια εφαρμογή και καθορίζουν τη λογική και τον υπολογισμό για την επεξεργασία των δεδομένων. Μπορεί να είναι: χαρακτήρας σε παιχνίδι επαφή σε αντζέντα

23 MVC - Αντικείμενα μοντέλου Δεν έχουν άμεση σύνδεση με τα αντικείμενα οπτικοποίησης που παρουσιάζουν τα δεδομένα και επιτρέπουν στους χρήστες να τα επεξεργάζονται. Δεν ασχολούνται με θέματα διεπαφής χρήστη και παρουσίασης.

24 MVC - Επικοινωνία Μοντέλου(1/2) View Controller Model Οι ενέργειες των χρηστών στο view layer που δημιουργούν ή τροποποιούν δεδομένα, διαβιβάζονται μέσω ενός αντικειμένου ελέγχου και οδηγούν στη δημιουργία ή ενημέρωση ενός αντικειμένου μοντέλου.

25 MVC - Επικοινωνία Μοντέλου(2/2) View Controller Model Όταν ένα αντικείμενο μοντέλου αλλάζει, ειδοποιεί το αντικείμενο ελέγχου, το οποίο αναπροσαρμόζει τα κατάλληλα αντικείμενα οπτικοποίησης.

26 MVC - Αντικείμενα Οπτικοποίησης Ένα αντικείμενο οπτικοποίησης είναι ένα αντικείμενο σε μια εφαρμογή που μπορούν να δουν οι χρήστες γνωρίζει πως να σχεδιαστεί και μπορεί να ανταποκριθεί στις ενέργειες των χρηστών

27 MVC - Σκοπός αντικειμένων οπτικοποίησης Ο βασικός σκοπός των αντικειμένων οπτικοποίησης είναι να εμφανίζουν δεδομένα από τα αντικείμενα μοντέλου της εφαρμογής και να καθιστούν δυνατή την επεξεργασία των εν λόγω δεδομένων. Η σύνδεση με τα αντικείμενα οπτικοποίησης δεν είναι άμεση.

28 MVC - Επικοινωνία Οπτικοποίησης (1/2) View Controller Model Τα αντικείμενα οπτικοποίησης πληροφορούνται σχετικά με τις αλλαγές στα δεδομένα μοντέλου μέσω των αντικειμένων ελέγχου της εφαρμογής και ενημερώνουν το χρήστη.

29 MVC - Επικοινωνία Οπτικοποίησης (2/2) View Controller Model Αντίστοιχα ενημερώνουν τα αντικείμενα μοντέλου μέσω των αντικειμένων ελέγχου για τις δικές τους αλλαγές.

30 ΜVC - Αντικείμενα ελεγκτή Ένα αντικείμενο ελεγκτή λειτουργεί ως μεσάζων των αντικειμένων μοντέλου και των αντικειμένων οπτικοποίησης μιας εφαρμογής είναι ένας αγωγός μέσω του οποίου τα αντικείμενα οπτικοποίησης μαθαίνουν για τις αλλαγές στα αντικείμενα μοντέλου και το αντίστροφο

31 ΜVC - Χρήση αντικειμένων ελεγκτή Μπορούν να πραγματοποιήσουν εγκαταστάσεις συντονίσουν εργασίες για την εφαρμογή διαχειριστούν τους κύκλους ζωής των άλλων αντικειμένων

32 MVC - Επικοινωνία ελεγκτή Ένα αντικείμενο ελεγκτή ερμηνεύει τις ενέργειες που πραγματοποιεί ο χρήστης στα αντικείμενα οπτικοποίησης και μεταφέρει τα νέα ή τροποποιημένα δεδομένα στο model layer. Όταν τα αντικείμενα μοντέλου αλλάζουν, ένα αντικείμενο ελέγχου μεταφέρει αυτά τα νέα δεδομένα μοντέλου στα αντικείμενα οπτικοποίησης ώστε να τα εμφανίσουν.

33 MVC - Ροές επικοινωνίας Update User Action Controller View Model Update Notify

34 Ορισμός Objective-C Αντικειμενοστραφής γλώσσα Υπερσύνολο της C με επιπλέον χαρακτηριστικά

35 Βασικά αρχεία προγραμματισμού σε Objective-C.h.m

36 Ρόλος των βασικών αρχείων προγραμματισμού σε Objective-C.h.m interface implementation

37 Σημασία βασικών αρχείων προγραμματισμού σε Objective-C.h header file.m implementation file

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

39 Παράδειγμα αρχείου.h #import MyClass : SuperClass { int InstanceVariable; } + (void)classmethod; -

40 Περιεχόμενα του αρχείου.m ορισμός κλάσεων ορισμός μεθόδων εισαγωγή header files αρχή τέλος

41 Παράδειγμα αρχείου.m (1/2) #import MyClass + (void)classmethod{ printf( Class Method\n ); } συνεχίζεται...

42 Παράδειγμα αρχείου.m (2/2) - (void)instancemethod{ printf( Instance Method\n ); printf( InstanceVariable:%d\n, InstanceVariable);

43 Εκτός από τα αρχεία.h και.m χρησιμοποιείται και ένα άλλο σημαντικό αρχείο, το nib (γράφεται xib, αλλά προφέρεται nib)

44 Ορισμός του αρχείου nib και τρόπος που χρησιμοποιείται (1/2) Είναι ένας ειδικός τύπος αρχείου πόρων που χρησιμοποιείται για αποθήκευση διεπαφών χρήστη στις εφαρμογές ios και MAC. Είναι ένα έγγραφο κατασκευής διεπαφών. Χρησιμοποιείται για να σχεδιάσει τα οπτικά μέρη μιας εφαρμογής και κάποιες φορές για να διαμορφώσει μη οπτικά αντικείμενα (όπως αντικείμενα ελέγχου).

45 Ορισμός του αρχείου nib και τρόπος που χρησιμοποιείται (2/2) Μπορεί να περιέχει αντικείμενα κράτησης θέσης που χρησιμοποιούνται για αναφορά σε αντικείμενα έξω από το έγγραφο, αλλά με αναφορές σε αντικείμενα στο έγγραφο. Μια ειδική κράτηση θέσης είναι το αρχείο του ιδιοκτήτη.

46 Αρχείο ιδιοκτήτη (file s owner) στο αρχείο nib Κατά το χρόνο εκτέλεσης, το αρχείο nib φορτώνεται χρησιμοποιώντας τη μέθοδο loadnibnamed:owner: ή μια παραλλαγή του. Το αρχείο του ιδιοκτήτη είναι μια κράτηση θέσης στο αρχείο nib για το αντικείμενο που θα περάσει ως παράμετρος ιδιοκτήτη της μεθόδου. Όλες οι συνδέσεις από και προς το αρχείο του ιδιοκτήτη, καθορίζονται ξανά όταν φορτώνεται το αρχείο στο χρόνο εκτέλεσης.

47 Εισαγωγή στο Bundle

48 Ορισμός δέσμης Κατάλογος με ομαδοποιημένους εκτελέσιμους κώδικες και στοιχεία που χρησιμοποιούνται σε αυτούς Χρησιμοποιείται σε ios OS X

49 Λόγος που χρησιμοποιείται και περιεχόμενα της δέσμης Χρησιμοποιείται για εύκολη εγκατάσταση και μεταφορά Περιλαμβάνει εκτελέσιμο κώδικα, εικόνες, ήχους, αρχεία nib, βιβλιοθήκες, plug-ins κλπ

50 Εισαγωγή στο Framework

51 Ορισμός framework Είναι ένα σύνολο (ένας δομημένος κατάλογος) που περιέχει μια δυναμική διαμοιραζόμενη βιβλιοθήκη μαζί με συνδεδεμένους πόρους, όπως nib αρχεία, εικόνες, header αρχεία. Σε μια εφαρμογή το project συνδέεται με ένα ή περισσότερα frameworks.

52 Λειτουργία του framework Ο κώδικας έχει πρόσβαση στις δυνατότητες ενός πλαισίου μέσω API που δημοσιεύται από το πλαίσιο μέσω του header αρχείου του. Πολλές εφαρμογές έχουν πρόσβαση στα frameworks και τους πόρους ταυτόχρονα. Το σύστημα τα φορτώνει στη μνήμη και μοιράζεται το ένα αντίγραφο ενός πόρου με όλες τις εφαρμογές.

53 Τρόπος που πραγματοποιείται η πρόσβαση στο framework Η πρόσβαση στα περιεχόμενα μπορεί να γίνει μέσω της κλάσης NSBundle ή μέσω CFBundle του Core Foundation. Δεν επιτρέπονται thirdparty frameworks στο ios. Τα header αρχεία ενός framework φαίνονται από το Xcode.

54 Cocoa και Cocoa Touch

55 Ορισμός Cocoa και Cocoa Touch Περιβάλλοντα ανάπτυξης εφαρμογών Περιβάλλον Cocoa Cocoa Touch Περιλαμβάνει Foundation, Appkit Frameworks Foundation, UIKit Frameworks Χρησιμοποιείται OS X ios

56 Λειτουργία του Foundation Framework υλοποιεί την κύρια κλάση, η οποία καθορίζει τις βασικές συμπεριφορές των αντικειμένων υλοποιεί κλάσεις με τύπους, όπως αριθμούς και strings και με συλλογές, όπως arrays και dictionaries διευκολύνει σε ζητήματα όπως διαχείριση αρχείων, επεξεργασία XML

57 Appkit και UIKit Framework και περιεχόμενα χρησιμοποιούνται για ανάπτυξη διεπαφής χρήστη μιας εφαρμογής είναι ισοδύναμα σε σχέση με το σκοπό, αλλά διαφορετικά σε σχέση με την πλατφόρμα περιλαμβάνουν κλάσεις για χειρισμό γεγονότων και εικόνων, επεξεργασία κειμένου κλπ περιλαμβάνουν στοιχεία διεπαφής χρήστη, όπως πίνακες, κουμπιά, πεδία κειμένου κλπ

58 Κλάσεις

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

60 Ορισμός μεθόδων και οι κατηγορίες τους Συμπεριφορές που διαθέτει μία κλάση 1. Μέθοδοι κλάσης (δηλώνονται με +) 2. Μέθοδοι αντικειμένων (δηλώνονται με -)

61 Δήλωση και ορισμός μιας κλάσης MyClass Δήλωση MyClass.h Ορισμός MyClass.m

62 Ομαδοποίηση κλάσεων Αρχιτεκτονική: abstract superclass private subclass concrete subclass

63 Χαρακτηριστικά ομαδοποίησης κλάσεων απλοποιημένο περιβάλλον καλείται η πιο αποδοτική κλάση ανάλογα με την περίπτωση καλύτερη απόδοση

64 Δήλωση της μεθόδου κλάσης δήλωση: + (void)classmethod; αποστολή μηνύματος σε κλάση: [MyClass classmethod];

65 Αναφορά του self σε μια μέθοδο κλάσης (1/2) Αναφέρεται στο ίδιο το αντικείμενο της κλάσης. + (id)myclass { return [[[self alloc] init] autorelease]; }

66 Αναφορά του self σε μια μέθοδο κλάσης (2/2) Μπορεί επίσης να αναφέρεται στην κλάση στην οποία στάλθηκε το μήνυμα. π.χ. μπορεί να υπάρχει μια υποκλάση σε μια κλάση και να στέλνεται μήνυμα σε αυτήν. Τότε το self αναφέρεται στην υποκλάση.

67 Ορισμός κύριας κλάσης Δεν κληρονομεί από καμία άλλη κλάση και ορίζει διεπαφές και συμπεριφορές κοινές για όλα τα αντικείμενα σε ιεραρχία κάτω από αυτήν. Όλα τα αντικείμενα αυτής της ιεραρχίας κληρονομούν από την κύρια κλάση. Αναφέρεται και ως βασική κλάση.

68 Κύρια κλάση στην Objective-C και η λειτουργία της Η κύρια κλάση όλων των κλάσεων στην Objective-C είναι η NSObject, η οποία αποτελεί μέρος του foundation framework. Όλα τα αντικείμενα σε Cocoa και Cocoa Touch κληρονομούν από αυτήν. Δηλώνει τη θεμελιώδη διεπαφή αντικειμένου και εφαρμόζει τη βασική συμπεριφορά του αντικειμένου, όπως διαχείριση μνήμης και κλήση της μεθόδου.

69 Αντικείμενα

70 Σχέση κλάσης - αντικειμένου Κλάση: Αντικείμενο:...

71 Ορισμός αντικειμένου Αποτελεί εκδοχή μιας συγκεκριμένης κλάσης Η κλάση παράγει πολλά αντικείμενα Κάθε εκδοχή έχει δικές της τιμές για τα συγκεκριμένα δεδομένα

72 Δήλωση αντικειμένου Για τη δημιουργία μιας κλάσης απαιτείται να διατεθεί και να αρχικοποιηθεί ένα μπλοκ μνήμης Τα αντικείμενα είναι δείκτες σε αυτό το μπλοκ μνήμης * : υποδηλώνει ότι μία μεταβλητή είναι ένα είδος δείκτη

73 Παράδειγμα δήλωσης αντικειμένου MyObject *someobject = [[MyObject alloc] init];

74 Ορισμός αρχικοποίησης αντικειμένου Είναι το στάδιο δημιουργίας αντικειμένου που κάνει ένα αντικείμενο να μπορεί να χρησιμοποιηθεί δίνοντάς του αρχικές τιμές. Πρέπει πάντα να γίνεται μετά τη δέσμευση μνήμης. Η αρχικοποίηση μπορεί επίσης να εκτελέσει και άλλες διεργασίες για να θέσει ένα αντικείμενο σε χρήση, όπως προσθήκη πόρων.

75 Μορφή της δήλωσης αρχικοποίησης Το όνομα της αρχικοποίησης ξεκινάει πάντα με init. Επιστρέφει ένα δυναμικά δηλωμένο αντικείμενο (id) ή επιστρέφει nil (εάν η αρχικοποίηση δεν πετύχει). Μπορεί να περιλαμβάνει μία η περισσότερες παραμέτρους που καθορίζουν τις αρχικές τιμές. - (id)initwithdata:(nsdata *)data encoding:(nsstringencoding)encoding

76 Υλοποίηση της αρχικοποίησης (1/2) Μια κλάση γενικά υλοποιεί μια αρχικοποίηση για τα αντικείμενά της, αλλά δεν είναι απαραίτητο. Αν μια κλάση δεν υλοποιεί αρχικοποίηση, το Cocoa καλεί την αρχικοποίηση του πλησιέστερου προγόνου της κλάσης.

77 Υλοποίηση της αρχικοποίησης (2/2) Οι υποκλάσεις συνήθως καθορίζουν τις δικές τους αρχικοποιήσεις, αλλά μπορούν να επικαλούνται και από την υπερκλάση. Η κλάση NSObject δηλώνει τη μέθοδο init ως προεπιλεγμένη.

78 Βασικά βήματα για τη δήλωση της μεθόδου αρχικοποίησης (1/2) 1. Επίκληση της αρχικοποίησης της υπερκλάσης και έλεγχος για την τιμή που επιστρέφει (χρήση της δεσμευμένης λέξης super για την υπερκλάση). Εάν η τιμή δεν είναι nil, επιστρέφει ένα έγκυρο αντικείμενο και μπορεί να συνεχίσει η διαδικασία αρχικοποίσης.

79 Βασικά βήματα για τη δήλωση της μεθόδου αρχικοποίησης (2/2) 2. Ανάθεση τιμών στις instance μεταβλητές του αντικειμένου. 3. Επιστρέφει το αρχικοποιημένο αντικείμενο ή επιστρέφει nil (εάν δεν πέτυχε η αρχικοποίηση).

80 Σύγκριση αντικειμένων

81 Σύγκριση ισότητας ενός αντικειμένου με ένα άλλο Αναφέρεται στην ικανότητα του αντικειμένου να αποφασίσει εάν είναι το ίδιο με ένα άλλο αντικείμενο. Αυτό επιτυγχάνεται στέλνοντας ένα μήνυμα isequal: το ένα αντικείμενο στο άλλο. Η απάντηση μπορεί να είναι YES/NO. Κάθε κλάση αποφασίζει για την ισότητα. Η κύρια κλάση αποφασίζει με σύγκριση δείκτη.

82 Παράδειγμα σύγκρισης ισότητας αντικειμένου με isequal: - (BOOL)isEqual:(id)other{ if (other == self) return YES; if (![super isequal:other]) return NO; return ([self name] isequaltostring:[other name]); }

83 Σύγκριση αντικειμένου με τη μέθοδο compare: Η μέθοδος compare: χρησιμοποιείται όταν θέλουμε να συγκρίνουμε δύο αντικείμενα και να μάθουμε εάν το ένα είναι ίσο με το άλλο, μεγαλύτερο ή μικρότερο. Τα αποτελέσματα μπορεί να είναι NSOrderedSame, NSOrderedDescending ή NSOrderedAscending αντίστοιχα.

84 Παράδειγμα σύγκρισης ισότητας αντικειμένου με compare: result = [mynumber1 compare: mynumber2]; if (result == NSOrderedSame) NSLog(@ Numbers are equal ); else if (result == NSOrderedAscending) NSLog(@ Number1 is less than Number2 ); else if (result == NSOrderedDescending) NSLog(@ Number1 is greater than Number2 );

85 Δυναμική και Στατική Δήλωση

86 Ορισμός δυναμικής δήλωσης Μια μεταβλητή είναι δυναμικά δηλωμένη όταν το είδος του αντικειμένου δεν ελέγχεται κατά τη μεταγλώττιση. Η Objective-C χρησιμοποιεί τον τύπο δεδομένων id να αντιπροσωπεύσει μια μεταβλητή που είναι ένα αντικείμενο, χωρίς να προσδιορίζεται το είδος του αντικειμένου.

87 Σύγκριση δυναμικής και στατικής δήλωσης Η δυναμική δήλωση έρχεται σε αντίθεση με τη στατική στην οποία καθορίζεται ρητά η κλάση στην οποία ανήκει ένα αντικείμενο κατά τη μεταγλώττιση. Ο έλεγχος στατικού τύπου κατά τη μεταγλώττιση μπορεί να εξασφαλίσει την ακεραιότητα των δεδομένων, αλλά στο δυναμικό τύπο δίνεται μεγαλύτερη ευελιξία στο πρόγραμμα.

88 Παράδειγμα δυναμικής δήλωσης NSArray *anarray = [NSArray arraywithobjects:@ A string, [NSDecimalNumber zero], [NSDate date], nil]; NSInteger index; for (index = 0; index < 3; index++) { id anobject = [anarray objectatindex:index]; NSLog(@ Object at index %d is %@, index, [anobject description]); } Το αντικείμενο που δείχνεται από τη μεταβλητή κατά το χρόνο εκτέλεσης, πρέπει να είναι σε θέση να ανταποκριθεί σε όλα τα μηνύματα. Η υλοποίηση της μεθόδου καθορίζεται με τη χρήση δυναμικής δέσμευσης.

89 Δείκτης isa στη δυναμική δήλωση isa pointer Κάθε αντικείμενο έχει μια isa μεταβλητή που προσδιορίζει την κλάση του αντικειμένου. Ο χρόνος εκτέλεσης χρησιμοποιεί αυτόν το δείκτη για να καθορίσει την πραγματική κλάση του αντικειμένου όταν αυτό χρειάζεται.

90 Συνθήκη ελέγχου και απαρίθμηση

91 Σύνταξη συνθήκης ελέγχου if στην Objective-C (1/2) if (condition1) { } else if (condition2) { } else { }

92 Σύνταξη συνθήκης ελέγχου if στην Objective-C (2/2) Εάν η συνθήκη είναι μόνο μία, δε χρειάζονται τα {} if (condition) statement

93 Σύνταξη συνθήκης ελέγχου switch στην Objective-C switch (expression) { case 1: statement break; case 2: statement break; default: statement break; }

94 Ορισμός απαρίθμησης είναι η διαδικασία διαδοχικής λειτουργίας σε στοιχεία ενός αντικειμένου επίσης είναι η διαδικασία επανάληψης όταν απαριθμείται ένα αντικείμενο, μπορεί να επιλεχθεί ένα στοιχείο του αντικειμένου κάθε φορά και να εκτελεστεί μια λειτουργία με αυτό

95 Παράδειγμα απαρίθμησης NSArray *array; NSInteger i, count = [array count]; for (i = 0; i < count; i++) { id element = [array objectatindex:i]; } H χρήση for loop μπορεί να είναι αναποτελεσματική, καθώς πρέπει να είναι διατεταγμένη η συλλογή στοιχείων. Η απαρίθμηση είναι πιο γενική. Έτσι μέσω Cocoa προσφέρονται δύο επιλογές για απαρίθμηση αντικειμένων: NSEnumerator class fast enumaration

96 Παράδειγμα απαρίθμησης με NSEnumerator NSSet *aset = // a set; NSEnumarator *enumarator = [aset objectenumarator]; id element; while ((element = [enumarator nextobject])) { /* code */ }

97 Παράδειγμα απαρίθμησης με Fast Enumaration NSArray *anarray = // an array; for (id element in anarray) { /* code */ } Είναι η πιο αποτελεσματική από όλες τις μορφές απαρίθμησης.

98 Εξουσιοδότηση αντικειμένου

99 Ορισμός εξουσιοδότησης απλό και ισχυρό μοτίβο με το οποίο ένα αντικείμενο ενεργεί εκ μέρους ή σε συνεργασία με ένα άλλο αντικείμενο το αντικείμενο που αναθέτει, έχει επαφή με το άλλο και του στέλνει μήνυμα την κατάλληλη στιγμή το μήνυμα ενημερώνει ότι πρόκειται να γίνουν ή έγιναν ενέργειες

100 Πλεονέκτημα εξουσιοδότησης Το βασικό πλεονέκτημα είναι ότι επιτρέπει να προσαρμόζουμε εύκολα τη συμπεριφορά διάφορων αντικειμένων με ένα κεντρικό αντικείμενο.

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

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

103 Συνάρτηση

104 Σύνταξη συνάρτησης στην Objective-C <return type> <function name> (<arg1 type> <arg1 name>, <arg2 type> <arg2 name>,...) { //code }

105 Εξαιρέσεις

106 Ορισμός χειρισμού εξαίρεσης Είναι η διαδικασία διαχείρισης άτυπων γεγονότων που διακόπτουν την κανονική ροή εκτέλεσης των προγραμμάτων. Χωρίς την κατάλληλη αντιμετώπιση των λαθών, ένα πρόγραμμα που αντιμετωπίζει ένα άτυπο γεγονός πιθανότατα θα τερματίσει δημιουργώντας μια εξαίρεση (throw).

107 Τύποι εξαίρεσης Τόσο το hardware όσο και το software μπορούν να προκαλέσουν εξαίρεση. αριθμητικά σφάλματα (διαίρεση με το 0) υπερχείλιση, υποχείλιση απροσδιόριστες οδηγίες (προσπάθεια για μη εφαρμόσιμη μέθοδο) πρόσβαση σε στοιχείο συλλογής εκτός ορίων

108 Χειρισμός εξαιρέσεων μέσω software (1/2) block περιλαμβάνει κώδικα που μπορεί να δημιουργήσει εξαίρεση block ακολουθεί ένα για εξαιρέσεις που έχουν ήδη συμβεί. Mπορούν να υπάρξουν πολλαπλά catch() για διάφορα είδη εξαιρέσεων

109 Χειρισμός εξαιρέσεων μέσω software (2/2) block περιέχει κώδικα που πρέπει να εκτελεστεί, είτε εάν είχε υπάρξει εξαίρεση είτε όχι δημιουργεί μια εξαίρεση που είναι ουσιαστικά ένα αντικείμενο Objective-C. Συνήθως χρησιμοποιείται ένα NSException αντικείμενο αλλά δεν είναι απαραίτητο

110 Παραδείγματα χειρισμού εξαιρέσεων μέσω software Cup *cup = [[Cup alloc] { [cup fill]; (NSException *exception) { NSLog(@ main: Caught %@: %@, [exception name], [exception reason]); { [cup release]; }

111 Βιβλιογραφία Χρησιμοποιήθηκε υλικό από: ios Programming: The big Nerd Ranch Guide ios 7 Programming Pushing the Limits ios 7 Programming Cookbook

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

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008 ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008 Κατασκευαστές (Constructors) Ειδικός τύπος μεθόδων, οι οποίες: - είναι public και έχουν το ίδιο όνομα με αυτό της κλάσης - χρησιμοποιούνται για να αρχικοποιήσουν κάποιες

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

Γενικά (για τις γραπτές εξετάσεις)

Γενικά (για τις γραπτές εξετάσεις) Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Διάλεξη #12 η : Επανάληψη Γαβαλάς Δαμιανός dgavalas@aegean.gr Γενικά (για τις γραπτές εξετάσεις) Δεν υπάρχει αυστηρά ορισμένη «ύλη εξετάσεων» (καθώς δεν έχετε

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

Κληρονομικότητα. Παύλος Εφραιμίδης pefraimi <at> ee.duth.gr. Java Κληρονομικότητα 1

Κληρονομικότητα. Παύλος Εφραιμίδης pefraimi <at> ee.duth.gr. Java Κληρονομικότητα 1 Κληρονομικότητα Παύλος Εφραιμίδης pefraimi ee.duth.gr Java Κληρονομικότητα 1 Ιεραρχίες Κλάσεων Στην Java (και γενικότερα στον αντικειμενοστραφή προγραμματισμό) μπορεί από μία να κλάση να δημιουργηθεί

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

ΕΠΛ 012. JavaScripts

ΕΠΛ 012. JavaScripts ΕΠΛ 012 JavaScripts Γλώσσα JavaScript (JS) ηµιουργεί δυναµικές ιστοσελίδες και αλληλεπιδράσεις µε το χρήστη εν είναι Java, αλλά είναι αντικειµενοστραφής (απλό µοντέλο υποκειµένων) Objects, properties (τιµές

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΗΣ ΣΕ ΠΕΡΙΒΑΛΛΟΝ iphone ΓΙΑ ΤΗΝ ΔΙΕΥΚΟΛΥΝΣΗ ΤΗΣ ΠΡΟΣΒΑΣΗΣ ΤΩΝ ΦΟΙΤΗΤΩΝ ΣΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΗΣ ΣΕ ΠΕΡΙΒΑΛΛΟΝ iphone ΓΙΑ ΤΗΝ ΔΙΕΥΚΟΛΥΝΣΗ ΤΗΣ ΠΡΟΣΒΑΣΗΣ ΤΩΝ ΦΟΙΤΗΤΩΝ ΣΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΓΕΩΡΓΙΟΥ ΧΡΙΣΤΟΥΛΑΚΗ ΕΠΙΒΛΕΠΩΝ: Κ. ΣΓΑΡΜΠΑΣ ΠΑΤΡΑ - ΙΟΥΝΙΟΣ 2012 ΠΙΣΤΟΠΟΙΗΣΗ

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

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java Είσοδος Χρησιμοποιούμε την κλάση Scanner της Java import java.util.scanner; Αρχικοποιείται με το ρεύμα εισόδου: Scanner in = new Scanner(System.in);

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

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

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

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

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

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

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

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java II Strings Η κλάση String είναι προκαθορισμένη κλάση της Java που μας επιτρέπει να χειριζόμαστε αλφαριθμητικά. Ο τελεστής + μας επιτρέπει

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

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

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

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

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java Βρόγχοι Το if-then Statement Στην Java το if-then statement έχει το εξής συντακτικό Η παρένθεση είναι απαραίτητη if (condition) if-code block

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

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

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

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

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

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

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

Γλώσσα Προγραμματισμού C++ Εισαγωγή - Μια πρώτη ματιά

Γλώσσα Προγραμματισμού C++ Εισαγωγή - Μια πρώτη ματιά Γλώσσα Προγραμματισμού C++ Εισαγωγή - Μια πρώτη ματιά Βασικά χαρακτηριστικά αναπτύχθηκε ως επέκταση της C το 1979 υπερσύνολο της C γλώσσα γενικού σκοπού, γρήγορη, Αντικειμενοστραφής προγραμματισμός (Object

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

ΕΝΟΤΗΤΑ 4 Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου

ΕΝΟΤΗΤΑ 4 Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου ΕΝΟΤΗΤΑ 4 Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου Σκοπός και περίγραμμα της Ενότητας 4 Σκοπός της παρουσίασης Να μελετήσουμε τις συναρτήσεις που ελέγχουν την ροή και την εκτέλεση ενός προγράμματος Σύνοψη

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

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

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

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

Υπολογισμός - Εντολές Επανάληψης

Υπολογισμός - Εντολές Επανάληψης Προγραμματισμός Η/Υ Ι Υπολογισμός - Εντολές Επανάληψης ΕΛΕΥΘΕΡΙΟΣ ΚΟΣΜΑΣ ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ 2018-2019 ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ Τ.Ε. 1 Περίληψη Σήμερα... θα συνεχίσουμε τη συζήτησή μας για τα βασικά στοιχεία

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

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

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

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

Κεφάλαιο Αλφαριθμητικές Σειρές Χαρακτήρων (Strings) (Διάλεξη 20) 1) Strings στη C

Κεφάλαιο Αλφαριθμητικές Σειρές Χαρακτήρων (Strings) (Διάλεξη 20) 1) Strings στη C Κεφάλαιο 9.1-9.2 Αλφαριθμητικές Σειρές Χαρακτήρων (Strings) (Διάλεξη 20) 1) Strings στη C Ένα string είναι μία ακολουθία αλφαριθμητικών χαρακτήρων, σημείων στίξης κτλ. Π.χ. Hello How are you? 121212 *Apple#123*%

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

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

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

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

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

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

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

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

Πρόγραµµα 9.1 Πέρασµα δεδοµένων στην µνήµη 9.1 Γενικά Οι εφαρµογές που δηµιουργούνται από ένα προγραµµατιστή µπορούν ανά πασά στιγµή να καταρρεύσουν από κάποιο λάθος κατά την λειτουργία τους. Αυτές οι καταστάσεις συµβαίνουν από αµέλεια του προγραµµατιστή

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

Παύλος Εφραιµίδης. Java. Κληρονοµικότητα

Παύλος Εφραιµίδης. Java. Κληρονοµικότητα κληρονοµικότητα Παύλος Εφραιµίδης 1 ιεραρχίες κλάσεων Στην (και γενικότερα στον αντικειµενοστρεφή προγραµµατισµό) µπορεί από µία κλάση να δηµιουργηθεί µια νέα κλάση απόγονος που κληρονοµεί όλα τα χαρακτηριστικά

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

Παρουσίαση Delphi. Μέμος-Μπαγκράτσας Ιωάννης 1232 Μαργαρίτης Νικόλαος 1226

Παρουσίαση Delphi. Μέμος-Μπαγκράτσας Ιωάννης 1232 Μαργαρίτης Νικόλαος 1226 Παρουσίαση Delphi Μέμος-Μπαγκράτσας Ιωάννης 1232 Μαργαρίτης Νικόλαος 1226 Object Oriented Pascal Το Delphi χρησιμοποιεί την Object Oriented Pascal. Ο περισσότερος κώδικας γράφεται αυτόματα κάθε φορά που

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

Η βασική συνάρτηση προγράμματος main()

Η βασική συνάρτηση προγράμματος main() Η βασική συνάρτηση προγράμματος main() HEADER FILES main(){ ΔΗΛΩΣΕΙΣ ΜΕΤΑΒΛΗΤΩΝ ΕΝΤΟΛΕΣ (σειριακές, επιλογής ή επανάληψης) ΕΠΙΣΤΡΕΦΟΜΕΝΟΣ ΤΥΠΟΣ (return 0;) Συναρτήσεις Η συνάρτηση είναι ένα υποπρόγραμμα

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

alpha Language age (3/5) alpha Language Φροντιστήριο Syntax Directed Translation and

alpha Language age (3/5) alpha Language Φροντιστήριο Syntax Directed Translation and alpha Language (1/5) ΗΥ-340 Γλώσσες και Μεταφραστές Φροντιστήριο Syntax Directed Translation and alpha Language Στην alpha δεν υπάρχει main() συνάρτηση, ο κώδικας ξεκινάει την εκτέλεση από την αρχή του

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

Εισαγωγή στους Η/Υ. Γιώργος Δημητρίου. Μάθημα 3-4: Προγραμματισμός MIPS. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

Εισαγωγή στους Η/Υ. Γιώργος Δημητρίου. Μάθημα 3-4: Προγραμματισμός MIPS. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής Γιώργος Δημητρίου Μάθημα 3-4: Προγραμματισμός MIPS Προγραμματισμός σε Συμβολική Γλώσσα Η συμβολική γλώσσα: δεν έχει τύπους, δεν έχει δηλώσεις μεταβλητών, δεν έχει δομές ελέγχου, δεν έχει εντολές βρόχων,

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

Υπολογισμός - Εντολές Ελέγχου

Υπολογισμός - Εντολές Ελέγχου Προγραμματισμός Η/Υ Ι Υπολογισμός - Εντολές Ελέγχου ΕΛΕΥΘΕΡΙΟΣ ΚΟΣΜΑΣ ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ 2018-2019 ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ Τ.Ε. 1 Περίληψη Σήμερα... θα συνεχίσουμε τη συζήτησή μας για τα βασικά στοιχεία

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

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

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

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

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

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

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

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

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

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

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

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

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

Εργαστήριο 02: Προγραμματισμός με Γενικούς Τύπους (JAVA Generics) ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι

Εργαστήριο 02: Προγραμματισμός με Γενικούς Τύπους (JAVA Generics) ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι Εργαστήριο 02: Προγραμματισμός με Γενικούς Τύπους (JAVA Generics) ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Generic Types Τα Generics έχουν προστεθεί στη JAVA από το 2004 ως μέρος του J2SE 5.0 Με τη χρήση

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

Βασικά της γλώσσας JAVA

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

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

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

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

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

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

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 9 : ΕΞΑΙΡΕΣΕΙΣ ΚΑΙ Ο ΧΕΙΡΙΣΜΟΣ ΤΟΥΣ Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 9 : ΕΞΑΙΡΕΣΕΙΣ ΚΑΙ Ο ΧΕΙΡΙΣΜΟΣ ΤΟΥΣ EXCEPTIONS & EXCEPTION HANDLING Εξαιρέσεις (Exceptions) Γνωμικό της Μηχανικής Λογισμικού: το 80% της δουλειάς των μηχανικών

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

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

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

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

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

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

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

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

Προγραμματισμός Ι. Δείκτες. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Δείκτες Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Τι είναι ο δείκτης Ένας δείκτης είναι μια μεταβλητή που περιέχει μια διεύθυνση μνήμης. Θυμηθείτε πως

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

Εισαγωγή στην PHP. ΕΣΔ 516 Τεχνολογίες Διαδικτύου. Περιεχόμενα. Περιεχόμενα. ΕΣ 516: Τεχνολογίες ιαδικτύου. ΕΣ 516: Τεχνολογίες ιαδικτύου

Εισαγωγή στην PHP. ΕΣΔ 516 Τεχνολογίες Διαδικτύου. Περιεχόμενα. Περιεχόμενα. ΕΣ 516: Τεχνολογίες ιαδικτύου. ΕΣ 516: Τεχνολογίες ιαδικτύου ΕΣΔ 516 Τεχνολογίες Διαδικτύου Εισαγωγή στην PHP Περιεχόμενα Περιεχόμενα PHP και HTML Βασική σύνταξη Μεταβλητές Τελεστές Συναρτήσεις Παράδειγματα 1 Βιβλιογραφία Ενότητας Βιβλιογραφία [Lane 2004]: Chapter

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

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

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

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

Εντολές επιλογής Επαναλήψεις (if, switch, while)

Εντολές επιλογής Επαναλήψεις (if, switch, while) Εντολές επιλογής Επαναλήψεις (if, switch, while) Οι σημειώσεις αυτές έχουν σαν στόχο την μάθηση εντολών επιλογής (if, switch, while) που ελέγχουν τη ροή εκτέλεσης ενός προγράμματος. Πρώτα όμως, είναι αναγκαίο

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

Δομές Δεδομένων Boost C++ Libraries. 23/3/2017 ΜΠΟΜΠΟΤΑΣ ΑΓΟΡΑΚΗΣ

Δομές Δεδομένων Boost C++ Libraries. 23/3/2017 ΜΠΟΜΠΟΤΑΣ ΑΓΟΡΑΚΗΣ Δομές Δεδομένων Boost C++ Libraries 23/3/2017 ΜΠΟΜΠΟΤΑΣ ΑΓΟΡΑΚΗΣ mpompotas@ceid.upatras.gr Εισαγωγή - Boost H Boost είναι μια συλλογή με περισσότερες από 50 βιβλιοθήκες για τη C++. Πολλοί χρήστες ξεκινούν

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

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

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

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

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

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #15 Οι βασικές έννοιες που θα καλύψουμε Ομαδοποίηση αντικειμένων Εισαγωγή στις συλλογές Γενικές κλάσεις Iterators Συλλογές (ειδικά την ArrayList) Συνεχίζουμε την αναφορά στο θέμα της αφαίρεσης (abstraction)

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

Γιάννης Σαμωνάκης. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 4 - PHP)

Γιάννης Σαμωνάκης. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 4 - PHP) ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 4 - PHP) Γιάννης Σαμωνάκης 1 Περιεχόμενα Τι είναι η PHP Που μπορεί να χρησιμοποιηθεί

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

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

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

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

Λογισµικό (Software SW) Γλώσσες

Λογισµικό (Software SW) Γλώσσες Λογισµικό (Software SW) Γλώσσες Προγραµµατισµού Οι γενιές των γλωσσών προγραµµατισµού Προβλήµατα που επιλύονται σε ένα περιβάλλον στο οποίο ο άνθρωπος πρέπει να προσαρµόζεται στα χαρακτηριστικά της µηχανής

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

Η γλώσσα προγραμματισμού C

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Εισαγωγή στη C Λίγα λόγια για την C Γλώσσα προγραμματισμού υψηλού επιπέδου. Σχεδιάστηκε και υλοποιήθηκε από τον Dennis Richie στις αρχές της δεκαετίας του 1970 (Bell Labs). Η

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

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

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

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

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

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

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

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

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

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

ΑΠΛΗ ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ

ΑΠΛΗ ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ Μηχανισµός υλοποίησης των σχέσεων γενίκευσης/εξειδίκευσης µεταξύ κλάσεων Η σχέση εξειδίκευσης «υποκλάση-της» (subclass-of)είναι γνωστή σαν σχέση «είναι ένα» (isa) ή «είναι ένα είδος» (ako:

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

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

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

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

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

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

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

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

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

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

Μεθόδων Επίλυσης Προβλημάτων

Μεθόδων Επίλυσης Προβλημάτων ΕΠΛ 032.3: 3: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 14 Αλφαριθμητικές Σειρές Χαρακτήρων (Strings)

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΕΠΛ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΕΠΛ 032 2 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ Ενδιάμεση Εξέταση Ημερομηνία:08/03/10 Διάρκεια: 13:30 15:00 Διδάσκων: Παύλος Αντωνίου Ονοματεπώνυμο: Αριθμός Ταυτότητας: Η εξέταση

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

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

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 9: Συναρτήσεις Ορισμός συναρτήσεων () { /* δήλωση μεταβλητών */ /* εντολές ελέγχου/επεξεργασίας */ o Μια συνάρτηση ορίζεται δίνοντας

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

Στόχοι και αντικείμενο ενότητας. Προτάσεις επανάληψης. Έλεγχος ροής προγράμματος. #5.. Εντολές Επανάληψης

Στόχοι και αντικείμενο ενότητας. Προτάσεις επανάληψης. Έλεγχος ροής προγράμματος. #5.. Εντολές Επανάληψης Στόχοι και αντικείμενο ενότητας Έλεγχος ροής προγράμματος (βλ. ενότητα #4) Δομή επανάληψης #5.. Εντολές Επανάληψης Προτάσεις επανάληψης Εντολές while, do while Εντολή for Περί βρόχων (loops) Τελεστές,

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

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2)

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2) Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Οργάνωση Προγράµµατος Header Files Μετάφραση και σύνδεση αρχείων προγράµµατος ΕΠΛ 132 Αρχές Προγραµµατισµού

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

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

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

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

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

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

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

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

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

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

Όταν το πρόγραμμα φτάσει σε αυτή την εντολή και ο καταχωρητής PINA έχει την τιμή

Όταν το πρόγραμμα φτάσει σε αυτή την εντολή και ο καταχωρητής PINA έχει την τιμή 5. Εντολή while() Η εντολή while() είναι ίσως η πιο πολυχρησιμοποιούμενη εντολή κατά τη σύνταξη κώδικα σε γλώσσα προγραμματισμού C για μικροελεγκτές. Το κυρίως μέρος του προγράμματος κλείνεται σχεδόν πάντα

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

Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα. Προγραμματισμός II 1

Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα. Προγραμματισμός II 1 Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα Προγραμματισμός II 1 lalis@inf.uth.gr Χρήση λογισμικού που ήδη υπάρχει Τα πολύπλοκα συστήματα αναπτύσσονται σταδιακά, «χτίζοντας» πάνω σε υπάρχουσα λειτουργικότητα

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

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

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

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

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

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

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

Η γλώσσα προγραμματισμού C

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Εντολές ελέγχου ροής προγράμματος (if-else & switch) Η εντολή if-else Η εντολή if-else υπάρχει σχεδόν σε όλες τις γλώσσες προγραμματισμού. Χρησιμοποιείται για τον έλεγχο της

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

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

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

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

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

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

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

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

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

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

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

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

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

6. Εξαιρέσεις στη γλώσσα Java

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

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

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

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

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

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

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

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

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

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

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

Μέρος 2 Κατασκευή Συντακτικού Αναλυτή

Μέρος 2 Κατασκευή Συντακτικού Αναλυτή Αντίρριο, 05/04/2017 Προδιαγραφές Εργαστηριακής Εργασίας για το μάθημα «Μεταγλωττιστές» To δεύτερο μέρος της εργασίας έχει ως στόχο την ανάπτυξη του συντακτικού αναλυτή με χρήση του bison / byacc. Στο

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

Α. 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) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................

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

Κλάσεις στη Java. Παύλος Εφραιμίδης. Java Κλάσεις στη Java 1

Κλάσεις στη Java. Παύλος Εφραιμίδης. Java Κλάσεις στη Java 1 Κλάσεις στη Java Παύλος Εφραιμίδης Java Κλάσεις στη Java 1 Κλάσεις στην Java Θα δούμε τη διαδικασία δημιουργίας μιας κλάσης Θα υλοποιήσουμε μια κλάση για τη Δομή Δεδομένων Stack Java Κλάσεις στη Java 2

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

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

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

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

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

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

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

Κλάσεις στη Java. Στοίβα - Stack. Δήλωση της κλάσης. ΗκλάσηVector της Java. Ηκλάση Stack

Κλάσεις στη Java. Στοίβα - Stack. Δήλωση της κλάσης. ΗκλάσηVector της Java. Ηκλάση Stack Κλάσεις στην Java Κλάσεις στη Java Παύλος Εφραιμίδης Θα δούμε τη διαδικασία δημιουργίας μιας κλάσης Θα υλοποιήσουμε μια κλάση για τη Δομή Δεδομένων Stack Java Κλάσεις στη Java 1 Java Κλάσεις στη Java 2

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

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

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Συναρτήσεις της C Τα Λοιπά Στοίβα και μηχανισμός κλήσης Αναδρομικές συναρτήσεις Στατικές μεταβλητές Άλλα θέματα Μηχανισμός

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

Λιβανός Γιώργος Εξάμηνο 2017Β

Λιβανός Γιώργος Εξάμηνο 2017Β Λιβανός Γιώργος Εξάμηνο 2017Β Υπολογιστικό σύστημα Υλικό (hardware) Λογισμικό (Software) Ολοκληρωμένα κυκλώματα, δίσκοι, οθόνη, κλπ. Λογισμικό συστήματος Προγράμματα εφαρμογών Χρειάζονται ένα συντονιστή!!!

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

Κεφάλαιο Πίνακες Ι. (Διάλεξη 16)

Κεφάλαιο Πίνακες Ι. (Διάλεξη 16) Κεφάλαιο 8.1-8.3 Πίνακες Ι (Διάλεξη 16) 15-1 Πίνακες (Arrays) Σε αυτή την ενότητα θα μιλήσουμε για την δομή δεδομένων Πίνακας: 1. Εισαγωγή & Σύνταξη 2. Δήλωση Πίνακα 3. Αρχικοποίηση Πίνακα 4. Πρόσβαση

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

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

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

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

Εξαιρέσεις Εισαγωγή. Εξαιρέσεις. ηµήτρης Λεβεντέας

Εξαιρέσεις Εισαγωγή. Εξαιρέσεις. ηµήτρης Λεβεντέας Εισαγωγή Εξαιρέσεις ηµήτρης Λεβεντέας 20 Μαΐου 2010 Εισαγωγή Ορισµός Τι είναι Ορισµός Ο χειρισµός εξαιρέσεων είναι µια κατασκευή η οποία µας επιτρέπει να χειριστούµε ειδικές συνθήκες που αλλάζουν την ϕυσιολογική

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Περιεχόμενα ΜΕΡΟΣ ΠΡΩΤΟ. Πρόλογος... 13

Περιεχόμενα ΜΕΡΟΣ ΠΡΩΤΟ. Πρόλογος... 13 Περιεχόμενα Πρόλογος... 13 ΜΕΡΟΣ ΠΡΩΤΟ Κεφ. 1 Περί προγραμματισμού και γλωσσών προγραμματισμού Προγράμματα και Λειτουργικά Συστήματα... 17 Γλώσσες προγραμματισμού και εργαλεία ανάπτυξης προγραμμάτων...

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

Διάλεξη 5η: Εντολές Επανάληψης

Διάλεξη 5η: Εντολές Επανάληψης Διάλεξη 5η: Εντολές Επανάληψης Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016

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