ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ
Εξαμηνιαίες | Μάθημα |
Εισαγωγή στον Προγραμματισμό των Υπολογιστών |
Εξετάσεις |
Διδάσκων |
Ι. Κάβουρας |
Φεβρουαρίου |
Εξάμηνο |
Α’ |
2000 |
Ημέρα |
Δευτέρα, 24/1/2000 |
Ώρα |
13.00 |
ΘΕΜΑ 1ο (20%)
Δίνεται η συμβολοσειρά s που περιέχει τους χαρακτήρες του αριθμού μητρώου ενός φοιτητή (8 χαρακτήρες), το ονοματεπώνυμό του (τουλάχιστον ένας χαρακτήρας) και τη βαθμολογία (2 χαρακτήρες) που έλαβε σ’ ένα μάθημα:
String s="P3990000|PAPAS NIKOS|07"
Οι προαναφερόμενες πληροφορίες διαχωρίζονται με τον χαρακτήρα |.
Γράψτε εντολές (σε γλώσσα Java) που κάνουν τα εξής:
ΘΕΜΑ 2ο (20%)
Δίνεται το παρακάτω πρόγραμμα σε γλώσσα Java:
1 |
import java.io.*; |
2 |
public class foundinpin { |
3 |
public static void main (String args[])throws IOException { |
4 |
char[] Pinakas = new char[5]; |
5 |
int pos = 0; |
6 |
System.out.print (Entoli (ε,α,τ):); |
7 |
char ch = (char) System.in.read(); |
8 |
char item; |
9 |
while ch != 'τ' { |
10 |
found = false; |
11 |
System.in.skip(1); |
12 |
item = (char) System.in.read(); |
13 |
switch (ch) { |
14 |
'ε' : if (pos<5) |
15 |
Pinakas[pos]= item; |
16 |
pos++; |
17 |
} |
18 |
else |
19 |
System.out.println ("Pinakas Plirhs"); |
20 |
break; |
21 |
'α' : for (int i=0; i<pos; i++) |
22 |
if (Pinakas[i] == item){ |
23 |
System.out.println("Paron sth thesi"+i); |
24 |
found=true;} |
25 |
if (!found) |
26 |
System.out.println("Apon"); |
27 |
break; |
28 |
Default : System.out.println("Lathos entoli"); |
29 |
} |
30 |
System.in.skip(2); |
31 |
System.out.print ("Entoli (ε,α,τ):"); |
32 |
ch = (char) System.in.read(); |
33 |
} |
34 |
} |
35 |
} |
ΘΕΜΑ 3ο (30%)
Γράψτε ένα πρόγραμμα που διαβάζει από την προκαθορισμένη είσοδο ένα κείμενο που τελειώνει με τον χαρακτήρα #. Το πρόγραμμα θα πρέπει να τυπώνει τη συχνότητα εμφάνισης στο κείμενο λέξεων που αποτελούνται από ένα χαρακτήρα, από δύο χαρακτήρες, τρεις χαρακτήρες κλπ. Υποθέστε ότι μια λέξη του κειμένου αποτελείται από έναν μέχρι (το πολύ) είκοσι κεφαλαίους λατινικούς χαρακτήρες. Όλοι οι υπόλοιποι χαρακτήρες (που δεν είναι κεφαλαίοι λατινικοί) θεωρούνται ως χαρακτήρες διαχωρισμού των λέξεων και πρέπει το πρόγραμμα να τους αγνοεί.
Γράψτε επίσης και τη λύση πρώτου επιπέδου για το πρόγραμμα αυτό.
ΘΕΜΑ 4ο (30%)
Ένα αρχείο (posothtes.dat) τυχαίας προσπέλασης, περιέχει ακεραίους που παριστάνουν τις ποσότητες δέκα προϊόντων που υπάρχουν σε μια αποθήκη, ως εξής:
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
100 |
200 |
200 |
200 |
150 |
150 |
250 |
250 |
300 |
300 |
Το προϊόν που βρίσκεται στη θέση 0 του αρχείου έχει απόθεμα 100, το προϊόν στη θέση 1 έχει απόθεμα 200 κλπ.
Γράψτε ένα πρόγραμμα (σε γλώσσα Java) που κάνει τα εξής:
Η πώληση και η προμήθεια είναι δυο μέθοδοι που κάνουν τα εξής:
Πώληση: Διάβασε τον αριθμό του προϊόντος (0-9) και την ποσότητα πώλησης. Εάν το απόθεμα είναι μεγαλύτερο από την ποσότητα πώλησης τότε μείωσε το απόθεμα κατά την ποσότητα αυτή. Διαφορετικά τύπωσε ένα κατάλληλο μήνυμα στην προκαθορισμένη έξοδο
Προμήθεια: Διάβασε τον αριθμό του προϊόντος (0-9) και την ποσότητα προμήθειας. Αύξησε το απόθεμα του προϊόντος κατά την ποσότητα της προμήθειας.
Δίνεται η παρακάτω μέθοδος για το διάβασμα ενός ακεραίου. Δε χρειάζεται να γράψετε ξανά τη μέθοδο αυτή. Απλά καλέστε τη όπου τη χρειάζεστε.
static int intRead()throws IOException{
int res=0,ch;
ch=(int)System.in.read();
while (ch <'0' || ch>'9') ch=System.in.read() ;
while (ch >='0' && ch<='9') {
res = 10*res+(ch-'0');
ch=(int)System.in.read();
}
return res;
}
Μέθοδοι της τάξης String
string.charAt (index) |
string.concat (string2) |
string.getBytes (from, toPlusOne, πίνακας_δυφιοσυλλαβών, at) |
string.getChars (from, toPlusOne, πίνακας_χαρακτήρων, at) |
string.indexOf (συμβολοσειρά) |
string.indexOf (συμβολοσειρά, starting_index) |
string.lastIndex (συμβολοσειρά, starting_index) |
string.length () |
string.replace (χαρακτήρας1, χαρακτήρας2) |
string.substring (starting_index) |
string.substring (starting_index, ending_indexPlusOne) |
string.toLowerCase () |
string.toString () |
string.trim () |
string.valueOf (πίνακας_χαρακτήρων) |