ΗΥ252 Πρόοδος 24 Νοεμβρίου 2012 Σελίδα 2 από 8



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

ΠΕΡΙΕΧΟΜΕΝΑ ΕΙΣΑΓΩΓΙΚΟ ΣΗΜΕΙΩΜΑ 13 Α' ΜΕΡΟΣ ΑΠΟ ΤΟΝ ΠΟΛΕΜΟ ΤΟΥ 1897 ΣΤΟ ΓΟΥΔΙ

5 η Ενότητα Κουλτούρα και στρατηγική

ΕΚΘΕΣΗ ΓΙΑ ΤΟ ΕΒΕΑ. Το Ασφαλιστικό του 21ο αιώνα; Ανάγκη αναστοχασμού για μια νέα αρχή

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

Υποψήφιοι Σχολικοί Σύμβουλοι

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

4 ο ΛΥΚΕΙΟ ΛΑΜΙΑΣ ΟΙΚΟΝΟΜΙΚΕΣ ΚΑΙ ΚΟΙΝΩΝΙΚΕΣ ΣΥΝΕΠΕΙΕΣ ΤΗΣ ΟΙΚΟΝΟΜΙΚΗΣ ΚΡΙΣΗΣ ΕΚΘΕΣΗ ΕΡΕΥΝΗΤΙΚΗΣ ΕΡΓΑΣΙΑΣ ΜΕ ΘΕΜΑ. Ε ιµέλεια Εργασίας :Τµήµα Α4

Η υποστήριξη της επαγγελματικής μάθησης μέσα από την έρευνα-δράση: διαδικασίες και αποτελέσματα

Δράση 1.2. Υλοτομία και προσδιορισμός ποσοτήτων υπολειμμάτων.

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

Η διδακτική ενότητα του σχολικού εγχειριδίου «Η ελληνική κοινωνία στα χρόνια της δουλείας- Η οικονομία» Στόχοι διδασκαλίας της συγκεκριμένης ενότητας

ΤΟ ΝΕΟ ΑΣΦΑΛΙΣΤΙΚΟ ΤΟΠΙΟ

ΣΥΝΕΝΤΕΥΞΗ ΤΥΠΟΥ. Η ολοκληρωμένη προσέγγιση θα εφαρμοστεί με τα παρακάτω Εργαλεία

Ενότητα 2. Γενικά Οργάνωση Ελέγχου (ΙΙ) Φύλλα Εργασίας Εκθέσεις Ελέγχων

1. ΕΡΩΤΗΣΗ: Οι ρυθμίσεις του νόμου για το Ασφαλιστικό θα είναι μόνιμες; Οι περικοπές του σταθερές; ΑΠΑΝΤΗΣΗ:

«ΑΝΩ ΛΙΟΣΙΑ: ΤΟΠΙΚΗ ΙΣΤΟΡΙΑ, ΠΕΡΙΒΑΛΛΟΝ, ΠΡΟΚΛΗΣΕΙΣ, ΠΡΟΟΠΤΙΚΕΣ»

ΤΙΤΛΟΣ I ΕΥΡΩΠΑΪΚΑ ΣΧΟΛΕΙΑ

6 η Ενότητα Στρατηγική σε επιχειρηματικό επίπεδο

ΕΘΝΙΚΗ ΣΥΝΟΜΟΣΠΟΝΔΙΑ ΕΛΛΗΝΙΚΟΥ ΕΜΠΟΡΙΟΥ ΜΗΤΡΟΠΟΛΕΩΣ 42, ΑΘΗΝΑ ΙΝΕΜΥ - ΕΣΕΕ

ΤΕΙ ΚΑΛΑΜΑΤΑΣ. ΑΡΓΥΡΗ ΔΗΜΗΤΡΑ Σχολής Διοίκησης και Οικονομίας Τμήμα Χρηματοοικονομικής και Ελεγκτικής Επιστήμης Εισηγητής :Λυγγίτσος Αλέξανδρος

Η Φυσική με Πειράματα

Ερωτήσεις πολλαπλής επιλογής

ΠΡΟΣ: ΚΟΙΝ: ΘΕΜΑ: Ενηµερωτικό σηµείωµα για το πρόβληµα της παράνοµης υλοτοµίας και ειδικά αυτό της καυσοξύλευσης

Ο ΠΡΟΕΔΡΟΣ ΤΗΣ ΒΟΥΛΗΣ ΤΩΝ ΕΛΛΗΝΩΝ. Άρθρο πρώτο.

Αξιολόγηση Προγράμματος Αλφαβητισμού στο Γυμνάσιο Τρίτο Έτος Αξιολόγησης

ΑΠΟΦΑΣΗ 34750/2006 (Αριθμός καταθέσεως πράξεως 43170/2006) ΤΟ ΠΟΛΥΜΕΛΕΣ ΠΡΩΤΟΔΙΚΕΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΔΙΑΔΙΚΑΣΙΑ ΕΚΟΥΣΙΑΣ ΔΙΚΑΙΟΔΟΣΙΑΣ ΣΥΓΚΡΟΤΗΘΗΚΕ από

Μια Ιστορία Πολλοί Συγγραφείς

Το σχέδιο έχει ως βάση ένα ενιαίο σύστημα κλειστών αγωγών το οποίο εκτείνεται

Ο Οδικός Χάρτης για την Ελλάδα της δημιουργίας

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών

ΙΣΟΚΡΑΤΗΣ ΤΡΑΠΕΖΑ ΝΟΜΙΚΩΝ ΠΛΗΡΟΦΟΡΙΩΝ ΣΑ

ΦΙΛΟΣΟΦΙΚΗ ΣΧΟΛΗ. sep4u.gr

ΣΩΜΑ ΠΡΟΣΚΟΠΩΝ ΚΥΠΡΟΥ

Σε ποιες κατηγορίες μειώνεται η σύνταξη από 1/1/2009 (σε εφαρμογή του Ν.3655/2008)

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

Ο συγγραφέας χρησιμοποιεί συνδυασμό μεθόδων για την ανάπτυξη της έβδομης παραγράφου.

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

ΘΕΜΑΤΑ ΓΙΑ ΑΣΕΠ ΝΗΠΙΑΓΩΓΩΝ

ÁÐÏËÏÃÉÓÌÏÓ Δ. Σ. ΤΥΠΑΤΕ ΓΙΑ ΤΟ 2009 / 4

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

Τοποθέτηση Δημάρχου Γ. Πατούλη. για τεχνικό πρόγραμμα 2010

Πρότυπο Σχέδιο Δράσης για τα Συμβούλια Ένταξης Μεταναστών

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

Ξαναδίνουμε ζωή στο δικό μας ΗΡΑΚΛΕΙΟ Δ.Α.Σ.Η. ΓΙΩΡΓΟΣ ΜΑΣΤΟΡΑΚΟΣ. Δημοτική Ανεξάρτητη Συνεργασία Ηρακλείου

Πρακτικό εργαλείο. για την ταυτοποίηση πρώτου επιπέδου των θυμάτων παράνομης διακίνησης και εμπορίας. τη σεξουαλική εκμετάλλευση

ΕΝΔΕΙΚΤΙΚΕΣ ΑΠΑΝΤΗΣΕΙΣ ΘΕΜΑΤΩΝ ΝΕΟΕΛΛΗΝΙΚΗΣ ΓΛΩΣΣΑΣ A1. Ο συγγραφέας ορίζει το φαινόμενο του ανθρωπισμού στη σύγχρονη εποχή. Αρχικά προσδιορίζει την

Ένας περίπατος στη Μονή Καισαριανής

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

Ασυντήρητες και επικίνδυνες οικοδομές

Α. ΟΡΓΑΝΑ ΣΧΕΔΙΑΣΜΟΥ ΚΑΙ ΕΦΑΡΜΟΓΗΣ

Πολιτική Πρόταση για μια Προοδευτική Διέξοδο Από την Κρίση

Αιτιολογική έκθεση Προς τη Βουλή των Ελλήνων

ΒΙΟΛΟΓΙΑ ΓΕΝΙΚΗΣ ΠΑΙ ΕΙΑΣ 2010 ΕΚΦΩΝΗΣΕΙΣ

ΑΠΑΝΤΗΣΕΙΣ ΣΤΟ ΔΙΑΓΩΝΙΣΜΑ ΝΕΟΕΛΛΗΝΙΚΗΣ ΓΛΩΣΣΑΣ. Α. Να αποδώσετε την περίληψη του κειμένου ( λέξεις)

ΥΠΟΥΡΓΕΙΟ ΠΑΙ ΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΗΜΕΡΗΣΙΩΝ

ΤΑ ΕΠΙΠΕΔΑ ΟΡΓΑΝΩΣΗΣ ΤΩΝ ΠΟΛΥΚΥΤΤΑΡΩΝ ΟΡΓΑΝΣΙΜΩΝ ΟΙ ΖΩΙΚΟΙ ΙΣΤΟΙ 2 ο ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ

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

Ένα ακόμα φορολογικό σύστημα εναντίον των Μμε

Η Αγορά Ηλεκτρικής Ενέργειας στην Κύπρο έχει οργανωθεί σε τομείς που υπόκεινται στις ακόλουθες ρυθμίσεις:

ΣΥΝΘΗΚΗ SCHENGEN (ΣΕΝΓΚΕΝ)

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΔΙΔΑΣΚΑΛΕΙΟ ΔΗΜΟΤΙΚΗΣ ΕΚΠΑΙΔΕΥΣΗΣ «ΑΛΕΞΑΝΔΡΟΣ ΔΕΛΜΟΥΖΟΣ» «ΠΑΙΔΙΚΗ ΛΟΓΟΤΕΧΝΙΑ ΚΑΙ ΕΙΔΙΚΗ ΑΓΩΓΗ» ΔΙΔΑΣΚΩΝ: ΔΗΜΗΤΡΗΣ ΚΟΚΚΙΝΟΣ

Ευρετήριο πινάκων. Ασκήσεις και υπομνήματα

ΚΕΦΑΛΑΙΟ 9 ΑΞΙΟΛΟΓΗΣΗ ΕΦΑΡΜΟΓΗΣ «ΕΝΑ ΟΝΕΙΡΙΚΟ ΤΑΞΙΔΙ ΣΤΗΝ ΚΝΩΣΟ» - ΠΕΡΙΓΡΑΦΗ ΔΙΑΔΙΚΑΣΙΑΣ ΚΑΙ ΑΝΑΛΥΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ

Η αξιολόγηση των εκπαιδευτικών το Π.Δ 152/2013, του Γιώργου Καλημερίδη

Αριθμός 9769/2014 TO ΠΟΛΥΜΕΛΕΣ ΠΡΩΤΟΔΙΚΕΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΔΙΑΔΙΚΑΣΙΑ ΕΚΟΥΣΙΑΣ ΔΙΚΑΙΟΔΟΣΙΑΣ ΣΥΓΚΡΟΤΗΘΗΚΕ από τους Δικαστές Μυρσίνη Κοντογιάννη, Πρόεδρο

Ι ΑΚΤΙΚΟ ΣΕΝΑΡΙΟ: Αυτή είναι η οικογένειά μου

Β) Ντάκουλας Κωνσταντίνος Παππάς Βασίλης Πάσχος Αλέξανδρος Τσούκος Ηρακλής. Γ) Γείτονα Ανθή Πάτση Συμέλα Σκινήτης Φίλιππος Χασκή Βασιλική

Βρέντζου Τίνα Φυσικός Μεταπτυχιακός τίτλος: «Σπουδές στην εκπαίδευση» ΜEd stvrentzou@gmail.com

Έλλειψη εσωτερικής ελευθερίας

Κεφάλαιο Πέμπτο Εθνοπολιτισμική Ζωή και Εμπειρίες Ελληνικότητας των Ελληνοαυστραλών Εφήβων

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

«ΚΑΝΕ ΟΛΗ ΤΗΝ ΤΑΞΗ ΝΑ ΠΡΟΣΕΞΕΙ»

Ο αναλφαβητισμός ως σύγχρονο πρόβλημα

ΧΡΗΜΑΤΟΟΙΚΟΝΟΜΙΚΗ ΛΟΓΙΣΤΙΚΗ

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

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

ΣΧΕΔΙΟ ΝΟΜΟΥ ΕΝΙΣΧΥΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΤΗΣ ΚΙΝΗΜΑΤΟΓΡΑΦΙΚΗΣ ΤΕΧΝΗΣ ΚΑΙ ΑΛΛΕΣ ΔΙΑΤΑΞΕΙΣ. Γενικές Αρχές και Ορισμοί. Άρθρο 1 Γενικές αρχές

Το ολοκαύτωμα της Κάσου

Πρακτικό 6/2012 της συνεδρίασης της Επιτροπής Ποιότητας Ζωής, του Δήμου Λήμνου, της 4ης Μαΐου 2012.

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

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

Εσωτερικοί Κανονισμοί Τοπικής Αυτοδιοίκησης

ΠΡΟΒΛΗΜΑΤΑ ΤΗΣ ΔΗΜΟΣΙΑΣ ΖΩΗΣ, ΜΙΑ ΨΥΧΑΝΑΛΥΤΙΚΗ ΠΡΟΣΕΓΓΙΣΗ

«Φιλολογικό» Φροντιστήριο Επαναληπτικό διαγώνισμα στη Νεοελληνική Γλώσσα. Ενδεικτικές απαντήσεις. Περιθωριοποίηση μαθητών από μαθητές!

ΔΕΛΤΙΟ ΤΥΠΟΥ. «Το πέρας της πρώτης φάσης και το πέρασμα στη δεύτερη φάση της Διοικητικής Μεταρρύθμισης

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

Ελλάδα: Μνημόνιο Συνεννόησης στις. ΣΥΓΚΕΚΡΙΜΕΝΕΣ ΠΡΟΫΠΟΘΕΣΕΙΣ ΟΙΚΟΝΟΜΙΚΗΣ ΠΟΛΙΤΙΚΗΣ 3 Μαΐου 2010

ΚΩΔΙΚΑΣ ΠΟΛΙΤΙΚΗΣ ΔΙΚΟΝΟΜΙΑΣ

ΣΧΕΔΙΟ. ΝΟΜΟΣ. Δηµόσιες υπεραστικές οδικές µεταφορές επιβατών. Κεφ. Α - ΓΕΝΙΚΕΣ ΔΙΑΤΑΞΕΙΣ. Άρθρο 1 Σκοπός πεδίο εφαρµογής

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

ΣΥΣΤΗΜΑ ΔΙΑΓΝΩΣΗΣ ΑΝΑΓΚΩΝ ΑΓΟΡΑΣ ΕΡΓΑΣΙΑΣ

ΟΡΓΑΝΩΣΗ ΕΝΟΤΗΤΩΝ Α ΤΑΞΗΣ ΕΝΟΤΗΤΑ 3

Απόφαση - βόμβα του Αρείου. Πάγου για τα εργατικά ατυχήματα. Τα πάνω- κάτω στην επιδίκαση αποζημιώσεων λόγω

ΠΟΛΙΤΙΚΉ ΠΑΙΔΕΙΑ. Α Γενικού Λυκείου και ΕΠΑ.Λ. Καζάκου Γεωργία, ΠΕ09 Οικονομολόγος

ΔΙΑΔΟΣΗ ΘΕΡΜΟΤΗΤΑΣ Φυσική Β' Γυμνασίου. Επιμέλεια: Ιωάννης Γιαμνιαδάκης

ΠΑΡΑΤΗΡΗΣΕΙΣ 1. Να μεταφράσετε το απόσπασμα: «Οὕτω δὴ παρεσκευασμένοι...καὶ ταὺτας νείμω;.» Μονάδες 10

Του Σταύρου Ν. PhD Ψυχολόγου Αθλητικού Ψυχολόγου

Transcript:

ΗΥ252 Πρόοδος 24 Νοεμβρίου 2012 Σελίδα 1 από 8 Πανεπιστήμιο Κρήτης Τμήμα Επιστήμης Υπολογιστών ΗΥ-252 Αντικειμενοστρεφής Προγραμματισμός Βασίλης Χριστοφίδης Πρόοδος (3 ώρες) Ημερομηνία: 24 Νοεμβρίου 2012 Άσκηση1 Άσκηση2 Άσκηση3 Άσκηση4 Άσκηση5 Άσκηση6 Άσκηση7 Σύνολο /16 /20 /10 /12 /23 /12 /11 /104 Ονοματεπώνυμο: Αριθμός Μητρώου: Άσκηση 1 (16 μονάδες) // Στατικοί και Δυναμικοί Τύποι Αντικειμένων Σας δίνονται οι ακόλουθοι ορισμοί κλάσεων Java: public class A { A() { System.out.println("A.A()"); public void f(a arg) { System.out.println("A.f(A)"); public void g(a arg) { System.out.println("A.g(A)"); public class B extends A { B() { System.out.println("B.B()"); public void f(b arg) { System.out.println("B.f(B)"); public void g(a arg) { System.out.println("B.g(A)"); public static void h(a arg) { System.out.println("B.h(A)"); public class C extends B { C() { System.out.println("C.C()"); public void f(a arg) { System.out.println("C.f(A)"); public void f(b arg) { System.out.println("C.f(B)"); public void g(b arg) { System.out.println("C.g(B)"); public static void h(a arg) { System.out.println("C.h(A)"); Ποια είναι η έξοδος του ακόλουθου προγράμματος όταν όλες οι εντολές εκτελεστούν ακολουθιακά (π.χ.εκτυπώνεται xxx,δημιουργείται εξαίρεση yy,υπάρχει λάθος μεταγλώττισης zz); 1. A a = new A(); 2. A ab = new B(); 3. B bc = new C(); 4. C c = new C(); 5. a.f(bc); 6. bc.h(c) 7. bc.f(ab); 8. c.g(a); 9. c.g(bc); 10. ab.h(ab); 11. ab.g(ab); 1. A.A() 2. A.A() B.B() 3. A.A() B.B() C.C() 4. A.A() B.B() C.C() 5. A.f(A) 6. B.h(a) 7. C.f(A) 8. B.g(A) 9. C.g(B) 10. compile time error 11. B.g(A)

ΗΥ252 Πρόοδος 24 Νοεμβρίου 2012 Σελίδα 2 από 8 Άσκηση 2 (20 μονάδες) // Κατανόηση κώδικα Java Σας δίνονται οι παρακάτω ορθοί ορισμοί (δηλ. χωρίς προβλήματα μεταγλώττισης ή εκτέλεσης) τεσσάρων κλάσεων, ClassA, ClassB, ClassC και TestClass. Τι θα εκτυπωθεί κατά την εκτέλεση της μεθόδου main() της TestClass. public abstract class ClassA { private int num1; private int num2; public ClassA (int n1, int n2) { num1 = n1; num2 = n2; public abstract int sumnums(); public abstract int subnums(); public abstract int subnums(char c); public int timesnums() { return num1 * num2; public int getnum1 () { return num1; public int getnum2 () { return num2; // end ClassA public class ClassB extends ClassA { private int num1; public ClassB (int n1, int n2, int n3) { super(n1, n2); num1 = n3; public ClassB (int n) { super(n, n + 1); num1 = n; public int sumnums () { return num1 + getnum1() + getnum2(); public int timesnums() { return super.timesnums() * num1; public int subnums () { return num1 - super.getnum2() - super.getnum1(); public int subnums (char dir) { if (dir == 'f') return super.getnum1() - super.getnum2() - num1; else return subnums(); public int getnum1 () { return num1; //end ClassB public class ClassC extends ClassB { private int num1;

ΗΥ252 Πρόοδος 24 Νοεμβρίου 2012 Σελίδα 3 από 8 public ClassC (int n1, int n2, int n3, int n4) { super(n1, n2, n3); num1 = n4; public ClassC (int n) { super(n); num1 = n; public int timesnums() { return super.timesnums() * num1; //end ClassC public class TestClass { public static void main (String[] args) { ClassA b = new ClassB(2, 3, 4); System.out.println(b.getNum1()); 4 System.out.println(b.sumNums()); 11 System.out.println(b.timesNums()); 24 System.out.println(b.subNums('f')); -5 System.out.println(b.subNums()); -1 ClassA c = new ClassC(3); System.out.println(c.timesNums()); 108 System.out.println(c.sumNums()); 10 System.out.println(c.getNum1()); 3 System.out.println(c.getNum2()); 4 ClassA cc = new ClassC(5, 6, 7, 8); System.out.println(cc.sumNums()); 20 //end main //end TestClass

ΗΥ252 Πρόοδος 24 Νοεμβρίου 2012 Σελίδα 4 από 8 Άσκηση 3 (10 μονάδες) //Χειρισμός Εξαιρέσεων Ποια είναι ή έξοδος του παρακάτω προγράμματος Java; 1. public class Test { 2. public static void amethod() throws Exception { 3. try { 4. throw new Exception(); 5. 6. finally { 7. System.out.print("finally "); 8. 9. 10. public static void main(string args[]) { 11. try { 12. amethod(); 13. 14. catch (Exception e) { 15. System.out.print("exception "); 16. 17. System.out.print("finished"); 18. 19. Δικαιολογείστε την απάντησή σας. Α. finally Β. exception finished Γ. finally exception finished Δ. compilation fails Γ This is what happens: (1) The execution of the try block (line 3) completes abruptly because of the throw statement (line 4). (2) The exception cannot be assigned to the parameter of any catch clause of the try statement therefore the finally block is executed (line 6) and "finally" is output (line 7). (3) The finally block completes normally, and then the try statement completes abruptly because of the throw statement (line 4). (4) The exception is propagated up the call stack and is caught by the catch in the main method (line 14). This prints "exception". (5) Lastly program execution continues, because the exception has been caught, and "finished" is output (line 17). Άσκηση 4 (12 μονάδες) // Χειρισμός Πινάκων και Ισχυρισμοί Υποθέστε ότι χρησιμοποιούμε πίνακες Java δύο διαστάσεων που περιέχουν ακέραιους. Η συνάρτηση flip(), αναστρέφει τον πίνακα από αριστερά προς τα δεξιά. Εδώ, σας δίνεται ένα JUnit test, που σας υποδεικνύει τη σωστή συμπεριφορά της μεθόδου. (Η μέθοδος assertarrayequals ελέγχει στοιχείο-προς-στοιχείο την ισότητα των πινάκων.) int[][] input=new int[] {{1, 2, 3, 4,{5, 6, 7, 8,{9,10,11,12; int[][] expectedoutput=new int[]{{4,3,2,1,{8,7,6,5,{12,11,10,9; flip(input); assertarrayequals(input, expectedoutput); Συμπληρώστε την υλοποίηση της μεθόδου flip(). Σημειώστε ότι η μέθοδος αντί να επιστρέφει ένα νέο πίνακα με ανεστραμμένα περιεχόμενα, θα πρέπει να αναδιοργανώνει τις τιμές του πίνακα που περνάτε ως όρισμα. Μπορείτε να υποθέσετε ότι τόσο ο πίνακας εισόδου όσο και οι υποπίνακες του δεν περιλαμβάνουν null τιμές και έχουν ίδιο μήκος.

ΗΥ252 Πρόοδος 24 Νοεμβρίου 2012 Σελίδα 5 από 8 public static void flip(int[][] input) { for (int row = 0; row < input.length; row++) { for (int col = 0; col < (input[row].length / 2); col++) { int ocol = input[row].length - col - 1; int tmp = input[row][col]; input[row][col] = input[row][ocol]; input[row][ocol] = tmp; Άσκηση 5 (23 μονάδες) // Υλοποίηση Κλάσεων και Κληρονομικότητα Σας ζητείται να επεκτείνεται την ήδη υπάρχουσα κλάση Point, η οποία αναπαριστά δισδιάστατες 2-D (x, y) συντεταγμένες. Η κλάση Point περιλαμβάνει τους ακόλουθους κατασκευαστές (constructors) και μεθόδους: public Point()// constructs the point (0, 0) public Point(int x, int y)//constructs a point with the given x/y coordinates public void setlocation(int x, int y) // sets the coordinates to the given values public int getx() // returns the x-coordinate public int gety() // returns the y-coordinate public String tostring() //returns a String in standard "(x, y)" notation public double distancefromorigin() //returns the distance from the origin (0, 0), computed as the square root of (x 2 + y 2 ) Πρέπει να ορίσετε μία νέα κλάση που ονομάζεται Point3D η οποία επεκτείνει την Point μέσω κληρονομικότητας. Η Point3D θα πρέπει να συμπεριφέρεται όπως η μητρική κλάση με τη διαφορά ότι θα αναφέρεται σε τρισδιάστατες αντί για δυσδιάστατες συντεταγμένες (x,y,z). Οι επιπλέον μέθοδοι της κλάσης Point3D που πρέπει να υλοποιηθούν είναι: public Point3D() //constructs the point (0, 0, 0) public Point3D(int x,int y,int z) //constructs a point with given x/y/z coordinates public void setlocation(int x,int y,int z)//sets coordinates to the given values public int getz() //returns the z-coordinate Κάποιες από τις μεθόδου της κλάσης Point που θα πρέπει να υλοποιηθούν ξανά στην Point3D γιατί εμφανίζουν διαφορετική συμπεριφορά είναι: Όταν καλείται η αρχική έκδοση στην Point της μεθόδου setlocation(x,y) θα πρέπει να αναθέτει τις x- και y-συντεταγμένες του 3-D σημείου όπως καθορίζει το συμβόλαιο της Point, ενώ η z-συντεταγμένη θα τεθεί ίση με 0. Όταν ένα 3-D σημείο τυπώνεται με χρήση της μεθόδου tostring(), θα πρέπει να επιστρέφει συμβολοσειρά: "(x, y, z)", ώστε να εμφανίζονται και οι τρεις συντεταγμένες. Η απόσταση ενός 3-D σημείου από την αρχή των αξόνων, υπολογίζεται χρησιμοποιώντας και τις τρεις συντεταγμένες. Η απόσταση ισούται με την τετραγωνική ρίζα του (x 2 + y 2 + z 2 ). Πρέπει επίσης να φτιάξετε αντικείμενα τύπου Point3D, τα οποία θα είναι συγκρίσιμα το ένα με το άλλο, χρησιμοποιώντας τη διεπαφή (interface) Comparable. Τα 3-D σημεία συγκρίνονται ως προς τη x-συντεταγμένη, στην συνέχεια ως προς την y-συντεταγμένη και τέλος ως προς την z-συντεταγμένη. Δηλαδή, ένα αντικείμενο Point3D με μικρότερη τη x- συντεταγμένη, θεωρείται ότι προηγείται από ένα άλλο αντικείμενο με μεγαλύτερη τη x-

ΗΥ252 Πρόοδος 24 Νοεμβρίου 2012 Σελίδα 6 από 8 συντεταγμένη. Αν δύο αντικείμενα Point3D έχουν την ίδια x-συντεταγμένη, αυτό με τη μικρότερη y- συντεταγμένη θεωρείται ότι προηγείται. Αν τα δύο αντικείμενα έχουν ίδιες τις x και y-συντεταγμένες, αυτό με τη μικρότερη z-συντεταγμένη θεωρείται ότι προηγείται. Αν δύο αντικείμενα έχουν τις ίδιες x, y και z-συντεταγμένες τότε θεωρούνται ίσα. public class Point3D extends Point implements Comparable { private int z; //1point public Point3D() { this(0, 0, 0); //2 points public Point3D(int x, int y, int z) { // super(x, y); // this.z = z; setlocation(x, y, z); //2 points public int getz() { return z; //2 points public String tostring() { return "(" + getx() + ", " + gety() + ", " + z + ")"; //2 points public void setlocation(int x, int y) { setlocation(x, y, 0); //2 points public void setlocation(int x, int y, int z) { super.setlocation(x, y); this.z = z; //3 points public double distancefromorigin() { return Math.sqrt(getX() * getx() + gety() * gety() + z * z); //2 points public int compareto(point3d other) { if (getx()!= other.getx()) { return getx() - other.getx(); else if (gety()!= other.gety()) { return gety() - other.gety(); else { return z - other.z //7 points Άσκηση 6 (12 μονάδες) // Υλοποίηση Αφαιρετικών Τύπων Δεδομένων Το πακέτο java.util περιέχει μια διεπαφή (interface) για την αναπαράσταση μια ουράς στην οποία τα αντικείμενα προστίθενται (add) στο ένα άκρο (tail) και αφαιρούνται (pool) από το άλλο (front). Θεωρούμε την παρακάτω παραλλαγή αυτής της διεπαφής για την αναπαράσταση ουρών από συμβολοσειρές όπου η μέθοδος poll() αφαιρεί και επιστρέφει μια συμβολοσειρά από την κεφαλή της ουράς (ή επιστρέφει null εάν η ουρά είναι κενή): /** * This interface represents a collection of objects * called a "queue" in which new Strings are added at the * end of the queue and removed from the front, giving

ΗΥ252 Πρόοδος 24 Νοεμβρίου 2012 Σελίδα 7 από 8 * rise to a typical first-come/first-served waiting line. */ public interface MinimalStringQueue { /** Adds a new String to the end of the queue */ public void add(string str); /** Removes and returns the first String (or null if queue is empty) */ public String poll(); /** Returns the number of entries in the queue. */ public int size(); Σας ζητείται να υλοποιήσετε την διεπαφή MinimalStringQueue σε μια κλάση StringQueue η οποία αποθηκεύει στην μεταβλητή στιγμιοτύπων (waitingline) τύπου Vector τις συμβολοσειρές της ουράς. Ένα παράδειγμα χρήσης της κλάσης StringQueue με συμβολοσειρές από την χριστουγεννιάτικη ιστορία του Κάρολου Ντίκενς σας δίνεται στην συνέχεια: StringQueue queue = new StringQueue (); queue.add("christmas Past"); queue.add("christmas Present"); queue.add("christmas Future"); Η κλήση queue.size() θα επιστέψει 3 ενώ η πρώτη κλήση της queue.poll() θα επιστρέψει "Christmas Past" η δεύτερη "Christmas Present", η τρίτη "Christmas Future", και η τέταρτη null. * * File: StringQueue.java * ---------------------- * This program implements the MinimalStringQueue interface * using a Vector for internal storage. */ import java.util.*; /** Implements a Vector queue */ public class StringQueue implements MinimalStringQueue { /* Private instance variables */ private Vector waitingline; // 1 point /** Creates a new empty queue. */ public StringQueue() { waitingline = new Vector(); // 2 points /** Adds a new String to the end of the queue */ public void add(string str) { waitingline.addelement(str); // 2 points /** Removes and returns the first String (or null if queue is empty) */ public String poll() { if (waitingline.isempty()) return null; String first = (String) waitingline.elementat(0); waitingline.removeelementat(0); return first; // 5 points /** Returns the number of entries in the queue. */ public int size() { return waitingline.size(); //2 points

ΗΥ252 Πρόοδος 24 Νοεμβρίου 2012 Σελίδα 8 από 8 Άσκηση 7 (11 μονάδες) // Θεωρία Αντικειμενοστραφούς Κώδικα (α) (6 μονάδες) Για κάθε μία από τις ακόλουθες περιπτώσεις υποδείξτε εάν ενδείκνυται η δημιουργία μιας ελεγμένης (checked) ή μη-ελεγμένης (unchecked) εξαίρεσης. Δικαιολογήστε σύντομα την απάντησή σας. (i) Ένας κώδικας πελάτης χρησιμοποιεί ένα όρισμα (argument) που παραβιάζει μια πρωθύστερη (precondition) συνθήκη. (ii) Ένας κώδικας πελάτης χρησιμοποιεί ένα όνομα αρχείου το οποίο δεν μπορεί να βρεθεί. (iii) Ένας υλοποιητικός κώδικας παρουσιάζει ένα σφάλμα το οποίο μπορεί να εντοπιστεί από δικούς του ελέγχους. Checked exceptions represent unusual or unexpected events such as being unable to open a file or a dropped network connection. While they are not necessarily expected to occur, they are things a client might want to handle. It is appropriate to document them as part of a method s interface if they might be thrown by the method, or require that the method catch them if they should not be visible outside On the other hand, unchecked exceptions generally indicate programming errors. They could appear anywhere in the code and documenting them would pointlessly clutter up interfaces. Thus, we should use a checked exception when it is essential that the client handle the condition. We should use se an unchecked exception if the client can prevent the exception (due to knowledge about the application s logic or due to a check), or if the exception is so severe that the client can t do anything about it. (i) The client supplied an argument that violates a precondition. unchecked (ii) The client specified a file name, but the file cannot be found. checked (iii) The implementation contains a bug that its own self-checks detected. unchecked (β) (5 μονάδες) Υποθέστε ότι δεν μπορούμε να δημιουργήσουμε στιγμιότυπα μια κλάσης Α. Πώς θα μπορούσε ένας κώδικας πελάτης να χρησιμοποιήσει την κλάση Α; Δικαιολογήστε σύντομα την απάντησή σας. There are two reasons that a class cannot be instantiated: its constructors always throw an exception, or the class is abstract. In either case, a client can call static methods that C defines. If the class is abstract, its non-static methods can be used by a subclass. (For full credit for the latter answer, you would have had to mention that the class was abstract.)