Αρχικοποιήσεις Μεταβλητών και Αντικειµένων

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

Download "Αρχικοποιήσεις Μεταβλητών και Αντικειµένων"

Transcript

1 Αρχικοποιήσεις Μεταβλητών και Αντικειµένων

2 Initializers Μ. Δικαιάκος Στην Java, πριν την χρήση μιας μεταβλητής αρχέγονου τύπου, η μεταβλητή αυτή θα πρέπει να έχει αρχικοποιηθεί. Διαφορετικά ο μεταφραστής διαμαρτύρεται και βγάζει μήνυμα λάθους. Π.χ.: int i; i = i++ ; // illegal Για την αποφυγή του προβλήματος αυτού, χρησιμοποιούμε μια ειδική ανάθεση αρχικοποιητή (initializer), με την οποία αρχικοποιούμε μια αρχέγονη μεταβλητή την στιγμή της δήλωσής της: int i = 1; Εξαίρεση αποτελούν οι αρχέγονοι τύποι που είναι στοιχεία κάποιου αντικειμένου. Τα στοιχεία αυτά μπορούν να μην αρχικοποιηθούν από τον προγραμματιστή (τι τιµές παίρνουν τότε ;) 2

3 3 Παράδειγμα class Measurement { boolean t; char c; byte b; short s; int i; long l; float f; double d; void print() { System.out.println("Data type Initial value\n" + "boolean " + t + "\n" + "char " + c + "\n" + "byte " + b + "\n" + "short " + s + "\n" + "int " + i + "\n" + "long " + l + "\n" + "float " + f + "\n" +"double " + d); public class InitialValues { public static void main(string[] args){ Measurement().print;

4 4 Εκροή Παραδείγματος C:\users\epl233\eckel-code\c04>java InitialValues Data type Initial value boolean false char byte 0 short 0 int 0 long 0 float 0.0 double 0.0 Το char αρχικοποιείται σε null. Επίσης σε null αρχικοποιούνται και όποια χειριστήρια αντικειμένων περιέχονται ως στοιχεία σε αντικείμενα.

5 5 Αρχικοποιήσεις Αντικειμένων class Measurement { boolean t = false; char c = z ; byte b = 9; short s = 0; int i = f(s); long l = 12; float f = 2.3; double d = 0.9; void print() { Αρχικοποίηση μπορεί να γίνει με κλήση μεθόδου. Οι παράμετροι που δικαιούμαστε να περάσουμε στην μέθοδο, πρέπει να έχουν ήδη αρχικοποιηθεί (αλλοιώς λαμβάνουμε exception).

6 6 Κατασκευαστές (constructors)

7 6 Κατασκευαστές (constructors) Οι constructors είναι μέθοδοι που χρησιμοποιούνται για την αρχικοποίηση ενός αντικειμένου κατά την στιγμή της δημιουργίας του.

8 6 Κατασκευαστές (constructors) Οι constructors είναι μέθοδοι που χρησιμοποιούνται για την αρχικοποίηση ενός αντικειμένου κατά την στιγμή της δημιουργίας του. Δηλώνονται με το ίδιο όνοµα με την κλάση στην οποία ανήκουν. Έτσι η ονομασία τους δεν χρειάζεται ιδιαίτερη διαχείριση, για αποφυγή τυχόν συγκρούσεων με άλλα ονόματα.

9 6 Κατασκευαστές (constructors) Οι constructors είναι μέθοδοι που χρησιμοποιούνται για την αρχικοποίηση ενός αντικειμένου κατά την στιγμή της δημιουργίας του. Δηλώνονται με το ίδιο όνοµα με την κλάση στην οποία ανήκουν. Έτσι η ονομασία τους δεν χρειάζεται ιδιαίτερη διαχείριση, για αποφυγή τυχόν συγκρούσεων με άλλα ονόματα. Οι κατασκευαστές δεν επιστρέφουν τίποτε, χωρίς ωστόσο να δηλώνονται με τύπο επιστροφής void.

10 6 Κατασκευαστές (constructors) Οι constructors είναι μέθοδοι που χρησιμοποιούνται για την αρχικοποίηση ενός αντικειμένου κατά την στιγμή της δημιουργίας του. Δηλώνονται με το ίδιο όνοµα με την κλάση στην οποία ανήκουν. Έτσι η ονομασία τους δεν χρειάζεται ιδιαίτερη διαχείριση, για αποφυγή τυχόν συγκρούσεων με άλλα ονόματα. Οι κατασκευαστές δεν επιστρέφουν τίποτε, χωρίς ωστόσο να δηλώνονται με τύπο επιστροφής void. Διευκολύνουν τον προγραμματισμό καθώς «ενοποιούν» ονοματολογικά την δήλωση και την αρχικοποίηση των κλάσεων και αντικειμένων.

11 7 Παράδειγμα constructor class Rock { Rock() { // This is the constructor System.out.println("Creating Rock"); public class SimpleConstructor { public static void main(string[] args) { for(int i = 0; i < 10; i++) new Rock();

12 Προκαθορισμένοι κατασκευαστές Μ. Δικαιάκος Σε πολλές περιπτώσεις μια κλάση ορίζεται χωρίς κατασκευαστή. Στην περίπτωση αυτή (και μόνο), ο μεταφραστής ορίζει και καλεί έναν προκαθορισμένο κατασκευαστή (default constructor), ο οποίος δεν δέχεται παραμέτρους: class Bird { int i; public class DefaultConstructor { public static void main(string[] args) { Bird nc = new Bird(); // default! Bird nc = new Bird(1); // error! Η αρχικοποίηση των στοιχείων του δημιουργούμενου αντικειμένου, γίνεται από τον προκαθορισμένο κατασκευαστή με μηδενικά και null χαρακτήρες. 8

13 9 Κατασκευαστές με παραμέτρους Ένας constructor μπορεί να δεχεται παραμέτρους, οι οποίες καθορίζουν περαιτέρω το πώς θα αρχικοποιηθεί το αντίστοιχο αντικείμενο. class Rock2 { Rock2(int i) { System.out.println("Creating Rock number " + i); public class SimpleConstructor2 { public static void main(string[] args) { for(int i = 0; i < 10; i++) new Rock2(i);

14 10 Υπερφόρτωση Μεθόδων (overloading)

15 10 Υπερφόρτωση Μεθόδων (overloading) Υπερφόρτωση μεθόδων προκύπτει στην Java όταν το ίδιο όνοµα µεθόδου µπορεί να δεχτεί διαφορετικούς τύπους και/ή διαφορετικό αριθµό παραµέτρων.

16 10 Υπερφόρτωση Μεθόδων (overloading) Υπερφόρτωση μεθόδων προκύπτει στην Java όταν το ίδιο όνοµα µεθόδου µπορεί να δεχτεί διαφορετικούς τύπους και/ή διαφορετικό αριθµό παραµέτρων. Η υπερφόρτωση μεθόδων χρησιμοποιείται ευρύτατα στον Α/ΣΠ, αλλά και ιδιαίτερα στους κατασκευαστέςconstructors.

17 10 Υπερφόρτωση Μεθόδων (overloading) Υπερφόρτωση μεθόδων προκύπτει στην Java όταν το ίδιο όνοµα µεθόδου µπορεί να δεχτεί διαφορετικούς τύπους και/ή διαφορετικό αριθµό παραµέτρων. Η υπερφόρτωση μεθόδων χρησιμοποιείται ευρύτατα στον Α/ΣΠ, αλλά και ιδιαίτερα στους κατασκευαστέςconstructors. Αν δύο μέθοδοι ( κατασκευαστές ) έχουν το ίδιο όνομα, τότε πως γνωρίζει η Java ποιά μέθοδο θέλουμε να επικαλεστούμε;

18 10 Υπερφόρτωση Μεθόδων (overloading) Υπερφόρτωση μεθόδων προκύπτει στην Java όταν το ίδιο όνοµα µεθόδου µπορεί να δεχτεί διαφορετικούς τύπους και/ή διαφορετικό αριθµό παραµέτρων. Η υπερφόρτωση μεθόδων χρησιμοποιείται ευρύτατα στον Α/ΣΠ, αλλά και ιδιαίτερα στους κατασκευαστέςconstructors. Αν δύο μέθοδοι ( κατασκευαστές ) έχουν το ίδιο όνομα, τότε πως γνωρίζει η Java ποιά μέθοδο θέλουμε να επικαλεστούμε; Kάθε υπερφορτωμένη μέθοδος πρέπει να δέχεται μια διαφορετική λίστα τύπων κατηγορημάτων.

19 Υπερφόρτωση Μεθόδων (overloading) Μ. Δικαιάκος Υπερφόρτωση μεθόδων προκύπτει στην Java όταν το ίδιο όνοµα µεθόδου µπορεί να δεχτεί διαφορετικούς τύπους και/ή διαφορετικό αριθµό παραµέτρων. Η υπερφόρτωση μεθόδων χρησιμοποιείται ευρύτατα στον Α/ΣΠ, αλλά και ιδιαίτερα στους κατασκευαστέςconstructors. Αν δύο μέθοδοι ( κατασκευαστές ) έχουν το ίδιο όνομα, τότε πως γνωρίζει η Java ποιά μέθοδο θέλουμε να επικαλεστούμε; Kάθε υπερφορτωμένη μέθοδος πρέπει να δέχεται μια διαφορετική λίστα τύπων κατηγορημάτων. Ακόμη και διαφορές στην σειρά των κατηγορημάτων είναι αρκετές για να ξεχωρίσουν δυό μεθόδους, αλλά αυτό δεν είναι «καλή» προγραμματιστική τακτική. 10

20 11 Παράδειγμα Υπερφόρτωσης import java.util.*; class Tree { int height; Tree() { prt("planting a seedling"); height = 0; Tree(int i) { prt("creating new Tree that is "+ i + " feet tall"); height = i; void info() { prt("tree is "+ height + " feet tall"); void info(string s) { prt(s + : Tree is + height + " feet tall"); static void prt(string s) { System.out.println(s);

21 12 Παράδειγμα Υπερφόρτωσης (συνέχεια) public class Overloading { public static void main(string[] args) { for(int i = 0; i < 5; i++) { Tree t = new Tree(i); t.info(); t.info("overloaded method"); // Overloaded constructor: new Tree();

22 13 Υπερφόρτωση και Αρχέγονοι τύποι

23 13 Υπερφόρτωση και Αρχέγονοι τύποι Αν ορίσουμε μια υπορουτίνα : void f (double x) { /* */ και την καλέσουμε σαν f(5), η παράμετρος «5» θα προαχθεί αυτόματα (promotion) σε 5.0.

24 13 Υπερφόρτωση και Αρχέγονοι τύποι Αν ορίσουμε μια υπορουτίνα : void f (double x) { /* */ και την καλέσουμε σαν f(5), η παράμετρος «5» θα προαχθεί αυτόματα (promotion) σε 5.0. Τι θα συμβεί αν η f() είναι υπερφορτωμένη ώστε να δέχεται και ακέραιη παράμετρο;

25 13 Υπερφόρτωση και Αρχέγονοι τύποι Αν ορίσουμε μια υπορουτίνα : void f (double x) { /* */ και την καλέσουμε σαν f(5), η παράμετρος «5» θα προαχθεί αυτόματα (promotion) σε 5.0. Τι θα συμβεί αν η f() είναι υπερφορτωμένη ώστε να δέχεται και ακέραιη παράμετρο; Θα εκτελεσθεί η έκδοση της f() που δέχεται ακέραιες παραµέτρους.

26 13 Υπερφόρτωση και Αρχέγονοι τύποι Αν ορίσουμε μια υπορουτίνα : void f (double x) { /* */ και την καλέσουμε σαν f(5), η παράμετρος «5» θα προαχθεί αυτόματα (promotion) σε 5.0. Τι θα συμβεί αν η f() είναι υπερφορτωμένη ώστε να δέχεται και ακέραιη παράμετρο; Θα εκτελεσθεί η έκδοση της f() που δέχεται ακέραιες παραµέτρους. Γενικότερα, αν η τιμή που περνάμε σε μια μέθοδο έχει τύπο µικρότερο από τον τύπο της δηλωμένης παραμέτρου, τότε η τιμή προάγεται στον τύπο της παραμέτρου.

27 13 Υπερφόρτωση και Αρχέγονοι τύποι Αν ορίσουμε μια υπορουτίνα : void f (double x) { /* */ και την καλέσουμε σαν f(5), η παράμετρος «5» θα προαχθεί αυτόματα (promotion) σε 5.0. Τι θα συμβεί αν η f() είναι υπερφορτωμένη ώστε να δέχεται και ακέραιη παράμετρο; Θα εκτελεσθεί η έκδοση της f() που δέχεται ακέραιες παραµέτρους. Γενικότερα, αν η τιμή που περνάμε σε μια μέθοδο έχει τύπο µικρότερο από τον τύπο της δηλωμένης παραμέτρου, τότε η τιμή προάγεται στον τύπο της παραμέτρου. Αν υπάρχουν πολλοί τέτοιοι δυνατοί τύποι (πολλαπλών «υπερφορτώσεων»), τότε η προαγωγή γίνεται στον αμέσως μεγαλύτερο τύπο.

28 13 Υπερφόρτωση και Αρχέγονοι τύποι Αν ορίσουμε μια υπορουτίνα : void f (double x) { /* */ και την καλέσουμε σαν f(5), η παράμετρος «5» θα προαχθεί αυτόματα (promotion) σε 5.0. Τι θα συμβεί αν η f() είναι υπερφορτωμένη ώστε να δέχεται και ακέραιη παράμετρο; Θα εκτελεσθεί η έκδοση της f() που δέχεται ακέραιες παραµέτρους. Γενικότερα, αν η τιμή που περνάμε σε μια μέθοδο έχει τύπο µικρότερο από τον τύπο της δηλωμένης παραμέτρου, τότε η τιμή προάγεται στον τύπο της παραμέτρου. Αν υπάρχουν πολλοί τέτοιοι δυνατοί τύποι (πολλαπλών «υπερφορτώσεων»), τότε η προαγωγή γίνεται στον αμέσως μεγαλύτερο τύπο. Εξαίρεση έχουμε στην περίπτωση που ο τύπος της δηλωμένης παραμέτρου είναι char κι εμείς περνάμε έναν ακέραιο, ο οποίος δεν αντιστοιχεί σε τιμή χαρακτήρα char, τότε η τιμή αυτή προάγεται σε ακέραιο (και όχι, π.χ. σε short).

29 14 Παράδειγμα public class Foo { void f1(double x) { System.out.println("double f1 -->" + x); void f1(int x) { System.out.println("int f1 -->" + x); public static void main(string[] args) { Foo ff = new Foo(); ff.f1(5);

30 15 Η χρήση του this class Banana { double param; Banana(int prm) { param = prm; void f(int i) { System.out.println( Calc: + i * param); Banana a = new Banana(5), b = new Banana(7); a.f(1); b.f(2);

31 16 Η χρήση του this (συνέχεια) Πως μπορεί η μέθοδος f() να γνωρίζει αν καλείται από το αντικείμενο a ή το αντικείμενο b; a.f(1) Banana.f(a,1) b.f(2) Banana.f(b,2) Αν θέλουμε, μέσα από κάποιο αντικείμενο, να αποκτήσουμε πρόσβαση-χειριστήριο προς τον εαυτό του, μπορούμε να χρησιμοποιήσουμε την ειδική μεταβλητή this, η οποία είναι χειριστήριο για το αντικείμενο μας. Ανάθεση στην this δεν επιτρέπεται. Μέσω της this μπορούμε να περάσουμε το τρέχον αντικείμενο σαν παράμετρο σε μεθόδους άλλων αντικειμένων.

32 Παράδειγμα χρήσης this // Simple use of the "this" keyword. public class Leaf { private int i = 0; Leaf increment() { i++; return this; void print() { System.out.println("i = " + i); public static void main(string[] args) { Leaf x = new Leaf(); x.increment().increment().increment().print(); Πολλαπλή κλήση της ίδιας μεθόδου πάνω στο ίδιο αντικείμενο. Μ. Δικαιάκος 17

33 18 Κλήση κατασκευαστών από κατασκευαστές Μέσα σε έναν constructor, η δεσμευμένη λέξη this μπορεί να χρησιμοποιηθεί και σαν κλήση μεθόδου, με πέρασμα σε αυτήν παραμέτρων. Σε μια τέτοια περίπτωση, έχουμε ρητή κλήση μιας διαφορετικής εκδοχής του constructor, η οποία έχει υποδηλωθεί με υπερφόρτωση. Η λέξη this μπορεί να χρησιμοποιηθεί σαν constructor μέσα σε κάποιον constructor, μόνο σαν πρώτη εντολή του constructor και μόνο για μιά φορά.

34 19 Παράδειγμα // Calling constructors with "this public class Flower { private int petalcount = 0; private String s = new String("null"); Flower(int petals) { petalcount = petals; Flower(String ss) { s = ss;

35 Παράδειγμα (συνέχεια) Flower(String s, int petals) { this(petals); this(s); // Δεν επιτρέπεται δεύτερη κλήση του this this.s = s; Flower() { this("hi", 47); Μ. Δικαιάκος 20

36 21 Παράδειγμα (συνέχεια) void print() { this(11); // Δεν επιτρέπεται η κλήση του this εκτός constructor System.out.println("petalCount = " + petalcount + " s = "+ s); public static void main(string[] args) { Flower x = new Flower(); x.print();

37 22 Στατικές Μέθοδοι και this

38 22 Στατικές Μέθοδοι και this Σε μια στατική μέθοδο δεν μπορεί να γίνει χρήση του this (γιατί;)

39 22 Στατικές Μέθοδοι και this Σε μια στατική μέθοδο δεν μπορεί να γίνει χρήση του this (γιατί;) Από μια μη στατική μέθοδο μπορούν να κληθούν στατικές μέθοδοι.

40 22 Στατικές Μέθοδοι και this Σε μια στατική μέθοδο δεν μπορεί να γίνει χρήση του this (γιατί;) Από μια μη στατική μέθοδο μπορούν να κληθούν στατικές μέθοδοι. Στατικές μέθοδοι μπορούν να καλέσουν μη-στατικές μεθόδους; Όχι, διότι σε ποιό αντικείμενο θα σταλεί το μήνυμα για κλήση της μη-στατικής μεθόδου; Εξαίρεση: η κλήση μη-στατικής μεθόδου μέσω χειριστηρίου που περνιέται σαν παράμετρος στην στατική μέθοδο.

41 23 public class Foo { static void test(foo g) { g.f1(0.9); void f1(double x) { System.out.println("double f1 -->" + x); void f1() { test(this); public static void main(string[] args) { Foo ff = new Foo(); ff.f1();

42 Ανασκόπηση Αρχικοποιήσεων

43 25 Σειρά Αρχικοποιήσεων Μέσα σε µια κλάση, η σειρά των αρχικοποιήσεων καθορίζεται από τη σειρά δήλωσης των πεδίων δεδομένων της κλάσης. Ακόμη κι αν οι αρχικοποιήσεις είναι διεσπαρμένες ανάμεσα σε δηλώσεις μεθόδων, τα πεδία θα αρχικοποιηθούν πριν την κλήση οποιασδήποτε μεθόδου, ακόµη και του constructor. Πότε γίνεται η αρχικοποίηση στατικών µεταβλητών; Μόνο όταν αυτό καταστεί αναγκαίο, είτε λόγω δημιουργίας του πρώτου σχετικού αντικειμένου, είτε λόγω κλήσης κάποιας στατικής μεθόδου της αντίστοιχης κλάσης.

44 Ανασκόπηση Δημιουργίας Αντικειμένων Μ. Δικαιάκος Έστω ότι έχουμε ορίσει μια κλάση Dog. Την πρώτη φορά που δημιουργείται ένα αντικείμενο Dog, ή την πρώτη φορά που καλείται μια στατική μέθοδος της Dog ή γίνεται πρόσβαση σε ένα στατικό πεδίο της κλάσης Dog, ο διερμηνέας της Java πρέπει να βρεί την κλάση Dog.class, την οποία αναζητεί με την βοήθεια του classpath. Καθώς η Dog.class φορτώνεται (οπότε και δημιουργείται ένα αντικείμενο Class), εκτελούνται όλοι οι στατικοί αρχικοποιητές (static initializers). Επομένως η στατική αρχικοποίηση συμβαίνει μόνο μια φορά, όταν το Class Object φορτώνεται για πρώτη φορά. Όταν δημιουργηθεί αντικείμενο Dog με την new Dog(), η διεργασία δημιουργίας κρατάει πρώτα αρκετό χώρο στον σωρό. Ο χώρος που κρατήθηκε αρχικοποιείται με μηδενικά. 26

45 Ανασκόπηση Δημιουργίας Αντικειμένων Οποιεσδήποτε αρχικοποιήσεις έχουν δηλωθεί εκτελούνται. Εκτελούνται οι constructors τού αντικειμένου. Στο σημείο αυτό μπορούμε να έχουμε αρκετή δραστηριότητα, ιδιαίτερα όταν η κλάση μας κληρονομεί χαρακτηριστικά άλλων κλάσεων. Μ. Δικαιάκος 27

46 Ρητή στατική αρχικοποίηση Μπορούμε να συγκεντρώσουμε τις στατικές αρχικοποιήσεις (static initializations) μέσα σε ένα ειδικό στατικό πλαίσιο (static block), στο εσωτερικό μιας κλάσης. Οι ρητές στατικές αρχικοποιήσεις εκτελούνται μαζί με τους στατικούς αρχικοποιητές. Μ. Δικαιάκος public class Spoon { static int i; static { i = 47; class Cups { static Cup cup1; static Cup cup2; static { cup1 = new Cup(1); cup2 = new Cup(2); 28

47 29 Aρχικοποίηση στιγμιοτύπου Non-static instance initialization: παρόμοια σύνταξη με τους ρητούς στατικούς αρχικοποιητές: Π.χ.: public class Mugs { Mug mug1; Mug mug2; { mug1 = new Mug(1); mug2 = new Mug(2); System.out.println( Instance Initialization );

48 Άλλα θέματα 30

49 31 Variable Argument Lists Στη JAVA 5.0, οι μέθοδοι μπορούν να δηλωθούν ώστε κατά την κλήση τους να μπορούν να λάβουν μεταβλητό αριθμό παραμέτρων (vararg methods) Π.χ. η System.out.printf() System.out.printf( %d %d 5d\nʼʼ,1,2,3); Οι μέθοδοι vararg τυγχάνουν διαχείρισης από τον μεταγλωττιστή, ο οποίος μετατρέπει μια vararg δήλωση σε κανονική δήλωση μεθόδου που αναμένει σαν παράμετρο ένα πίνακα παραμέτρων. Π.χ.: public static int max(int first, int... rest) {... public static int max(int first, int[] rest) {...

50 32 Enumerated types Στη JAVA 5.0, εκτός από τους τύπους αναφοράς (reference types) Class και Interface, έχει προστεθεί και ο τύπος Απαρίθμησης (Enumerated type ή enum). Ένας τύπος Απαρίθμησης προσδιορίζει ένα πεπερασμένο (απαριθμήσιμο) σύνολο τιμών και εξασφαλίζει ασφάλεια τύπου (type safety): μια μεταβλητή τύπου απαρίθμησης μπορεί να αποθηκεύσει μόνο τιμές αυτού του τύπου ή το null public enum Seasons {WINTER, SPRING, SUMMER, AUTUMN Οι τιμές του τύπου Απαρίθμησης (enumerated values or enum constants) είναι σαν στατικά και τελικά πεδία δεδομένων (static, final data fields) και χρησιμοποιούνται ως εξής: Seasons.WINTER

51 33 Boxing, Unboxing, Autoboxing Integer i = 0; // boxing Number n = 0.0f; // boxing Integer i = 1; int j = i; i++; Integer k = i+2; // i is unboxed and boxed up again i=null; j = i; // unboxing throws NullPointerException

52 Αποκοµιδή Σκυβάλων Garbage Collection

53 35 Αποκομιδή Σκυβάλων Πως δημιουργούνται τα «σκουπίδια» στην JAVA και που είναι αποθηκευμένα; Ποιός είναι ο ρόλος του αποκομιστή σκυβάλων (σκουπιδιάρη); Να απελευθερώνει μνήμη, η οποία έχει δεσμευθεί με τη new και να την επιστρέφει στο σωρό. Είναι αυτό αρκετό για την «εκκαθάριση» αχρείαστων αντικειμένων; Αρκετές φορές, η «εκκαθάριση» των αντικειμένων στη Java δεν είναι πολύ απλή υπόθεση, που μπορεί να αφεθεί στον σκουπιδιάρη. Υπάρχει η πιθανότητα, με τη δημιουργία του αντικειμένου αυτού να έχουν κληθεί βιβλιοθήκες οι οποίες δημιουργούν άλλα αντικείμενα, γραφικά, δεσμεύουν μνήμη χωρίς κλήση της new (με επίκληση ιθαγενών-native μεθόδων) κοκ.

54 36 Γενικές Αρχές για την Αποκομιδή Σκυβάλων Τα αντικείμενά σας μπορεί να μην συλλεχθούν ποτέ από τον αποκομιστή, ακόμη κι αν καταστούν σκουπίδια. Η αποκομιδή σκυβάλων δεν ισοδυναμεί με καταστροφή των αντικειμένων-σκουπιδιών. Η αποκομιδή σκυβάλων αφορά μόνο στην απελευθέρωση μνήμης.

55 Αποτελείωμα και Αποκομιδή Σκυβάλων Μ. Δικαιάκος Ο αποκομιστής σκυβάλων δεν επιλύει το πρόβλημα της εκκαθάρισης αντικειμένων στη Java, διότι: «Απορρίµατα» της Java µπορεί να µη συλλεχθούν από τον αποκοµιστή σκυβάλων. Ο λόγος είναι ότι συχνά τα προγράμματα δεν ξεμένουν από μνήμη, οπότε δεν καλείται ο GC στo χρόνο ζωής τους. Ο αποκομιστής σκυβάλων γνωρίζει πως να αποδεσμεύσει μνήμη που έχει κρατηθεί με την new, όχι όμως και τι θα κάνει με ιδιάζουσες περιπτώσεις μνήμης που έχουν κρατηθεί από κάποιο αντικείμενο. Στη Java, η αποκομιδή σκυβάλων δεν ισοδυναµεί µε καταστροφή των αντικειµένων (όπως στην C++). Αν υπάρχει κάποια δραστηριότητα που πρέπει να εκτελεσθεί πριν την ολοκλήρωση της χρήσης ενός αντικειμένου, τη δραστηριότητα αυτή πρέπει να την καθορίσει σαφώς ο προγραμματιστής. 37

56 38 Finalize Για κάθε κλάση της Java μπορούμε να ορίσουμε μια μέθοδο finalize(), με την οποία μπορούμε να κάνουμε αναγκαίες «εκκαθαρίσεις» που προηγούνται της αποδέσμευσης των αντικειμένων της κλάσης. Στην περίπτωση που έχει οριστεί η finalize, όταν κληθεί ο αποκομιστής σκυβάλων (GC) και επιχειρήσει να απελευθερώσει τη μνήμη αντικειμένου της αντίστοιχης κλάσης ο GC: θα καλέσει πρώτα την finalize στο επόμενο πέρασμά του θα απελευθερώσει τη μνήμη του αντικειμένου Ο GC στοχεύει στην απελευθέρωση µνήµης. Αυτή θα πρέπει να είναι και η δραστηριότητα της finalize, όποτε χρησιμοποιείται. Η χρησιμότητα της finalize περιορίζεται κυρίως σε ειδικές περιπτώσεις («ιθαγενείς» μέθοδοι native methods).

57 39 Ρητή Εκκαθάριση Αντικειμένων Στη Java τα αντικείμενα δημιουργούνται μόνο με χρήση της new. Δεν δημιουργούνται «τοπικά» αντικείμενα (στη στοίβα ) και δεν υπάρχει μέθοδος delete για καταστροφή αντικειμένων. Αν ωστόσο θέλουμε να «εξαναγκάσουμε» την απαλοιφή μη χρησιμοποιούμενων αντικειμένων, μπορούμε να καλέσουμε από το πρόγραμμά μας τον Αποκομιστή Σκυβάλων (GC), ακολουθούμενο από την μέθοδο runfinalization: System.gc(); System.runFinalization(); Πως λειτουργεί η System.runFinalization();

58 40 Παράδειγμα // Demonstration of the garbage // collector and finalization class Chair { static boolean gcrun = false; static boolean f = false; static int created = 0; static int finalized = 0; int i; Chair() { i = ++created; if (created == 47) System.out.println("Created 47");

59 41 Παράδειγμα (συνέχεια) public void finalize() { if (!gcrun) { // The first time finalize() is called: gcrun = true; System.out.println("Beginning to finalize after " + created +" Chairs have been created"); if (i == 47) { System.out.println("Finalizing Chair #47, " + "Setting flag to stop Chair creation"); f = true; finalized++; if (finalized >= created) System.out.println( All " + finalized + finalized");

60 42 Παράδειγμα (συνέχεια) public class Garbage { public static void main(string[] args){ while (!Chair.f) { new Chair(); new String("To take up space"); System.gc(); // forces execution of GC System.runFinalization(); // finalizes all unfinalized objects

61 43 Τεχνικές Αποκομιδής Σκυβάλων

62 43 Τεχνικές Αποκομιδής Σκυβάλων Reference counting (μέτρηση αναφορών) τι γίνεται με αυτοαναφερόμενες κυκλικές δομές σκυβάλων;

63 43 Τεχνικές Αποκομιδής Σκυβάλων Reference counting (μέτρηση αναφορών) τι γίνεται με αυτοαναφερόμενες κυκλικές δομές σκυβάλων; Tracing live objects back to references living on the stack or static memory: ιχνηλασία σε ζώντα χειριστήρια.

64 43 Τεχνικές Αποκομιδής Σκυβάλων Reference counting (μέτρηση αναφορών) τι γίνεται με αυτοαναφερόμενες κυκλικές δομές σκυβάλων; Tracing live objects back to references living on the stack or static memory: ιχνηλασία σε ζώντα χειριστήρια.

65 43 Τεχνικές Αποκομιδής Σκυβάλων Reference counting (μέτρηση αναφορών) τι γίνεται με αυτοαναφερόμενες κυκλικές δομές σκυβάλων; Tracing live objects back to references living on the stack or static memory: ιχνηλασία σε ζώντα χειριστήρια. Προσέγγιση τού JVM: προσαρμοζόμενος ΑΣ (adaptive)

66 43 Τεχνικές Αποκομιδής Σκυβάλων Reference counting (μέτρηση αναφορών) τι γίνεται με αυτοαναφερόμενες κυκλικές δομές σκυβάλων; Tracing live objects back to references living on the stack or static memory: ιχνηλασία σε ζώντα χειριστήρια. Προσέγγιση τού JVM: προσαρμοζόμενος ΑΣ (adaptive) Stop-and-copy: μεταφορά των ζώντων αντικειμένων από έναν σωρό σε κάποιον άλλο, αφού πρώτα σταματήσει η εκτέλεση του προγράμματος.

67 43 Τεχνικές Αποκομιδής Σκυβάλων Reference counting (μέτρηση αναφορών) τι γίνεται με αυτοαναφερόμενες κυκλικές δομές σκυβάλων; Tracing live objects back to references living on the stack or static memory: ιχνηλασία σε ζώντα χειριστήρια. Προσέγγιση τού JVM: προσαρμοζόμενος ΑΣ (adaptive) Stop-and-copy: μεταφορά των ζώντων αντικειμένων από έναν σωρό σε κάποιον άλλο, αφού πρώτα σταματήσει η εκτέλεση του προγράμματος. Mark-and-sweep: εντοπισμός και υποσημείωση των ζώντων αντικειμένων, ξεκινώντας από την στοίβα και την στατική μνήμη. Μετά το πέρας της υποσημείωσης, σάρωση του σωρού και εκκαθάριση των σκυβάλων.

68 43 Τεχνικές Αποκομιδής Σκυβάλων Reference counting (μέτρηση αναφορών) τι γίνεται με αυτοαναφερόμενες κυκλικές δομές σκυβάλων; Tracing live objects back to references living on the stack or static memory: ιχνηλασία σε ζώντα χειριστήρια. Προσέγγιση τού JVM: προσαρμοζόμενος ΑΣ (adaptive) Stop-and-copy: μεταφορά των ζώντων αντικειμένων από έναν σωρό σε κάποιον άλλο, αφού πρώτα σταματήσει η εκτέλεση του προγράμματος. Mark-and-sweep: εντοπισμός και υποσημείωση των ζώντων αντικειμένων, ξεκινώντας από την στοίβα και την στατική μνήμη. Μετά το πέρας της υποσημείωσης, σάρωση του σωρού και εκκαθάριση των σκυβάλων. δουλεύει ικανοποιητικά όταν δεν υπάρχουν πολλά σκουπίδια

69 44 Αποκομιδή Σκυβάλων στη JAVA

70 44 Αποκομιδή Σκυβάλων στη JAVA Στις αρχικές εκδόσεις της JAVA, η δέσμευση μνήμης για κατασκευή αντικειμένων ήταν εξίσου ακριβή με τη δυναμική δέσμευση μνήμης στη C και στη C++

71 44 Αποκομιδή Σκυβάλων στη JAVA Στις αρχικές εκδόσεις της JAVA, η δέσμευση μνήμης για κατασκευή αντικειμένων ήταν εξίσου ακριβή με τη δυναμική δέσμευση μνήμης στη C και στη C++ first-fit ή best-fit αλγόριθμοι για τη διαχείριση του ελεύθερου χώρου στον σωρό

72 44 Αποκομιδή Σκυβάλων στη JAVA Στις αρχικές εκδόσεις της JAVA, η δέσμευση μνήμης για κατασκευή αντικειμένων ήταν εξίσου ακριβή με τη δυναμική δέσμευση μνήμης στη C και στη C++ first-fit ή best-fit αλγόριθμοι για τη διαχείριση του ελεύθερου χώρου στον σωρό Η αποδέσμευση ήταν εξίσου ακριβή:

73 44 Αποκομιδή Σκυβάλων στη JAVA Στις αρχικές εκδόσεις της JAVA, η δέσμευση μνήμης για κατασκευή αντικειμένων ήταν εξίσου ακριβή με τη δυναμική δέσμευση μνήμης στη C και στη C++ first-fit ή best-fit αλγόριθμοι για τη διαχείριση του ελεύθερου χώρου στον σωρό Η αποδέσμευση ήταν εξίσου ακριβή: mark-sweep ολόκληρου του σωρού σε κάθε σκούπισμα από τον αποκομιστή σκυβάλων

74 44 Αποκομιδή Σκυβάλων στη JAVA Στις αρχικές εκδόσεις της JAVA, η δέσμευση μνήμης για κατασκευή αντικειμένων ήταν εξίσου ακριβή με τη δυναμική δέσμευση μνήμης στη C και στη C++ first-fit ή best-fit αλγόριθμοι για τη διαχείριση του ελεύθερου χώρου στον σωρό Η αποδέσμευση ήταν εξίσου ακριβή: mark-sweep ολόκληρου του σωρού σε κάθε σκούπισμα από τον αποκομιστή σκυβάλων Σε μεταγενέστερες εκδόσεις της JAVA (HotSpot JVM), ο σωρός λειτουργεί σαν ιμάντας (conveyor belt).

75 44 Αποκομιδή Σκυβάλων στη JAVA Στις αρχικές εκδόσεις της JAVA, η δέσμευση μνήμης για κατασκευή αντικειμένων ήταν εξίσου ακριβή με τη δυναμική δέσμευση μνήμης στη C και στη C++ first-fit ή best-fit αλγόριθμοι για τη διαχείριση του ελεύθερου χώρου στον σωρό Η αποδέσμευση ήταν εξίσου ακριβή: mark-sweep ολόκληρου του σωρού σε κάθε σκούπισμα από τον αποκομιστή σκυβάλων Σε μεταγενέστερες εκδόσεις της JAVA (HotSpot JVM), ο σωρός λειτουργεί σαν ιμάντας (conveyor belt). Η δημιουργία (μικρών) αντικειμένων γίνεται πάρα πολύ γρήγορα στη JAVA (10 εντολές μηχανής) και πιο φθηνά από την C/C++.

76 44 Αποκομιδή Σκυβάλων στη JAVA Στις αρχικές εκδόσεις της JAVA, η δέσμευση μνήμης για κατασκευή αντικειμένων ήταν εξίσου ακριβή με τη δυναμική δέσμευση μνήμης στη C και στη C++ first-fit ή best-fit αλγόριθμοι για τη διαχείριση του ελεύθερου χώρου στον σωρό Η αποδέσμευση ήταν εξίσου ακριβή: mark-sweep ολόκληρου του σωρού σε κάθε σκούπισμα από τον αποκομιστή σκυβάλων Σε μεταγενέστερες εκδόσεις της JAVA (HotSpot JVM), ο σωρός λειτουργεί σαν ιμάντας (conveyor belt). Η δημιουργία (μικρών) αντικειμένων γίνεται πάρα πολύ γρήγορα στη JAVA (10 εντολές μηχανής) και πιο φθηνά από την C/C++. Επίσης, η αποκομιδή των σκυβάλων είναι πολύ γρήγορη.

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

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

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

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

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

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

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

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

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 22/11/07 Ακαδ έτος 2007-2008 ΠΛΗΡΟΦΟΡΙΚΗ Ι Φερεντίνος 22/11/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με ΑΜ σε 3, 7, 8 & 9 22/11/07 Παράδειγμα με if/else if και user input: import javautil*; public class Grades public

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

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

Διάλεξη 4: Προγραμματισμός σε JAVA IΙ. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 4: Προγραμματισμός σε JAVA IΙ Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: -Μέθοδοι - Πίνακες, Πολυδιάστατοι Πίνακες - Boxing/Unboxing - Χρήσιμες βιβλιοθήκες

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

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

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

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εξαιρέσεις

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές)

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές) ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές) Βρείτε τα λάθη Στο πρόγραμμα στην επόμενη διαφάνεια υπάρχουν διάφορα λάθη Ποια είναι? public abstract

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

ιαδικτυακές Εφαρµογές Πραγµατικού Χρόνου µε Java

ιαδικτυακές Εφαρµογές Πραγµατικού Χρόνου µε Java ιαδικτυακές Εφαρµογές Πραγµατικού Χρόνου µε Java Java Media Framework Ηβιβλιοθήκη JMF Εγκαθίσταται επιπρόσθετα στη Java Αναπαραγωγή πολυµέσων Αποστολή και λήψη πολυµέσων σε πραγµατικό χρόνο Γραφικά αντικείµενα

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

Διάλεξη 07: Λίστες Ι Υλοποίηση & Εφαρμογές

Διάλεξη 07: Λίστες Ι Υλοποίηση & Εφαρμογές Διάλεξη 07: Λίστες Ι Υλοποίηση & Εφαρμογές Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ευθύγραμμες Απλά Συνδεδεμένες Λίστες (εισαγωγή, εύρεση, διαγραφή) Ευθύγραμμες Διπλά Συνδεδεμένες Λίστες

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

Εισαγωγή στη C# και το.net 4.0

Εισαγωγή στη C# και το.net 4.0 ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΡΓΑΣΤΗΡΙΟ ΤΕΧΝΟΛΟΓΙΑΣ ΠΟΛΥΜΕΣΩΝ Εισαγωγή στη C# και το.net 4.0 Σημειώσεις Σεμιναρίου Ενότητα 3 Κλάσεις και αντικείμενα Πεδία Μέθοδοι Επιμέλεια: Βασίλης Κόλιας 1.0.0 Πίνακας

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

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

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

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

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

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

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

ΘΕΜΑΤΑ ΕΞΕΤΑΣΕΩΝ ΟΜΑΔΑ Α

ΘΕΜΑΤΑ ΕΞΕΤΑΣΕΩΝ ΟΜΑΔΑ Α ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩN ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ι ΕΞΕΤΑΣΤΙΚΗ ΠΕΡΙΟΔΟΣ: ΙΟΥΝΙΟΣ 2015 (10/7/2015) ΘΕΜΑΤΑ ΕΞΕΤΑΣΕΩΝ ΟΜΑΔΑ Α 1. (3.5 μονάδες)

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

ιαδικτυακές Εφαρµογές

ιαδικτυακές Εφαρµογές ιαδικτυακές Εφαρµογές µε Java2 Στοιχεία ικτυακής Επικοινωνίας Όροι IP address 32bit αριθµός που χρησιµοποιείται από το Internet Protocol για την παράδοση δεδοµένων στο σωστό υπολογιστή στο δίκτυο. Port

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

Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστηµάτων Βάσεων εδοµένων Εαρινό Εξάµηνο 2009 2010

Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστηµάτων Βάσεων εδοµένων Εαρινό Εξάµηνο 2009 2010 Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστηµάτων Βάσεων εδοµένων Εαρινό Εξάµηνο 2009 2010 Καθηγητής. Γουνόπουλος Άσκηση 1 Σκοπός της εργασίας αυτής είναι η κατανόηση της εσωτερικής λειτουργίας

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

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

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

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Ενότητα 12 Δομές (Structures) Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Αφαιρετικότητα Με τις συναρτήσεις επιτυγχάνουμε αφαιρετικότητα

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

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιαχείριση Εξαιρέσεων. Εισαγωγή στη ιαχείριση Εξαιρέσεων

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιαχείριση Εξαιρέσεων. Εισαγωγή στη ιαχείριση Εξαιρέσεων Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας ιάλεξη 6η: 06/04/2006 1 ιαχείριση

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

ΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ

ΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ ΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ Στην java οι πληροφορίες αποθηκεύονται και ανακαλούνται/ανασύρονται µε τη χρήση ενός συστήµατος επικοινωνίας που χρησιµοποιεί την έννοια του stream (κανάλι επικοινωνίας). Σαν stream

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

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

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

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

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

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Website: www.dap-papei.gr E-mail: dap.papei@yahoo.gr Facebook: https://www.facebook.com/dap.papei Twitter: https://twitter.com/dap_papei

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

Διάγραμμα Κλάσεων. Class Diagram

Διάγραμμα Κλάσεων. Class Diagram Διάγραμμα Κλάσεων Class Diagram Γενικά Ορίζει τις κλάσεις αντικειμένων σε ένα σύστημα, τις μεθόδους και τις συναρτήσεις τους, και τις συσχετίσεις μεταξύ των κλάσεων. Περιγράφουν την δομή και συμπεριφορά

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

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

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

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

Αποθηκευμένες Διαδικασίες Stored Routines (Procedures & Functions)

Αποθηκευμένες Διαδικασίες Stored Routines (Procedures & Functions) Αποθηκευμένες Διαδικασίες Stored Routines (Procedures & Functions) Αυγερινός Αραμπατζής avi@ee.duth.gr www.aviarampatzis.com Βάσεις Δεδομένων Stored Procedures 1 Stored Routines (1/2) Τμήματα κώδικα τα

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

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

Υπερφόρτωση τελεστών (operator( Υπερφόρτωση τελεστών (operator( overloading) Η υπερφόρτωση τελεστών είναι ένα από τα πιο ενδιαφέροντα χαρακτηριστικά του αντικειμενοστραφούς προγραμματισμού. Αναφέρεται στην πρόσθετη χρήση των συνηθισμένων

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

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

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

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

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ. Διδάσκουσα Δρ Β.

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ. Διδάσκουσα Δρ Β. ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ Διδάσκουσα Δρ Β. Καβακλή Χειμερινό Εξάμηνο 2001 1 Σύνολο χαρακτήρων της Pascal Για

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

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

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

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

Εισαγωγή στη Java. 2004 Κωνσταντίνος Μαργαρίτης, markos@debian.org Άδεια χρήσης: GNU FDL

Εισαγωγή στη Java. 2004 Κωνσταντίνος Μαργαρίτης, markos@debian.org Άδεια χρήσης: GNU FDL 1.Σχετικά με τη Java Εισαγωγή στη Java 2004 Κωνσταντίνος Μαργαρίτης, markos@debian.org Άδεια χρήσης: GNU FDL Η Java είναι μια σύγχρονη αντικειμενοστραφής (object oriented) γλώσσα προγραμματισμού με αρκετά

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

Visual Basic Βασικές Έννοιες

Visual Basic Βασικές Έννοιες Visual Basi Βασικές Έννοιες «Είδα στον ύπνο µου ότι η ζωή είναι χαρά. Ξύπνησα και είδα ότι είναι χρέος. Αγωνίστηκα και είδα ότι τo χρέος είναι χαρά.» Ραµπριτανάθ Ταγκόρ Κουλλάς Χρίστος www.oullas.om oullas

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

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός Παναγιώτης Σφέτσος sfetsos@it.teithe.gr ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΣ ΣΕ ΑΝΤΙΚΕΙΜΕΝΑ Προσανατολισμός σε αντικείμενα είναι η προσέγγιση που

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

(Απλή) Κληρονομικότητα

(Απλή) Κληρονομικότητα Πολλαπλή κληρονομικότητα, υςχετίςεισ μεταξύ κλάςεων ΟΝΣΟΚΕΝΣΡΙΚΟ ΠΡΟΓΡ/ΜΟ C++ Μ. Ρήγκου (rigou@ceid.upatras.gr) (Απλή) Κληρονομικότητα Student + calctuition(): double GraduateStudent + calctuition(): double

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

Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ

Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ Σκοπός του μαθήματος Σκοπός του παρόντος μαθήματος είναι να μάθετε να κάνετε εισαγωγή δεδομένων σε πίνακες και περαιτέρω επεξεργασία

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

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi Προϋποθέσεις για Αµοιβαίο Αποκλεισµό Μόνο µία διεργασία σε κρίσιµο τµήµασεκοινό πόρο Μία διεργασία που σταµατά σε µη κρίσιµο σηµείο δεν πρέπει να επιρεάζει τις υπόλοιπες διεργασίες εν πρέπει να υπάρχει

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

Ασκήσεις Γλώσσα Προγραµµατισµού C#

Ασκήσεις Γλώσσα Προγραµµατισµού C# Ασκήσεις Γλώσσα Προγραµµατισµού C# Κατανεµηµένη Αντικειµενοστρεφής Τεχνολογία Ιανουάριος 2004 Τµήµα ιδακτικής της Τεχνολογίας & Ψηφιακών Συστηµάτων Άσκηση 1 Να γραφτεί ένα πρόγραµµα που να εµφανίζει στην

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

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

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

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

Μεταφραστής (Compiler)

Μεταφραστής (Compiler) Windows Καθαρισµος οθονης cls Unix clear Τελεστες ανακατευθυνσης > > >> >> < < Εντολες σε αρχεια * * (wild card) del Α rm Α ιαγραφη type Α cat Α Εµφανιση copy Α Β cp Α Β Αντιγραφη ren Α Β mv Α Β Αλλαγη

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

Διάλεξη 10: Δομές Δεδομένων Ι (Στοίβες & Ουρές)

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΗΥ340 ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΗΥ340 ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ 2010 Ι ΑΣΚΩΝ: ΑΝΤΩΝΙΟΣ ΣΑΒΒΙ ΗΣ ΒΑΣΙΚΗ ΕΡΓΑΣΙΑ ΦΑΣΗ 2η από 5 Ανάθεση: Πέµπτη 15 Απριλίου 2010, 11:00 (πρωί)

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΗΥ340 ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΗΥ340 ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ 2008 ΔΙΔΑΣΚΩΝ: ΑΝΤΩΝΙΟΣ ΣΑΒΒΙΔΗΣ ΒΑΣΙΚΗ ΕΡΓΑΣΙΑ ΦΑΣΗ 2η από 5 Παράδοση: Πέμπτη 10 Απριλίου 2008, 24:00 (μεσάνυχτα)

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

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Μεταγλώτιση, σύνδεση

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

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

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

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

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

Παράλληλη Επεξεργασία

Παράλληλη Επεξεργασία Παράλληλη Επεξεργασία Φροντιστήριο: Εισαγωγή στο OpenMP Εργαστήριο Πληροφοριακών Συστημάτων Υψηλής Επίδοσης Parallel and Distributed Systems Group Τι είναι το OpenMP Πρότυπο Επέκταση στη C/C++ και τη Fortran

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

C# (Sharp) ΤΕΙ Λάρισας. Τμήμα Τεχνολογίας Πληροφορικής & Τηλεπικοινωνιών. βιβλίο μελέτης εργαστηρίου. προγραμματισμός ΙΙ. έκδοση 1.0.

C# (Sharp) ΤΕΙ Λάρισας. Τμήμα Τεχνολογίας Πληροφορικής & Τηλεπικοινωνιών. βιβλίο μελέτης εργαστηρίου. προγραμματισμός ΙΙ. έκδοση 1.0. ΤΕΙ Λάρισας Τμήμα Τεχνολογίας Πληροφορικής & Τηλεπικοινωνιών προγραμματισμός ΙΙ C# (Sharp) βιβλίο μελέτης εργαστηρίου έκδοση 1.0.1 Νεβράντζας Βάιος-Γερμανός Λάρισα Φεβρουάριος 2011 σελίδα 2 από 39 Ευρετήριο

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

Ο πίνακας συμβόλων (symbol table) είναι μία δομή, όπου αποθηκεύεται πληροφορία σχετικά με τα σύμβολα του προγράμματος

Ο πίνακας συμβόλων (symbol table) είναι μία δομή, όπου αποθηκεύεται πληροφορία σχετικά με τα σύμβολα του προγράμματος HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ Φροντιστήριο 3 ο Symbol Table & Scopes Ι ΑΣΚΩΝ Αντώνιος Σαββίδης

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

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

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

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

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ. Δρ. Ιωάννης Λυχναρόπουλος 2014-2015. Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ. Δρ. Ιωάννης Λυχναρόπουλος 2014-2015. Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ Δρ. Ιωάννης Λυχναρόπουλος 2014-2015 Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας Τι είναι τα υποπρογράμματα Αυτόνομες μονάδες κώδικα Γραμμένα από τον χρήστη Η δομή

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

Μάθημα: Ψηφιακή Επεξεργασία Ήχου

Μάθημα: Ψηφιακή Επεξεργασία Ήχου Τμήμα Τεχνών Ήχου και Εικόνας Ιόνιο Πανεπιστήμιο Μάθημα: Ψηφιακή Επεξεργασία Ήχου Εργαστηριακή Άσκηση 5 «Διαδραστικός έλεγχος στερεοφωνικής εικόνας ήχου» Διδάσκων: Φλώρος Ανδρέας Δρ. Ηλ/γος Μηχ/κός & Τεχνολογίας

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΕΡΓΑΣΤΗΡΙΟ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ ΜΕΡΟΣ ΠΕΜΠΤΟ Triggers, Stored procedures Γιώργος Μαρκοµανώλης Περιεχόµενα Triggers-Ενηµέρωση δεδοµένων άλλων πινάκων... 1 Ασφάλεια...

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

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

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

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

υαδικό έντρο Αναζήτησης (BSTree)

υαδικό έντρο Αναζήτησης (BSTree) Εργαστήριο 6 υαδικό έντρο Αναζήτησης (BSTree) Εισαγωγή Οι περισσότερες δοµές δεδοµένων, που εξετάσαµε µέχρι τώρα (λίστες, στοίβες, ουρές) ήταν γραµ- µικές (ή δοµές δεδοµένων µιας διάστασης). Στην παράγραφο

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

Υλοποίηση ενός προγραμματιστικού κελύφους εργασίας

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

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

Runtime Checking (1/3) Runtime Checking (2/3) Runtime Checking (3/3) ΗΥ 340 Γλώσσες και Μεταφραστές Φροντιστήριο

Runtime Checking (1/3) Runtime Checking (2/3) Runtime Checking (3/3) ΗΥ 340 Γλώσσες και Μεταφραστές Φροντιστήριο ΗΥ 340 Γλώσσες και Μεταφραστές Φροντιστήριο Runtime Checking (1/3) Η γλώσσα alpha είναι μια dynamic typing γλώσσα (ο τύπος μιας μεταβλητής αλλάζει ακολουθώντας τον τύπο της τιμής που κάθε φορά αποθηκεύεται

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

Είδη εντολών. Απλές εντολές. Εντολές ελέγχου. Εκτελούν κάποια ενέργεια. Ορίζουν τον τρόπο με τον οποίο εκτελούνται άλλες εντολές

Είδη εντολών. Απλές εντολές. Εντολές ελέγχου. Εκτελούν κάποια ενέργεια. Ορίζουν τον τρόπο με τον οποίο εκτελούνται άλλες εντολές Μορφές Εντολών Είδη εντολών Απλές εντολές Εκτελούν κάποια ενέργεια Εντολές ελέγχου Ορίζουν τον τρόπο με τον οποίο εκτελούνται άλλες εντολές Εντολές και παραστάσεις Μιαεντολήείναιμιαπαράστασηπου ακολουθείται

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

Κεφάλαιο 2.6: Είσοδος / Έξοδος εδοµένων, Μορφοποίηση εδοµένων Εξόδου. ( ιάλεξη 7) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Κεφάλαιο 2.6: Είσοδος / Έξοδος εδοµένων, Μορφοποίηση εδοµένων Εξόδου. ( ιάλεξη 7) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 2.6: Είσοδος / Έξοδος εδοµένων, Μορφοποίηση εδοµένων Εξόδου ( ιάλεξη 7) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 1 Είσοδος/ Έξοδος Σε σχεδόν όλα τα προγράµµατα πρέπει να πάρουµε κάποια δεδοµένα και να δώσουµε

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

Κεφάλαιο 2.1-2.4: Εισαγωγή στην C. ( ιαλέξεις 3-4) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Κεφάλαιο 2.1-2.4: Εισαγωγή στην C. ( ιαλέξεις 3-4) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 2.1-2.4: Εισαγωγή στην C ( ιαλέξεις 3-4) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Περιεχόµενα Εισαγωγή στην C: Σύνταξη και Σηµασιολογία σχόλια µεταβλητές και σταθερές τύποι δεδοµένων Μετά αυτές τις δυο διαλέξεις

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

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

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

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

Συναρτήσεις Κατακερματισμού και Πίνακες Κατακερματισμού

Συναρτήσεις Κατακερματισμού και Πίνακες Κατακερματισμού Μια συνάρτηση κατακερματισμού (hash function) h απεικονίζει κλειδιά ενός δοσμένου τύπου σεακεραίουςενόςσταθερούδιαστήματος [0,N 1]όπουΝτομέγεθοςτουπίνακα. Πχ: Συναρτήσεις Κατακερματισμού και Πίνακες Κατακερματισμού

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

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

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

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

ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ. Επίπεδα Αφαίρεσης Σ Β. Αποθήκευση Εγγραφών - Ευρετήρια. ρ. Βαγγελιώ Καβακλή ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ, Επίπεδο Όψεων.

ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ. Επίπεδα Αφαίρεσης Σ Β. Αποθήκευση Εγγραφών - Ευρετήρια. ρ. Βαγγελιώ Καβακλή ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ, Επίπεδο Όψεων. ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ Χειµερινό Εξάµηνο 2002 Αποθήκευση Εγγραφών - Ευρετήρια ρ Βαγγελιώ Καβακλή ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ, ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ Επίπεδα Αφαίρεσης Σ Β Επίπεδο Όψεων Όψη Όψη

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

Κωδικός Τίτλος Μαθήματος ΠΜ ΕΠΛ131 Αρχές Προγραμματισμού Ι 7.5. Ημέρα Διάλεξη Εργαστήριο Φροντιστήριο Δευτέρα, Πέμπτη 9:00 10:30, ΘΕΕ01, 202

Κωδικός Τίτλος Μαθήματος ΠΜ ΕΠΛ131 Αρχές Προγραμματισμού Ι 7.5. Ημέρα Διάλεξη Εργαστήριο Φροντιστήριο Δευτέρα, Πέμπτη 9:00 10:30, ΘΕΕ01, 202 ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Κωδικός Τίτλος Μαθήματος ΠΜ ΕΠΛ131 Αρχές Προγραμματισμού Ι 7.5 Διδάσκων Δρ. Γιάννος Σαζεϊδης (email: yanos@cs.ucy.ac.cy) τηλ: 22892704 Υπεύθυνος Δρ. Παύλος Αντωνίου (email: paul.antoniou@cs.ucy.ac.cy)

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

Εισαγωγή στις Συναρτήσεις

Εισαγωγή στις Συναρτήσεις Εισαγωγή στις Συναρτήσεις Η φιλοσοφία σχεδίασης της C βασίζεται στη χρήση των συναρτήσεων. Έχουμε ήδη δει και χρησιμοποιήσει πολλές συναρτήσεις που έχει το σύστημα, όπως είναι οι printf(), scanf(),αλλά

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 7 Ο. Αριθμητικές πράξεις Τυχαίοι αριθμοί Εφαρμογές σε προβλήματα ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 2010-11 1

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 7 Ο. Αριθμητικές πράξεις Τυχαίοι αριθμοί Εφαρμογές σε προβλήματα ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 2010-11 1 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 7 Ο Αριθμητικές πράξεις Τυχαίοι αριθμοί Εφαρμογές σε προβλήματα ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 2010-11 1 Εισαγωγή Οι αριθμητικές πράξεις που εκτελούνται στον υπολογιστή αποτελούν το

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

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

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

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

Φροντιστήριο 5. Ημερομηνία: 01/12/2006 Θεματική Ενότητα: Μοντελοποίηση Συμπεριφοράς Θέμα: Διαγράμματα αλληλεπίδρασης και καταστάσεων

Φροντιστήριο 5. Ημερομηνία: 01/12/2006 Θεματική Ενότητα: Μοντελοποίηση Συμπεριφοράς Θέμα: Διαγράμματα αλληλεπίδρασης και καταστάσεων Πανεπιστήμιο Κρήτης, Τμήμα Επιστήμης Υπολογιστών Φθινόπωρο 2006 ΗΥ351: Ανάλυση και Σχεδίαση Πληροφοριακών Συστημάτων Information Systems Analysis and Design Φροντιστήριο 5 Ημερομηνία: 01/12/2006 Θεματική

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

Παράρτημα A: PHP, HTML φόρμες και το πρωτόκολλο HTTP.

Παράρτημα A: PHP, HTML φόρμες και το πρωτόκολλο HTTP. Εργαστήριο #5 Τι πρέπει να έχετε ολοκληρώσει από το προηγούμενο εργαστήριο. Θα πρέπει να ξέρετε να εισάγετε ένα βασικό πρόγραμμα PHP μέσα σε μια ιστοσελίδα, τη χρήση της echo και τον χειρισμό απλών μεταβλητών

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

Αναδρομικοί Αλγόριθμοι

Αναδρομικοί Αλγόριθμοι Αναδρομικός αλγόριθμος (recursive algorithm) Επιλύει ένα πρόβλημα λύνοντας ένα ή περισσότερα στιγμιότυπα του ίδιου προβλήματος. Αναδρομικός αλγόριθμος (recursive algorithm) Επιλύει ένα πρόβλημα λύνοντας

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

ΗΥ-252 Αντικειμενοστρεφής Προγραμματισμός Βασίλης Χριστοφίδης

ΗΥ-252 Αντικειμενοστρεφής Προγραμματισμός Βασίλης Χριστοφίδης Πανεπιστήμιο Κρήτης Τμήμα Επιστήμης Υπολογιστών ΗΥ-252 Αντικειμενοστρεφής Προγραμματισμός Βασίλης Χριστοφίδης Ονοματεπώνυμο: Αριθμός Μητρώου: Τελική Εξέταση (3 ώρες) Ημερομηνία: 1 Φεβρουαρίου 2009 Άσκηση

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

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

ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΙΟΥΝΙΟΥ ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΙΟΥΝΙΟΥ ΜΑΘΗΜΑ : Πληροφορική Κατεύθυνσης ΤΑΞΗ : Β Αρ. σελίδων : 11 Ηµεροµηνία : 10/6/2008 Ώρα Έναρξης : 7:45 π.µ ιάρκεια : 2 ώρες Ονοµατεπώνυµο :...Τµήµα : Αριθµός :...Βαθµός

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

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

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

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

Διάλεξη 6: Δείκτες και Πίνακες

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

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

Διάλεξη 14: Δομές Δεδομένων ΙΙI (Λίστες και Παραδείγματα)

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

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

Ακολουθούν μερικές από τις πολλές δυνατότητες της Java:

Ακολουθούν μερικές από τις πολλές δυνατότητες της Java: JAVA TUTORIAL ΚΕΦΑΛΑΙΟ 1. Τι κάνει τη Java να ξεχωρίζει; Η Java προκάλεσε ίσως το μεγαλύτερο ενδιαφέρον σε σύγκριση με οποιαδήποτε άλλη εξέλιξη στον κόσμο του Internet. Όλοι μιλούν γι αυτήν. Όλοι έχουν

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

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / Γ ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 27/01/2013

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / Γ ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 27/01/2013 ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / Γ ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 27/01/2013 ΘΕΜΑ Α Α1. Να χαρακτηρίσετε τις προτάσεις που ακολουθούν, γράφοντας δίπλα στο γράμμα που αντιστοιχεί σε κάθε πρόταση τη

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

C: Από τη Θεωρία στην Εφαρμογή

C: Από τη Θεωρία στην Εφαρμογή Δρ. Γ. Σ. Τσελίκης Δρ. Ν. Δ. Τσελίκας C: Από τη Θεωρία στην Εφαρμογή Ενδεικτικές Ασκήσεις από το Βιβλίο C: Από τη Θεωρία στην Εφαρμογή (Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας) Ενδεικτικές Ασκήσεις του Βιβλίου Ε.Α.1

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

Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή

Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή Αριθμός bit δίαυλου δεδομένων (Data Bus) Αριθμός bit δίαυλου διευθύνσεων (Address Bus) Μέγιστη συχνότητα λειτουργίας (Clock Frequency) Τύποι εντολών Αριθμητική

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

Άσκηση 1 (α) Να διατυπώσετε την πιο κάτω λογική έκφραση στη Visual Basic κάνοντας χρήση μεταβλητών:

Άσκηση 1 (α) Να διατυπώσετε την πιο κάτω λογική έκφραση στη Visual Basic κάνοντας χρήση μεταβλητών: Άσκηση 1 (α) Να διατυπώσετε την πιο κάτω λογική έκφραση στη Visual Basic κάνοντας χρήση μεταβλητών: (Μον.2) Η ηλικία είναι μεταξύ των 15 και 18 συμπεριλαμβανομένων (β) Αν Χ= 4, Υ=2, Κ=2 να βρείτε το αποτέλεσμα

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

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

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 23: Εισαγωγή στην Δικτύωση (Networking) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Διευθύνσεις και Θύρες - Sockets και ServerSockets Διδάσκων: Παναγιώτης Ανδρέου ΕΠΛ233 Αντικειμενοστρεφής

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

Προγραµµατισµός ΙΙ Java 2

Προγραµµατισµός ΙΙ Java 2 Προγραµµατισµός ΙΙ Java 2 ιαχείριση Αρχείων Αρχεία Γιατί χρειαζόµαστε να γνωρίζουµε πως διαχειριζόµαστε αρχεία? Για να αποθηκεύουµε και να διαβάζουµε δεδοµένα από το δίσκο (τους λογικούς δίσκους πιο σωστά)

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

SQL Τύποι Δεδομένων Δημιουργία Πίνακα Παράδειγμα.. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγή στη MySQL (1)

SQL Τύποι Δεδομένων Δημιουργία Πίνακα Παράδειγμα.. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγή στη MySQL (1) Εργαστήριο Βάσεων Δεδομένων Εισαγωγή στη My (1) Η (Structured Query Language) είναι μια πλήρης γλώσσα Βάσεων Δεδομενων Είναι δομημένη σε βάσεις που περιέχουν πίνακες Οι πίνακες αποτελούνται από γραμμές

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

Εργαστήριο 2: Πίνακες

Εργαστήριο 2: Πίνακες Εργαστήριο 2: Πίνακες Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Επεξεργασία Πινάκων - Υλοποίηση της Δυαδικής Αναζήτησης σε πίνακες - Υλοποίηση της Ταξινόμησης με Επιλογής σε πίνακες ΕΠΛ035

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

Διάλεξη 1: Αντικειμενοστρεφής Προγραμματισμός -Εισαγωγή. Διδάσκων: Παναγιώτης Ανδρέου

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

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

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

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

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

Διάλεξη 18η: Διαχείρηση Αρχείων

Διάλεξη 18η: Διαχείρηση Αρχείων Διάλεξη 18η: Διαχείρηση Αρχείων Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Πρατικάκης (CSD) Αρχεία CS100, 2015-2016 1 / 24 Η βιβλιοθήκη Εισόδου/Εξόδου Στο stdioh

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

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα 1. Ποια είναι η σχέση της έννοιας του μικροεπεξεργαστή με αυτή του μικροελεγκτή; Α. Ο μικροεπεξεργαστής εμπεριέχει τουλάχιστο έναν μικροελεγκτή. Β. Ο

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

. Εργαστήριο Βάσεων Δεδομένων. Triggers

. Εργαστήριο Βάσεων Δεδομένων. Triggers Εργαστήριο Βάσεων Δεδομένων Triggers Triggers: Βασικές Έννοιες Ένας trigger είναι ένα κομμάτι κώδικα, μια ρουτίνα Συνδέεται με ένα συγκεκριμένο πίνακα Καλείται όταν συμβεί ένα γεγονός στον πίνακα Συχνές

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

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

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Εισαγωγή. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Δομές Δεδομένων Εισαγωγή Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Βιβλιογραφία Robert Sedgewick, Αλγόριθμοι σε C, Μέρη 1-4 (Θεμελιώδεις Έννοιες, Δομές Δεδομένων, Ταξινόμηση,

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

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Θ.Ε. ΠΛΗ24 ΑΚΑΔ. ΕΤΟΣ 2008-2009 ΠΡΩΤΗ ΓΡΑΠΤΗ ΕΡΓΑΣΙΑ ΕΝΔΕΙΚΤΙΚΕΣ ΛΥΣΕΙΣ-ΑΠΑΝΤΗΣΕΙΣ Άσκηση 1 Περιπτώσεις χρήσης (ΠΧ) συστήματος Video Club Ένα σύστημα λογισμικού για τη διαχείριση «Video Club» περιλαμβάνει

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

Κεφάλαιο 5.4-5.11: Επαναλήψεις (oι βρόγχοιfor, do-while) (Διάλεξη 10) Εντολές Επανάληψης που θα καλυφθούν σήμερα

Κεφάλαιο 5.4-5.11: Επαναλήψεις (oι βρόγχοιfor, do-while) (Διάλεξη 10) Εντολές Επανάληψης που θα καλυφθούν σήμερα Κεφάλαιο 5.4-5.11: Επαναλήψεις (oι βρόγχοιfor, do-while) (Διάλεξη 10) 10-1 Εντολές Επανάληψης που θα καλυφθούν σήμερα Διάλεξη 9 - Δευτέρα while() τελεστές postfix/prefix (++, --,...) και σύνθετοι τελεστές

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

Προγραµµατισµός ΙΙ Java 2

Προγραµµατισµός ΙΙ Java 2 Προγραµµατισµός ΙΙ Java 2 Προχωρηµένα Θέµατα Πακέτα Τις κλάσεις που κατασκευάζουµε µπορούµε να τις οργανώνουµε σε πακέτα εν «κουβαλάµε» µια-µια τις κλάσεις που επιθυµούµε αλλά ένα συµπαγές αρχείο, το πακέτο

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

Test Data Management in Practice

Test Data Management in Practice Problems, Concepts, and the Swisscom Test Data Organizer Do you have issues with your legal and compliance department because test environments contain sensitive data outsourcing partners must not see?

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

Εισαγωγικές έννοιες. Ιωάννης Γ. Τσούλος 2014

Εισαγωγικές έννοιες. Ιωάννης Γ. Τσούλος 2014 Εισαγωγικές έννοιες Ιωάννης Γ. Τσούλος 2014 Διάγραμμα παρουσιάσεως 1. Κατηγορίες κινητών τηλεφώνων 2. Κατηγορίες έξυπνων κινητών τηλεφώνων 3. Προγραμματισμός κινητών συσκευών 4. Ξεκίνημα με το Eclipse

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

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

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

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

Διάλεξη 11: Αντικειμενοστρεφής Σχεδιασμός ΙII

Διάλεξη 11: Αντικειμενοστρεφής Σχεδιασμός ΙII Διάλεξη 11: Αντικειμενοστρεφής Σχεδιασμός ΙII Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: -Παράδειγμα Διαδικασίας Ανάπτυξης Λογισμικού: Βιβλίο Διευθύνσεων(συν.) - Φάση 3: Υλοποίηση(αναλυτικά

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

ΣΗΜΕΙΩΣΕΙΣ ΜΑΘΗΜΑΤΟΣ «ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ»

ΣΗΜΕΙΩΣΕΙΣ ΜΑΘΗΜΑΤΟΣ «ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ» ΣΗΜΕΙΩΣΕΙΣ ΜΑΘΗΜΑΤΟΣ «ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ» Κωνσταντίνος Π. Φερεντίνος Διδάσκων ΠΔ 407/80 Οι σημειώσεις αυτές του μαθήματος «Γλώσσες Προγραμματισμού» αναπτύχθηκαν στα πλαίσια του προγράμματος «ΕΠΕΑΕΚ

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