Professional Documents
Culture Documents
Ονοματεπώνυμο:...........................................................................
Αριθμός Μητρώου:.........................................................................
1. public int a [ ];
2. static int [ ] a;
3. public [ ] int a;
4. private int a [3];
5. private int [3] a [ ];
6. public final int [ ] a;
Απάντηση
..............................................................................................................................
1
2. Τι θα τυπώσει το πρόγραμμα;
Απάντηση
A. ΑΒΓΔ
B. Λάθος μεταγλώττισης
Γ. Θα τυπωθεί το Γ και στη συνέχεια ένα μήνυμα λάθους.
Δ. Θα τυπωθεί το ΒΓ και στη συνέχεια ένα μήνυμα λάθους.
class Test
{
public static void main(String [] args)
{
int x= 0;
int y= 0;
for (int z = 0; z < 5; z++)
{
if (( ++x > 2 ) || (++y > 2))
{
x++;
}
}
System.out.println(x + " " + y);
}
}
Απάντηση
Α. 5 3.
Β. 85
Γ. 82
Δ. 83
2
4)
Ένα μουσείο αποτελείται από αίθουσες και έχει ένα σύνολο επισκεπτών. Να υλοποιηθούν σε
java οι ακόλουθες κλάσεις:
1. Η κλάση Museum, η οποία αποτελείται από
a. ένα σύνολο αιθουσών και το πλήθος τους,
b. ένα σύνολο επισκεπτών και το πλήθος τους
c. μία μέγιστη χωρητικότητα επισκεπτών.
Επίσης εκτός από τις παραπάνω ιδιότητες, η κλάση περιέχει και τις ακόλουθες
μεθόδους:
a. ένα δημιουργό (constructor), όπου δημιουργούνται οι αίθουσες του,
περνώντας ως παράμετρο το πλήθος του, καθώς και τη μέγιστη
χωρητικότητα των επισκεπτών. Δεν υπάρχει αρχικά κανένας επισκέπτης.
b. μία μέθοδος πρόσθεσης επισκέπτη. Ειδικότερα, αρχικά ελέγχεται αν δεν
παραβιάζεται η χωρητικότητα των επισκεπτών. Αν δεν συμβαίνει αυτό ο
επισκέπτης προστίθεται στο σύνολο των επισκεπτών και ενημερώνεται το
πλήθος των επισκεπτών.
2. Η κλάση Room, η οποία αποτελείται από
a. ένα όνομα
b. ένα τύπο εκθεμάτων (π.χ. Γλυπτά, πίνακες ζωγραφικής)
Επίσης εκτός από τις παραπάνω ιδιότητες, η κλάση περιέχει και τις ακόλουθες
μεθόδους:
a. ένα δημιουργό, στον οποίο εκχωρούνται τιμές για τον τύπο και το όνομα.
b. μία μέθοδος η οποία επιστρέφει τον τύπο των εκθεμάτων.
c. μία μέθοδος η οποία τροποποιεί τον τύπο των εκθεμάτων βάσει μίας
παραμέτρου.
3. Η κλάση Visitor, η οποία αποτελείται από
a. ένα κωδικό
b. ένα σύνολο από ενδιαφέροντα (π.χ. Γλυπτά, πίνακες ζωγραφικής)
Επίσης εκτός από τις παραπάνω ιδιότητες, η κλάση περιέχει και τις ακόλουθες
μεθόδους:
a. ένα δημιουργό, στον οποίο εκχωρούνται τιμές για τον κωδικό και τα
ενδιαφέροντα.
b. μία μέθοδος ελέγχου της επίσκεψης του σε ένα μουσείο. Ελέγχει δηλαδή αν
τα ενδιαφέροντά του συμπίπτουν με κάποιο από τα εκθέματα των αιθουσών
του μουσείου.
(3 Μονάδες)
3
4
5
5)
Να δημιουργήσετε δυο προγράμματα τον Client και τον MathServer που επικοινωνούν μεταξύ
τους μέσω TCP sockets.
Προσοχή δεν θέλουμε κανένα από τα προγράμματα MathServer και Client να
δημιουργούν νήματα (threads)
Ο Client, είναι ένα πρόγραμμα το οποίο στέλνει στον MathServer το όνομά σας, το
επώνυμό και τον αριθμό μητρώου (ΑΜ) σας. (Όλα τα δεδομένα μπορούν να δίνονται
μέσα στον κώδικα).
Ο MathServer αφού λάβει τα στοιχεία αρχικά υπολογίζει είτε το πλήθος των περιττών
αριθμών που υπάρχουν μέχρι τον ΑΜ σας ξεκινώντας από το 1 στην περίπτωση που
το μήκος του ονοματεπώνυμού σας είναι περιττό ή το πλήθος των άρτιων αριθμών
που υπάρχουν μέχρι τον ΑΜ σας ξεκινώντας από το 0 στην περίπτωση που το μήκος
του ονοματεπώνυμού σας είναι άρτιο. Στη συνέχεια απαντά στον Client στέλνοντάς
του πίσω μήνυμα της μορφής:
“Τhe result is: XXXXXX”
όπου τo ΧΧΧΧΧ αντιστοιχεί στο αποτέλεσμα της πράξης. Σε περίπτωση που o ο
Client του στέλενει έναν αρνητικό αρθμό θα εμφανίζει το μήνυμα “Error!!!!” αντί του
αποτελέσματος.
Ο MathServer παρέχει αυτήν την υπηρεσία, καθώς εκτελείται συνέχεια σε κάποιον
απομακρυσμένο υπολογιστή. Για τον αριθμό θύρας της υπηρεσίας χρησιμοποιήστε
την 4523.
Ο Client αφού πάρει το μήνυμα από τον MathServer το εμφανίζει στην οθόνη και
σταματά την εκτέλεσή του.
(4 Μονάδες)
ΠΡΟΣΟΧΗ: ΑΝΤΙΓΡΑΦΗ ΠΑΡΕΜΦΕΡΩΝ ΛΥΣΕΩΝ ΠΟΥ ΛΥΝΟΥΝ ΑΛΛΟ ΠΡΟΒΛΗΜΑ
ΚΑΙ ΟΧΙ ΤΟ ΣΥΓΚΕΚΡΙΜΕΝΟ ΒΑΘΜΟΛΟΓΟΥΝΤΑΙ ΜΕ ΜΗΔΕΝ
6
7
8
Παράδειγμα απλού TCP client
import java.io.*;
import java.net.*;
class TCPClient {
public static void main(String argv[]) throws Exception {
String sentence;
String modifiedSentence;
BufferedReader inFromUser =
new BufferedReader(new InputStreamReader(System.in));
Socket clientSocket = new Socket("localhost", 6789);
DataOutputStream outToServer =
new DataOutputStream(clientSocket.getOutputStream());
BufferedReader inFromServer = new BufferedReader(
new InputStreamReader(clientSocket.getInputStream()));
sentence = inFromUser.readLine();
outToServer.writeBytes(sentence + '\n');
modifiedSentence = inFromServer.readLine();
System.out.println("FROM SERVER: " + modifiedSentence);
clientSocket.close();
}
}
import java.io.*;
import java.net.*;
class TCPServer {
public static void main(String argv[]) throws Exception {
String clientSentence;
String capitalizedSentence;
ServerSocket welcomeSocket = new ServerSocket(6789);
while (true) {
Socket connectionSocket = welcomeSocket.accept();
BufferedReader inFromClient = new BufferedReader(
new InputStreamReader(connectionSocket.getInputStream()));
DataOutputStream outToClient =
new DataOutputStream(connectionSocket.getOutputStream());
clientSentence = inFromClient.readLine();
System.out.println("Received: " + clientSentence);
capitalizedSentence = clientSentence.toUpperCase() + '\n';
outToClient.writeBytes(capitalizedSentence);
}
}
}