Τμήμα Πολιτικών Μηχανικών και Μηχανικών Περιβάλλοντος ΠΠΜ 401: Ανάπτυξη Λογισμικού Εφαρμογών Μηχανικής, :00-10:00 π.μ.

Σχετικά έγγραφα
9:00-10:00 π.μ. (60 λεπτά) Παρασκευή, 14 Οκτωβρίου, 2016

Καλές επιτυχίες παιδιά στα υπόλοιπα μαθήματά σας και καλές γιορτές!!!!

Καλές επιτυχίες παιδιά στα υπόλοιπα μαθήματά σας και καλές γιορτές!!!!

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.

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

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

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Copy Constructor Deep and Shallow Copies

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

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

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

Κατασκευαστές. Μέθοδοι Κατασκευής (Constructors).

Αντικείµενα. ηµιουργία και χρησιµοποίηση αντικειµένων. ηµιουργία αντικειµένων

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Υπάρχουσες κλάσεις και αντικείμενα στην Java Strings Wrapper Classes Δομές

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

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

Mεταβλητές (variables) και Σταθερές (constants)

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

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

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

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

Εισαγωγή στη γλώσσα προγραμματισμού JAVA. Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών

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

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

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

Το πρόγραμμα HelloWorld.java. HelloWorld. Κλάσεις και Αντικείμενα (2) Ορισμός μιας Κλάσης (1) Παύλος Εφραιμίδης pefraimi <at> ee.duth.

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 26/2/2008

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 4 : CLASSES

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

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

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Μέθοδοι που επιστρέφουν αντικείμενα Deep and Shallow Copies

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων

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

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

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

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

public void printstatement() { System.out.println("Employee: " + name + " with salary: " + salary);

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

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

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

CSD Univ. of Crete Φθινόπωρο Άσκηση 1 Εκφώνηση

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

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

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

ΠΠΜ 501: Προχωρημένη Ανάλυση Κατασκευών με Η/Υ

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

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

ΕΠΛ131 Αρχές Προγραμματισμού

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων

B. Ενσωμάτωση Ιθαγενών Μεθόδων

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Έλεγχος ισότητας String Interning Αποαναφοροποίηση - dereferencing

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

HelloWorld. Παύλος Εφραιμίδης. Java Το πρόγραμμα HelloWorld 1

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

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

ΠΠΜ 221: Ανάλυση Κατασκευών με Μητρώα. 2 η Πρόοδος. 9:00-10:10 μ.μ. (70 λεπτά) Πέμπτη, 30 Μαρτίου, 2017

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Χρήση Δομών String processing Στατικές μέθοδοι και μεταβλητές

Μ.Π.Σ. «ΠΡΟΗΓΜΕΝΕΣ ΜΕΘΟΔΟΙ ΚΑΤΑΣΚΕΥΗΣ ΠΡΟΙΟΝΤΩΝ ΑΠΟ ΞΥΛΟ» Μάθημα: Σχεδίαση και Εφαρμογές Διαδραστικών Συστημάτων. Διδάσκοντας: Α.

ΠΠΜ 221: Ανάλυση Κατασκευών με Μητρώα

Πολλές φορές έχουμε πολλές μεταβλητές του ίδιου τύπου που συσχετίζονται και θέλουμε να τις βάλουμε μαζί.

Πακέτα (Packages) Φωλιασμένες ή Εσωτερικές Κλάσεις (Inner Classes) Παναγιώτης Σφέτσος, PhD

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

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Υπάρχουσες κλάσεις και αντικείμενα στην Java Strings Wrapper Classes Δομές

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ 035: οµές εδοµένων και Αλγόριθµοι για Ηλεκτρολόγους Μηχανικούς και Μηχανικούς Υπολογιστών

Ενδιάμεση Πρόοδος. 10:30-11:30 π.μ. (60 λεπτά), Δευτέρα, 19 Μαρτίου, 2018

ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή

ΕΡΓΑΣΙΑ 4 - Αντικειμενοστραφής Υλοποίηση του Συστήματος Κατανομής Θέσεων σε Προγράμματα Σπουδών

ΠΠΜ 221: Ανάλυση Κατασκευών με Μητρώα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων

Μέθοδοι. Μέθοδοι ηµιουργοί, Υπερφόρτωση και Υπέρβαση Μεθόδων

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων

ΕΠΛ131 Αρχές Προγραμματισμού Ι

Transcript:

Πανεπιστήμιο Κύπρου Πολυτεχνική Σχολή Τμήμα Πολιτικών Μηχανικών και Μηχανικών Περιβάλλοντος ΠΠΜ 401: Ανάπτυξη Λογισμικού Εφαρμογών Μηχανικής, 2016 Ακαδημαϊκό Έτος 2018-19, Χειμερινό Εξάμηνο 1 η Ενδιάμεση Πρόοδος 9:00-10:00 π.μ. (60 λεπτά) Παρασκευή, 12 Οκτωβρίου, 2016 Όνομα: Επίθετο: Αριθμός Ταυτότητας: E-mail: Τηλέφωνο: Πρόβλημα Μονάδες Βαθμός 1 17 2 12 3 12 4 13 5 46 Τελικός Βαθμός: ΠΠΜ 401: Ανάπτυξη Λογισμικού Εφαρμογών Μηχανικής, 2018, 1/12

Άσκηση 1: [17 μονάδες] Υποθέστε ότι έχετε γράψει τον Java κώδικα σας για την επίλυση ενός προβλήματος στο αρχείο Arxeio1.java, το οποίο περιέχει τις τάξεις MyClass1 και MyClass2, και στο αρχείο Arxeio2.java, το οποίο περιέχει τις τάξεις MyClass3 και MyClass4. (α) Γράψτε τις εντολές που απαιτούνται για να μεταγλωττίσετε, τον πηγαίο κώδικα (source code) σε Java, που έχετε αναπτύξει. (β) Ποια αρχεία θα δημιουργηθούν μετά την μεταγλώττιση του κώδικά σας; Δώστε επακριβώς τα ονόματά τους. (γ) Το περιεχόμενο των αρχείων που θα δημιουργηθούν μετά την μεταγλώττιση του κώδικά σας σε ποια μορφή είναι; (δ) Γράψτε την/τις εντολή/εντολές που απαιτείται/απαιτούνται για να εκτελέσετε το πρόγραμμά σας, θεωρώντας ότι η κύρια μέθοδος του προγράμματός σας (δηλαδή η μέθοδος main()) παρέχεται στην τάξη MyClass3. Πέτρος Κωμοδρόμος, 2018, Τμήμα Πολιτικών Μηχανικών και Μηχανικών Περιβάλλοντος: 2/12

Άσκηση 2: [12 μονάδες] ΠΠΜ 401: Ανάπτυξη Λογισμικού Εφαρμογών Μηχανικής, 2018 - Ενδιάμεση Εξέταση Μετά την εκτέλεση των πιο κάτω εντολών με τι ισούνται οι τιμές των πιο κάτω μεταβλητών; int a[] = 4, 3 ; int b = 5 ; int c = a[1]>b? 17 : 22 ; int d = ++b + a[1]++; int e= ++c; c += 100; a[0] *= 2; a[0] a[1] b c d e ΠΠΜ 401: Ανάπτυξη Λογισμικού Εφαρμογών Μηχανικής, 2018, 3/12

Άσκηση 3: [12 μονάδες] ΠΠΜ 401: Ανάπτυξη Λογισμικού Εφαρμογών Μηχανικής, 2018 - Ενδιάμεση Εξέταση Ποιο είναι το αποτέλεσμα (output) από την εκτέλεση της μεθόδου main() της πιο κάτω τάξης; class C int x=4; public static void main(string testabc[]) int x = 5; int y = 3; C c= new C(); System.out.println("1: " + x); System.out.println("2: " + y); System.out.println("3: " + c.x); changex(x); c.change(x); System.out.println("4. " + x); System.out.println("5. " + y); System.out.println("6. " + c.x); static void changex(int x) x += 100; void change(int x) x += x; 1: 2: 3: 4: 5: 6: Πέτρος Κωμοδρόμος, 2018, Τμήμα Πολιτικών Μηχανικών και Μηχανικών Περιβάλλοντος: 4/12

ΠΠΜ 401: Ανάπτυξη Λογισμικού Εφαρμογών Μηχανικής, 2018, 5/12

Άσκηση 4: [13 μονάδες] ΠΠΜ 401: Ανάπτυξη Λογισμικού Εφαρμογών Μηχανικής, 2018 - Ενδιάμεση Εξέταση Ποιο είναι το αποτέλεσμα (output) από την εκτέλεση της μεθόδου main() της πιο κάτω τάξης; public class Endiamesh1_4 public static void main(string[] args) int x = 5; int y[] = 11, 22 ; fun1(x, y[0]); fun1(x, y[1]); System.out.println("x = " + x); System.out.println("y[0] = " + y[0]); System.out.println("y[1] = " + y[1]); fun2(x, y); System.out.println("x = " + x); System.out.println("y[0] = " + y[0]); System.out.println("y[1] = " + y[1]); System.out.println(); static void fun1(int x, int y) y = x = 7; static void fun2(int y, int x[]) x[0] = y = x [1]= 3; Πέτρος Κωμοδρόμος, 2018, Τμήμα Πολιτικών Μηχανικών και Μηχανικών Περιβάλλοντος: 6/12

ΠΠΜ 401: Ανάπτυξη Λογισμικού Εφαρμογών Μηχανικής, 2018, 7/12

Άσκηση 5: [46 μονάδες] ΠΠΜ 401: Ανάπτυξη Λογισμικού Εφαρμογών Μηχανικής, 2018 - Ενδιάμεση Εξέταση Σύμφωνα με το πιο κάτω UML διάγραμμα, η τάξη Element έχει δύο μη στατικά μέλη, το inode και το jnode και ένα στατικό μέλος, το numelements, που αποθηκεύει τον αριθμό των αντικειμένων της τάξης Element που δημιουργούνται. Σας ζητείται να υλοποιήσετε την τάξη Element, παρέχοντας 3 μεθόδους κατασκευής (constructors), η μία χωρίς παραμέτρους, η άλλη με δύο int παραμέτρους με ονόματα inode και jnode που αντιπροσωπεύουν τις τιμές που θα πρέπει να δοθούν στα αντίστοιχα μέλη του αντικειμένου και μια άλλη μέθοδο που θα πρέπει να παίρνει μια παράμετρο που θα είναι αναφορά σε αντικείμενο της τάξης Element, της οποίας τις τιμές των inode και jnode θα πρέπει να χρησιμοποιήσει για να ορίσει τα αντίστοιχα inode και jnode του αντικειμένου υπό δημιουργία, καλώντας την προηγούμενη (δεύτερη) μέθοδο κατασκευής. Η μεταβλητή numelements θα πρέπει να προσαυξάνεται στη 2 η μέθοδο κατασκευής, αφού οι άλλες 2 θα πρέπει να την καλούν με τις κατάλληλες παραμέτρους. Συγκεκριμένα, η μέθοδος κατασκευής χωρίς παραμέτρους πρέπει να καλεί τη δεύτερη μέθοδο κατασκευής αποστέλλοντας της τις τιμές 1 και 1, ενώ η 3 η μέθοδος κατασκευής θα πρέπει να καλεί τη δεύτερη μέθοδο κατασκευής αποστέλλοντας της τις τιμές των αντίστοιχων μελών του αντικειμένου που λαμβάνει σαν παράμετρο. Επιπλέον, θα πρέπει να ορίσετε τις μη στατικές μεθόδους setinode() και setjnode(), οι οποίες θα πρέπει να ορίζουν τα αντίστοιχα μέλη του αντικειμένου, και τις μεθόδους getinode() και getjnode() που θα πρέπει να επιστρέφουν τις τιμές των αντίστοιχων μελών του αντικειμένου. Επίσης, θα πρέπει να ορίσετε τη στατική μέθοδο getnumelements() ώστε να επιστρέφει το συνολικό αριθμό των αντικειμένων που έχουν δημιουργηθεί. Τέλος, θα πρέπει να επαναορίσετε τη μέθοδο tostring(), η οποία θα πρέπει να επιστρέφει σαν String τους κόμβους αρχής και τέλους του αντικειμένου, π.χ., inode = 1 jnode = 7 Element - inode : Integer - jnode : Integer - numelements : Integer + Element() + Element(iNode:Integer, jnode:integer) + Element(element:Element) + setinode(i:integer) + setjnode(j:integer) + getinode():integer + getjnode():integer + getnumelements() : Integer + tostring() : String Πέτρος Κωμοδρόμος, 2018, Τμήμα Πολιτικών Μηχανικών και Μηχανικών Περιβάλλοντος: 8/12

Στη συνέχεια θα πρέπει να δημιουργήσετε στη μέθοδο main() της τάξης Exam1_5 ένα πίνακα με τρία (3) αντικείμενα της τάξης Element με το όνομα elements. Συγκεκριμένα, θα πρέπει να δημιουργήσετε ένα πίνακα με το όνομα elements με 3 στοιχεία που να είναι αναφορές σε αντικείμενα της τάξης Element, τα οποία θα πρέπει αντίστοιχα να δημιουργηθούν με κλήση της μεθόδου κατασκευής (constructor) χωρίς παραμέτρους το πρώτο, της μεθόδου κατασκευής με παραμέτρους 3 και 5 το δεύτερο, και της μεθόδου κατασκευής με το δεύτερο αντικείμενο ως παράμετρο κατά τη δημιουργία του τρίτου αντικειμένου του πίνακα. Ακολούθως, καλέστε με το δεύτερο αντικείμενο του πίνακα τη μέθοδο setinode() με παράμετρο 2 και με το πρώτο αντικείμενο τη μέθοδο setjnode () με παράμετρο 7. Τέλος, αφού τυπώσετε τη λέξη "Elements", μέσα από ένα βρόγχο τυπώστε για το κάθε αντικείμενο, το όνομα του (π.χ. elements[1]:) και το αντικείμενο, αξιοποιώντας τη μέθοδο tostring (π.χ. elements[1]: inode = 2 jnode = 5), ώστε η εκτύπωση που θα προκύψει από εκτέλεση του προγράμματος να έχει μορφή παρόμοια με την πιο κάτω: Elements elements[0]: inode = 1 jnode = 7 elements[1]: inode = 2 jnode = 5 elements[2]: inode = 3 jnode = 5 class Exam1_5 public static void main(string[] args) // Δημιουργήστε ένα πίνακα με το όνομα elements με 3 στοιχεία // που να είναι αναφορές σε αντικείμενα της τάξης Element // τα οποία θα πρέπει αντίστοιχα να δημιουργηθούν με κλήση // του constructor χωρίς παραμέτρους το πρώτο, // του constructor με παραμέτρους 3 και 5 το δεύτερο, // και του constructor με το δεύτερο αντικείμενο ως παράμετρο για το τρίτο ΠΠΜ 401: Ανάπτυξη Λογισμικού Εφαρμογών Μηχανικής, 2018, 9/12

// Καλέστε με το δεύτερο αντικείμενο τη μέθοδο setinode() με παράμετρο 2 // Καλέστε με το πρώτο αντικείμενο τη μέθοδο setjnode () με παράμετρο 7 // Αφού τυπώσετε τη λέξη "Elements", // μέσα από ένα επαναληπτικό βρόγχο τυπώστε το όνομα του κάθε αντικειμένου (π.χ. elements[1]:) // του πίνακα και το αντικείμενο, καλώντας τη μέθοδο tostring (π.χ. elements[1]: inode = 2 jnode = 5) class Element // Ορίστε τα στατικά και μη στατικά μέλη της τάξης με κατάλληλη πρόσβαση Πέτρος Κωμοδρόμος, 2018, Τμήμα Πολιτικών Μηχανικών και Μηχανικών Περιβάλλοντος: 10/12

// Ορίστε τις τρεις μεθόδους κατασκευής (constructors) της τάξης, // μία χωρίς παραμέτρους που θα πρέπει να καλεί τη δεύτερη με τιμές 1 και 1 // μία που να παίρνει δύο int με ονόματα inode και jnode // και μία που να παίρνει σαν παράμετρο ένα Element αντικείμενο και η οποία θα πρέπει // να καλεί τη δεύτερη μέθοδο κατασκευής με παραμέτρους τα inode και jnode του // αντικειμένου που λαμβάνει σαν παράμετρο // Η προσαύξηση του numelements θα πρέπει να γίνεται στη δεύτερη μέθοδο κατασκευής // Ορίστε τις μεθόδους setinode και setjnode, // οι οποίες θα πρέπει να ορίζουν τα αντίστοιχα μέλη του αντικειμένου ΠΠΜ 401: Ανάπτυξη Λογισμικού Εφαρμογών Μηχανικής, 2018, 11/12

// Ορίστε τις μεθόδους getinode και getjnode, // οι οποίες θα πρέπει να επιστρέφουν τις τιμές των αντίστοιχων μελών του αντικειμένου // Ορίστε τη στατική μέθοδο getnumelements που θα πρέπει να επιστρέφει // το συνολικό αριθμό των Element αντικειμένων που έχουν δημιουργηθεί. // Επαναορίστε τη μέθοδο tostring(), η οποία θα πρέπει να επιστρέφει το inode // και jnode του αντικειμένου, όπως π.χ. inode = 2 jnode = 5 Πέτρος Κωμοδρόμος, 2018, Τμήμα Πολιτικών Μηχανικών και Μηχανικών Περιβάλλοντος: 12/12