ΕΠΙΧΕΙΡΗΣΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΕΚΠΑΙ ΕΥΣΗΣ ΚΑΙ ΑΡΧΙ- ΚΗΣ ΕΠΑΓΓΕΛΜΑΤΙΚΗΣ ΚΑΤΑΡΤΙΣΗΣ (ΕΠΕΑΕΚ ΙΙ)

Σχετικά έγγραφα
ΕΠΙΧΕΙΡΗΣΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΕΚΠΑΙ ΕΥΣΗΣ ΚΑΙ ΑΡΧΙΚΗΣ ΕΠΑΓΓΕΛΜΑΤΙΚΗΣ ΚΑΤΑΡΤΙΣΗΣ (ΕΠΕΑΕΚ ΙΙ)

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

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

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

java.lang Class Throwable

ΣΕΤ ΑΣΚΗΣΕΩΝ 3. Προθεσµία: Πέµπτη 17/12/2015, 22:00

Πρόγραµµα 9.1 Πέρασµα δεδοµένων στην µνήµη

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΥ ΕΞΑΜΗΝΟ : Α. ΥΠΕΥΘΥΝΟΣ ΜΑΘΗΜΑΤΟΣ : Μάγια Σατρατζέµη

Περιεχόµενα. 1 Εισαγωγή στις οµές εδοµένων 3. 2 Στοίβα (Stack) 5

Ν!=1*2*3* *(N-1) * N => N! = (Ν-1)! * N έτσι 55! = 54! * 55

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

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

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

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

Α2. Να γράψετε στο τετράδιο απαντήσεών σας το κατάλληλο τμήμα κώδικα, κάνοντας τις απαραίτητες αλλαγές σύμφωνα με την εκάστοτε εκφώνηση:

Εισαγωγή στη JAVA. Εισαγωγή στη Java. Η Java είναι δημιούργημα της SUN MICROSYSTEMS.

ΕΞΑΙΡΕΣΕΙΣ. Εξαιρέσεις προκαλούνται. από το σύστηµα. από το πρόγραµµα

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

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

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 3. Προθεσµία: Τετάρτη 7/12/2016, 21:00

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


Διαδικασιακός Προγραμματισμός

Στοιχεία εξεταζόµενου Αριθµός Απάντησης Βαθµολογία. Σύνολο (Θέµα 4 ο )

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

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

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

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

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

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

Ινστιτούτο Επαγγελµατική Κατάρτιση Κορυδαλλού "ΤΕΧΝΙΚΟΣ ΣΥΣΤΗΜΑΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ" (Ερωτήσεις Πιστοποίησης στην γλώσσα προγραµµατισµού C)

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

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

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού

Διαδικασιακός Προγραμματισμός

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

Ενδεικτικές λύσεις και στατιστικά

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

10.1 Γενικά για τα streams

ΣΕΤ ΑΣΚΗΣΕΩΝ 2. Προθεσµία: 15/11/09, 23:59

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

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

Generics και ArrayLists

Μάθημα 1 [3/11/2015].

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 12: Ροές και είσοδος/έξοδος αρχείων

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

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

p

Προγραμματισμός ΙΙ (Java) 4. Διαχείριση εξαιρέσεων

int Α[] = {4, 16, 22, 12, 9, 15, 10}; { 4, 9, 10, 12, 15, 16, 22 } Α[0]=4, Α[1]=9, Α[2]=10 { 4, 16,22, 12, 9, 15, 10} { 4, 12, 16, 22, 9, 15,16, 22 }

Προγραµµατισµός Ι Εργαστήριο 13ο Ακαδ. Έτος ΕΡΓΑΣΤΗΡΙΟ 13 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

Προγραµµατισµός Ι Εργαστήριο 13ο Ακαδ. Έτος ΕΡΓΑΣΤΗΡΙΟ 13 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

2.1. Εντολές Σχόλια Τύποι Δεδομένων

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

Προγραμματισμός 2 Σημειώσεις εργαστηρίου

ΟΜΟΣΠΟΝΔΙΑ ΕΚΠΑΙΔΕΥΤΙΚΩΝ ΦΡΟΝΤΙΣΤΩΝ ΕΛΛΑΔΟΣ (Ο.Ε.Φ.Ε.) ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2019 Β ΦΑΣΗ

ΣΥΝΟΛΟ ΣΕΛΙ ΩΝ: ΕΠΤΑ (7)

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

Εργαστηριακή Άσκηση 1

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

#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128]

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

Projects στο Εργαστήριο Αρχιτεκτονικής Υπολογιστών Version 2 Ισχύει από Φεβρουάριο 2009

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

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

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

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

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Wrapper Classes, Abstract Classes and Interfaces

Μονάδες 10. Μονάδες 9 5 PROLOG. Μονάδες 5

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

Ανακτήθηκε από την ΕΚΠΑΙΔΕΥΤΙΚΗ ΚΛΙΜΑΚΑ

1 ΕΙΣΑΓΩΓΗ. Πρωταρχικοί Τύποι

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

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

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

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

επιµέλεια Θοδωρής Πιερράτος

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 3. Προθεσµία: 18/12/12, 22:00

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #5

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

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

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 6 : ΠΙΝΑΚΕΣ

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

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης

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

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

Εγχειρίδιο χρήσης του συστήµατος εκπαίδευσης από απόσταση «Εκπαίδευση χωρίς όρια» του Τ.Ε.Ι. Λάρισας. Λειτουργίες Μαθητών

Εξαιρέσεις. try, catch, finally, throw, throws

ΣΕΤ ΑΣΚΗΣΕΩΝ 3. Προθεσµία: 5/12/10, 23:59

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

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

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

Α2. Να γράψετε στο τετράδιο σας τον αριθμό 1-4 κάθε πρότασης και δίπλα το γράμμα που δίνει τη σωστή επιλογή.

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

Transcript:

ΑΛΕΞΑΝ ΡΕΙΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ ΘΕΣΣΑΛΟΝΙΚΗΣ ΕΡΓΟ: «ΕΝΙΣΧΥΣΗ ΣΠΟΥ ΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ» ΣΤΑ ΠΛΑΙΣΙΑ ΤΟΥ ΜΕΤΡΟ 2.2 «ΑΝΑΜΟΡΦΩΣΗ ΠΡΟΓΡΑΜΜΑΤΩΝ ΣΠΟΥ ΩΝ ΙΕΥΡΥΝΣΗ» ΕΝΕΡΓΕΙΑ 2.2.2 «ΟΛΟΚΛΗΡΩΣΗ ΤΗΣ ΙΕΥΡΥΝΣΗΣ ΚΑΙ ΑΝΑΜΟΡΦΩΣΗΣ ΤΩΝ ΠΡΟΓΡΑΜΜΑΤΩΝ ΣΠΟΥ ΩΝ ΤΗΣ ΤΡΙΤΟΒΑΘΜΙΑΣ ΕΚΠΑΙ ΕΥΣΗΣ» ΚΑΤΗΓΟΡΙΑ ΠΡΑΞΕΩΝ 2.2.2.γ «ΕΝΙΣΧΥΣΗ ΤΩΝ ΤΠΕ ΣΤΗΝ ΤΡΙΤΟΒΑΘΜΙΑ ΕΚΠΑΙ ΕΥΣΗ» ΠΑΚΕΤΟ ΕΡΓΑΣΙΑΣ 07 «Βελτίωση Περιεχοµένου Σπουδών του ΠΠΣ» ΙΟΥΝΙΟΣ 2006, ΘΕΣΣΑΛΟΝΙΚΗ

ΕΠΙΧΕΙΡΗΣΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΕΚΠΑΙ ΕΥΣΗΣ ΚΑΙ ΑΡΧΙ- ΚΗΣ ΕΠΑΓΓΕΛΜΑΤΙΚΗΣ ΚΑΤΑΡΤΙΣΗΣ (ΕΠΕΑΕΚ ΙΙ) 2003-06 ΜΕΤΡΟ ΕΝΕΡΓΕΙΑ ΚΑΤΗΓΟΡΙΑ ΠΡΑΞΕΩΝ 2.2 2.2.2 2.2.2.γ ΦΟΡΕΑΣ ΥΛΟΠΟΙΗΣΗΣ ΤΟΥ ΕΡΓΟΥ ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΙΤΛΟΣ ΕΡΓΟΥ ΕΝΙΣΧΥΣΗ ΣΠΟΥ ΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΣΤΟ ΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΠΑΚΕΤΟ ΕΡΓΑΣΙΑΣ Π.Ε. 07 Α. ΣΤΟΙΧΕΙΑ ΤΟΥ ΥΠΕΥΘΥΝΟΥ ΕΡΓΟΥ Α.1 ΟΝΟΜΑΤΕΠΩΝΥΜΟ ΗΜΗΤΡΙΟΣ ΚΛΕΦΤΟΥΡΗΣ Α.2 ΘΕΣΗ ΣΤΟΝ ΦΟΡΕΑ ΚΑΘΗΓΗΤΗΣ ΤΜΗΜΑΤΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΙΕΥΘΥ- ΝΤΗΣ ΣΧΟΛΗΣ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ Α.3 ΤΑΧΥ ΡΟΜΙΚΗ Ι- ΕΥΘΥΝΣΗ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ, ΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ, 57 400 ΘΕΣΣΑΛΟΝΙΚΗ Α.4 ΤΗΛΕΦΩΝΟ 2310 791299 Α.5 FAX 2310 791290 Α.6 ΗΛΕΚΤΡΟΝΙΚΟ ΤΑ- klefturi@it.teithe.gr ΧΥ ΡΟΜΕΙΟ Β. ΣΤΟΙΧΕΙΑ ΤΟΥ ΥΠΕΥΘΥΝΟΥ ΤΟΥ Π.Ε. Β.1 ΟΝΟΜΑΤΕΠΩΝΥΜΟ ΜΙΧΑΗΛ ΒΑΣΙΛΑΚΟΠΟΥΛΟΣ Β.2 ΕΠΑΓΓΕΛΜΑ ΑΝΑΠΛΗΡΩΤΗΣ ΚΑΘΗΓΗΤΗΣ ΤΜΗΜΑΤΟΣ ΠΛΗΡΟΦΟ- ΡΙΚΗΣ Β.3 ΤΑΧΥ ΡΟΜΙΚΗ ΙΕΥΘΥΝΣΗ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ, ΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ, 57 400 ΘΕΣΣΑΛΟΝΙΚΗ Β.4 ΤΗΛΕΦΩΝΟ 2310 791595 Β.5 FAX 2310 791290 Β.6 ΗΛΕΚΤΡΟΝΙΚΟ ΤΑ- vasilako@it.teithe.gr ΧΥ ΡΟΜΕΙΟ Γ. ΟΜΑ Α ΕΡΓΑΣΙΑΣ ΤΟΥ Π.Ε. Γ.1 ΟΝΟΜΑΤΕΠΩΝΥΜΑ κ. Βίτσας, κ. Κώστογλου, κα. Ζιώγου, κα. Μουρατίδου, κα. Α- δαµίδου, κ. Παρασκευαΐδης, κ.λούρδας, κ. Χατζηµίσιος, κ. Κατωπόδης, κ. Στυλιάδης, κ. Χειµωνίδης, κ. Καµαργιάννης, κ. Α- µανατιάδης, κ. Γουλιάνας, κ. Κεραµόπουλος, κ. Ψαρράς, κ. Κατσαβούνης, κ. Γιακουστίδης, κ. Βαλκάνος, κα. Κωνσταντινίδου, κ. Κοµµάτας, κ. Καράµπας, κ. Ηλιούδης, κ. αµιανίδης, κ. Χατζηπαπάς. Ενίσχυση Σπουδών Πληροφορικής - 2 - Πακέτο Εργασίας 07

. ΠΕΡΙΓΡΑΦΗ ΤΩΝ ΡΑΣΤΗΡΙΟΤΗΤΩΝ ΠΟΥ ΕΚΤΕΛΕΣΤΗΚΑΝ ΣΤΟ ΠΛΑΙΣΙΟ ΤΟΥ ΠΑΚΕ- ΤΟΥ ΕΡΓΑΣΙΑΣ, ΣΥΜΦΩΝΑ ΜΕ ΤΟΝ ΧΡΟΝΙΚΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΤΟΥ ΤΕΧΝΙΚΟΥ ΕΛΤΙΟΥ ΕΡΓΟΥ, ΑΛΛΑ ΚΑΙ ΕΠΙΠΛΕΟΝ ΕΡΓΑΣΙΕΣ. 1) ηµιουργία Γραφείου εκπαιδευτικής βοήθειας 2) ηµιουργία 12 εργαστηριών από απόσταση: a. Προγραµµατισµός Ι b. Προγραµµατισµός ΙΙ c. Λειτουργικά Συστήµατα. ΙΙ d. Βάσεις Ι e. Μεθοδολογίες Προγραµµατισµού Ι f. οµές εδοµένων Ι g. Αριθ. Ανάλυση & Προγ. Επιστ. Εφαρµ.Ι h. Στατιστική i. Βάσεις ΙΙ j. Μεθοδολογίες Προγραµµατισµού ΙΙ k. ίκτυα l. Ηλεκτρονικό Εµπόριο 3) ηµιουργία µαθήµατος από απόσταση για την ανάπτυξη Επιχειρηµατικότητας 4) ηµιουργία ιστοτόπου για τη γλωσσοµάθεια Ενίσχυση Σπουδών Πληροφορικής - 3 - Πακέτο Εργασίας 07

Πίνακας Περιεχοµένων 1. Γενικά... 5 2. Εργαστήριο 1... 6 3. Εργαστήριο 2... 9 4. Εργαστήριο 3... 12 5. Εργαστήριο 4... 14 6. Εργαστήριο 5... 16 7. Εργαστήριο 6... 19 8. Εργαστήριο 7... 20 9. Εργαστήριο 8... 22 10. Εργαστήριο 9... 25 11. Εργαστήριο 10... 26 Ενίσχυση Σπουδών Πληροφορικής - 4 - Πακέτο Εργασίας 07

1. Γενικά Το εργαστήριο από απόσταση «Προγραµµατισµός ΙΙ» άρχισε τη λειτουργία του από το εαρινό εξάµηνο 2003-2004 µε υπεύθυνη την πληροφορικό Ζιώγου Χρυσοβαλάντου και από το εαρινό εξάµηνο 2004-2005 µε υπεύθυνο τον πληροφορικό Λούρδα Βασίλειο. Στον παρακάτω πίνακα παρουσιάζονται τα ποσοστά συµµετοχής στο εργαστήριο ανά εξάµηνο από την έναρξη του εργαστηρίου. Εξάµηνο λειτουργίας Συµµετοχή φοιτητών Εαρινό εξάµηνο 2003-2004 7 φοιτητές, ποσοστό συµµετοχής 71% Χειµερινό εξάµηνο 2004-2005 10 φοιτητές, ποσοστό συµµετοχής 70% Εαρινό εξάµηνο 2004-2005 6 φοιτητές, ποσοστό συµµετοχής 50% Χειµερινό εξάµηνο 2005-2006 5 φοιτητές, ποσοστό συµµετοχής 80% Εαρινό εξάµηνο 2005-2006 6 φοιτητές, ποσοστό συµµετοχής 66% Ενίσχυση Σπουδών Πληροφορικής - 5 - Πακέτο Εργασίας 07

2. Εργαστήριο 1 1. Αναδροµή Να υλοποιήσετε τα ακόλουθα προβλήµατα µε την µέθοδο της αναδροµής. α) Το παραγοντικό β) Την ακολουθία Fibonacci 2. Υπολογισµός Παλίνδροµου αριθµού Να γραφεί ένα πρόγραµµα που να διαβάζει έναν θετικό ακέραιο (µονοψήφιο έως πενταψήφιο) και να εκτυπώνει µήνυµα για το εάν ο αριθµός αυτός είναι παλίνδροµος ή όχι. Παλίνδροµος είναι ο αριθµός που διαβάζεται το ίδιο από αριστερά προς δεξιά και το α- ντίστροφο, δηλαδή ο 121 είναι παλίνδροµος αριθµός ενώ ο 123 δεν είναι παλίνδροµος. Το πρόγραµµα θα πρέπει να εµφανίζει µηνύµατα λάθους στις περιπτώσεις που δεν δίνεται από τον χρήστη θετικός έως πενταψήφιος ακέραιος και σε περίπτωση σφάλµατος ο χρήστης θα πρέπει να δώσει εκ νέου κάποιον αριθµό. Το πρόγραµµά σας θα πρέπει να δέχεται 10 εισαγωγές αριθµών από κάθε χρήστη. Παραλλαγή: Να γραφεί ένα πρόγραµµα που να διαβάζει µία συµβολοσειρά και να εκτυπώνει µήνυµα εάν είναι παλίνδροµος ή όχι. 3. Πρώτοι αριθµοί Να γραφεί ένα πρόγραµµα που να υπολογίζει εάν ένας αριθµός είναι πρώτος ή όχι. Πρώτος αριθµός θεωρείται ένα ακέραιος που δεν µπορεί να διαιρεθεί µε κάποιο άλλο ακέραιο εκτός από τον εαυτό του και την µονάδα. Για παράδειγµα το 7 είναι πρώτος α- ριθµός γιατί οι διαιρέτες του είναι το 7 και το 1. Ο ακέραιος 8 δεν είναι πρώτος γιατί οι διαιρέτες του είναι το 1, 2, 4 και 8. Ο υπολογισµός να γίνει µε την µέθοδο της αναδροµής. Παραλλαγή: Γράψτε ένα πρόγραµµα που χρησιµοποιεί την παραπάνω µέθοδο και να εµφανίζει όλους τους πρώτους αριθµούς από το 1 µέχρι το 10.000. 4. Πύργοι του Ανόι Να γραφεί ένα πρόγραµµα που να επιλύει το ακόλουθο πρόβληµα µε την µέθοδο της α- ναδροµής: Έχουµε µία κατασκευή µε τρεις στύλους. Στον πρώτο είναι περασµένοι 4 δίσκοι. Πρέπει να µεταφέρουµε τους δίσκους από τον πρώτο στύλο στον τρίτο χρησιµοποιώντας τον δεύτερο στύλο σαν βοηθητικό µε τους ακόλουθους περιορισµούς: Ενίσχυση Σπουδών Πληροφορικής - 6 - Πακέτο Εργασίας 07

1. Μόνο ένας δίσκος µπορεί να µετακινηθεί κάθε φορά. 2. εν είναι δυνατόν να τοποθετηθεί µεγαλύτερος στύλος πάνω από ένα µικρότερο. Το πρόγραµµα σας θα εµφανίζει στην οθόνη ακριβείς οδηγίες για µετακίνηση των δίσκων. Έτσι για µετακίνηση τριών δίσκων από τον 1ο στύλο στον 3ο στύλο το πρόγραµ- µα πρέπει να γράψει: 1 -> 3 1 -> 2 3 -> 2 1 -> 3 2 -> 1 2 -> 3 1 -> 3 Υποδείξεις: Μπορείτε να χρησιµοποιήσετε µία αναδροµική συνάρτηση µε τέσσερις παραµέτρους: 1. Ο αριθµός των δίσκων που θα µετακινηθούν 2. Ο στύλος στον οποίο βρίσκονται οι δίσκοι 3. Ο στύλος στον οποίο θα καταλήξουν οι δίσκοι 4. Ο στύλος που θα χρησιµοποιηθεί σαν βοηθητικός Παραλλαγή: Τροποποιήστε το πρόγραµµα ώστε να επιλύει το πρόβληµα για 64 δίσκους. Βοήθεια: Ενίσχυση Σπουδών Πληροφορικής - 7 - Πακέτο Εργασίας 07

1. Χρησιµοποιείστε την παρακάτω κλάση για την εισαγωγή Strings από το πληκτρολόγιο, από την οποία θα χρησιµοποιηθεί η µέθοδος getstring() για την εισαγωγή του προς αναζήτηση επωνύµου. import java.io.*; class UserInput //Class gia eisagogi dedomenwn apo to pliktrologio static String getstring() //Methodos gia eisagogi String String line; InputStreamReader input=new InputStream- Reader(System.in); BufferedReader in=new BufferedReader(input); try line=in.readline(); return line; catch(exception e) return "Exception"; static int getinteger() //Methodos gia eisagogi Integer String line; InputStreamReader input=new InputStream- Reader(System.in); BufferedReader in=new BufferedReader(input); try line=in.readline(); int i=integer.parseint(line); return i; catch(exception e) return -1; Ενίσχυση Σπουδών Πληροφορικής - 8 - Πακέτο Εργασίας 07

3. Εργαστήριο 2 Σειριακή και υαδική Αναζήτηση, Πίνακες Κατακερµατισµού 1. Σειριακή Αναζήτηση Να γραφεί πρόγραµµα αναζήτησης σε Java, το οποίο θα εισάγει το 'Επώνυµο' φοιτητή και στη συνέχεια θα αναζητεί - σειριακά - σε πίνακα αντικειµένων 'Φοιτητών' και θα εµφανίζει όλα τα διαθέσιµα στοιχεία του (ή µήνυµα ότι δεν βρέθηκε). Ο πίνακας φοιτητών θα περιέχει τα ακόλουθα στοιχεία για 7 φοιτητές: Όνοµα, Επώνυµο, Αρ. Μητρώου, και Έτος. Βοήθεια: 1. Φτιάξτε µια τάξη Foititis µε όλα τα χαρακτηριστικά που αναφέρθηκαν προηγουµένως, όπου τα δεδοµένα για την δηµιουργία κάθε αντικειµένου φοιτητή θα εισάγονται µέσω δοµητή. 2. Φτιάξτε µια τάξη SeiriakiAnazitisi που περιέχει ένα πίνακα αντικειµένων της κλάσης Foititis και την µέθοδο anazitisimeepwnymo(), η οποία θα αναζητεί στον πίνακα τον συγκεκριµένο φοιτητή και θα εµφανίζει όλα τα στοιχεία του. 3. Χρησιµοποιείστε την κλάση UserInput για την εισαγωγή Strings από το πληκτρολόγιο, από την οποία θα χρησιµοποιηθεί η µέθοδος getstring() για την εισαγωγή του προς αναζήτηση επωνύµου. 2. υαδική Αναζήτηση Να γραφεί πρόγραµµα αναζήτησης σε Java, το οποίο θα εισάγει αρχικά ολόκληρο τον Αριθµ. Μητρώου φοιτητή και στη συνέχεια θα αναζητεί µε δυαδική µέθοδο σε πίνακα αντικειµένων Φοιτητών και θα εµφανίζει το Επώνυµο και το Ονοµα του. Εδώ µπορεί να χρησιµοποιηθεί ένας αντίστοιχος µε τον προηγούµενο πίνακα φοιτητών µε την προυπόθεση ότι θα είναι ταξινοµηµένος κατά αριθµό µητρώου. Βοήθεια: 1. Φτιάξτε µια τάξη Foititis µε όλα τα χαρακτηριστικά που αναφέρθηκαν προηγουµένως, όπου τα δεδοµένα για την δηµιουργία κάθε αντικειµένου φοιτητή θα εισάγονται µέσω δοµητή. 2. Φτιάξτε µια τάξη DyadikiAnazitisi που περιέχει ένα πίνακα αντικειµένων της κλάσης Foititis και την µέθοδο anazitisimearithmitrwou(), η οποία θα αναζητεί στον πίνακα τον συγκεκριµένο φοιτητή και θα εµφανίζει το Επώνυµο και το Ονοµα του. 3. Χρησιµοποιείστε την µέθοδο getinteger() της κλάσης UserInput για την εισαγωγή int από το πληκτρολόγιο του προς αναζήτηση αριθµού µητρώου. 3. Αναδροµική υαδική Αναζήτηση Ενίσχυση Σπουδών Πληροφορικής - 9 - Πακέτο Εργασίας 07

Στην τάξη της προηγούµενης άσκησης (2) να προστεθεί η µέθοδος anadromianazmearithmitrwou(), η οποία υλοποιεί την δυαδική αναζήτηση µε την αναδροµική µέθοδο. 4. Πίνακες κατακερµατισµού (Hashing tables) Να γραφεί πρόγραµµα πίνακα κατακερµατισµού σε Java, το οποίο θα εισάγει σε πίνακα 20 θέσεων τα αντικείµενα 7 Φοιτητών. Η εισαγωγή όλων των στοιχείων κάθε φοιτητή (Όνοµα, Επώνυµο, Αρ. Μητρώου, και Έτος) θα γίνεται από πληκτρολόγιο. Η διαδικασία της εισαγωγής του κάθε αντικειµένου φοιτητή στον πίνακα θα γίνεται από την µέθοδο katakermatismos(), µε κλειδί αντιστοίχισης σε δείκτη πίνακα του Επωνύ- µου. Η µέθοδος αυτή θα χρησιµοποιεί την απλή συνάρτηση του υπολοίπου ακέραιας διαίρεσης (mod). H(k) = k mod m (όπου m το µέγεθος του πίνακα) Στην περίπτωση σύγκρουσης (collision) κατά την εισαγωγή, αυτή θα επιλύεται µε την µέθοδο της γραµµικής διερεύνησης (αναζήτηση της επόµενης κενής θέσης) και θα εµφανίζεται σχετικό µήνυµα. Στο τέλος θα εµφανίζονται όλα τα στοιχεία των φοιτητών. Για την εισαγωγή των στοιχείων του Φοιτητή να χρησιµοποιηθούν οι µέθοδοι της κλάσης UserInput, getstring() και getint() που είχαν χρησιµοποιηθεί στο προηγούµενο εργαστήριο. import java.io.*; class UserInput //Class gia eisagogi dedomenwn apo to pliktrologio static String getstring() //Methodos gia eisagogi String String line; InputStreamReader input=new InputStream- Reader(System.in); BufferedReader in=new BufferedReader(input); try line=in.readline(); return line; catch(exception e) return "Exception"; static int getinteger() //Methodos gia eisagogi Integer String line; InputStreamReader input=new InputStream- Reader(System.in); BufferedReader in=new BufferedReader(input); try line=in.readline(); Ενίσχυση Σπουδών Πληροφορικής - 10 - Πακέτο Εργασίας 07

int i=integer.parseint(line); return i; catch(exception e) return -1; Ενίσχυση Σπουδών Πληροφορικής - 11 - Πακέτο Εργασίας 07

4. Εργαστήριο 3 Ταξινόµηση µε Εισαγωγή & Επιλογή (Insertion & Selection sort) Για την υλοποίηση των παρακάτω ασκήσεων θα χρησιµοποιήσετε την τάξη Φοιτητών που δηµιουργήσατε στο προηγούµενο εργαστήριο. 1. Ταξινόµηση µε Εισαγωγή Να γραφεί πρόγραµµα σε Java, το οποίο θα εισάγει σε πίνακα 7 θέσεων τα αντικείµενα 7 Φοιτητών και στη συνέχεια θα τα ταξινοµεί µε τη µέθοδο εισαγωγής κατά αριθµό µητρώου Η εισαγωγή των στοιχείων των φοιτητών θα γίνεται ως εξής: 1. Το «Όνοµα» και «Επώνυµο», θα εισάγονται κατά την δηµιουργία του αντικειµένου (µε την κλήση του δοµητή της κλάσης) στη µέθοδο main(), ενώ 2. ο «Αρ. Μητρώου» και το «Έτος εισαγωγής» θα εισάγονται αµέσως µετά µε τις ειδικές µεθόδους της κλάσης, setarmitroou() και setetoseisagwgis(), επίσης στη µέθοδο main(), οι οποίες µπορούν να χρησιµοποιήσουν τις κατάλληλες µεθόδους της κλάσης UserInput. 2. Ταξινόµηση µε Επιλογή Να γραφεί πρόγραµµα σε Java, το οποίο θα τα ταξινοµεί µε τη µέθοδο επιλογής κατά έ- τος εισαγωγής τα αντικείµενα της άσκησης 1. Για την εισαγωγή των στοιχείων του Φοιτητή να χρησιµοποιηθούν οι µέθοδοι της κλάσης UserInput, getstring() και getint() που είχαν χρησιµοποιηθεί στο προηγούµενο εργαστήριο. import java.io.*; class UserInput //Class gia eisagogi dedomenwn apo to pliktrologio static String getstring() //Methodos gia eisagogi String String line; InputStreamReader input=new InputStream- Reader(System.in); BufferedReader in=new BufferedReader(input); try line=in.readline(); return line; catch(exception e) return "Exception"; Ενίσχυση Σπουδών Πληροφορικής - 12 - Πακέτο Εργασίας 07

static int getinteger() //Methodos gia eisagogi String line; Integer InputStreamReader input=new InputStream- Reader(System.in); BufferedReader in=new BufferedReader(input); try line=in.readline(); int i=integer.parseint(line); return i; catch(exception e) return -1; 3. Bubblesort Να γραφεί πρόγραµµα σε Java, το οποίο θα τα ταξινοµεί µε τη µέθοδο bubblesort κατά έτος εισαγωγής τα αντικείµενα της άσκησης 1. Ενίσχυση Σπουδών Πληροφορικής - 13 - Πακέτο Εργασίας 07

5. Εργαστήριο 4 1. Γρήγορη ταξινόµηση Γρήγορη ταξινόµηση & ταξινόµηση µε Συγχώνευση (Quick & Merge Sort) Να γραφεί πρόγραµµα σε Java, το οποίο θα εισάγει σε πίνακα 7 θέσεων τα αντικείµενα 7 'Φοιτητών' και στη συνέχεια θα τα ταξινοµεί µε τη µέθοδο Γρήγορης ταξινόµησης κατά αριθµό µητρώου Η εισαγωγή των στοιχείων των φοιτητών θα γίνεται ως εξής: 1. Το «Όνοµα» και «Επώνυµο», θα εισάγονται κατά την δηµιουργία του αντικειµένου (µε την κλήση του δοµητή της κλάσης) στη µέθοδο main(), ενώ 2. ο «Αρ. Μητρώου» και το «Έτος εισαγωγής» θα εισάγονται αµέσως µετά µε τις ειδικές µεθόδους της κλάσης, setarmitroou() και setetoseisagwgis(), επίσης στη µέθοδο main(), οι οποίες µπορούν να χρησιµοποιήσουν τις κατάλληλες µεθόδους της κλάσης 'UserInput'. 2. Ταξινόµηση µε Συγχώνευση Να γραφεί πρόγραµµα σε Java, το οποίο θα ταξινοµεί µε τη µέθοδο συγχώνευσης κατά αριθµό µητρώου τα αντικείµενα του πίνακα της άσκησης 1. Για την εισαγωγή των στοιχείων του 'Φοιτητή' να χρησιµοποιηθούν οι µέθοδοι της κλάσης UserInput, getstring() και getint() που είχαν χρησιµοποιηθεί στο προηγούµενο εργαστήριο. import java.io.*; class UserInput //Class gia eisagogi dedomenwn apo to pliktrologio static String getstring() //Methodos gia eisagogi String String line; InputStreamReader input=new InputStream- Reader(System.in); BufferedReader in=new BufferedReader(input); try line=in.readline(); return line; catch(exception e) return "Exception"; static int getinteger() //Methodos gia eisagogi Integer String line; Ενίσχυση Σπουδών Πληροφορικής - 14 - Πακέτο Εργασίας 07

InputStreamReader input=new InputStream- Reader(System.in); BufferedReader in=new BufferedReader(input); try line=in.readline(); int i=integer.parseint(line); return i; catch(exception e) return -1; Στην κορυφή του προγράµµατος σας προσθέστε σχόλιο που περιλαµβάνει ονοµατεπώνυµο, τµήµα εργαστηρίου και εξάµηνο. Ενίσχυση Σπουδών Πληροφορικής - 15 - Πακέτο Εργασίας 07

6. Εργαστήριο 5 Γρήγορη ταξινόµηση & ταξινόµηση µε Συγχώνευση 1. ηµιουργία αντικειµένων (Σύνδεση & Σύνθεση) Σύνδεση (Aggregation) Να γραφεί πρόγραµµα σε Java, το οποίο θα δηµιουργεί ένα αριθµό αντικειµένων σε πίνακες, έναν για κάθε µια από τις ακόλουθες 3 κλάσεις: 7 από την κλάση Φοιτητής, όπου θα εισάγονται οι τιµές παραµετρικά µέσω δο- µητή. Η κλάση θα περιέχει επιπλέον έναν πίνακα µαθηµάτων που θα δηλώσει ο φοιτητής, dilwthenta[] : Mathima, καθώς και έναν µε τις βαθµολογίας κάθε µαθήµατος, bathmos[] : int. 3 από την κλάση Μάθηµα ('Mathima'), η οποία θα περιέχει τα πεδία (titlos : String, examino : char, kathigitis : String) και θα εισάγει τιµές παραµετρικά µέσω δοµητή. 2 από την κλάση Τάξη (Taxi) η οποία θα περιέχει τα πεδία (mathima : Mathima, String, akadimexamino : String, eggrafentes[] : Foititis) και θα εισάγει παραµετρικά µέσω δοµητή, τις τιµές µόνο των δύο πρώτων πεδίων. 2. Εγγραφές φοιτητών σε Τάξη Οι εγγραφές των φοιτητών σε µια τάξη θα γίνονται µε την ακόλουθη διαδικασία: Η κλάση Τάξη θα περιέχει µια µέθοδο, την eggrafi(foit[n]), η οποία θα τοποθετεί τον συγκεκριµένο φοιτητή (foit[n]), στον πίνακά της, eggrafentes[ι]. Πρώτα βέβαια θα αναζητεί µια κενή θέση. Η ίδια µέθοδος θα συµπληρώνει και τον πίνακα µαθηµάτων που δηλώνει ο φοιτητής και υπάρχει στην κλάση του, dilwthenta[] : Mathima, µε την κλήση της µεθόδου dilwsi(mathima), που υπάρχει στην κλάση του φοιτητή. 3. Εµφάνιση φοιτητών µιας Τάξης Μια µέθοδος στην κλάση Τάξη, η emfanisetaxi(), θα εµφανίζει τα στοιχεία της Τάξης και στη συνέχεια τα ονοµατεπώνυµα όλων των φοιτητών που ανήκουν σ αυτήν. Παράδειγµα: Θα καλείται από την main(). tax[1].emfanisetaxi() 4. Βαθµολογία φοιτητών µιας Τάξης Ενίσχυση Σπουδών Πληροφορικής - 16 - Πακέτο Εργασίας 07

Μια µέθοδος στην κλάση Τάξη, η bathmologia(), θα εµφανίζει τα στοιχεία της τάξης και στη συνέχεια, αφού εµφανίσει για κάθε φοιτητή το ονοµατεπώνυµό του, θα ζητάει την πληκτρολόγηση (UserInput.getInteger( Dwse bathmo: )) του βαθµού του, µόνο όµως για το εν λόγω µάθηµα. Βοήθεια Η αναζήτηση του µαθήµατος στον πίνακα dilwthenta[] του φοιτητή θα γίνεται µε την εντολή for και τη σύγκριση του τίτλου του µαθήµατος της Τάξης και του τίτλου του µαθήµατος του Φοιτητή όπως στο παράδειγµα: Παράδειγµα: for (int i=0;...) if (this.mathima.gettitlos().equals( this.eggrafentes[i].getmathima(this.mathima.gettitlos())); ΠΑΡΑΤΗΡΗΣΗ Στην αρχή κάθε ενότητας της µεθόδου main(), η οποία θα αναφέρεται σε κάθε µια από τις ερωτήσεις, να µπαίνουν σχόλια µε τον τίτλο της ερώτησης. Παράδειγµα: //4. Βαθµολογία φοιτητών µιας Τάξης 1. ηµιουργία αντικειµένων Σύνθεση (Composition) Να γραφεί πρόγραµµα σε Java, το οποίο θα δηµιουργεί 3 σύνθετα αντικείµενα σε πίνακα, της κλάσης Autokinito. Η κλάση αυτή θα ενσωµατώνει δύο αντικείµενα, ένα της κλάσης "SystimaDieythynsis και ένα της κλάσης "Mihani: Η κλάση Autokinito, έχει ακόµη 3 πεδία: (idioktitis: String, arkykloforias: String, etoskataskeyιs: int), καθώς και τις σχετικές µεθόδους ανάκτησης των δεδοµένων. Η κλάση SystimaDieythynsis, έχει 4 µεθόδους: (vazeiempros(), svynei(), strixeiaristera(), strixeidexia(). Η κλάση Mihani, έχει 2 πεδία (kyvismos:int, ippodynami:int), και 3 µεθόδους (leitourgia(), kinisi(), svysimo(). Η δηµιουργία των αντικειµένων θα γίνεται µε κλήση των δοµητών και πέρασµα των τι- µών παραµετρικά, εκτός των 2 πεδίων της κλάσης Autokinito, idioktitis και arkykloforias. 2. Εισαγωγή τιµών στα 2 πεδία Τιµές στα 2 πεδία της κλάσης Autokinito, idioktitis και arkykloforias, θα εισάγονται µε κλήση των µεθόδων τους. Ενίσχυση Σπουδών Πληροφορικής - 17 - Πακέτο Εργασίας 07

3. Εµφάνιση χαρακτηριστικών ενός αυτοκινήτου Να απαντώνται τα ακόλουθα ερωτήµατα µε την εµφάνιση σχετικών δεδοµένων: 1) Τι κυβισµό έχει ένα αυτοκίνητο; 2) Τι ιπποδύναµη έχει ένα αυτοκίνητο; 3) Ποιος είναι ο ιδιοκτήτης του και το έτος κατασκευής του; 4) Να εµφανίζονται σχετικά µηνύµατα κατά την κλήση των µεθόδων: a. vazeiempros() ή leitourgia() b. kinisi() c. strixeidexia() d. svynei() ή svysimo() Ενίσχυση Σπουδών Πληροφορικής - 18 - Πακέτο Εργασίας 07

7. Εργαστήριο 6 (Κληρονοµικότητα - Ειδίκευση) Μια εταιρεία απασχολεί έναν αριθµό υπαλλήλων οι οποίοι διακρίνονται στις ακόλουθες κατηγορίες: Ωροµίσθιοι. Αµείβονται σύµφωνα µε τον αριθµό ωρών που έχουν εργαστεί µε 7 ευρώ ανά ώρα και παίρνουν ένα επίδοµα παραγωγικότητας 6% επί του συνόλου των ωροµισθίων. Μισθωτοί. Αµείβονται µε βασικό µισθό 700 ευρώ συν ένα επίδοµα τέκνων 5% επί του βασικού µισθού για κάθε παιδί, συν το χρονοεπίδοµα το οποίο ανέρχεται σε 10% επί του βασικού για κάθε τριετία προϋπηρεσίας. Προϊστάµενοι. Αµείβονται µε βασικό µισθό 700 ευρώ, συν ένα επίδοµα τέκνων 5% επί του βασικού µισθού για κάθε παιδί, συν το χρονοεπίδοµα το οποίο ανέρχεται σε 10% επί του βασικού για κάθε τριετία προϋπηρεσίας, συν ένα επίδοµα προϊσταµένου 10% επί του συνόλου των αποδοχών. Επί πλέον στοιχεία που καταχωρούνται για κάθε υπάλληλο είναι τα ακόλουθα: Όνοµα, αριθµός µητρώου, ειδικότητα και δ/νση κατοικίας. Ζητείται, να υλοποιηθούν οι ανωτέρω κλάσεις µε τα προαναφερόµενα στοιχεία. Οι κλάσεις θα πρέπει να διαθέτουν µεθόδους πρόσβασης/µεταβολής και την µέθοδο tostring(). Στο κυρίως πρόγραµµα δηµιουργείστε 6 υπαλλήλους (2 από κάθε κλάση) και εµφανίστε τα στοιχεία τους. Υποδείξεις: Η κλάση που περιγράφει έναν Ωροµίσθιο θα πρέπει επίσης να διαθέτει τον αριθ- µό ωρών εργασίας Οι κλάσεις που περιγράφουν ένα µισθωτό/προϊστάµενο θα πρέπει επίσης να διαθέτουν αριθµό τέκνων και έτη προϋπηρεσίας Η "ρίζα" της ιεραρχίας που θα δηµιουργήσετε θα είναι η τάξη "Ypallilos" Ενίσχυση Σπουδών Πληροφορικής - 19 - Πακέτο Εργασίας 07

8. Εργαστήριο 7 (Κληρονοµικότητα - πολυµορφισµός) Γράψτε σε Java, µία τάξη µε όνοµα "Vehicle" η οποία θα αναπαριστά ένα όχηµα µε µοναδικά χαρακτηριστικά: α) αριθµό πινακίδας, β) όνοµα ιδιοκτήτη, γ) κυβικά κινητήρα και δ) κόστος οχήµατος. Η τάξη "Vehicle" διαθέτει επίσης τουλάχιστον την µέθοδο tostring() η οποία υπερβαίνει την αντίστοιχη µέθοδο της τάξης Object. Γενικά η µέθοδος αυτή, όπως γνωρίζεται, καλείται έµµεσα κάθε φορά που χρειάζεται να µετατραπεί ένα αντικείµενο κάποιου τύπου σε String. Η µέθοδος tostring() της τάξης "Vehicle" θα πρέπει µέσα στο String που θα επιστρέψει να περιλαµβάνει και τα τρία χαρακτηριστικά (attributes) της τάξης "Vehicle". Ορίστε τις τάξεις "Car", "Truck" και "Motorcycle" οι οποίες κληρονοµούν την "Vehicle". Οι τάξεις αυτές διαθέτουν επιπλέον τα κάτωθι χαρακτηριστικά: αριθµό θυρών για την τάξη "Car" αριθµό αξόνων για την τάξη "Truck" ένδειξη του αν διαθέτει πλαϊνό όχηµα (καλάθι) για την τάξη "Motorcycle" Κάθε αντικείµενο (οιουδήποτε τύπου οχήµατος) διαθέτει τις µεθόδους: transferownership η οποία δέχεται ως παράµετρο το όνοµα του νέου ιδιοκτήτη και εµφανίζει το µήνυµα Ownership is transferred to <Όνοµα>. drive η οποία εµφανίζει ένα κατάλληλο µήνυµα ανάλογα µε το είδος του οχήµατος. Το µήνυµα είναι: "You need a car driving license dear <Όνοµα>" για τα αντικείµενα τύπου "Car". Τα αντικείµενα τύπου "Truck" εµφανίζουν το µήνυµα: "You must be a professional driver. This is a <Χ> axels truck Mr. <Όνοµα>", όπου Χ το πλήθος αξόνων. Τα αντικείµενα τύπου "Motorcycle" εµφανίζουν το µήνυµα: "Your car driving license is not enough. You need a special license dear <Όνοµα>". Μία επιχείρηση διαθέτει Ν οχήµατα. Το Ν µπορεί να δίνεται είτε από την γραµµή εντολών είτε από το πληκτρολόγιο. Πρέπει να ελέγχετε αν έχει δοθεί τιµή από το πληκτρολόγιο. Αν δεν έχει δοθεί τότε θα πρέπει να ζητάτε από τον χρήστη το πλήθος των οχηµάτων. Επίσης ο χρήστης θα πρέπει να δίνει από το πληκτρολόγιο πόσα από αυτά τα οχήµατα είναι τύπου "Car", πόσα τύπου "Truck" και πόσα τύπου "Motorcycle". (Επαναλάβετε την διαδικασία σε περίπτωση που το άθροισµα ξεπερνάει το Ν). Όλα τα αντικείµενα δηµιουργούνται µε τον δοµητή ο οποίος αρχικοποιεί όλες τις µεταβλητές και όχι µε τον εξ ορισµού (default) δοµητή. Αυτό σηµαίνει ότι πριν την δηµιουρ- Ενίσχυση Σπουδών Πληροφορικής - 20 - Πακέτο Εργασίας 07

γία κάποιου αντικειµένου θα πρέπει να δίνονται από το πληκτρολόγιο όλα τα στοιχεία του. Υπολογίστε και εµφανίστε το συνολικό κόστος κάθε είδους οχήµατος όπως και το συνολικό κόστος όλων των οχηµάτων (δηµιουργείστε µία µέθοδο που θα σας επιστρέφει το συνολικό κόστος ενός συγκεκριµένου τύπου οχήµατος). Εµφανίστε τα στοιχεία όλων των οχηµάτων. Εµφανίστε τα µηνύµατα όλων των οχηµάτων. Εµφανίστε την τιµή του ακριβότερου οχήµατος. Η επιχείρηση παραλαµβάνει τους νέους καταλόγους µε αυξηµένες τιµές για κάποιες κατηγορίες οχηµάτων. Εφαρµόστε την νέα αύξηση τιµής ως εξής: 3% για οχήµατα τύπου "Car" µέχρι 2000 κυβικά. 5% για οχήµατα τύπου "Car" µε περισσότερα από 2000 κυβικά και για οχήµατα τύπου "Motorcycle". ΥΠΟ ΕΙΞΕΙΣ: Τα χαρακτηριστικά κάθε τάξης θα πρέπει να είναι private και θα πρέπει να παρέχονται µέθοδοι πρόσβασης (access methods) και µεταβολής (accessor methods) σε όλες τις τάξεις. Στις υποτάξεις της "Vehicle" θα πρέπει να υπερβαίνεται η µέθοδος "tostring()" προσθέτοντας στο string που επιστρέφεται και το χαρακτηριστικό της τρέχουσας τάξης. Η λειτουργία της µεθόδου "transferownership" είναι ίδια για όλες τις τάξεις. Αυτό σηµαίνει ότι αρκεί να οριστεί µόνο στην αρχική τάξη "Vehicle". Μέσω του µηχανισµού της κληρονοµικότητας είναι διαθέσιµη και στις υπόλοιπες. Η λειτουργία της µεθόδου "drive" είναι διαφορετική για κάθε τύπο οχήµατος. Εποµένως θα πρέπει να ορίζεται σε κάθε υποτάξη της "Vehicle". Για την ίδια την "Vehicle" αρκεί µόνο η δήλωσή της "drive" χωρίς να είναι ανάγκη να ορίσουµε και σώµα στην µέθοδο. Αυτό σε συνδυασµό µε την έλλειψη αντικειµένων τύπου "Vehicle" µας υποδηλώνει ότι έχουµε να κάνουµε µε µία abstract µέθοδο. Αυτό προκαλεί και την δήλωση της τάξης "Vehicle" ως abstract. Οι µεταβλητές Ορίστε επιπλέον χαρακτηριστικά/µεταβλητές (εκτός της Vehicle), ή µεθόδους και υπερβείτε τις µεθόδους που θεωρείτε ότι χρειάζεται. Για τον υπολογισµό του συνολικού κόστους κάθε είδους οχήµατος δηµιουργείστε µία µέθοδο που θα σας επιστρέφει το συνολικό κόστος ενός συγκεκριµένου τύπου οχήµατος. Η µέθοδος θα πρέπει να κληθεί 3 φορές. Το άθροισµα των τιµών που θα επιστρέψουν οι τρεις αυτές κλήσεις είναι το συνολικό κόστος όλων των οχηµάτων. Ενίσχυση Σπουδών Πληροφορικής - 21 - Πακέτο Εργασίας 07

9. Εργαστήριο 8 (Εξαιρέσεις - Πακέτα) 8.1 Χειρισµός Εξαιρέσεων Να δηµιουργήσετε µία τάξη 'Υπάλληλος' η οποία θα έχει τα εξής µέλη : όνοµα, ηµερο- µηνία γέννησης, ώρες εργασίας ανά µήνα, ώρες υπερωριών ανά µήνα, µισθός, τέκνα, συντελεστής επιδόµατος. Για τα χαρακτηριστικά κάθε τάξης θα πρέπει να παρέχονται µέθοδοι πρόσβασης (access methods) και µεταβολής (accessor methods). Να υλοποιηθούν οι εξής µέθοδοι: Υπολογισµός αποδοχών (Ypologismos_apodohon) Υπολογισµός συντελεστή επιδόµατος (Ypologismos_sintelesti_epidomatos) Εµφάνισης ωρών εργασίας (ores_ergasias) Εµφάνιση στοιχείων υπαλλήλου (Emfanisi_ypallilou) Για να υλοποιήσετε τις µεθόδους και την λειτουργικότητα της τάξης του υπαλλήλου α- κολουθήστε τις παρακάτω οδηγίες : Ο δοµητής περιµένει έναν θετικό αριθµό για τα τέκνα του υπαλλήλου. Εάν ο α- ριθµός είναι αρνητικός τότε να προκαλείται η εξαίρεση που αφορά τα λάθος ο- ρίσµατα κατά την κλήση µίας µεθόδου (IllegalArgumentException). Κατά την καταχώρηση του µισθού να υπολογίζεται ο συντελεστής για το επίδοµα ως εξής : 100 (50 / αριθµό τέκνων). Να γίνεται χειρισµός της εξαίρεσης που µπορεί να προκληθεί εάν ο αριθµός των τέκνων είναι 0 (ArithmeticExceptio). Η ηµεροµηνία γέννησης θα εισάγεται ως ένα 8-ψήφιο String, (τα πρώτα δύο ψηφία είναι η ηµέρα γέννησης, τα επόµενα δύο είναι ο µήνα γέννησης, και τα 4 τελευταία το έτος γέννησης). Κατά την εισαγωγή της ηµεροµηνία να ελέγχεται εάν η ηµέρα είναι µεταξύ 1-31 και ο µήνας είναι µεταξύ 1-12, διαφορετικά να προκαλείται µία εξαίρεση (InvalidBirthDateException) που να εµφανίζει το κατάλληλο µήνυµα. Για να διαχειριστείτε την ηµεροµηνία µπορείτε να χρησιµοποιήσετε την µέθοδο public String substring(int beginindex,int endindex) Οι ώρες εργασίας και οι ώρες υπερωριών να καταχωρούνται σε έναν πίνακα 12 θέσεων (µία θέση για κάθε µήνα του έτους). Να υλοποιήσετε µία µέθοδο που θα εµφανίζει το σύνολο των ωρών εργασίας και να προβλέπεται ο χειρισµός εξαίρεσης που προκαλείται όταν γίνει πρόσβαση εκτός των ορίων του πίνακα (ArrayIndexOutOfBoundsException). Να υπολογίζετε το σύνολο των υπερωριών και εάν είναι µεγαλύτερο από 120 να καλείται µία µέθοδος που να 'ρίχνει' µία ελεγχόµενη εξαίρεση µε µήνυµα "Too Ενίσχυση Σπουδών Πληροφορικής - 22 - Πακέτο Εργασίας 07

many hours " ή εάν είναι µικρότερες από 0 να εµφανίζει το εξ ορισµού µήνυ- µα της ίδιας εξαίρεσης. (InvalidHoursException). Mετά τον υπολογισµό των υπερωριών, είτε προκλήθηκε εξαίρεση είτε όχι να εµφανίζεται το µήνυµα "End of calculation". 8.2 Πακέτα 1. Χρήση τάξεων µε ίδιο όνοµα Έστω ότι έχετε δύο κλάσεις Network, η µία περιγράφει ένα δίκτυο Η/Υ και η δεύτερη ένα δίκτυο συγκοινωνιών. Να δηµιουργηθούν οι τάξεις µε όνοµα Network, οι οποίες να διαθέτουν ένα µέλος Description και εκτός από τον εξ ορισµού δοµητή να έχουν µία µέθοδο tostring. Τοποθετήστε την πρώτη σε ένα πακέτο µε όνοµα Computer και την δεύτερη σε ένα πακέτο µε όνοµα Traffic. Τα µυνήµατα που θα εµφανίζονται είναι τα ακόλουθα: Τάξη για ίκτυα Η/Υ πακέτο 1. Default constructor: This is a Data Network 2. tostring : This network carries bits and bytes Τάξη για ίκτυα Συγκοινωνιών 1. Default constructor: This is a Traffic Network 2. tostring : Τhis network is used by vehicles Σε µία τρίτη τάξη δηµιουργήστε αντικείµενα των δύο τάξεων Network και χρησιµοποιήστε την µέθοδο tostring για να δείξετε την πρόσβαση µέσω πακέτων στις µεθόδους. 2. ηµιουργία προσωπικών πακέτων Για την δηµιουργία δικών µας πακέτων απαιτούνται τρεις ενέργειες. Έστω ότι θέλουµε να δηµιουργήσουµε ένα πακέτο µε όνοµα 'tei' και σε αυτό θέλουµε να τοποθετήσουµε 3 τάξεις Informatics, Nursing και Marketing. 1. ηµιουργήστε έναν υποκατάλογο µε όνοµα 'tei'. 2. Στην αρχή της κάθε τάξης Informatics, Nursing και Marketing, τοποθετήστε την εξής δήλωση: package tei; 3. Τοποθετήστε τα τρία αρχεία, Informatics.java, Nursing.java και Marketing.java, στον υποκατάλογο tei. Οι τάξεις αυτές θα έχουν µία µέθοδο tostring η οποία θα εµφανίζει το αντίστοιχο µήνυ- µα : Informatics : "Τµήµα Πληροφορικής" Ενίσχυση Σπουδών Πληροφορικής - 23 - Πακέτο Εργασίας 07

Nursing : "Τµήµα Νοσηλευτικής" Marketing : "Τµήµα Εµπορίας και ιαφήµισης" ηµιουργήστε µία τάξη που να χρησιµοποιεί τις 3 παραπάνω τάξεις. 3. Εσωτερικά πακέτα Τροποποιήστε την προηγούµενη άσκηση ώστε να υπάρχουν µέσα στο πακέτο 'tei', τρία υπο-πακέτα STEF,SEYP, SDO και οι τρεις τάξεις Informatics, Nursing και Marketing να βρίσκονται στο αντίστοιχο υπο-πακέτο. Συµπεριλάβετε τον κατάλληλο κώδικα για την δηµιουργία των πακέτων. Για παράδειγµα για να εισαχθεί η τάξη Informatics: import tei.stef.informatics; ηµιουργήστε µία τάξη που να χρησιµοποιεί την παραπάνω δοµή. Ενίσχυση Σπουδών Πληροφορικής - 24 - Πακέτο Εργασίας 07

10. Εργαστήριο 9 Byte Streams Άσκηση 1.1: Να γραφεί µια εφαρµογή η οποία θα δηµιουργεί το ακολουθιακό αρχείο "bankregistry.dat" και θα γράφει µια λογική εγγραφή σ αυτό. Το αρχείο περιλαµβάνει τραπεζικούς λογαριασµούς της µορφής: ακέραιος αριθµός_λογαριασµού, αλφαριθµητικό ονοµατεπώνυµο, ακέραιος υπόλοιπο_λογαριασµού Κάντε χρήση των µεθόδων της κλάσης myinput για την είσοδο των δεδοµένων. Να εισαχθούν στο αρχείο 5 καταχωρήσεις και στην συνέχεια να εµφανίσετε τα περιεχό- µενα του αρχείου στην οθόνη, σε κάθε γραµµή µία καταχώρηση. Άσκηση 1.2: Να γραφεί µια εφαρµογή που θα αποθηκεύει τα στοιχεία ενός πίνακα ως µια ροή από bytes στο αρχείο "pinakas.dat". Άσκηση 1.3: Να γραφεί µια εφαρµογή που θα διαβάζει τα περιεχόµενα του αρχείου jc.dat, θα µετράει το πλήθος των bytes και θα το εµφανίζει. Στη συνέχεια θα εµφανίζει σε νέα γραµµή το κάθε byte, ένα κενό και στη συνέχεια τον χαρακτήρα που αντιστοιχεί στο byte αυτό. Σηµείωση: Για τις παραπάνω ασκήσεις να υπάρχει και κατάλληλος χειρισµός σε περίπτωση εξαίρεσης (IOException), ο οποίος θα εµφανίζει το κατάλληλο µήνυµα (χρήση της µεθόδου : tostring, exceptions : FileNotFoundException, IOException) Ενίσχυση Σπουδών Πληροφορικής - 25 - Πακέτο Εργασίας 07

11. Εργαστήριο 10 Streams χαρακτήρων Άσκηση 1.1: Αντιγράψτε και τρέξτε το παρακάτω πρόγραµµα java το οποίο αναφέρεται στη µεταφορά και εµφάνιση δεδοµένων από αρχείο στην οθόνη του υπολογιστή. (σελ 417 βιβλίου). Πριν το εκτελέσετε, δηµιουργείστε ένα αρχείο "data.txt" µε κείµενο 6 γραµµών στον ίδιο κατάλογο. /* A simple disk-to-screen utility that demonstrates a FileReader. */ import java.io.*; class DtoS public static void main(string args[]) throws Exception FileReader fr = new FileReader("data.txt"); BufferedReader br = new BufferedReader(fr); String s; while((s = br.readline())!= null) System.out.println(s); fr.close(); Τροποποιήστε το παραπάνω πρόγραµµα ώστε να διαβάζει από το αρχείο "data2.txt" ο- κτώ ονόµατα (ένα σε κάθε γραµµή του αρχείου), να τα τοποθετεί σε ένα πίνακα συµβολοσειράς διάστασης 10. Στη συνέχεία να τυπώνονται στη οθόνη τα περιεχόµενα του πίνακα. Άσκηση 1.2: Τροποποιήστε το πρόγραµµα της άσκησης 1.1 ώστε να διαβάζει από το αρχείο "data3.txt" 12 σειρές, όπου οι σειρές περιέχουν εναλλάξ ένα ακέραιο και ένα ό- νοµα. Τόσο ο αριθµός όσο και το όνοµα να εισάγονται σε σχετικούς πίνακες. Στο τέλος να τυπώνονται στην οθόνη τα περιεχόµενα των πινάκων. Υπόδειξη: ο παρακάτω κώδικας µετατρέπει µία συµβολοσειρά σε ακέραιο. try n = Integer.parseInt(str1); catch(numberformatexception exc) System.out.println("Invalid format"); n = 0; Ενίσχυση Σπουδών Πληροφορικής - 26 - Πακέτο Εργασίας 07