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



Σχετικά έγγραφα
ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 18/3/2008

ΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ

ΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ

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

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

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

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

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

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

Εισαγωγή στον Προγραµµατισµό - Εβδοµάδα 7

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #7

Προγραμματισμός Υπολογιστών Τάξη Γ Αθανασιάδης Χρήστος ΠΕ19 ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 6: Pass-by-value και φαινομενικό pass-by-reference

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου

Στόχοι και αντικείμενο ενότητας. Πέρασμα Πίνακα σε Συνάρτηση (συν.) Πέρασμα Πίνακα σε Συνάρτηση. #8.. Ειδικά Θέματα Αλγορίθμων

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

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

Generics και ArrayLists

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf("%u\n", x); Β. unsigned char

Εργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες:

Προγραμματισμός Η/Υ. Ενότητα 8: Ειδικά Θέματα Αλγορίθμων

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

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

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

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

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

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

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

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

Βασικά Στοιχεία της Java

Δομές ελέγχου ροής προγράμματος

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

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

Μονοδιάστατοι πίνακες Πολυδιάστατοι πίνακες Μέθοδοι Μέθοδοι Recursive Overloading

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

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

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

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

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

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

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

Στοιχειώδεις Δομές Δεδομένων

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

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

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

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

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

Κεφάλαιο 8.6. Πίνακες ΙI (Διάλεξη 17)

Μεθόδων Επίλυσης Προβλημάτων

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 3: Έλεγχος ροής προγράμματος

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

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

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

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

Τύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( )

ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ) ΚΑΙ ΜΑΘΗΜΑΤΩΝ ΕΙΔΙΚΟΤΗΤΑΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ΚΑΙ Β ) ΤΡΙΤΗ 13 ΙΟΥΝΙΟΥ 2017

API: Applications Programming Interface

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

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

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

2 ΓΡΑΜΜΙΚΕΣ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

ΑΝΑΛΥΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΚΑΙ ΕΞΕΤΑΣΤΕΑ ΥΛΗ. ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Με τις Γλώσσες Προγραμματισμού Pascal, C, C++, Java

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

Γ7.5 Αλγόριθμοι Αναζήτησης. Γ Λυκείου Κατεύθυνσης

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

Δομές ελέγχου & επανάληψης

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΘΕΩΡΗΤΙΚΗ ΑΣΚΗΣΗ 2 ΛΥΣΕΙΣ Γραμμικές Δομές Δεδομένων, Ταξινόμηση

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

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

Βασικά Στοιχεία της Java

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

Πανεπιστήµιο Θεσσαλίας, THMMY HY120, Σεπτέµβριος 2015 ΟΝΟΜΑΤΕΠΩΝΥΜΟ:

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

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

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

Κεφάλαιο 8.6. Πίνακες ΙI ( ιάλεξη 16) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Βασικά της γλώσσας JAVA

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

Transcript:

Οικονοµικό Πανεπιστήµιο Αθηνών Τµήµα Πληροφορικής Εισαγωγή στον Προγραµµατισµό των Υπολογιστών Καθηγητής Ι. Κάβουρας Εξεταστική περίοδος Φεβρουαρίου 2004 Τετάρτη 10/3/2004, ώρα 8.00 Στοιχεία εξεταζόµενου Αριθµός Απάντησης Βαθµολογία Επώνυµο 4.1 Όνοµα 4.2 Αρ. Μητρ. 4.3 4.4 4.5 Σύνολο (Θέµα 4 ο ) Υπογραφή Επόπτη Προσοχή: Το 4ο θέµα να απαντηθεί πάνω στο παρόν έντυπο, το οποίο πρέπει να επιστραφεί υποχρεωτικά. Τα υπόλοιπα θέµατα (1ο 3ο) να απαντηθούν σε άλλη κόλλα χαρτί που θα σας δοθεί. 1. ιάρκεια εξέτασης 3 ώρες. 2. Απαντήστε σ όλα τα θέµατα. Ο δ η γ ί ε ς 3. Ο ελάχιστος χρόνος παραµονής στην αίθουσα εξέτασης είναι µισή ώρα µετά τη λήψη των θεµάτων. 4. εν επιτρέπεται η χρήση βοηθητικών σηµειώσεων, βιβλίων, φορητών υπολογιστών και κινητών τηλεφώνων. Επίσης δεν επιτρέπεται το κάπνισµα. 5. Στο τέλος των ερωτήσεων δίνονται επικεφαλίδες µεθόδων που πιθανόν να σας φανούν χρήσιµες. 6. Συµπληρώστε σ όλες τις σελίδες του εντύπου τον αριθµό µητρώου σας.

Θέµα 1ο 25 µονάδες Ένα αρχείο περιέχει τις τιµές των προϊόντων ενός καταστήµατος. Κάθε γραµµή του αρχείου περιέχει τον κωδικό ενός προϊόντος (τύπου String) ένα κενό χαρακτήρα και την τιµή του προϊόντος ανά τεµάχιο (τύπου long). Θεωρείστε ότι το αρχείο είναι ταξινοµηµένο κατά αύξουσα λεξικογραφική σειρά των κωδικών των προϊόντων. Γράψτε ένα πρόγραµµα που να διαβάζει από την προκαθορισµένη είσοδο τις αγορές που έκανε ένας πελάτης του καταστήµατος, δηλαδή τους κωδικούς των προϊόντων που αγόρασε µε τις αντίστοιχες ποσότητες (σε τεµάχια). Χρησιµοποιείστε για το σκοπό αυτό τις µεθόδους my.readstr() και my.readlong(). Τέλος, όταν ολοκληρωθεί η είσοδος των αγορών, το πρόγραµµα θα πρέπει να εµφανίζει τον αναλυτικό λογαριασµό, δηλαδή µια λίστα µε όλα τα προϊόντα που αγόρασε ο πελάτης και τη συνολική δαπάνη που αυτός πρέπει να καταβάλλει ως εξής: <κωδικός προϊόντος1> <ποσότητα1> <δαπάνη1> <κωδικός προϊόντος2> <ποσότητα2> <δαπάνη2> <κωδικός προϊόντοςν> <ποσότηταν> <δαπάνην> Συνολική απάνη: <δαπάνη1> + <δαπάνη2> + + <δαπάνην> Θέµα 2ο 25 µονάδες Γράψτε ένα πρόγραµµα που να ορίζει ένα µονοδιάστατο πίνακα συµβολοσειρών µε µέγιστο µήκος 100 θέσεις. Το πρόγραµµα θα πρέπει: α) να διαβάζει Ν συµβολοσειρές που δίνει ο χρήστης και να τις αποθηκεύει στις Ν πρώτες θέσεις του πίνακα (Ν<=100) β) να ταξινοµεί, µε τη µέθοδο της φυσαλίδας (bubble sort), σε αύξουσα λεξικογραφική σειρά, τις Ν πρώτες θέσεις (συµβολοσειρές) του πίνακα γ) να αναζητεί στις Ν πρώτες θέσεις του πίνακα, µε τη µέθοδο της δυαδικής αναζήτησης (binary search), µια συγκεκριµένη συµβολοσειρά (που δίνει ο χρήστης). ίνεται ο αλγόριθµος της ταξινόµησης ενός πίνακα µε τη µέθοδο της φυσαλίδας (bubble sort), από τη θέση κάτω_όριο ως τη θέση πάνω_όριο του πίνακα: for (j=πάνω_όριο; j>=κάτω_όριο; j--) for (int i=0; i<=j-1; i++) if (πίνακας [i] > πίνακας [i+1]) προσωρινό_στοιχείο = πίνακας [i]; πίνακας [i] = πίνακας [i+1]; πίνακας [i+1] = προσωρινό_στοιχείο; Επίσης δίνεται ο αλγόριθµος της δυαδικής αναζήτησης (binary search) ενός στοιχείου από τη θέση κάτω_όριο ως τη θέση πάνω_όριο ενός πίνακα. Αν το στοιχείο βρεθεί στον πίνακα τότε η λογική µεταβλητή βρέθηκε παίρνει την τιµή true, διαφορετικά παίρνει την τιµή false. Εισαγωγή στον Προγραµµατισµό των Υπολογιστών, Καθηγητής Ι. Κάβουρας, 10/3/2004, σελ. 2

βρέθηκε = false; while (!βρέθηκε && κάτω_όριο <= πάνω_όριο) τρέχουσα_θέση = (κάτω_όριο + πάνω_όριο)/2; if (A[τρέχουσα_θέση] == στοιχείο) βρέθηκε= true; else if (στοιχείο < A[τρέχουσα_θέση]) πάνω_όριο = τρέχουσα_θέση -1; else κάτω_όριο = τρέχουσα_θέση +1; return βρέθηκε Θέµα 3 ο 25 µονάδες Αριθµός Μητρώου Έστω η τάξη κατάλογος_φοιτητών που παριστάνει τον κατάλογο των φοιτητών του µαθήµατος Εισαγωγή στον Προγραµµατισµό σαν έναν πίνακα φοιτητών. Ο κάθε φοιτητής του καταλόγου αποτελείται από ένα ονοµατεπώνυµο, έναν αριθµό µητρώου και το βαθµό του µαθήµατος. Ο πίνακας των φοιτητών έχει ένα µέγιστο αριθµό θέσεων MAX=500. Το παρακάτω πρόγραµµα καλεί επαναληπτικά τις µεθόδους Insert() και Lookup() της τάξης κατάλογος_φοιτητών: Η µέθοδος Insert() διαβάζει δεδοµένα ενός φοιτητή και τα αποθηκεύει στον κατάλογο (εφόσον ο κατάλογος δεν είναι γεµάτος). Η µέθοδος Lookup() ψάχνει γραµµικά (βάσει ενός ονοµατεπωνύµου) τον κατάλογο και εµφανίζει το βαθµό του φοιτητή. Αν ο φοιτητής δεν υπάρχει στον κατάλογο εµφανίζει ένα κατάλληλο µήνυµα. import java.io.*; public class katalogosapp public static void main ( String args[] ) throws IOException katalogos_foithtwn katalogos=new katalogos_foithtwn(); boolean exit = false; int epilogi; for (;;) System.out.println ("1. Insert"); System.out.println ("2. Lookup"); System.out.println ("0. exit"); epilogi = my.readint(); switch (epilogi) case 1:Insert(); break; case 2:Lookup(); break; default:exit=true; if (exit) break; // α) Ζητείται να κατασκευάσετε την τάξη "Φοιτητής" που περιέχει, εκτός από τις ιδιότητες του φοιτητή και τις µεθόδους: κατασκευαστή που παίρνει ως παραµέτρους δύο συµβολοσειρές και ένα δεκαδικό αριθµό που παριστάνουν έναν ορισµένο φοιτητή Displayame και DisplayGrade που εµφανίζουν το όνοµα και βαθµό ενός φοιτητή και Compareame που παίρνει ως παράµετρο µια συµβολοσειρά, τη συγκρίνει µε το όνοµα ενός φοιτητή και επιστρέφει -1, 0 ή 1 εάν η συµβολοσειρά είναι λεξικογραφικά µικρότερη, ίση ή µεγαλύτερη του ονόµατος. β) Ζητείται να κατασκευάσετε την τάξη "κατάλογος_φοιτητών" και τις µεθόδους της τάξης Insert() και Lookup(). Εισαγωγή στον Προγραµµατισµό των Υπολογιστών, Καθηγητής Ι. Κάβουρας, 10/3/2004, σελ. 3

Θέµα 4ο 25 µονάδες 4.1 Ποιο είναι το αποτέλεσµα της εκτέλεσης του παρακάτω προγράµµατος; Επιλέξτε µια απάντηση από την (α) ως τη (δ). Να αιτιολογήσετε την απάντησή σας. public class Ar public static void main(string args[]) Ar ad = new Ar(); ad.methodos(); public void methodos() int a1[]= 1,2,3; int[] a2 = 1,2,3; int a3[] = new int[] ; System.out.print(a3.length); α) Λάθος µεταγλώττισης, το a3 δεν έχει οριστεί σωστά β) Λάθος µεταγλώττισης, το a1 δεν έχει οριστεί σωστά γ) Θα µεταγλωττιστεί σωστά, αλλά όταν εκτελεστεί δεν θα εµφανίσει τίποτα δ) Θα µεταγλωττιστεί σωστά, και όταν εκτελεστεί θα εµφανίσει 0 Θέµα 4.1 - Απάντηση: Εισαγωγή στον Προγραµµατισµό των Υπολογιστών, Καθηγητής Ι. Κάβουρας, 10/3/2004, σελ. 4

4.2 Με ποιο τρόπο είναι δυνατό να κληθεί η τάξη estedclass από την τάξη testapp στο σηµείο που υπάρχει το Σχόλιο, έτσι ώστε να δηµιουργηθεί το αντικείµενο z; Επιλέξτε µια απάντηση από την (α) ως τη (δ). Να αιτιολογήσετε την απάντησή σας. class TopLevelClass1 public int static a = 13; private int b = 9; public void print() System.out.println (a +" "+ b); public class estedclass public void a_method () a = 4; b = 6; class testapp public static void main // Σχόλιο z.a_method(); (String args[]) α) TopLevelClass1.estedClass z = new TopLevelClass1().new estedclass(); β) TopLevelClass1.estedClass z = TopLevelClass1().new estedclass(); γ) estedclass z = new estedclass(); δ) εν είναι δυνατό να κληθεί έτσι ώστε να δηµιουργηθεί το αντικείµενο z Θέµα 4.2 - Απάντηση: Εισαγωγή στον Προγραµµατισµό των Υπολογιστών, Καθηγητής Ι. Κάβουρας, 10/3/2004, σελ. 5

4.3 Ποιο είναι το αποτέλεσµα της εκτέλεσης του παρακάτω προγράµµατος; Επιλέξτε µια απάντηση από την (α) ως τη (δ). Να αιτιολογήσετε την απάντησή σας. import java.io.*; class Basi public static void methodos() public class Demo extends Basi Demo() methodos(99); public static void main(string args[]) Demo e = new Demo(); public boolean methodos(int i) try DataInputStream din = new DataInputStream(System.in); System.out.println("Pausing"); din.readchar(); System.out.println("Continuing"); this.methodos(); return true; catch(ioexception ioe) finally System.out.println("Doing finally"); return false; α) Λάθος µεταγλώττισης β) Μεταγλωττίζεται σωστά και όταν εκτελείται εµφανίζει Pausing, διαβάζει ένα χαρακτήρα και τέλος εµφανίζει Continuing γ) Μεταγλωττίζεται σωστά και όταν εκτελείται εµφανίζει Pausing, διαβάζει ένα χαρακτήρα και τέλος εµφανίζει Continuing και Doing Finally δ) Τίποτα από τα παραπάνω Θέµα 4.3 - Απάντηση: Εισαγωγή στον Προγραµµατισµό των Υπολογιστών, Καθηγητής Ι. Κάβουρας, 10/3/2004, σελ. 6

4.4 Ποιο είναι το αποτέλεσµα της εκτέλεσης του παρακάτω προγράµµατος; import java.io.*; class string1 public static void main ( String args[] ) throws IOException String s=new String(); String color1 = "RED"; System.out.println ("Color1 = " + color1); String color2 = new String ("RED"); System.out.println ("Color2 = " + color2); String color3 = new String ("Red"); System.out.println ("Color3 = " + color3); if (color1.equals(color2)) System.out.println ("color1=color2"); else System.out.println ("color1<>color2"); if (color1 == color2) System.out.println ("color1=color2"); else System.out.println ("color1<>color2"); if (color2.equalsignorecase(color3)) System.out.println ("color2=color3"); else System.out.println ("color2<>color3"); s=color3.substring(1,2); System.out.println (s); int x=color3.indexof(s); System.out.println (x); x=color2.indexof(s); System.out.println (x); s=string.valueof(x); s=s.concat("@"); System.out.println (s); Θέµα 4.4 - Απάντηση: Εισαγωγή στον Προγραµµατισµό των Υπολογιστών, Καθηγητής Ι. Κάβουρας, 10/3/2004, σελ. 7

4.5 Ποιο είναι το αποτέλεσµα της εκτέλεσης του παρακάτω προγράµµατος; Ποιες είναι οι διαδοχικές τιµές που θα λάβουν οι µεταβλητές του προγράµµατος; public class TestApp static int A = 10, X = 20, Y = 30; static void P1 (int A, int X) int TEMP; TEMP = A * X; X++; Y = Y + TEMP * X; static void P2 (int X) Y = A * X; X++; Y = Y * X; public static void main (String args[]) P2 (X); System.out.println (X+" "+Y); P1 (A, X); System.out.println (X+" "+Y); Θέµα 4.5 - Απάντηση: Εισαγωγή στον Προγραµµατισµό των Υπολογιστών, Καθηγητής Ι. Κάβουρας, 10/3/2004, σελ. 8

Μέθοδοι της τάξης my public static int readint() public static long readlong() public static byte readbyte () public static byte readshort () public static String readstr() public static float readfloat() public static double readdouble() public static boolean readboolean() Μέθοδοι της τάξης String public char charat(int index); public int compareto(string anotherstring); public String concat(string str); public boolean endswith(string suffix); public boolean equals(object anobject); public boolean equalsignorecase(string anotherstring); public int indexof(int ch); public int indexof(string str); public int length(); public String replace(char oldchar, char newchar); public boolean startswith(string prefix); public boolean startswith(string prefix, int toffset); public String substring(int beginindex); public String substring(int beginindex, int endindex); public String tolowercase(); public String tostring(); public String touppercase(); public static String valueof(boolean b); public static String valueof(char c); public static String valueof(double d); public static String valueof(float f); public static String valueof(int i); public static String valueof(long l); Μέθοδοι της τάξης RandomAccessFile public void close(); public long getfilepointer(); public long length(); public int read(); public int read(byte b[]); public int read(byte b[], int off, int len); public final boolean readboolean(); public final byte readbyte(); public final char readchar(); public final double readdouble(); public final float readfloat(); public final int readint(); public final String readline(); public final long readlong(); public final short readshort(); public final String readutf(); public void seek(long pos); public int skipbytes(int n); public void write(byte b[]); public void write(int b); public final void writeboolean(boolean v); public final void writebyte(int v); public final void writechar(int v); public final void writechars(string s); public final void writedouble(double v); public final void writefloat(float v); public final void writeint(int v); public final void writelong(long v); public final void writeshort(int v); public final void writeutf(string str); Μέθοδοι της τάξης DataInputStream public final int read(byte b[]); public final int read(byte b[], int off, int len); public final boolean readboolean(); public final byte readbyte(); public final char readchar(); public final double readdouble(); public final float readfloat(); public final int readint(); public final long readlong(); public final short readshort(); public final String readutf(); public final int skipbytes(int n); Μέθοδοι της τάξης DataOutputStream public void flush(); public final int size(); public void write(byte b[], int off, int len); public void write(int b); public final void writeboolean(boolean v); public final void writebyte(int v); public final void writechar(int v); public final void writechars(string s); public final void writedouble(double v); public final void writefloat(float v); public final void writeint(int v); public final void writelong(long v); public final void writeshort(int v); public final void writeutf(string str); Εισαγωγή στον Προγραµµατισµό των Υπολογιστών, Καθηγητής Ι. Κάβουρας, 10/3/2004, σελ. 9