Ας μάθουμε περισσότερα για τους τύπους δεδομένων γλώσσας Pascal: Integer, Real, Char, String, Boolean. Περίληψη: Τύποι δεδομένων σε Pascal

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

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

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

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

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

Με βάση βασικούς τύπους δεδομένωνκατασκευάζονται όλοι οι άλλοι τύποι της γλώσσας Pascal, οι οποίοι ονομάζονται: κατασκευάστηκε.

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

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

τύπος<имя_типа> = <описание_типа>;

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

τύπου Lat_Bukvy = "a" .. "z", "A" .. "Z";

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

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

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

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

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

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

Τυπικές ρουτίνες αυτή η διαδικασία τακτικούς τύπους δεδομένων

Μόνο για ποσότητες τακτικούς τύπουςΚαθορίζονται οι ακόλουθες λειτουργίες και διαδικασίες:

  1. Λειτουργία Διαταγή(Χ)επιστρέφει τον τακτικό αριθμό της τιμής της μεταβλητής x (σε σχέση με τον τύπο στον οποίο ανήκει η μεταβλητή x).
  2. Λειτουργία Pred(Χ)επιστρέφει την τιμή που προηγείται του x (δεν ισχύει για το πρώτο στοιχείο του τύπου).
  3. Λειτουργία Succ(Χ)επιστρέφει την τιμή που ακολουθεί το x (δεν ισχύει για το τελευταίο στοιχείο του τύπου).
  4. Διαδικασία Inc(Χ)επιστρέφει την τιμή που ακολουθεί το x (για αριθμητικών τύπων δεδομένωναυτό είναι ισοδύναμο με τον τελεστή x:= x + 1).
  5. Διαδικασία Inc(x, k)επιστρέφει την kth τιμή μετά το x (για αριθμητικών τύπων δεδομένωναυτό είναι ισοδύναμο με τον τελεστή x:= x + k).
  6. Διαδικασία Δεκ(Χ)επιστρέφει την τιμή που προηγείται του x (για αριθμητικών τύπων δεδομένωναυτό είναι ισοδύναμο με τον τελεστή x:= x - 1).
  7. Διαδικασία Δεκ(x, k)επιστρέφει την τιμή k–e που προηγείται του x (για αριθμητικών τύπων δεδομένωναυτό είναι ισοδύναμο με τον τελεστή x:= x - k).

Με την πρώτη ματιά, φαίνεται σαν το αποτέλεσμα της εφαρμογής της διαδικασίας Inc(Χ)συμπίπτει πλήρως με το αποτέλεσμα της εφαρμογής της συνάρτησης Succ(Χ). Ωστόσο, η διαφορά μεταξύ τους εμφανίζεται στα όρια του επιτρεπόμενου εύρους. Λειτουργία Succ(Χ)δεν ισχύει για το μέγιστο στοιχείο ενός τύπου, αλλά εδώ είναι η διαδικασία Inc(Χ)δεν θα παράγει κανένα σφάλμα, αλλά, ενεργώντας σύμφωνα με τους κανόνες της προσθήκης μηχανής, θα προσθέσει την επόμενη μονάδα στον αριθμό στοιχείου. Ο αριθμός, φυσικά, θα ξεπεράσει το εύρος και, λόγω περικοπής, θα μετατραπεί στον αριθμό της ελάχιστης τιμής του εύρους. Αποδεικνύεται ότι οι διαδικασίες Inc() Και Δεκ() αντιλαμβάνονται οποιονδήποτε τακτικό τύπο σαν «κλεισμένο σε δαχτυλίδι»: αμέσως μετά τον τελευταίο έρχεται ξανά η πρώτη τιμή.

Ας εξηγήσουμε όλα όσα ειπώθηκαν με ένα παράδειγμα. Για τύπο δεδομένων

τύπος Δεκαέξι = 0 .. 15 ;

Προσπαθώντας να προσθέσετε 1 στον αριθμό 15 θα έχετε το ακόλουθο αποτέλεσμα:

1 1 1 1 1 1 0 0 0 0

Η αρχική μονάδα θα κοπεί και επομένως αποδεικνύεται ότι Inc(15)=0 .

Παρόμοια κατάσταση στο κατώτερο όριο του επιτρεπόμενου εύρους ενός αυθαίρετου τακτικού τύπου δεδομένων παρατηρείται για τη διαδικασία Δεκ(Χ)και λειτουργίες Pred(Χ):

Τύποι δεδομένων που σχετίζονται με τακτικός

Ας περιγράψουμε τώρα τακτικούς τύπους δεδομένωνλεπτομερώς.

  1. Τύπος Boolean Booleanέχει δύο τιμές: False και True, και ισχύουν οι ακόλουθες ισότητες:
  2. Σε τύπο χαρακτήρα Απανθρακώνωπεριλαμβάνει 256 χαρακτήρες εκτεταμένος πίνακας ASCII(για παράδειγμα, "a", "b", "i", "7", "#"). Ο αριθμός χαρακτήρα που επιστρέφεται από τη συνάρτηση Διαταγή() , ταιριάζει με τον αριθμό αυτού του συμβόλου μέσα πίνακας ASCII.
  3. Ακέραιοι τύποι δεδομένωνΑς το βάλουμε σε έναν πίνακα:
  4. ΚαταχωρίσιμοΟι τύποι δεδομένων καθορίζονται στην ενότητα τύποςαναφέροντας ρητά τα στοιχεία τους. Για παράδειγμα:

    τύπος Εβδομάδα = (κυρίου, δευτ., τρι, τετ., π.μ., παρ., σ.); 0 1 2 3 4 5 6

    Θυμηθείτε ότι για αυτόν τον τύπο δεδομένων:

  5. Τύποι δεδομένων διαστήματοςκαθορίζονται μόνο από τα όρια του εύρους τους. Για παράδειγμα:

    τύπος Μήνας = 1 .. 12 ;
    Budni = Δευτ.. Παρ;

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

    type Valid_For_Identifiers = "a" .. "z" , "A" .. "Z" , "_" , "0" .. "9" ;

Αυτός ο τύπος συνίσταται στον συνδυασμό πολλών διαστημάτων και σε αυτήν την περίπτωση η σειρά των λατινικών γραμμάτων αλλάζει: εάν στον τυπικό τύπο

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

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

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

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

Ο τύπος μιας μεταβλητής καθορίζει ποια δεδομένα μπορούν να αποθηκευτούν στη θέση μνήμης που σχετίζεται με αυτήν.

Πληκτρολογήστε μεταβλητές ακέραιος αριθμόςμπορεί να συσχετιστεί μόνο με ακέραιες τιμές συνήθως στην περιοχή -32768 έως 32767. Το Pascal έχει άλλους τύπους ακεραίων (byte, longint).

Πληκτρολογήστε μεταβλητές πραγματικόςαποθήκευση πραγματικών (κλασματικών) αριθμών.

Μεταβλητός booleanΟ (Boolean) τύπος (boolean) μπορεί να πάρει μόνο δύο τιμές - αληθής(1, αληθές) ή ψευδής(0, ψευδές).

Τύπος χαρακτήρα (χαρακτήρας)μπορεί να πάρει τιμές από μια συγκεκριμένη διατεταγμένη ακολουθία χαρακτήρων.

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

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

Όλα τα παραπάνω είναι απλοί τύποι δεδομένων. Υπάρχουν όμως και σύνθετα, δομημένα, τα οποία βασίζονται σε απλούς τύπους.

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

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

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

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

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

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

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

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

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

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

Για παράδειγμα, έστω ότι η μεταβλητή x είναι τύπου real και η τιμή της είναι ίση με ένα: x=1 . Η αντίστοιχη τιμή στη μνήμη του υπολογιστή μπορεί να είναι 0,999999999, 1,000000001 ή 1,000000000. Αλλά αν η μεταβλητή x δηλωθεί ως μεταβλητή ακέραιου τύπου, τότε η μονάδα στον υπολογιστή θα αναπαρασταθεί με απόλυτη ακρίβεια και η μεταβλητή x δεν θα μπορεί να λάβει πραγματικές (κλασματικές) τιμές - τελικά, περιγράφηκε ως μια μεταβλητή ακέραιου τύπου.

Άρα ο τύπος δεδομένων ορίζει:

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

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

Οι πολλοί τύποι δεδομένων της γλώσσας Turbo Pascal μπορούν να χωριστούν σε δύο ομάδες:

  • τυπικοί (προκαθορισμένοι) τύποι ;
  • τύποι που καθορίζονται από το χρήστη (τύποι που καθορίζονται από το χρήστη) .

Οι τυπικοί τύποι Turbo Pascal περιλαμβάνουν:

  • ακέραιος τύπος – ακέραιος;
  • πραγματικός τύπος – πραγματικός;
  • τύπος χαρακτήρα – char;
  • boolean τύπος – boolean;
  • τύπος συμβολοσειράς – string ;
  • τύπος δείκτη – δείκτης;
  • τύπος κειμένου – κείμενο .

Οι προσαρμοσμένοι τύποι δεδομένων είναι διάφοροι συνδυασμοί τυπικών τύπων.

Οι προσαρμοσμένοι τύποι περιλαμβάνουν:

  • απαριθμημένος τύπος?
  • τύπος διαστήματος?
  • τύπος δείκτη?
  • δομημένοι τύποι?
  • διαδικαστικό είδος.

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

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

Ένας πολύπλοκος τύπος είναι διάφοροι συνδυασμοί απλών τύπων (πίνακες, εγγραφές, σύνολα, αρχεία κ.λπ.)

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

Ο τυπικός τύπος δεδομένων ορίζεται από την ίδια τη γλώσσα Pascal. Όταν χρησιμοποιείτε τυπικούς τύπους σε ένα πρόγραμμα, αρκεί να υποδείξετε τις υποενότητες των απαιτούμενων τύπων (const, var) και στη συνέχεια να περιγράψετε τις σταθερές και τις μεταβλητές που χρησιμοποιούνται στο πρόγραμμα. Δεν χρειάζεται να χρησιμοποιήσετε την υποενότητα Τύπος.

Για παράδειγμα, εάν το πρόγραμμα χρησιμοποιεί μόνο μεταβλητές:

i,j – ακέραιος αριθμός (ακέραιοι).

x,y - πραγματικό (πραγματικό);

t,s - char (χαρακτήρας);

a,b – boolean (λογικό),

τότε χρειάζεται μόνο μια υποενότητα μεταβλητών - Var. Επομένως, στο περιγραφικό μέρος του προγράμματος, οι δηλώσεις μεταβλητών γράφονται ως εξής:

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

Τα δεδομένα αυτού του τύπου μπορούν να δέχονται μόνο ακέραιες τιμές. Σε έναν υπολογιστή, οι τιμές ενός ακέραιου τύπου αναπαρίστανται με απόλυτη ακρίβεια. Εάν η μεταβλητή είναι αρνητική, τότε πρέπει να προηγείται το σύμβολο «–» εάν η μεταβλητή είναι θετική, τότε το πρόσημο «+» μπορεί να παραλειφθεί. Αυτός ο τύπος είναι απαραίτητος στην περίπτωση που κάποια ποσότητα δεν μπορεί να αναπαρασταθεί περίπου ως πραγματικός αριθμός. Για παράδειγμα, ο αριθμός των ανθρώπων, των ζώων κ.λπ.

Παραδείγματα γραφής ακεραίων τιμών: 17, 0, 44789, -4, -127.

Το εύρος διακύμανσης δεδομένων ενός ακέραιου τύπου καθορίζεται από πέντε τυπικούς τύπους ακεραίων και παρουσιάζεται στον πίνακα:

Τύπος Εύρος Μέγεθος σε byte
Shortint -128...+128 1
Ακέραιος αριθμός -32768...32767 2
Longint -2147483648...2147483647 4
Ψηφιόλεξη 0...255 1
Λέξη 0...65535 2

Οι δύο τελευταίοι τύποι αντιπροσωπεύουν μόνο θετικούς αριθμούς και οι τρεις πρώτοι αντιπροσωπεύουν θετικούς και αρνητικούς αριθμούς.

Στο κείμενο του προγράμματος ή κατά την εισαγωγή δεδομένων ακέραιου τύπου, γράφονται οι τιμές χωρίς υποδιαστολή . Πραγματικές τιμές μεταβλητών δεν πρέπει να υπερβαίνει τις επιτρεπόμενες τιμές τον τύπο (Shortint, Integer, Longint, Byte, Word) που χρησιμοποιήθηκε για την περιγραφή της μεταβλητής. Πιθανές υπερβάσεις κατά τους υπολογισμούς δεν ελέγχονται με κανέναν τρόπο, γεγονός που θα οδηγήσει σε λανθασμένη λειτουργία του προγράμματος.

Ένα παράδειγμα χρήσης μιας ακέραιας μεταβλητής

Var a:ακέραιος; β:λέξη; c:byte; Έναρξη a:=300; (το a έχει οριστεί σε 300) b:=300; (b ορίστηκε σε 300) c:=200; (το c έχει οριστεί σε 200) a:=b+c; (το a έχει οριστεί σε 500) c:=b; (Σφάλμα! Η μεταβλητή c μπορεί να λάβει μόνο τιμές 255. Εδώ η μεταβλητή c ορίζεται σε 500, κάτι που θα προκαλέσει υπερχείλιση του αποτελέσματος.) Τέλος.

Πραγματικοί τύποι

Οι τιμές των πραγματικών τύπων αντιπροσωπεύονται κατά προσέγγιση σε έναν υπολογιστή. Το εύρος διακύμανσης των δεδομένων πραγματικού τύπου καθορίζεται από πέντε τυπικούς τύπους: πραγματικός (Πραγματικός), μονής ακρίβειας (Μονής), διπλής ακρίβειας (Διπλή), εκτεταμένης ακρίβειας (Εκτεταμένη), σύνθετος (Comp) και παρουσιάζεται στον πίνακα:

Τύπος Εύρος Αριθμός σημαντικών αριθμών Μέγεθος σε byte
Πραγματικός 2.9E-39...1.7E+38 11-12 6
Μονόκλινο 1.5E-45...3.4E+38 >7-8 4
Διπλό 5E-324...1.7E+308 15-16 8
Επεκτάθηκε 3.4E-4951...1.1E+4932 19-20 10
Comp -2Ε+63+1...+2Ε+63-1 19-20 8

Οι πραγματικοί αριθμοί μπορούν να αναπαρασταθούν σε δύο μορφές: σταθερού σημείου και κινητής υποδιαστολής.

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

34.5, -4.0, 77.001, 100.56

Η μορφή σημειογραφίας κινητής υποδιαστολής χρησιμοποιείται όταν γράφετε πολύ μεγάλους ή πολύ μικρούς αριθμούς. Σε αυτή τη μορφή, ο αριθμός πριν από το "E" πολλαπλασιάζεται με τον αριθμό 10 στην ισχύ μετά το "E".

1Ε-4 1*10-4
3,4574E+3 3.4574*10+3
4,51Ε+1 4.51*10+1

Παραδείγματα αριθμών κινητής υποδιαστολής:

Αριθμός Ηχογράφηση σε Pascal
0,0001 1Ε-4
3457,4 34574Ε-1
45,1 451Ε-1
40000 4Ε+4
124 0,124E+3
124 1,24E+2
124 12.4E+1
124 1240Ε-1
124 12400Ε-2

Ο πίνακας από τις 5 έως τις 9 γραμμές δείχνει μια καταγραφή του ίδιου αριθμού 124. Αλλάζοντας τη θέση της υποδιαστολής στη μάντισσα (το σημείο "επιπλέει", εξ ου και το όνομα "καταγραφή ενός αριθμού κινητής υποδιαστολής") και ταυτόχρονα αλλάζοντας την τιμή παραγγελίας, μπορείτε να επιλέξετε τους καταλληλότερους αριθμούς εγγραφής.

Ένα παράδειγμα περιγραφής μεταβλητών πραγματικού τύπου.

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

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

Ένας τύπος χαρακτήρα ορίζεται από τη δεσμευμένη λέξη Char και έχει σχεδιαστεί για την αποθήκευση ενός μεμονωμένου χαρακτήρα. Τα δεδομένα χαρακτήρων καταλαμβάνουν ένα byte στη μνήμη.

Μορφή συμβολικής δήλωσης μεταβλητής:

<имя переменной>: Χαρ;

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

Ένα παράδειγμα χρήσης μεταβλητών τύπου χαρακτήρων:

Var c:char; (το c είναι μια μεταβλητή τύπου χαρακτήρα) Αρχή c:='A'; (στη μεταβλητή c εκχωρείται ο χαρακτήρας 'A') c:=#65; (στη μεταβλητή c εκχωρείται επίσης ο χαρακτήρας A. Ο κωδικός ASCII της είναι 65) c:=’5’; (στη μεταβλητή c εκχωρείται το σύμβολο 5, Τέλος. Εδώ το 5 δεν είναι πλέον αριθμός)

Τύπος Boolean

Ο λογικός τύπος δεδομένων ονομάζεται Boolean από τον Άγγλο μαθηματικό George Boole, τον δημιουργό του πεδίου των μαθηματικών - μαθηματική λογική.

Μορφή για τη δήλωση μιας μεταβλητής τύπου Boole:

<имя переменной>: boolean;

Τα δεδομένα αυτού του τύπου μπορούν να λάβουν μόνο δύο τιμές:

  • Αληθινή αλήθεια;
  • Το ψέμα είναι ψέμα.

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

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

Ένα παράδειγμα χρήσης σχεσιακών πράξεων:

σχέση 5>3, αποτέλεσμα αληθές.

σχέση 5=3, αποτέλεσμα ψευδές.

Ένα παράδειγμα χρήσης μεταβλητών τύπου Boole.

Var a,b:boolean; (τα a,b είναι μεταβλητές λογικού τύπου) Ξεκινήστε a:=True; (η μεταβλητή a ορίζεται σε true) b:=false; (η μεταβλητή b έχει οριστεί σε false) Τέλος.

Σταθερές

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

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

Μορφή σταθερής δήλωσης

Κωνστ<имя константы>= <значение>;

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

Const (δήλωση σταθερής τομής) έτος=2003; (σταθερά ακέραιου τύπου, γιατί δεν υπάρχει υποδιαστολή στην εγγραφή) χρόνος=14.05; (σταθερά πραγματικού τύπου) N=24; (σταθερά ακέραιου τύπου, επειδή δεν υπάρχει υποδιαστολή στη σημειογραφία) P=3,14; (σταθερά πραγματικού τύπου) A=true; (Boolean σταθερά) str1='7'; (σταθερά τύπου χαρακτήρα) str2=’A’; (σταθερά τύπου χαρακτήρα) str3=’Turbo’; (Σταθερά τύπου συμβολοσειράς) Var (δήλωση τμήματος μεταβλητής) X,y:ακέραιος; (μεταβλητές ακέραιου τύπου)

Προσαρμοσμένοι τύποι

Από το σύνολο των τύπων χρηστών, θα εξετάσουμε μόνο

  • απαριθμημένος τύπος?
  • τύπος διαστήματος.

Θα χρειαστούμε αυτούς τους δύο τύπους όταν μελετάμε πίνακες.

Τύπος Enum

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

Μορφή τύπου Enum:

<имя типа>= (σταθερά1, σταθερά2,..., σταθεράΝ);

Οπου
σταθερά1 , σταθερά2 ,..., σταθεράΝ – ένα διατεταγμένο σύνολο τιμών αναγνωριστικού που αντιμετωπίζονται ως σταθερές.

Ένα παράδειγμα περιγραφής απαριθμημένου τύπου:

Τύπος μπάλα=(ένα, δύο, τρία, τέσσερα, πέντε); var t:ball;

Εδώ μπάλα είναι το όνομα του απαριθμημένου τύπου. ένα, δύο, τρία, τέσσερα, πέντε – σταθερές. Το t είναι μια μεταβλητή που μπορεί να πάρει οποιαδήποτε σταθερή τιμή.

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

  • σταθερές αριθμητικού τύπου: 1, 2, 3, 4, κ.λπ.
  • σταθερές τύπου χαρακτήρων: "a", "s", "1", "3", κ.λπ.
  • σταθερές τύπου συμβολοσειράς: "πρώτη", "δεύτερη", κ.λπ.

Επιπλέον, οι αριθμητικές πράξεις και οι τυπικές διαδικασίες εισόδου και εξόδου Read and Write δεν ισχύουν για τιμές αυτού του τύπου.

Ένα παράδειγμα χρήσης απαριθμημένων μεταβλητών:

Τύπος ημερών = (Δευτέρα, Τρίτη, Τετάρτη, Πέμπτη, Παρασκευή, Σάββατο, Κυριακή); Var ημέρα: ημέρες; ξεκινώ αν ημέρα = Κυριακή, τότε γράφω (‘Σήμερα είναι Κυριακή!’); Τέλος.

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

Για να προσδιοριστεί προγραμματικά ο τακτικός αριθμός, χρησιμοποιείται η συνάρτηση Ord().

Στο παράδειγμά μας, οι αριθμοί ακολουθίας είναι ίσοι:

Παραγγελία(Δευτέρα) = 0;

Παραγγελία (Σάββατο) = 5;

Παραγγελία (Κυριακή) = 6.

Τύπος διαστήματος

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

<минимальное значение>..<максимальное значение>

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

Ο τύπος διαστήματος είναι ένας τύπος δεδομένων που ορίζεται από το χρήστη, επομένως η δήλωση τύπου του ξεκινά με τη λέξη συνάρτησης TYPE.

Ένα παράδειγμα περιγραφής τύπου διαστήματος:

Τύπος ψηφίο = 1..10; μήνας = 1..31; lat = 'A'..'Z';

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

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

Για παράδειγμα, τύπος δεδομένων Ακέραιος αριθμόςστους Δελφούς έχει εύρος -2147483648…2147483647, ενώ στο Turbo Pascal τον τύπο δεδομένων Ακέραιος αριθμόςαντιπροσωπεύει αριθμούς στην περιοχή -35768…32767. Στο Free Pascal, το εύρος τιμών του τύπου Ακέραιος αριθμόςκαθορίζεται από την επιλεγμένη λειτουργία.

Εφόσον ο Lazarus χρησιμοποιεί τον μεταγλωττιστή Free Pascal, όλα όσα λέγονται για τους τύπους δεδομένων σε σχέση με το Free Pascal ισχύουν και για τον Lazarus.

Έτσι, οι ακέραιοι τύποι δεδομένων του Free Pascal παρατίθενται στον Πίνακα 13.1.

Πίνακας 13.1. Δωρεάν τύποι δεδομένων Pascal Integer (Lazarus).

Τύπος Μέγεθος, bytes Εύρος τιμών
Ψηφιόλεξη 1 0…255
Shortint 1 -128…127
Smallint 2 -35768…32767
Λέξη 2 0…65535
Ακέραιος αριθμός 2 ή 4 Εξαρτάται από τη λειτουργία μεταγλώττισης
Καρδινάλιος 4 0…4294967295
Longint 4 -2147483648…2147483647
Μεγάλη λέξη 4 0...4294967295
Int64 8 -9223372036854775808...9223372036854775807
QWord 8 0...18446744073709551615

ΣΗΜΕΙΩΣΗ
Τύποι σε Free Pascal Int64Και QWordδεν είναι! Αυτό σημαίνει ότι δεν μπορείτε να τις χρησιμοποιήσετε, για παράδειγμα, για μεταβλητές ευρετηρίου σε βρόχους. Ωστόσο, τα παρουσίασα εδώ για να μην τα περιγράψω ξεχωριστά στο μέλλον και να συγκεντρώσω όλους τους ακέραιους τύπους Free Pascal σε ένα μέρος. Αν δεν καταλαβαίνετε κάποιες λέξεις, μην ανησυχείτε. Εν καιρώ θα σας πω για τα πάντα με περισσότερες λεπτομέρειες.

Και τώρα μερικές εξηγήσεις για τον πίνακα.

Σε μια στήλη ΤΥΠΟΣΔίνονται αναγνωριστικά τύπου δεδομένων (λέξεις-κλειδιά που υποδεικνύουν στον μεταγλωττιστή σε ποιον τύπο ανήκει ένα συγκεκριμένο δεδομένο). Θα μάθετε πώς να χρησιμοποιείτε αυτά τα αναγνωριστικά στα ακόλουθα μαθήματα.

Σε μια στήλη ΜΕΓΕΘΟΣυποδεικνύει το μέγεθος που καταλαμβάνει ο τύπος δεδομένων στη μνήμη του υπολογιστή. Για παράδειγμα, ένας θετικός ακέραιος μπορεί να αναπαρασταθεί από διαφορετικούς τύπους: Ψηφιόλεξη, Λέξη, Καρδινάλιοςκλπ. Ωστόσο, ένας αριθμός όπως Καρδινάλιοςθα καταλάβει 4 byte στη μνήμη, ενώ ένας αριθμός όπως Ψηφιόλεξη– μόνο 1 byte. Επομένως, εάν γνωρίζετε με βεβαιότητα ότι ο αριθμός με τον οποίο εργάζεστε δεν θα πάρει ποτέ τιμή μεγαλύτερη από 255, τότε είναι καλύτερα να τον ορίσετε ως τύπο Ψηφιόλεξη, καθώς αυτό θα εξοικονομήσει χώρο στη μνήμη του υπολογιστή σας. Αν και δεν είναι όλα τόσο απλά εδώ (οι αποχρώσεις της κατανομής της μνήμης και άλλων πόρων υπολογιστή είναι πέρα ​​από το πεδίο εφαρμογής).

Σε μια στήλη ΕΥΡΟΣκαθορίζει το εύρος τιμών στις οποίες λειτουργεί ο τύπος δεδομένων. Για παράδειγμα, ένας αριθμός όπως Ψηφιόλεξημπορεί να πάρει τιμές από 0 έως 255.

Τώρα για εξάσκηση. Ας γράψουμε ένα πρόγραμμα που εμφανίζει τις περιοχές τιμών όλων των τύπων δεδομένων ακεραίων. Ο πηγαίος κώδικας για αυτό το πρόγραμμα δίνεται παρακάτω:

Λίστα 13.1. Ένα πρόγραμμα για την εμφάνιση σειρών ακεραίων αριθμών.πρόγραμμα td? ($mode objfpc)($H+) χρησιμοποιεί ($IFDEF UNIX)($IFDEF UseCTthreads) cthreads, ($ENDIF)($ENDIF) Τάξεις ( μπορείτε να προσθέσετε μονάδες μετά από αυτό ); start Writeln("Byte: ", Low(Byte), "..", High(Byte)); Writeln("Shortint: ", Low(Shortint), "..", High(Shortint)); Writeln("Smallint: ", Low(Smallint), "..", High(Smallint)); Writeln("Word: ", Low(Word), "..", High(Word)); Writeln("Integer: ", Low(Integer), "..", High(Integer)); Writeln("Cardinal: ", Low(Cardinal), "..", High(Cardinal)); Writeln("Longint: ", Low(Longint), "..", High(Longint)); Writeln("Longword: ", Low(Longword), "..", High(Longword)); Writeln("Int64: ", Low(Int64), "..", High(Int64)); Writeln("QWord: ", Low(QWord), "..", High(QWord)); Readln; τέλος.

Τυπική λειτουργία Χαμηλόςορίζει την ελάχιστη τιμή του τύπου δεδομένων. Φούντσκια Υψηλόςορίζει τη μέγιστη τιμή. Με λειτουργίες ΓράψεLnΚαι ReadLnγνωρίζετε ήδη ο ένας τον άλλον λίγο. Θα μιλήσουμε αναλυτικότερα για υπορουτίνες (διαδικασίες και λειτουργίες) στην αντίστοιχη ενότητα.

Τέλος, θα σας πω πώς γράφονται τα ακέραια δεδομένα στο πρόγραμμα. Ναι, όπως παντού αλλού - απλώς γράψτε τον αριθμό, χωρίς εισαγωγικά ή πρόσθετα σύμβολα. Για παράδειγμα, όπως αυτό

10
178
35278

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

Το Free Pascal υποστηρίζει τέσσερις μορφές ακεραίων:

  1. Δεκαδικός συμβολισμός. Μόνο ένας αριθμός, όπως το 10.
  2. Δεκαεξαδικός συμβολισμός. Ένας αριθμός με πρόθεμα $. Για παράδειγμα, ο δεκαεξαδικός αριθμός $10 είναι ίσος με τον δεκαδικό αριθμό 16.
  3. Οκταδική σημειογραφία. Ένας αριθμός με πρόθεμα &. Για παράδειγμα, το οκταδικό &10 είναι ίσο με δεκαδικό 8.
  4. Δυαδική σημειογραφία. Ένας αριθμός με πρόθεμα %. Για παράδειγμα, ο δυαδικός αριθμός %10 είναι ίσος με τον δεκαδικό αριθμό 2.

Εργασία για το σπίτι:

Δημιουργήστε ένα πρόγραμμα που εμφανίζει εύρη ακέραιων τιμών (Λίστα 13.1). Μεταγλωττίστε το πρόγραμμα και εκτελέστε το. Βεβαιωθείτε ότι αυτές οι τιμές αντιστοιχούν σε αυτές που εμφανίζονται στον Πίνακα 13.1.

Στον πηγαίο κώδικα του προγράμματος, βρείτε τη γραμμή που ορίζει τη λειτουργία μεταγλώττισης:

($mode objfpc)($H+)

Σε αυτή τη γραμμή, αντί για τη λέξη objfpcγράψε τη λέξη tp. Δηλαδή, η τελική γραμμή πρέπει να μοιάζει με αυτό:

($mode tp)($H+)

Εκκινήστε το πρόγραμμα. Δείτε το εύρος τιμών τύπου Ακέραιος αριθμός. Βγαζω συμπερασματα.

Μάθετε να σκέφτεστε σαν προγραμματιστής, δηλαδή λογικά. Κανείς δεν θα σου μασήσει τα πάντα μέχρι τη σύνταξη, όπως κάνω εγώ τώρα. Πρέπει να συνηθίσεις να σκέφτεσαι μόνος σου. Διαφορετικά, θα γλιστρήσετε στην «αρχή της μάθησης μαϊμού» και τότε οι πιθανότητές σας να γίνετε σπουδαίος προγραμματιστής θα είναι κοντά στο μηδέν. Για να σας βοηθήσω να μην γλιστρήσετε στο επίπεδο «στριμώγματος», θα αφήνω περιοδικά κενά στη μάθησή σας, ώστε να προσπαθείτε να καταλάβετε κάποια πράγματα μόνοι σας.

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

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

Ακολουθούν δύο πίνακες με ακέραιους τύπους. Πρώτα θα γράψουμε υπογεγραμμένους ακέραιους τύπους:


ΤύποςΨηφιόλεξηΕύρος τιμών
σύντομο1 -128 ... 127
ψιλόλιθος2 -32768 ... 32767
ακέραιος, longint4 -2147483648 ... 2147483647
int648 -9223372036854775808 ... 9223372036854775807

Και αυτό ανυπόγραφους ακέραιους τύπους:


ΤύποςΨηφιόλεξηΕύρος τιμών
ψηφιόλεξη1 0 ... 255
λέξη2 0 ... 65535
μακρά λέξη, καρδινάλιος4 0 ... 4294967295
uint648 0 ... 18446744073709551615

Όπως μπορείτε να δείτε, η πρώτη στήλη περιέχει το όνομα του τύπου, η δεύτερη - τον αριθμό των byte που καταλαμβάνονται στη μνήμη από αριθμούς αυτού του τύπου και η τρίτη - το εύρος των πιθανών τιμών, αντίστοιχα. Υπάρχουν δύο τύποι προσημασμένων αριθμών - ακέραιος και longint (κυριολεκτικά "ακέραιος" και "μακρός ακέραιος"), οι οποίοι είναι συνώνυμοι. Δηλαδή, μπορείτε να χρησιμοποιήσετε το ένα ή το άλλο όνομα στην ενότητα περιγραφής.

Ομοίως, στον δεύτερο πίνακα (μη αρνητικοί ακέραιοι αριθμοί στο Pascal), υπάρχουν επίσης δύο συνώνυμοι ακέραιοι τύποι 4 byte - longword και cardinal , οπότε χρησιμοποιήστε το ένα ή το άλλο.

Μπορείτε επίσης να παρατηρήσετε ότι εάν μετακινήσουμε υπό όρους τους αριθμούς του πρώτου πίνακα στη δεξιά πλευρά σε σχέση με το μηδέν (μετακινήστε το διάστημα προς τα δεξιά έτσι ώστε ο ελάχιστος αριθμός να είναι 0), τότε θα λάβουμε διαστήματα ακεραίων στον δεύτερο πίνακα που βρίσκονται στις αντίστοιχες σειρές. Έτσι, εάν σε έναν τύπο συντόμευσης 1 byte προσθέσουμε 128 στα αριστερά και δεξιά όρια, παίρνουμε τον τύπο byte (0..255). αν σε smallint τύπου 2 byte προσθέσουμε 32768 στα όρια, παίρνουμε την αντίστοιχη λέξη ανυπόγραφου τύπου 2 byte (0..65535) κ.λπ.

Όλα αυτά συμβαίνουν επειδή σε ανυπόγραφους ακέραιους τύπους, οι αριθμοί μπορούν να χωριστούν ακριβώς στα δύο: οι μισοί αριθμοί στο αρνητικό μέρος, οι μισοί στο θετικό μέρος. Γιατί τότε στους προσημασμένους αριθμούς το αριστερό περίγραμμα σε απόλυτη τιμή 1 είναι μεγαλύτερο από το δεξί περίγραμμα; - εσύ ρωτάς. Για παράδειγμα, στον τύπο shortint το ελάχιστο είναι -128, ενώ το μέγιστο είναι μόνο 127 (modulo 1 λιγότερο). Και αυτό συμβαίνει επειδή η δεξιά πλευρά περιλαμβάνει επίσης το 0, και πρέπει να το γνωρίζετε και να το θυμάστε αυτό.

Γιατί λοιπόν οι ακέραιοι στο Pascal πρέπει να χωριστούν σε τόσους πολλούς τύπους; Γιατί να μην τα βγάλετε πέρα, για παράδειγμα, με τον μεγαλύτερο από τους ακέραιους τύπους στο PascalABC.Net και στο Free Pascal – int64 – που είναι σχεδόν 9 και μισό εκατομμύριο (!) με μείον και συν; Ναι, για έναν απλό κοινό (;) λόγο - εξοικονόμηση μνήμης. Εάν χρειάζεται να προσθέσετε δύο μικρούς θετικούς αριθμούς ενός byte (0..255) και περιγράψατε αυτούς τους αριθμούς ως int64 (8 byte), τότε χρειάστηκε 8 φορές περισσότερη μνήμη. Και αν το πρόγραμμα είναι μεγάλο και υπάρχουν πολλές μεταβλητές, τότε η εξοικονόμηση μνήμης αυξάνεται πολύ απότομα. Επιπλέον, δεν έχει νόημα να χρησιμοποιούμε προσημασμένους ακέραιους τύπους αν το πρόβλημα αφορά μεγέθη όπως μήκος, μάζα, απόσταση, χρόνος κ.λπ.

Στην ενότητα Βιβλίο Προβλημάτων Abrahamyan του ιστότοπου (υποενότητα Ακέραιος), παρατηρήστε τη χρήση διαφόρων τύπων ακεραίων στο Pascal.