Απαριθμητοί Τύποι στην Pascal

Απαριθμητοί Τύποι στην Pascal

Ορισμός Τύπων (Απαριθμητοί και άλλοι)

Στην Pascal μπορούμε να ορίσουμε δικού μας τύπους που μπορεί να είναι απαριθμητοί ή και όχι. Ο σκοπός αυτής της δυνατότητας είναι η δημιουργία κατανοητών προγραμμάτων, τόσο για τους προγραμματιστές, όσο και για άλλους, που ίσως ασχοληθούν μελλοντικά με τα προγράμματα αυτά.

Ένα παράδειγμα τύπων δεδομένων της Pascal είναι οι: Boolean, Char, Integer και LongInt.

Το τμήμα ορισμού τύπων ξεκινάει με τη δεσμευμένη λέξη Type, την οποία ακολουθούν ένας ή περισσότεροι ορισμοί τύπων. Κάθε ορισμός αποτελείται από ένα όνομα, ένα σύμβολο ισότητας, την περιγραφή του τύπου που καθορίζεται και τελειώνει με το ελληνικό ερωτηματικό “;”.
Η συντακτική μορφή ενός απαριθμητού τύπου είναι η εξής :

Type Όνομα = (προσδιοριστικό1[, προσδιοριστικό2...]);

Οι απαριθμητοί τύποι δεδομένων αποτελούνται από μια διατεταγμένη σειρά ΜΟΝΑΔΙΚΩΝ προσδιοριστικών. Η Pascal δίνει αύξοντες αριθμούς στα προσδιοριστικά του απαριθμητού τύπου, αρχίζοντας από το ΜΗΔΕΝ. Με τον τρόπο αυτό επιτυγχάνεται μια εσωτερική αναπαράσταση των προσδιοριστικών.

Ακολουθεί ένα παράδειγμα ορισμού απαριθμητού τύπου:

 Type
     japanese_cars = (honda, isuzu, nissan, toyota);
 Var
     rental_car : japanese_cars;
 Begin
     rental_car := nissan;

Έτσι το προσδιοριστικό nissan με την τιμή 2, εκχωρείται στην μεταβλητή rental_car με τύπο japanese_cars.

Όπως είπαμε στην αρχή εκτός από απαριθμητούς τύπους, με τη δεσμευμένη λέξη Type μπορούμε να ορίσουμε οποιονδήποτε δικό μας τύπο.

Παράδειγμα:

type
     days, age = integer;
     yes, true = boolean;
     name, city = string;
     fees, expenses = real;
{* έτσι τώρα μπορούν να δημιουργηθούν μεταβλητές από τους τύπους που φτιάξαμε: *}
var 
    weekdays, holidays : days;
    choice: yes;
    student_name, emp_name : name;
    capital: city; cost: expenses;

Στα παραπάνω παραδείγματα τα days, age, yes, true, name, city, fees, expenses είναι τύποι και τα weekdays, holidays, choice, student_name, emp_name, capital, cost είναι μεταβλητές.

Χρησιμοποίηση τύπων στα προγράμματα

Για να χρησιμοποιήσουμε δικούς μας τύπους, πρώτα ορίζουμε τον τύπο, μετά ορίζουμε μεταβλητή αυτού του τύπου και τέλος καταχωρούμε στη μεταβλητή μια αρχική τιμή. Στη συνέχεια μπορούμε να χρησιμοποιήσουμε τη μεταβλητή αυτή στο προγραμμά μας.

Με τη σειρά:

  1. Ορισμός τύπου σε ξεχωριστό τμήμα κώδικα (τμήμα ορισμού τύπων)
  2. Ορισμός μεταβλητής αυτού του τύπου σε κάποιο τμήμα ορισμού μεταβλητών (συνάρτησης, προγράμματος)
  3. Εκχώρηση αρχικής τιμής στη μεταβλητή αυτή μέσα στο πεδίο της (variable scope)

Ακολουθεί η παρουσίαση των συναρτήσεων και των διαδικασιών που χρησιμοποιεί η Pascal για τον χειρισμό των απαριθμητών τύπων.

Συναρτήσεις Απαριθμητών Τύπων Pascal

ΌνομαΕίσοδοςΈξοδοςΠεριγραφή
Succμεταβλητή απαριθμητού τύπουμεταβλητή απαριθμητού τύπουΕπιστρέφει το προηγούμενο στοιχείο του απαριθμητού τύπου
Predμεταβλητή απαριθμητού τύπουμεταβλητή απαριθμητού τύπουΕπιστρέφει το προηγούμενο στοιχείο του απαριθμητού τύπου
Incμεταβλητή απαριθμητού τύπου[, ακέραιος]ΤίποταΑυξάνει τη μεταβλητή κατα 1 ή κατα τον ακέραιο της 2ης παραμέτρου
Decμεταβλητή απαριθμητού τύπου[, ακέραιος]ΤίποταΜειώνει τη μεταβλητή κατα 1 ή κατα τον ακέραιο της 2ης παραμέτρου
Ordμεταβλητή απαριθμητού τύπουLongIntΕπιστρέφει τον ακέραιο που αντιστοιχεί στην είσοδο
Oddμεταβλητή απαριθμητού τύπουBooleanΕπιστρέφει True αν η μεταβλητή είναι περιττή, διαφορετικά False
Chrμεταβλητή απαριθμητού τύπουCharΕπιστρέφει το χαρακτήρα που αντιστοιχεί στη μεταβλητή

Όλοι οι τύποι ακεραίων όπως επίσης ο τύπος Boolean και Char είναι απαριθμητοί.

Η διαφορά με τα ζευγάρια συναρτήσεων Succ, Pred και Inc, Dec είναι ότι οι πρώτες επιστρέφουν αντίστοιχα το επόμενο και προηγούμενο στοιχείο του τύπου ενώ οι δεύτερες αυξάνει και μειώνει αντίστοιχα την τιμή τους.

Στην περίπτωση των τύπων ακεραίων δεν υπάρχει διαφορά, όμως στις περιπτώσεις όπου ορίζουμε δικό μας απαριθμητό τύπο μπορεί να υπάρχει διαφορά γιατί μπορούμε να δώσουμε δικές μας τιμές στα προσδιοριστικά διαφορετικές απο αυτές που τους δίνει η Pascal.

Απάντηση

Αυτός ο ιστότοπος χρησιμοποιεί το Akismet για να μειώσει τα ανεπιθύμητα σχόλια. Μάθετε πώς υφίστανται επεξεργασία τα δεδομένα των σχολίων σας.