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

ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

Εξαμηνιαίες

Μάθημα Εισαγωγή στον Προγραμματισμό των Υπολογιστών

Εξετάσεις

Διδάσκων Ι. Κάβουρας

Σεπτεμβρίου

Εξάμηνο Α’

2000

Ημέρα Δευτέρα, 25/9/2000
  Ώρα 17.30

Διάρκεια εξέτασης 3 ώρες. Απαντήστε σ’ όλα τα θέματα.

ΚΑΛΗ ΣΑΣ ΕΠΙΤΥΧΙΑ

ΘΕΜΑ 1ο (35%)

Τα αποτελέσματα των εκλογών μεταξύ τριών υποψηφίων σε μια χώρα με πέντε εκλογικές περιφέρειες ήταν τα ακόλουθα:

Εκλογ. Περιφ.

Υποψήφιος Α

Υποψήφιος Β

Υποψήφιος Γ

1

182

41

202

2

145

85

325

3

195

15

115

4

110

24

407

5

255

11

357

Να γραφεί ένα πρόγραμμα Java το οποίο:

α) να αρχικοποιεί τα στοιχεία ενός διδιάστατου πίνακα 5 γραμμών και 3 στηλών, όπως παραπάνω. Οι διαστάσεις του πίνακα πρέπει να έχουν δηλωθεί ως σταθερές (final static).

β) να υπολογίζει τον συνολικό αριθμό ψήφων που έλαβε κάθε υποψήφιος, καθώς και το ποσοστό του επί του συνόλου των ψήφων

γ) εάν κάποιος υποψήφιος έλαβε πάνω από 50% των ψήφων να εκτυπώνει το όνομά του (Γ, στην περίπτωση αυτή) ως νικητή των εκλογών

δ) εάν δεν υπάρχει υποψήφιος που να έλαβε πάνω από το 50% των ψήφων να δηλώνεται ότι θα διεξαχθεί επαναληπτικός γύρος μεταξύ των δύο πρώτων και να εκτυπώνονται τα στοιχεία τους και τα ποσοστά που αυτοί έλαβαν.

 

ΘΕΜΑ 2ο (20%)

Γράψτε ένα πρόγραμμα Java που διαβάζει από την προκαθορισμένη είσοδο ένα κείμενο που τελειώνει με τον χαρακτήρα “!”. Το πρόγραμμα θα πρέπει να εμφανίζει το πλήθος των μονών και των διπλών γραμμάτων που διαβάστηκαν. Θεωρείστε ότι γράμμα είναι οποιοσδήποτε κεφαλαίος ή πεζός ελληνικός χαρακτήρας. Για παράδειγμα, αν τα δεδομένα του προγράμματος είναι:

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

τότε το πρόγραμμά σας θα πρέπει να εμφανίσει:

Μονά γράμματα: 26, Διπλά γράμματα: 1.

ΘΕΜΑ 3ο (30%)

Η κάθε εγγραφή ενός ακολουθιακού αρχείου περιέχει το ονοματεπώνυμο ενός ατόμου (συμβολοσειρά 35 χαρακτήρων), τη διεύθυνσή του (συμβολοσειρά 60 χαρακτήρων) και τα χρόνια υπηρεσίας του (ακέραιο). Γράψτε ένα πρόγραμμα που να δημιουργεί ένα νέο ακολουθιακό αρχείο, η κάθε εγγραφή του οποίου να περιέχει μόνο το ονοματεπώνυμο των ατόμων που έχουν φθάσει ή υπερβεί τα 35 χρόνια υπηρεσίας.

ΘΕΜΑ 4ο (15%)

 

Δίνεται το παρακάτω πρόγραμμα σε γλώσσα Java:

 

import java.io.*;

class program_2 {

public static void main (String args[]) throws IOException {

String s = new String();

String ts = new String();

s = RS();

boolean ok = true;

while ( !(s.equals("telos")) && ok) {

ts = RS();

if (s.compareTo(ts) > 0 ) ok = false;

s = ts;

}

if (!ok) System.out.print("not ");

System.out.println("sorted");

}

static String RS()throws IOException {

char []sarray = new char[5];

for (int i = 0;i<5;i++)

sarray[i]=(char)System.in.read();

System.in.skip(2);

return String.valueOf(sarray);

}

}

  1. Περιγράψτε τη λειτουργία του προγράμματος (σε 7-8 το πολύ γραμμές). Προσοχή, μην κάνετε περιγραφή μεμονωμένων εντολών.
  2. Γράψτε μια λύση πρώτου επιπέδου για το πρόγραμμα αυτό.
  3. Γράψτε τουλάχιστον τρία σύνολα κατάλληλων δοκιμαστικών δεδομένων και τα αντίστοιχά τους αναμενόμενα αποτελέσματα.