You are on page 1of 9

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

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

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: Διαδικτυακές Εφαρμογές

ΕΙΣΗΓΗΤΗΣ: Δημήτρης Βέργαδος


ΔΙΑΡΚΕΙΑ: 2 ΩΡΕΣ
5 Φεβρουαρίου 2019

Ονοματεπώνυμο:...........................................................................

Αριθμός Μητρώου:.........................................................................

Κάθε ερώτηση πολλαπλής επιλογής αν απαντηθεί σωστά πιάνει 1


ενώ αν απαντηθεί λάθος αφαιρείται 0.5

1. Ποιες από τις ακόλουθες δηλώσεις πινάκων είναι οι σωστές:

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. Τι θα τυπώσει το πρόγραμμα;

public class Thema2


{
public static void main(String [] args)
{
try
{
badMethod();
System.out.print("A");
}
catch (Exception ex)
{
System.out.print("B");
}
finally
{
System.out.print("C");
}
System.out.print("D");
}
public static void badMethod()
{
throw new Error();
}
}

Απάντηση
A. ΑΒΓΔ
B. Λάθος μεταγλώττισης
Γ. Θα τυπωθεί το Γ και στη συνέχεια ένα μήνυμα λάθους.
Δ. Θα τυπωθεί το ΒΓ και στη συνέχεια ένα μήνυμα λάθους.

3. Ποιο θα είναι το αποτέλεσμα της εκτέλεσης του παρακάτω προγράμματος;

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();
}
}

Παράδειγμα απλού TCP client

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);
}
}
}

You might also like