Απλοί τύποι

Τακτικοί τύποι

Θέμα 3. Δομή τύπου δεδομένων. Τυπικές διαδικασίεςκαι συναρτήσεις που ισχύουν για ακέραιους αριθμούς, πραγματικούς αριθμούς. Λογικό, χαρακτήρας, απαριθμημένοι τύποι, τύπος εύρους. Παραδείγματα.

Τύποι Δεδομένων

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

Το Turbo Pascal χαρακτηρίζεται από μια διακλαδισμένη δομή τύπων δεδομένων.

Απλοί τύποι

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

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

Τακτικοί τύποι

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

Το ORD(X) για έναν τύπο χαρακτήρων δίνει έναν ακέραιο αριθμό στην περιοχή από 0 έως 255, για έναν απαριθμημένο τύπο Το ORD(X) δίνει έναν αριθμό στην περιοχή από 0 έως 65535. Ο τύπος εύρους διατηρεί όλες τις ιδιότητες του βασικού τακτικού τύπου , οπότε το αποτέλεσμα της εφαρμογής της συνάρτησης ORD σε αυτήν είναι (X) εξαρτάται από τις ιδιότητες αυτού του τύπου. Μπορείτε επίσης να εφαρμόσετε συναρτήσεις σε τακτικούς τύπους:

PRED (X) - επιστρέφει την προηγούμενη τιμή του τακτικού τύπου, δηλ. ORD(PRED (X))= ORD(X)-1;

SUCC(X) - επιστρέφει την επόμενη τακτική τιμή (η οποία αντιστοιχεί στον τακτικό αριθμό ORD (X)+1), δηλ.

Απλοί τύποι

Τακτικός

Πραγματικός

Ημερομηνία-ώρα

Λογικός

Συμβολικός

Καταχωρίσιμο

Εύρος τύπου

Εικόνα 1 – Απλοί τύποι δεδομένων

Τακτικοί τύποι

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

Οι συναρτήσεις που έχουν σχεδιαστεί για να λειτουργούν με τακτικούς τύπους φαίνονται στον Πίνακα 1.

Πίνακας 1 – Λειτουργίες για εργασία με τακτικούς τύπους.

Ακέραιοι τύποι

Το εύρος των πιθανών τιμών των ακέραιων τύπων εξαρτάται από την εσωτερική τους αναπαράσταση, η οποία μπορεί να είναι ένα, δύο, τέσσερα ή οκτώ byte. Ο Πίνακας 2 παραθέτει τους κύριους τύπους ακέραιων αριθμών.

Πίνακας 2 - Ακέραιοι τύποι

Ονομα

Μήκος, byte

Εύρος τιμών

2147483648 … +2147483647

0 … 2147483647

0 … 4294967295

263 … 263 -1

Παρακαλώ σημειώστεότι το Object Pascal εκτελεί αυτόματη χύτευση τύπου. Για παράδειγμα, όπου είναι αποδεκτή η χρήση μιας μεταβλητής τύπου Word ως όρισμα, είναι αποδεκτή η χρήση μιας μεταβλητής τύπου Byte, αλλά όχι το αντίστροφο. Γενικός κανόναςΈτσι, αντί για έναν τύπο ακέραιας μεταβλητής, μπορείτε να χρησιμοποιήσετε έναν άλλο τύπο ακέραιας μεταβλητής εάν τα εύρη τιμών τους είναι ένθετα

σε φίλο.

Ο Πίνακας 3 δείχνει ορισμένες συναρτήσεις για εργασία με ακέραιες μεταβλητές.

Πίνακας 3 – Συναρτήσεις για εργασία με ακέραιους αριθμούς

Όταν λειτουργούμε με ακέραιους αριθμούς, ο τύπος αποτελέσματος θα αντιστοιχεί στον τύπο των τελεστών και εάν οι τελεστές είναι διαφορετικών ακέραιων τύπων, ο γενικός τύπος θα αντιστοιχεί και στους δύο τελεστές. Για παράδειγμα, ο κοινός τύπος για τους τύπους ShortInt και Word είναι Integer.

Από προεπιλογή, ο μεταγλωττιστής δεν δημιουργεί κώδικα ελέγχου που ελέγχει πιθανή διέξοδοςοι τιμές είναι εκτός του αποδεκτού εύρους, το οποίο μπορεί να οδηγήσει σε δυσλειτουργίαπρογράμματα. Για παράδειγμα, όταν εκτελείτε το πρόγραμμα στη Λίστα 1, η οθόνη θα εμφανίζει το μηδέν αντί για το 65536.

Λίστα 1

($IFDEF FPC) ($MODE DELPHI)

($APPTYPE ΚΟΝΣΟΛΑ) πρόγραμμαInOutPrg; var x: Word; αρχίζω

Για να ενεργοποιήσετε τον έλεγχο υπερχείλισης, πρέπει να καθορίσετε μια οδηγία μεταγλωττιστή ($Q+) για να απενεργοποιήσετε τον έλεγχο - ($Q-).

Αντί για ($Q+) μπορείτε να χρησιμοποιήσετε ($OVERFLOWCHECKS ON) και αντί για ($Q-) ($OVERFLOWCHECKS OFF)

Τροποποιήστε το πρόγραμμα στη Λίστα 1 για να τοποθετήσετε την οδηγία ($Q+) στην πρώτη γραμμή. Εκτελέστε το, το πρόγραμμα θα πρέπει να διακοπεί.

Για ακέραιες μεταβλητές, είναι ασφαλέστερο να χρησιμοποιήσετε τον τύπο Integer, αφού το εύρος

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

Boolean τύποι

Μια μεταβλητή Boolean μπορεί να πάρει μόνο δύο τιμές: True και False. Οι λογικοί τύποι φαίνονται στον Πίνακα 4.

Πίνακας 4 - Λογικοί τύποι

Για να εργαστείτε με τύπους Boolean, χρησιμοποιήστε τον τύπο Boolean που προστέθηκαν άλλοι τύποι στο Object Pascal για συμβατότητα με προγράμματα γραμμένα σε άλλες γλώσσες προγραμματισμού.

Τύπος χαρακτήρα

Ο τύπος χαρακτήρα, όπως υποδηλώνει το όνομά του, έχει σχεδιαστεί για να αποθηκεύει τον κωδικό ενός χαρακτήρα. Η εσωτερική δομή του τύπου είναι ίδια με την εσωτερική δομή των ανυπόγραφων ακεραίων. Το Object Pascal υποστηρίζει δύο τύπους χαρακτήρων: AnsiChar και WideChar. Τα χαρακτηριστικά αυτών των τύπων φαίνονται στον Πίνακα 5.

Πίνακας 5 - Τύποι χαρακτήρων

Περιγραφή

Κωδικός χαρακτήρων ANSI. Πίνακας συμβόλων αυτού του προτύπου

αποτελείται από 256 χαρακτήρες, με τους πρώτους 128 χαρακτήρες να είναι αυστηρά

ορίζονται από το πρότυπο και τα υπόλοιπα 128 μπορούν να περιέχουν οποιαδήποτε

σύμβολα. Συνήθως τοποθετείται το δεύτερο μέρος του πίνακα κωδικών

σύμβολα των εθνικών αλφαβήτων. Το μειονέκτημα αυτού

αναπαράσταση χαρακτήρων είναι ότι είναι αδύνατο να εμφανιστεί

περισσότερους χαρακτήρες ταυτόχρονα

από 2 αλφάβητα.

Χαρακτήρας σε μορφή UNICODE. Ο πίνακας συμβόλων περιέχει 65536

χαρακτήρες. Αυτός ο πίνακας περιέχει σύμβολα όλων των αλφαβήτων.

Χαρ1

Είναι ένα ψευδώνυμο για τον τύπο AnsiChar

Για να μετατρέψετε έναν κωδικό χαρακτήρα σε χαρακτήρα, θα πρέπει να χρησιμοποιήσετε την παρακάτω λειτουργία

συνάρτηση chr(X:byte):char

Για την αντίστροφη μετατροπή, χρησιμοποιήστε τη συνάρτηση

1 Στο Αντικείμενο Τύπος PascalΟ Χαρ είναι βασικός. ΣΕ επόμενες εκδόσειςο τύπος Char μπορεί να γίνει ψευδώνυμο για τον τύπο WideChar.

συνάρτηση ord(X:char):byte;

Μια σταθερά τύπου χαρακτήρα μπορεί να καθοριστεί με δύο τρόπους. Ορισμός χαρακτήρα σε μεμονωμένα εισαγωγικάή καθορίστε τον κωδικό χαρακτήρα. Οι επόμενες δύο καταχωρήσεις είναι ισοδύναμες.

ch:="A" ;

ch:=#97; //97 – κωδικός χαρακτήρα "A".

Για παράδειγμα

var ch:char; κωδικός: byte;

start ch:="A" ;

ch:=chr(32); //32 - αντιστοιχεί στον κωδικό πλήκτρου διαστήματος

τέλος.

Τύπος Enum

Ένας απαριθμημένος τύπος καθορίζεται από μια απαρίθμηση των τιμών που μπορεί να λάβει. Κάθε τιμή ονομάζεται από κάποιο αναγνωριστικό και βρίσκεται σε μια λίστα που περιβάλλεται από παρενθέσεις.

<имя типа>= (id, id, id,...);

Εδώ το "όνομα τύπου" είναι το αναγνωριστικό Object Pascal, το "id" είναι το αναγνωριστικό Object Pascal.

Για παράδειγμα, ένας τύπος που περιγράφει κάποιο σταθερό σύνολο χρωμάτων

Η χρήση απαριθμημένων τύπων κάνει τα προγράμματα πιο οπτικά και αυξάνει την αξιοπιστία των προγραμμάτων. Ας οριστούν οι παρακάτω τύποι:

τύπος TCcolors = (κόκκινο, πράσινο, λευκό, κίτρινο).

TDays=(Δευτέρα, Τρίτη, Τετάρτη);

Ορίζονται μεταβλητές

var col:TCcolors;

τότε επιτρέπονται οι ακόλουθοι τελεστές

col:=Succ(πράσινο);

day:=Pred(Tuesday);

αλλά όχι αποδεκτό

Ο μέγιστος αριθμός των απαριθμούμενων τιμών εξαρτάται από την υλοποίηση. Επί του παρόντος, το μέγεθος μιας μεταβλητής τύπου απαρίθμησης είναι 4 byte, που αντιστοιχεί σε 232 διαφορετικές τιμές, που σημαίνει ότι ο τύπος απαρίθμησης είναι εσωτερικά LongWord.

Όπως αναφέρθηκε παραπάνω, μπορείτε να τοποθετήσετε τον ορισμό τύπου αμέσως μετά την άνω και κάτω τελεία, για παράδειγμα

var col: (κόκκινο, πράσινο, λευκό, κίτρινο). ημέρα: (Δευτέρα, Τρίτη, Τετάρτη)

Εύρος τύπου

Ένας τύπος εύρους είναι ένα υποσύνολο κάποιου υποκείμενου τακτικού τύπου. Ένας τύπος εύρους ορίζεται από τα όρια των τιμών του.

<мин. зн.> .. <макс. зн.>

Οι τακτικοί τύποι περιλαμβάνουν (βλ. Εικόνα 4.1) τύπους ακέραιων, λογικών, χαρακτήρων, απαριθμημένων και εύρους. Η συνάρτηση ORD(X) είναι εφαρμόσιμη σε οποιαδήποτε από αυτές, η οποία επιστρέφει τον τακτικό αριθμό της τιμής της παράστασης X. Για ακέραιους τύπους, η συνάρτηση ORD(X) επιστρέφει την τιμή του ίδιου του X, δηλ. ORD(X) = X για X που ανήκει σε οποιονδήποτε τύπο κελύφους. Η εφαρμογή του ORD(X) σε τύπους boolean, χαρακτήρων και απαρίθμησης παράγει έναν θετικό ακέραιο αριθμό στο εύρος 0 έως 1 (boolean), 0 έως 155 (χαρακτήρας), 0 έως 65535 (απαρίθμηση). Ένας τύπος εύρους διατηρεί όλες τις ιδιότητες του υποκείμενου τακτικού τύπου, επομένως το αποτέλεσμα της εφαρμογής της συνάρτησης ORD(X) σε αυτόν εξαρτάται από τις ιδιότητες αυτού του τύπου.

Μπορείτε επίσης να εφαρμόσετε συναρτήσεις σε τακτικούς τύπους:

PRED (X) - επιστρέφει την προηγούμενη τιμή του τακτικού τύπου (την τιμή που αντιστοιχεί στον τακτικό αριθμό ORD(X) - 1), δηλ.

ORD(PRED(X)) = ORD(X) - 1;

SUCC (X) - επιστρέφει την επόμενη τακτική τιμή που ταιριάζει με τον τακτικό αριθμό ORD(X) +1, δηλ.

ORD(SUCC(X)) = ORD(X) + 1.

Για παράδειγμα, εάν ένα πρόγραμμα ορίζει μια μεταβλητή

τότε η συνάρτηση PRED(C) θα επιστρέψει την τιμή "4", και η συνάρτηση SUCC(C) θα επιστρέψει την τιμή "6".

Αν φανταστούμε οποιονδήποτε τακτικό τύπο ως ένα διατεταγμένο σύνολο τιμών, που αυξάνεται από αριστερά προς τα δεξιά και καταλαμβάνει ένα συγκεκριμένο τμήμα στον άξονα αριθμών, τότε η συνάρτηση PRED(X) δεν ορίζεται για το αριστερό και SUCC(X) για το δεξί τέλος αυτού του τμήματος.

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

Πίνακας 4.1

Όταν χρησιμοποιείτε διαδικασίες και συναρτήσεις με ακέραιες παραμέτρους, θα πρέπει να καθοδηγηθείτε από την «φωλιοποίηση» των τύπων, π.χ. Όπου μπορεί να χρησιμοποιηθεί το WORD, μπορεί να χρησιμοποιηθεί BYTE (αλλά όχι το αντίστροφο), το LONGINT "περιλαμβάνει" ΑΚΕΡΑΙΟΣ, το οποίο, με τη σειρά του, περιλαμβάνει SHORTINT.

Κατάλογος διαδικασιών και λειτουργιών που ισχύουν για αναπόσπαστους τύπους, δίνεται στον Πίνακα 4.2. Γράμματα b, s, w, i, lΟι εκφράσεις του τύπου BYTE, SHORTINT, WORD, INTEGER και LONGINT ορίζονται αντίστοιχα, το x είναι μια έκφραση οποιουδήποτε από αυτούς τους τύπους. γράμματα vb, vs, vw, vi, vl, vxδηλώνουν μεταβλητές των αντίστοιχων τύπων. ΣΕ αγκύλεςκαθορίζεται μια προαιρετική παράμετρος.

Πίνακας 4.2

Τυπικές διαδικασίες και λειτουργίες που ισχύουν για ολόκληρους τύπους
Εφεση Τύπος αποτελέσματος Δράση
κοιλιακοί (x) x Επιστρέφει την ενότητα x
chr(b) Απανθρακώνω Επιστρέφει έναν χαρακτήρα από τον κωδικό του
dec(vx[, i]) - Μειώνει την τιμή του vx κατά i και ελλείψει i - κατά 1
inc(vx[, i]) - Αυξάνει την τιμή του vx κατά i και ελλείψει i - κατά 1
Γεια (i) Ψηφιόλεξη Επιστρέφει το υψηλό byte του ορίσματος
Γεια σου Ιδιο Ιδιο
Lo(i) " Επιστρέφει το χαμηλό byte του ορίσματος
Χαμηλός) " Ιδιο
περίεργο(l) Boolean Επιστρέφει True εάν το όρισμα είναι περιττός αριθμός
Τυχαία (w) Το ίδιο με την παράμετρο Επιστροφές ψευδοτυχαίος αριθμός, ομοιόμορφα κατανεμημένα στο εύρος 0...(w-l)
sgr(x) Χ Επιστρέφει το τετράγωνο του επιχειρήματος
swap(i) Ακέραιος αριθμός Ανταλλάσσει byte με μια λέξη
swap(w) Λέξη

Όταν λειτουργούμε με ακέραιους αριθμούς, ο τύπος του αποτελέσματος θα αντιστοιχεί στον τύπο των τελεστών και εάν οι τελεστές είναι διαφορετικών ακέραιων τύπων, ο τύπος του τελεστή που έχει τη μέγιστη ισχύ (μέγιστο εύρος τιμών). Πιθανή υπερχείλιση του αποτελέσματος δεν ελέγχεται με κανέναν τρόπο, γεγονός που μπορεί να οδηγήσει σε παρεξηγήσεις, για παράδειγμα:

a:= 32767; (Ανώτατο όριο πιθανό νόημα ΑΚΕΡΑΙΟΣ τύπος}

x:= a + 2; (Υπερχείλιση κατά την αξιολόγηση αυτής της έκφρασης !}

y:= LongInt(a)+2; (Καμία υπερχείλιση μετά τη ρίψη της μεταβλητής σε πιο ισχυρό τύπο)

WriteLn(x:10:0, y:10:0)

Ως αποτέλεσμα της εκτέλεσης του προγράμματος παίρνουμε

Τύπος Boolean . Οι τιμές Boole μπορεί να είναι μία από τις προ-δηλωμένες σταθερές FALSE ή TRUE. Οι κανόνες ισχύουν για αυτούς:

Ψευδής< True;

succ(Λάθος)= Σωστό;

pred(True) = Λάθος.

Δεδομένου ότι ο τύπος Boolean είναι ένας τακτικός τύπος, μπορεί να χρησιμοποιηθεί σε έναν μετρήσιμο τελεστή τύπου, για παράδειγμα:

για 1:= Λάθος έως Σωστό κάνε ....

Τύπος χαρακτήρα.Η τιμή ενός τύπου χαρακτήρα είναι το σύνολο όλων των χαρακτήρων του υπολογιστή. Σε κάθε χαρακτήρα εκχωρείται ένας ακέραιος αριθμός στην περιοχή 0...255. Αυτός ο αριθμός χρησιμεύει ως κωδικός για την εσωτερική αναπαράσταση του συμβόλου που επιστρέφεται από τη συνάρτηση ORD.

Ο κωδικός ASCII χρησιμοποιείται για την κωδικοποίηση ( American Standard Κωδικός γιαΑνταλλαγή πληροφοριών- Αμερικανός τυπικός κωδικόςγια ανταλλαγή πληροφοριών). Αυτός είναι ένας κωδικός 7-bit, δηλ. με τη βοήθειά του μπορείτε να κωδικοποιήσετε μόνο 128 χαρακτήρες στην περιοχή από 0 έως 127. Ταυτόχρονα, στο byte 8 bit που διατίθεται για την αποθήκευση ενός χαρακτήρα στο Turbo Pascal, μπορείτε να κωδικοποιήσετε δύο φορές περισσότερους χαρακτήρεςστην περιοχή από 0 έως 255. Το πρώτο μισό των χαρακτήρων υπολογιστή με κωδικούς 0...127 αντιστοιχεί στο πρότυπο ASCII (Πίνακας 4.3). Το δεύτερο μισό των χαρακτήρων με κωδικούς 128...255 δεν περιορίζεται από το άκαμπτο πλαίσιο του προτύπου και μπορεί να αλλάξει σε υπολογιστή διαφορετικών τύπων(Το Παράρτημα 2 δείχνει μερικές κοινές επιλογές κωδικοποίησης για αυτούς τους χαρακτήρες).

Πίνακας 4.3

Κωδικοποίηση χαρακτήρων σύμφωνα με το πρότυπο ASCII
Κώδικας Σύμβολο Κώδικας Σύμβολο Κώδικας Σύμβολο Κώδικας Σύμβολο
NUL B.L. ® "
ΖΩΝ ! ΕΝΑ ένα
STX " ΣΕ σι
ETX # ΜΕ Με
ΕΟΤ $ ρε ρε
ENQ % μι μι
ΠΑΡΑΚΑΛΩ & φά φά
BEL " σολ σολ
B.S. ( H η
NT ) εγώ εγώ
LF * J ι
VT + κ κ
FF , μεγάλο εγώ
CR - Μ m
ΕΤΣΙ . Ν n
ΣΙ. / ΓΙΑ
ΔΕΛ σελ Π
DC1 Q q
DC2 R r
DC3 μικρό μικρό
DC4 Τ t
Ν.Α.Κ. U u
ΣΥΝ V V
ETB w w
ΚΟΥΤΙ Χ Χ
Η Ε.Μ. U U
ΥΠΟ : z z
ESC / [ {
FS < \ μεγάλο
Γ.Σ. = ] }
R.S. > ^ ~
ΜΑΣ ? - n

Οι χαρακτήρες με κωδικούς 0...31 αναφέρονται σε κωδικούς υπηρεσίας. Εάν αυτοί οι κωδικοί χρησιμοποιούνται στο κείμενο χαρακτήρων του προγράμματος, θεωρούνται κενά. Όταν χρησιμοποιούνται σε λειτουργίες I/O, μπορούν να έχουν την ακόλουθη ανεξάρτητη σημασία:

Σύμβολο Κώδικας Εννοια
BEL Κλήση; Η εμφάνιση αυτού του συμβόλου συνοδεύεται από ηχητικό σήμα
NT Οριζόντιος πίνακας; όταν εμφανίζεται στην οθόνη, μετακινεί τον κέρσορα σε μια θέση που είναι πολλαπλάσιο του 8 συν 1 (9, 17, 25, κ.λπ.)
LF Γραμμή τροφοδοσίας? όταν εμφανίζεται στην οθόνη, όλοι οι επόμενοι χαρακτήρες θα εμφανίζονται ξεκινώντας από την ίδια θέση, αλλά στο επόμενη γραμμή
VT Κάθετη καρτέλα? όταν εμφανίζεται στην οθόνη αντικαθίσταται ειδικό σημάδι
FF Εκτέλεση σελίδας. όταν εξάγεται σε έναν εκτυπωτή, σχηματίζει μια σελίδα όταν εξάγεται στην οθόνη, αντικαθίσταται με έναν ειδικό χαρακτήρα
CR Επιστροφή μεταφοράς; εισάγεται πατώντας Εισαγωγή κλειδιού(όταν εισάγεται χρησιμοποιώντας READ ή READLN, σημαίνει την εντολή "Enter" και δεν χωράει στην προσωρινή μνήμη εισόδου, όταν εξόδου σημαίνει την εντολή "Συνέχεια εξόδου από την αρχή" τρέχουσα γραμμή»)
ΥΠΟ Τέλος αρχείου. εισάγεται από το πληκτρολόγιο πατώντας Ctrl-Z. όταν βγαίνει αντικαθίσταται με ειδικό σήμα
SSC Τέλος εργασίας; εισάγεται από το πληκτρολόγιο πατώντας Κλειδί ESC; όταν βγαίνει αντικαθίσταται με ειδικό σήμα

Οι σχεσιακές λειτουργίες, καθώς και οι ενσωματωμένες συναρτήσεις, ισχύουν για τον τύπο CHAR: СНR(В) - συνάρτηση τύπου CHAR. μετατρέπει μια έκφραση Β τύπου BYTE σε χαρακτήρα και την επιστρέφει με την τιμή της.

UPCASE(CH) - Λειτουργία τύπου CHAR. επιστρέφει ένα κεφαλαίο γράμμα εάν το CH είναι πεζό λατινικό γράμμα, διαφορετικά επιστρέφει τον ίδιο τον χαρακτήρα CH, για παράδειγμα:

cl:= UpCase("s");

c2:= UpCase ("Ф") ;

WriteLn(cl," ",c2)

Δεδομένου ότι η συνάρτηση UPCASE δεν επεξεργάζεται κυριλλικά, το αποτέλεσμα της εκτέλεσης αυτής

τα προγράμματα θα εμφανιστούν στην οθόνη

Τύπος Enum. Ένας απαριθμημένος τύπος καθορίζεται από μια απαρίθμηση των τιμών που μπορεί να λάβει. Κάθε τιμή ονομάζεται από κάποιο αναγνωριστικό και βρίσκεται σε μια λίστα που περιβάλλεται από παρενθέσεις, για παράδειγμα:

χρώματα =(κόκκινο, λευκό, μπλε);

Η χρήση απαριθμημένων τύπων κάνει τα προγράμματα πιο οπτικά. Εάν, για παράδειγμα, το πρόγραμμα χρησιμοποιεί δεδομένα που σχετίζονται με τους μήνες του έτους, τότε το ακόλουθο τμήμα του προγράμματος:

TypeMonth=(Ιαν, Φεβ, Μάρτιος, Απρίλιος, Μάιος, Ιούνιος, Ιούλιος, Αύγουστος, Σεπ, Οκτώβριος, Νοέμβριος, Δεκέμβριος);

μήνας: ΤύποςΜήνας;

αν μήνας = Αύγουστος τότε WriteLn("Θα ήταν ωραίο να πάμε στη θάλασσα!");

Θα ήταν, βλέπετε, πολύ ξεκάθαρο. Αλίμονο! Στο Turbo Pascal δεν μπορείτε να χρησιμοποιήσετε κυριλλικά σε αναγνωριστικά, οπότε αναγκαζόμαστε να γράψουμε ως εξής:

TypeMonth=(Ιαν.

μήνας: ΤύποςΜήνας;

αν μήνας = αυγ. τότε WriteLn("Θα ήταν ωραίο να πάμε στη θάλασσα!");

Η αντιστοιχία μεταξύ των τιμών ενός απαριθμημένου τύπου και των τακτικών αριθμών αυτών των τιμών καθορίζεται με τη σειρά απαρίθμησης: η πρώτη τιμή στη λίστα λαμβάνει τον τακτικό αριθμό 0, η δεύτερη - 1 κ.λπ. Η μέγιστη χωρητικότητα ενός απαριθμημένου τύπου είναι 65536 τιμές, επομένως στην πραγματικότητα ένας απαριθμημένος τύπος ορίζει ένα συγκεκριμένο υποσύνολο ολόκληρου του τύπου WORD και μπορεί να θεωρηθεί ως συμπαγής δήλωση μιας ομάδας ακεραίων σταθερών με τιμές 0, 1, κ.λπ.

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

χρώματα = (μαύρο, κόκκινο, λευκό);

ordenal= (ένα, δύο, τρία);

ημέρες = (Δευτέρα, Τρίτη, Τετάρτη);

Όσον αφορά την ισχύ και την εσωτερική εκπροσώπηση, και οι τρεις τύποι είναι ισοδύναμοι:

ord(μαύρο)=0, ..., ord(λευκό)=2,

ord(one)=0, ...ord(τρία)=2,

ord(Δευτέρα)=0, ...ord(Τετάρτη)=2.

Ωστόσο, εάν οριστούν οι μεταβλητές

col:colors; num:ordenal;

τότε επιτρέπονται οι χειριστές

num:= succ(δύο);

day:= pred(Tuesday);

αλλά απαράδεκτο

Όπως ήδη αναφέρθηκε, υπάρχει μια αντιστοιχία ένα προς ένα μεταξύ των τιμών ενός απαριθμημένου τύπου και του συνόλου των ακεραίων, που καθορίζονται από τη συνάρτηση ORD(X). Το Turbo Pascal επιτρέπει επίσης την αντίστροφη μετατροπή: οποιαδήποτε έκφραση τύπου WORD μπορεί να μετατραπεί σε τιμή τύπου enum, αρκεί η τιμή της ακέραιας έκφρασης να μην υπερβαίνει το power1™ του τύπου απαρίθμησης. Αυτή η μετατροπή επιτυγχάνεται χρησιμοποιώντας μια αυτόματα δηλωμένη συνάρτηση με το όνομα του απαριθμούμενου τύπου (βλ. ενότητα 4.4). Για παράδειγμα, για τη δήλωση τύπου που συζητήθηκε παραπάνω, οι ακόλουθες εκχωρήσεις είναι ισοδύναμες:

col:= χρώματα(0);

Φυσικά, ανάθεση

θα είναι απαράδεκτη.

Οι μεταβλητές οποιουδήποτε απαριθμημένου τύπου μπορούν να δηλωθούν χωρίς να δηλωθεί πρώτα αυτός ο τύπος, για παράδειγμα:

col: (μαύρο, λευκό, πράσινο);

Εύρος τύπου. Ένας τύπος εύρους είναι ένα υποσύνολο του βασικού του τύπου, ο οποίος μπορεί να είναι οποιοσδήποτε τακτικός τύπος εκτός από έναν τύπο εύρους. Ένας τύπος εύρους ορίζεται από τα όρια των τιμών του εντός του βασικού τύπου:

<мин.знач.>..<макс.знач.>

Εδώ<мин.знач. >- ελάχιστη τιμή του εύρους τύπου·

<макс.знач.>- η μέγιστη τιμή του.

Για παράδειγμα:

ψηφίο = "0".."9";

Ο τύπος εύρους δεν χρειάζεται να περιγράφεται στην ενότητα TYPE, αλλά μπορεί να καθοριστεί απευθείας κατά τη δήλωση μιας μεταβλητής, για παράδειγμα:

Ichr: "A".."Z";.

Κατά τον καθορισμό ενός τύπου εύρους, πρέπει να ακολουθείτε τους ακόλουθους κανόνες:

  • δύο χαρακτήρες ".." αντιμετωπίζονται ως ένας χαρακτήρας, επομένως δεν επιτρέπονται κενά μεταξύ τους.
  • το αριστερό περίγραμμα του εύρους δεν πρέπει να υπερβαίνει το δεξί του όριο. Ένας τύπος εύρους κληρονομεί όλες τις ιδιότητες του βασικού του τύπου, αλλά με τους περιορισμούς της χαμηλότερης ισχύος του. Ειδικότερα, εάν οριστεί μια μεταβλητή

ημέρες = (mo,tu,we,th,fr,sa,su);

WeekEnd = sa .. su;

τότε το ORD(W) θα επιστρέψει την τιμή 5 ενώ το PRED(W) θα οδηγήσει σε σφάλμα.

ΣΕ τυπική βιβλιοθήκηΤο Turbo Pascal περιλαμβάνει δύο λειτουργίες που υποστηρίζουν την εργασία με τύπους εύρους:

HIGH(X) - επιστρέφει τη μέγιστη τιμή του τύπου εύρους στον οποίο ανήκει η μεταβλητή X.

LOW(X) - επιστρέφει την ελάχιστη τιμή του τύπου εύρους.

Επόμενος σύντομο πρόγραμμαθα εμφανίσει τη γραμμή

WriteLn(Low(k),"..",High(k))

Το σύνολο των ακεραίων είναι άπειρο, αλλά μπορούμε πάντα να επιλέξουμε έναν αριθμό bit για να αντιπροσωπεύσουμε οποιονδήποτε ακέραιο που προκύπτει κατά την επίλυση συγκεκριμένο έργο. Το σύνολο των πραγματικών αριθμών δεν είναι μόνο άπειρο, αλλά και συνεχές, οπότε όσα bits και να πάρουμε, αναπόφευκτα θα συναντήσουμε αριθμούς που δεν έχουν ακριβή αναπαράσταση. Οι αριθμοί κινητής υποδιαστολής είναι ένας από τους πιθανούς τρόπουςαναπαράσταση πραγματικών αριθμών, η οποία είναι μια αντιστάθμιση μεταξύ της ακρίβειας και του εύρους των αποδεκτών τιμών.

Ένας αριθμός κινητής υποδιαστολής αποτελείται από ένα σύνολο μεμονωμένων ψηφίων, που χωρίζονται συμβατικά σε πρόσημο, εκθέτη και μάντισσα. Ο εκθέτης και η μάντισσα είναι ακέραιοι αριθμοί που μαζί με το πρόσημο δίνουν την ακόλουθη αναπαράσταση ενός αριθμού κινητής υποδιαστολής:

Μαθηματικά γράφεται ως εξής:

(-1) s × M × B E, όπου s είναι το πρόσημο, B είναι η ρίζα, E είναι ο εκθέτης και M είναι η μάντισσα.

Η βάση καθορίζει το σύστημα ψηφίων. Έχει αποδειχθεί μαθηματικά ότι οι αριθμοί κινητής υποδιαστολής με βάση B=2 (δυαδική αναπαράσταση) είναι πιο ανθεκτικοί σε σφάλματα στρογγυλοποίησης, επομένως στην πράξη συναντάμε μόνο τις βάσεις 2 και, λιγότερο συχνά, 10, για περαιτέρω παρουσίαση, θα υποθέτουμε πάντα το Β =2, και ο τύπος για έναν αριθμό με κινητή υποδιαστολή θα μοιάζει με:

(-1) s × M × 2 E

Τι είναι η μάντισσα και η τάξη; Μάντισσαείναι ένας ακέραιος σταθερού μήκους που αντιπροσωπεύει τα πιο σημαντικά bits πραγματικός αριθμός. Ας υποθέσουμε ότι η μάντισσα μας αποτελείται από τρία bit (|M|=3). Πάρτε, για παράδειγμα, τον αριθμό "5", ο οποίος δυαδικό σύστημαθα είναι ίσο με 101 2. Το πιο σημαντικό bit αντιστοιχεί στο 2 2 =4, το μεσαίο bit (που έχουμε ίσο με μηδέν) 2 1 =2, και ο νεότερος 2 0 =1. Παραγγελία– αυτή είναι η ισχύς της βάσης (δύο) του υψηλότερου ψηφίου. Στην περίπτωσή μας Ε=2. Είναι βολικό να γράφουμε τέτοιους αριθμούς στο λεγόμενο "επιστημονικό" τυποποιημένη μορφή, για παράδειγμα "1.01e+2". Είναι αμέσως σαφές ότι η μάντισσα αποτελείται από τρία ζώδια και η σειρά είναι δύο.

Ας πούμε ότι θέλουμε να πάρουμε κλασματικός αριθμός, χρησιμοποιώντας τα ίδια 3 bit της μάντισσας. Μπορούμε να το κάνουμε αυτό αν πάρουμε, ας πούμε, E=1. Τότε ο αριθμός μας θα είναι ίσος

1,01e+1 = 1×2 1 +0×2 0 +1×2 -1 =2+0,5=2,5

Προφανώς, με αυτόν τον τρόπο ο ίδιος αριθμός μπορεί να αναπαρασταθεί με διαφορετικούς τρόπους. Ας εξετάσουμε ένα παράδειγμα με το μήκος της μάντισσας |M|=4. Ο αριθμός "2" μπορεί να αναπαρασταθεί ως εξής:

2 = 10 (σε δυαδικό) = 1.000e+1 = 0.100e+2 = 0.010e+3.

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

Αυτό εξοικονομεί ένα bit (καθώς το σιωπηρό δεν χρειάζεται να αποθηκευτεί στη μνήμη) και διασφαλίζει ότι ο αριθμός αναπαρίσταται μοναδικά. Στο παράδειγμά μας, το "2" έχει μια ενιαία αναπαράσταση ("1.000e+1") και το mantissa αποθηκεύεται στη μνήμη ως "000", επειδή η κύρια μονάδα υπονοείται σιωπηρά. Αλλά στην κανονικοποιημένη αναπαράσταση των αριθμών προκύπτει νέο πρόβλημα- είναι αδύνατο να αναπαραστήσουμε το μηδέν σε αυτή τη μορφή.

  • Ανάλυση δεδομένων χρησιμοποιώντας τις εντολές Επιλογή παραμέτρων και Αναζήτηση λύσεων
  • Ανάλυση και ερμηνεία δεδομένων πειραματικής ψυχολογικής έρευνας.
  • Ανάλυση δεδομένων πηγής. Τεχνικά πρότυπα για αστικούς δρόμους.
  • ΑΝΑΛΥΣΗ ΣΤΟΙΧΕΙΩΝ ΠΟΥ ΛΗΦΘΗΚΑΝ. ΛΗΨΗ ΑΠΟΦΑΣΗΣ ΓΙΑ ΤΗΝ ΕΠΑΡΚΕΙΑ Ή ΑΝΕΠΑΡΚΕΙΑ ΧΑΡΑΚΤΗΡΙΣΤΙΚΩΝ ΥΔΡΕΥΣΗΣ ΓΙΑ ΤΙΣ ΑΝΑΓΚΕΣ ΤΟΥ ΑΡΔΕΥΤΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ.
  • Εξοπλισμός γραμμής επικοινωνίας: εξοπλισμός μετάδοσης δεδομένων, τερματικός εξοπλισμός, ενδιάμεσος εξοπλισμός.

  • Το D Pascal επεκτείνει σημαντικά το CF Pascal προσθέτοντας νέους τύπους δεδομένων σε σύμβολα και αρχεία. Οι τακτικοί τύποι δεδομένων περιγράφουν απλά, αδιαίρετα αντικείμενα. Ένας τύπος απαρίθμησης περιέχει ένα σταθερό σύνολο ονομασμένων αντικειμένων. Ο τύπος Boolean έχει μόνο δύο αντικείμενα - TRUE και FALSE. Ακέραιος τύποςεφαρμόζει θετικούς και αρνητικούς ακέραιους αριθμούς. Τέλος, ένα μέρος ενός τύπου μπορεί επίσης με τη σειρά του να είναι ένας τύπος, ένας τύπος περιοχής. Φυσικά, οι τύποι περιλαμβάνουν λειτουργίες που ορίζουν τι μπορεί να γίνει με αντικείμενα. Για λογικό, ακέραιο κ.λπ. αυτές οι λειτουργίες είναι καλά κατανοητές διαισθητικά.

    Οι τύποι δεδομένων περιγράφουν σύνολα τιμών και τις λειτουργίες που μπορούν να εφαρμοστούν σε αυτές. Οι τύποι δεδομένων που εισήγαγε ο CF Pascal είναι CHAR και TEXT. Οι τιμές CHAR είναι ένα σύνολο από έγκυρους χαρακτήρεςΟι μηχανές Pascal και οι λειτουργίες σε αυτές τις τιμές είναι τελεστές σύγκρισης:

    = < > <= >= <>

    των οποίων οι τιμές είναι οι αντίστοιχες μαθηματικές πράξεις, αντικατοπτρίζοντας τις διαφορετικές θέσεις των χαρακτήρων στην αλφαβητική σειρά. Οι τιμές τύπου δεδομένων TEXT είναι ακολουθίες συμβολοσειρών, κάθε γραμμή είναι μια ακολουθία χαρακτήρων. Λειτουργίες σε τέτοια δεδομένα:

    RESET REWRITE READ WRITE WRITELN ΟΕΦ ΕΟΛΝ

    Οι τύποι δεδομένων προσφέρουν οφέλη αφαίρεση, αντιγραφήΚαι πιστοποίηση.

    Οι τύποι δεδομένων αφαιρούν σημαντικές ιδιότητες δεδομένων. Για παράδειγμα, για να καταλάβετε τη σύγκριση

    'ΕΝΑ'< ‘B’

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

    Οι μονάδες παρέχουν έναν τύπο αφαίρεσης δεδομένων, αλλά οι τύποι δεδομένων προσφέρουν περισσότερα από αυτό. Ανακοίνωση μεταβλητές τύπουΤα δεδομένα σάς επιτρέπουν να αποθηκεύετε και να χειρίζεστε οποιονδήποτε αριθμό τιμών τύπου μέσω αυτών των μεταβλητών. Κάθε χρήση μιας μεταβλητής σε ένα πρόγραμμα μας παρέχει εγγύηση ότι μόνο έγκυρες λειτουργίες θα εφαρμοστούν σε αυτό.

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

    PROGRAM Typex(INPUT, OUTPUT);

    Δεδομένου ότι ο τελεστής = ορίζεται στο CF Pascal μόνο για τελεστές χαρακτήρων, η εμφάνιση των Ch και F ως τελεστών υποδηλώνει ότι και οι δύο είναι τύποι CHAR. Το Ch πληκτρολογείται σωστά, αλλά το F δηλώνεται ως ΚΕΙΜΕΝΟ, επομένως θα εντοπιστεί μια αναντιστοιχία.


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

    Παραγγέλλονται τιμές απλών τύπων, δηλαδή για κάθε ζεύγος τιμών αυτού του τύπου x, y, είναι δυνατή μόνο μία από τις επιλογές: x< y, x = y, x >y. Επομένως, αυτοί οι τύποι ονομάζονται τακτικοί.

    Το Pascal περιέχει τρεις προκαθορισμένους τύπους τακτικής, οι οποίοι καθορίζονται από τα αναγνωριστικά CHAR, INTEGER και BOOLEAN. Εκτός από τους προκαθορισμένους τύπους τακτικής, το Pascal παρέχει δύο μεθόδους για τον προγραμματιστή να ορίσει νέους τύπους τακτικής, και συγκεκριμένα:

    1. Απαριθμημένοι τύποι των οποίων οι τιμές είναι μοναδικά αναγνωριστικά.
    2. Τύποι εύρους των οποίων οι τιμές είναι διαδοχικές τιμές άλλου τακτικού τύπου.

    Δηλαδή, νέοι τακτικοί τύποι δεδομένων μπορούν να οριστούν απαριθμώντας τις σταθερές του τύπου ή προσδιορίζοντας ότι οι τιμές του τύπου είναι μια υποκατηγορία τιμών υπάρχον τύπο. Η σύνταξη για τον προσδιορισμό τέτοιων τακτικών τύπων είναι η εξής:

    <обозначение типа> ::= <идентификатор типа> | <новый тип>

    <идентификатор типа> ::= <идентификатор>

    <новый тип> ::= <перечислимый тип> | <тип диапазон>

    Μέθοδοι περιγραφής για<перечислимый тип>Και<тип диапазон>θα δοθεί στις σχετικές ενότητες παρακάτω.

    Όταν ορίζεται ένας νέος τύπος, μπορεί να του δοθεί ένα όνομα στη δήλωση τύπου. Αυτή η δήλωση πρέπει να προηγείται της δήλωσης μεταβλητών μπλοκ.

    <блок> ::= <раздел объявлений типов> <раздел объявлений переменных>

    <раздел объявлений процедур> <раздел операторов>

    <раздел объявлений типов>::= ΤΥΠΟΣ<объявления типов> |

    Αυτός ο κανόνας το δείχνει<раздел объявлений типов>μπορεί να είναι κενό (όπως συνέβαινε σε όλα τα προγράμματα πριν αυτό το μέρος)

    <объявления типов> ::= <объявления типов> <объявление типа> | <объявление типа>

    <объявление типа> ::=<идентификатор > = <обозначение типа>

    Ο κανόνας περιβάλλοντος που συνοδεύει αυτούς τους κανόνες σύνταξης δηλώνει ότι μόνο ορισμένα αναγνωριστικά είναι<объявлением типа>:

    CR Για χρήση ως<идентификатор типа>, <идентификатор>πρέπει να έχει εμφανιστεί προηγουμένως σε<объявлениях типов>.

    Έτσι για

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

    Τύπος δεδομένων

    Συμβατότητα τύπου

    Κατασκευασμένοι τύποι δεδομένων

    Πραγματικοί τύποι δεδομένων

    Τακτικοί τύποι δεδομένων

    Τύπος δεδομένων

    Σχέδιο

    Διάλεξη 8

    Θέμα: Τύπος δεδομένων

    Οι μεταγλωττιστές Pascal απαιτούν να παρέχονται πληροφορίες σχετικά με την ποσότητα της μνήμης που απαιτείται για την εκτέλεση ενός προγράμματος πριν από την εκτέλεσή του. Για να το κάνετε αυτό, στην ενότητα περιγραφής μεταβλητής (var), πρέπει να αναφέρετε όλες τις μεταβλητές που χρησιμοποιούνται στο πρόγραμμα. Επιπλέον, πρέπει επίσης να πείτε στον μεταγλωττιστή πόση μνήμη θα καταλάβει καθεμία από αυτές τις μεταβλητές. Θα ήταν επίσης ωραίο να συμφωνήσουμε εκ των προτέρων για τις διάφορες πράξεις που ισχύουν για ορισμένες μεταβλητές...

    Όλα αυτά μπορούν να κοινοποιηθούν στο πρόγραμμα υποδεικνύοντας απλώς τον τύπο της μελλοντικής μεταβλητής. Έχοντας πληροφορίες για τον τύπο μιας μεταβλητής, ο μεταγλωττιστής «καταλαβαίνει» πόσα byte πρέπει να διατεθούν για αυτήν, ποιες ενέργειες μπορούν να εκτελεστούν με αυτήν και σε ποιες κατασκευές μπορεί να συμμετάσχει.

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

    Οι βασικοί τύποι δεδομένων είναι τυπικοί, επομένως δεν χρειάζεται να τους περιγράψετε στην ενότητα τύπου. Ωστόσο, εάν είναι επιθυμητό, ​​αυτό μπορεί επίσης να γίνει, για παράδειγμα, δίνοντας μεγάλους ορισμούς σύντομα ονόματα. Ας πούμε εισάγοντας έναν νέο τύπο δεδομένων

    Τύπος Int = Ακέραιος;

    Μπορείτε να συντομεύσετε λίγο το κείμενο του προγράμματος.

    Διαίρεση σε βασικούς και κατασκευασμένους τύπους δεδομένων σε Γλώσσα Pascalφαίνεται στον πίνακα:

    Αναμεταξύ βασικοί τύποιΟι τακτικοί τύποι δεδομένων διακρίνονται ιδιαίτερα. Αυτό το όνομα μπορεί να δικαιολογηθεί με δύο τρόπους:

    1. Κάθε στοιχείο ενός τακτικού τύπου μπορεί να συσχετιστεί με έναν μοναδικό (τακτικό) αριθμό. Η αρίθμηση των τιμών ξεκινά από το μηδέν. Η εξαίρεση είναι οι τύποι δεδομένων ShortInt, Integer και LongInt. Η αρίθμησή τους συμπίπτει με τις τιμές των στοιχείων.



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