ΚΕΦΑΛΑΙΟ 10
ΕΝΤΟΛΕΣ ΕΠΙΛΟΓΗΣ ΚΑΙ ΑΠΟΦΑΣΕΩΝ Ή ΕΝΤΟΛΕΣ ΕΛΕΓΧΟΥ
ΕΝΤΟΛΗ CASE
H Πρόταση Ελέγχου
CASE
Παίζει τον ρόλο των πολλών IF, από
τις οποίες θα εκτελεστεί μόνο η μία
Πρόγραμμα
Program P4;
Var c : char;
Begin
Write('Dose a,b or c:');
Readln(c);
case c of
'a':
writeln('alpha');
'b':
writeln('beta');
'c':
writeln('gamma');
End;
End.
ΛΟΓΙΚΟ ΔΙΑΓΡΑΜΜΑ

|
Εντολές Ελέγχου CASE |
||
|
1 |
Case x of 1,2,3 : writeln(‘A’); 4,5 : writeln(‘B’); 6 : writeln(‘Γ’); else writeln(‘Δεν ξέρω’); end; |
Στην περίπτωση που το x είναι 1 ή 2 ή 3 τότε τύπωσε το ‘Α’ 4 ή 5 τότε τύπωσε το ‘Β’ 6 τότε τύπωσε το ‘Γ’ αλλιώς τύπωσε ‘Δεν ξέρω’
|
|
Η εντολή case τελειώνει με ένα end; Η εντολή πριν από το else του case δέχεται ερωτηματικό (;). |
|
|
|
|
|
|
|
2 |
Case x of 'A'..'Z', 'a' .. 'z': writeln('Γράμμα'); '0' .. '9' :writeln('Αριθμός'); else writeln('Δεν γνωρίζω'); end;
|
Στην περίπτωση που το x είναι γράμμα μικρό ή κεφαλαίο τότε τύπωσε ‘Γράμμα’ από 0 έως 9 τότε τύπωσε το ‘Αριθμός’ αλλιώς τύπωσε ‘Δεν γνωρίζω’
|
|
|
Η έκφραση 1 ... 15 σημαίνει από το 1 έως το 15 |
|
Παράδειγμα 1
Program Arithmos;
var T:integer;
Begin
write('Δώσε αριθμό: ');
readln(T);
case T of
1: writeln('Ένα');
2: writeln('Δύο');
3: writeln('Τρία');
4: writeln('Τέσσερα');
5: writeln('Πέντε');
else
writeln('Λάθος Αριθμός');
end;
End.
Να δίνονται από το πληκτρολόγιο αριθμοί από το 1 έως και το 5 και να μας τυπώνει ο Η/Υ τον αριθμό ολογράφως δηλαδή πληκτρολογώντας 1 να μας τυπώνει Ένα. Για οποιοδήποτε άλλο χαρακτήρα να μας τυπώνει «Λάθος Αριθμός»
Παράδειγμα
2
Program Hxos;
uses crt;
var bip: byte;
Begin
clrscr;
writeln('Δώσε τον αριθμό των Bip :');
readln(bip);
case bip of
1,2,3 : writeln('Μνήμη');
4,5,6,7 : writeln('Κύρια κάρτα');
8 : writeln('Κάρτα γραφικών');
else
writeln('Δεν γνωρίζω');
end;
End.
Εισάγουμε από το πληκτρολόγιο τον αριθμό των bip που ακούμε από τον Η/Υ όταν υπάρχει κάποιο πρόβλημα.
Ο αριθμός αποθηκεύεται στην μεταβλητή bip τύπου byte. Αν ο αριθμός είναι 1, 2 ή 3 θα τυποθεί το μήνυμα Μνήμη. Αν είναι 4, 5, 6, ή 7 θα τυπωθεί Κύρια κάρτα. Αν είναι 8 θα τυπωθεί Κάρτα γραφικών και για οποιαδήποτε άλλη τιμή θα τυπωθεί Δεν γνωρίζω.
ΠΡΟΣΟΧΗ: Η case κλείνει με την εντολή end;
Παράδειγμα 3
Δημιουργήστε ένα πρόγραμμα με το οποίο θα εισάγουμε έναν χαρακτήρα ο οποίος θα αποθηκεύεται στην μεταβλητή x. Ο υπολογιστής στην συνέχεια θα μας τυπώνει στην οθόνη το αντίστοιχο μήνυμα με βάση τον παρακάτω πίνακα:
|
ΧΑΡΑΚΤΗΡΑΣ |
ΜΗΝΥΜΑ |
|
a, b, c |
Γράμμα |
|
1,2,3,4 |
Αριθμός |
|
+, *, -, / |
Σύμβολο |
|
Οτιδήποτε άλλο |
Δεν Γνωρίζω |
Χρησιμοποιήστε την εντολή case
Program Akereoi_Ariumoi;
var x:char;
begin
Write('Δώσε ένα χαρακτήρα ');
readln(x);
case x of
'a', 'b', 'c': writeln( 'Γράμμα');
'1', '2', '3', '4' : writeln('Αριθμός');
'+', '-', '*', ‘/’ : writeln('Σύμβολο');
else
writeln( 'Δεν Γνωρίζω');
end;
end.
Παράδειγμα
4
Program Grammata;
uses crt;
var X:char;
Begin
clrscr;
writeln('Δώσε το αρχικό γράμμα :');
readln(X);
case X of
'P' : writeln('Petros');
'X' : writeln('Xristina');
'N' : writeln('Nikos');
'A' : writeln('Anna');
'G' : writeln('Giorgos');
else
writeln('Δεν γνωρίζω');
end;
End.
Δίνουμε από το πληκτρολόγιο ένα χαρακτήρα και μας τυπώνει ο Η/Υ το όνομα που αρχίζει από αυτόν τον χαρακτήρα. Για οποιοδήποτε άλλο χαρακτήρα μας τυπώνει «Δεν γνωρίζω»
Παράδειγμα 5
Program Demo1;
var x:char;
begin
writeln('Δώσε ένα χαρακτήρα:');
readln(x);
case x of
'A'..'Z', 'a' .. 'z': writeln('Γράμμα');
'0' .. '9' :writeln('Αριθμός');
else
writeln('Δεν γνωρίζω');
end;
end.
Δίνουμε από το πληκτρολόγιο ένα χαρακτήρα και μας τυπώνει ο Η/Υ το μήνυμα «Γράμμα» αν είναι γράμμα κεφαλαίο ή μικρό, τυπώνει Αριθμός αν είναι μεταξύ 0 έως 9 και «Δεν γνωρίζω» για οποιοδήποτε άλλο χαρακτήρα.