Διάστημα τιμών
Συχνά κρίνεται σκόπιμο να περιοριστεί η χρήση μιας μεταβλητής μόνο σ’ ένα διάστημα τιμών.
Η Pascal διαθέτει τον τύπο του υποδιαστήματος με τον οποίο μπορούμε να ορίσουμε δικά μας υποδιαστήματα τακτικών τύπων περιορίζοντας το εύρος τους.
Το υποδιάστημα πρέπει να είναι ένα υποσύνολο ενός τακτικού τύπου , ο οποίος καλείται πατρικός (host).
Το διάστημα τιμών πρέπει να είναι ΣΥΝΕΧΕΣ.
Για να οριστεί ένα υποδιάστημα, απλά δηλώνουμε το όνομα του υποδιαστήματος, την κατώτατη και την ανώτατη τιμή του υποδιαστήματος και οι δύο αυτές τιμές διαχωρίζονται με δύο τελείες, ως εξής :
Όνομα_Υποδιαστήματος = Κατώτατη_Τιμή..Ανώτατη_Τιμή
<br/><br/>Οι δύο τιμές πρέπει να είναι σταθερές του ίδιου τύπου και η κατώτατη τιμή να είναι διατεταγμένη πριν από την ανώτατη τιμή, δηλ. :
Ord(Κατώτατη_Τιμή) <= Ord(Ανώτατη_Τιμή)
Η Pascal ελέγχει αυτόματα τα όρια των υποδιαστημάτων σε προτάσεις άμεσης εκχώρησης.
Υποδιαστήματα Ακεραίων
Με τα ακέραια υποδιαστήματα ορίζουμε ένα όριο έγκυρων ακέραιων τιμών, ως εξής :
Type screen_columns = 1..80; days = 1..31; months = 1..12; seconds = 0..59; minutes = 0..59; hours = 0..23;
Η Pascal επιτρέπει ακόμη και εκφράσεις με τους ορισμούς υποδιαστημάτων :
Const max_col = 80; max_row = 25; max_days_per_month = 31; months_per_year = 12; sec_per_minute = 60; minute_per_hour = 60; hour_per_day = 24; Type screen_columns = 1..max_col; screen_rows = 1..max_row; days = 1..max_days_per_month; months = 1..months_per_year; seconds = 0..sec_per_minute-1; minutes = 0..minute_per_hour-1; hours = 0..hour_per_day-1;
Υποδιαστήματα Χαρακτήρων
Με τα υποδιαστήματα χαρακτήρων ορίζουμε ένα όριο αποδεκτών τιμών τύπου char, ως εξής :
Type up_case_char = 'A'..'Z'; lo_case_char = 'a'..'z'; digit_char = '0'..'9';
Απαριθμητά Υποδιαστήματα
Με αυτά ορίζουμε ένα όριο αποδεκτών απαριθμητών τιμών, ως εξής :
Type vehicles = (volkswagen, honda, toyota, corvette, porsche, ferrari, bronco); economy_cars = volkswagen..toyota; sports_cars = corvette..ferrari;