Τύποι δεδομένων Pascal. Απλοί τύποι δεδομένων

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ο τυπικός τύπος δεδομένων ορίζεται από την ίδια τη γλώσσα 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
byte 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, η ​​οποία θα προκαλέσει υπερχείλιση του αποτελέσματος.) Τέλος.

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

Οι τιμές των πραγματικών τύπων σε έναν υπολογιστή αντιπροσωπεύονται κατά προσέγγιση. Το εύρος των δεδομένων πραγματικού τύπου καθορίζεται από πέντε τυπικούς τύπους: πραγματικό (Real), με απλή ακρίβεια (Single), διπλή ακρίβεια (Double), με αυξημένη ακρίβεια (Extended), σύνθετο (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. Αλλάζοντας τη θέση της υποδιαστολής στη μάντισσα (το σημείο "floats", εξ ου και το όνομα "recording a floating point") και ταυτόχρονα αλλάζοντας τον εκθέτη, μπορείτε να επιλέξετε τους καταλληλότερους αριθμούς καταχώρισης.

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

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

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

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

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

<имя переменной>:απανθρακώνω;

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

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

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

boolean τύπου

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

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

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

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

  • Αλήθεια αλήθεια;
  • Λάθος - ψευδής.

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

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

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

σχέση 5>3 , αποτέλεσμα true (true);

σχέση 5=3 , το αποτέλεσμα είναι ψευδές (false).

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

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:ακέραιος; (μεταβλητές ακέραιου τύπου)

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

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

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

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

Απαριθμημένος τύπος

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

Μορφή απαριθμημένου τύπου:

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

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

Παράδειγμα απαριθμημένης δήλωσης τύπου:

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

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

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

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

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

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

Τύπος ημερών = (Δευτέρα, Τρίτη, Τετάρτη, Πέμπτη, Παρασκευή, Σάββατο, Κυριακή); Var ημέρα: ημέρες; start if day = Κυριακή, then writeln('Σήμερα είναι Κυριακή!'); τέλος.

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

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

Στο παράδειγμά μας, οι αύξοντες αριθμοί είναι ίσοι:

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

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

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

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

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

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

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

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

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

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

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

Περιγραφή αριθμητικών τύπων δεδομένων (ακέραιοι) Pascal

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

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

  • Αριθμητική:
    προσθήκη(+);
    αφαίρεση(-);
    πολλαπλασιασμός(*);
    υπόλοιπο της διαίρεσης (mod);
    εκθεσιμότητα?
    unary plus (+);
    ενιαίο μείον (-).
  • Λειτουργίες σχέσεων:
    σχέση ισότητας (=);
    σχέση ανισότητας (<>);
    αναλογία μικρότερη (<);
    αναλογία μεγαλύτερη από (>);
    αναλογία όχι μικρότερη από (>=);
    αναλογία όχι περισσότερο (<=).

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

Ιδιαίτερη προσοχή πρέπει να δοθεί στη λειτουργία διαίρεσης ακέραιων αριθμητικών τύπων δεδομένων. Στο Pascal, επιτρέπονται δύο πράξεις διαίρεσης, οι οποίες συμβολίζονται αντίστοιχα "/" Και div. Πρέπει να γνωρίζετε ότι το αποτέλεσμα της διαίρεσης του "/" δεν είναι ακέραιος, αλλά πραγματικός αριθμός(αυτό ισχύει ακόμα κι αν διαιρέσετε το 8 με το 2, δηλαδή 8/2=4,0). Η διαίρεση div είναι διαίρεση ακέραιου αριθμού, δηλ. ακέραιος τύπος αποτελέσματος.

Περιγραφή τύπων αριθμητικών δεδομένων (πραγματικά) Pascal

Ο πραγματικός αριθμητικός τύπος δεδομένων αναφέρεται σε ένα υποσύνολο πραγματικών αριθμών που μπορούν να αναπαρασταθούν σε μια λεγόμενη μορφή κινητής υποδιαστολής με σταθερό αριθμό ψηφίων. Με κινητή υποδιαστολή, κάθε τύπος αριθμητικών δεδομένων αντιπροσωπεύεται ως δύο ομάδες ψηφίων. Η πρώτη ομάδα ψηφίων ονομάζεται mantissa, η δεύτερη - η σειρά. Γενικά, ένας τύπος αριθμητικών δεδομένων σε μορφή κινητής υποδιαστολής μπορεί να αναπαρασταθεί ως εξής: X= (+|-)MP (+ | -) r , όπου M είναι η μάντισσα του αριθμού. r είναι η σειρά του αριθμού (r είναι ακέραιος). Το P είναι η βάση του συστήματος αριθμών. Για παράδειγμα, για μια δεκαδική βάση, η αναπαράσταση του 2E-1 (εδώ Ε είναι η βάση του δεκαδικού συστήματος αριθμών) θα μοιάζει με: 2*10 -1 =0,2 και η αναπαράσταση του 1,234E5 θα αντιστοιχεί σε: 1,234* 10 5 =123400,0.

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

Κατά την περιγραφή μιας πραγματικής μεταβλητής του πραγματικού τύπου, θα δημιουργηθεί μια μεταβλητή 4 byte στη μνήμη του υπολογιστή. Σε αυτήν την περίπτωση, 3 byte θα δοθούν κάτω από το mantissa και ένα - κάτω από τη σειρά.

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

  • Αριθμητική:
    προσθήκη (+);
    αφαίρεση(-);
    πολλαπλασιασμός(*);
    διαίρεση(/);
    εκθεσιμότητα?
    unary plus (+);
    ενιαίο μείον (-).
  • Λειτουργίες σχέσεων:
    σχέση ανισότητας (<>);
    αναλογία μικρότερη (<);
    αναλογία μεγαλύτερη από (>);
    αναλογία όχι μικρότερη από (>=);
    αναλογία όχι περισσότερο (<=).

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

Μια ειδική θέση στο Pascal καταλαμβάνει ένας αριθμητικός τύπος δεδομένων. συνθ, ο οποίος αντιμετωπίζεται ως πραγματικός αριθμός χωρίς εκθετικά και κλασματικά μέρη. Πράγματι, συνθείναι ένας υπογεγραμμένος "μεγάλος" ακέραιος που αποθηκεύει 19..20 σημαντικά δεκαδικά ψηφία. Ταυτόχρονα, ο αριθμητικός τύπος δεδομένων συνθσε εκφράσεις, είναι πλήρως συμβατό με άλλους πραγματικούς τύπους: όλες οι πραγματικές πράξεις ορίζονται σε αυτό, μπορεί να χρησιμοποιηθεί ως όρισμα μαθηματικών συναρτήσεων κ.λπ.

Σχετικά με τη μετατροπή αριθμητικών τύπων δεδομένων στο Pascal

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

VarX: ακέραιος; Υ: αληθινό

Μετά ο χειριστής

θα είναι συντακτικά σωστή, αν και μια ακέραια παράσταση βρίσκεται στα δεξιά του σημείου εκχώρησης και μια πραγματική μεταβλητή στα αριστερά, ο μεταγλωττιστής θα κάνει τη μετατροπή των αριθμητικών τύπων δεδομένων αυτόματα. Η αντίστροφη μετατροπή πληκτρολογείται αυτόματα πραγματικόςανά τύπο ακέραιος αριθμόςδεν είναι δυνατό στο Pascal. Ας θυμηθούμε πόσα byte έχουν εκχωρηθεί για μεταβλητές όπως ακέραιος αριθμόςΚαι πραγματικός: κάτω από ακέραιος τύποςδεδομένα ακέραιος αριθμόςΕκχωρούνται 2 byte μνήμης και κάτω από το πραγματικό - 6 byte. Για μετατροπή πραγματικός V ακέραιος αριθμόςυπάρχουν δύο ενσωματωμένες λειτουργίες: γύρος(x) στρογγυλοποιεί ένα πραγματικό x στον πλησιέστερο ακέραιο αριθμό, κορμού(x) περικόπτει έναν πραγματικό αριθμό απορρίπτοντας το κλασματικό μέρος.

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

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

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

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

Τύπος Εύρος Mantissa, σημάδια Απαιτούμενη μνήμη (bytes)
ΠΡΑΓΜΑΤΙΚΟΣ 2.9*10E-39..1.7*10E38 11-12
ΜΟΝΟΚΛΙΝΟ 1.5*10E-45..3.4*10E38 7-8
ΔΙΠΛΟ 5.0*10E-324..1.7*10E308 15-16
ΕΠΕΚΤΑΘΗΚΕ 1.9*10E-4951..1.1*10E4932 19-20
ΣΥΝΤ -2Е+63+1..2Е+63-1 10-20

Η αποτελεσματική χρήση των τύπων SINGLE, DOUBLE, EXTEND, COMP είναι δυνατή μόνο όταν περιλαμβάνεται η οδηγία ($N+). Από προεπιλογή, είναι σε κατάσταση απενεργοποίησης. Για την επίλυση μηχανικών και οικονομικών προβλημάτων, αρκούν τιμές τύπου REAL.

Παράδειγμα

Var Res, Summa, Itog: πραγματικό;

Μπουλέφσκιο τύπος δεδομένων περιγράφεται από το αναγνωριστικό BOOLEAN. Οι μεταβλητές και οι σταθερές αυτού του τύπου μπορούν να λάβουν μόνο μία από τις δύο τιμές: TRUE (true) ή FALSE (false).

Παράδειγμα

Var Sel1, Sel2: boolean;

A,B,C,D: boolean;

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

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

Για παράδειγμα, Var Bukva, Znak, Symbol: char;

Γράμμα:='A'; Sign:='+'; Σύμβολο:='!'

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

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

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

Μορφή

τύπος<имя типа>=(<значение1, значение2, ..., значениеN>);

Var<идентификатор, ...>: < имя типа>;

Παράδειγμα

Τύπος Εποχή =(Άνοιξη, Καλοκαίρι, Φθινόπωρο, Χειμώνας);

Var S1, S2: Σεζόν;

Φθινόπωρο: (Σεπτέμβριος, Οκτώβριος, Νοέμβριος);

Σε αυτό το παράδειγμα, εμφανίζεται ο ρητά δηλωμένος τύπος δεδομένων του χρήστη Season. Καθορίζονται οι έννοιές τους - οι ονομασίες των εποχών. Οι μεταβλητές S1 και S2 μπορούν να λάβουν μόνο μία από τις τιμές που αναφέρονται. Η προσπάθεια εκχώρησης οποιασδήποτε άλλης τιμής σε αυτά θα προκαλέσει διακοπή λογισμικού. Ο τρίτος τύπος απαρίθμησης είναι ανώνυμος (δεν έχει όνομα) και προσδιορίζεται με απαρίθμηση τιμών στην ενότητα Var. Το φθινόπωρο είναι μια μεταβλητή αυτού του τύπου και μπορεί να πάρει τις τιμές Σεπτέμβριος, Οκτώβριος, Νοέμβριος. Έτσι, μπορεί να δοθεί οποιοσδήποτε τύπος, αλλά αυτό δεν είναι πάντα αποδεκτό. Ο πρώτος τρόπος είναι σίγουρα πιο κατανοητός και πιο σύμφωνος με τη φύση της γλώσσας Pascal.

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

Μορφή

τύπος<имя типа> = <константа1> .. <константа2>;

Var<идентификатор>: < имя типа>;

Παράδειγμα

Τύπος Ημέρες = 1.. 31;

Var Work_d, Free_d: Days;

Σε αυτό το παράδειγμα, οι μεταβλητές Work_d, Free_dείναι τύπου ημέρεςκαι μπορεί να πάρει οποιαδήποτε τιμή από το εύρος 1 . . 31.

Εκτός εμβέλειας προκαλεί διακοπή λογισμικού.

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

Ελάχ. Const = 1; max=31;

Τύπος Ημέρες = Ελάχ.. Μέγ.

Var Work_d, Free_d: Days;

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

γραμμή -μια ακολουθία χαρακτήρων που περικλείονται σε απόστροφους·

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

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

Ρεκόρ -ένα σύνολο ενός σταθερού αριθμού εξαρτημάτων διαφορετικών τύπων·

αρχείο- μια ακολουθία εξαρτημάτων του ίδιου τύπου και του ίδιου μήκους.

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

Εικόνα 1- Ένα σύνολο βασικών τύπων της γλώσσας Pascal

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

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

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

n:ακέραιος;

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

[όνομα] = [τύπος]

Το σύστημα τυπικού τύπου έχει μια διακλαδισμένη, ιεραρχική δομή.

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

Δομημένοι τύποικατασκευάζονται σύμφωνα με ορισμένους κανόνες από απλούς τύπους.

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

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

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

Υπάρχουν 5 τύποι ακέραιων τύπων στο Pascal. Καθένα από αυτά χαρακτηρίζει το εύρος των αποδεκτών τιμών και τη θέση τους στη μνήμη.

Όταν χρησιμοποιείτε ακέραιους αριθμούς, θα πρέπει να καθοδηγείται από την ένθεση των τύπων, δηλ. Οι τύποι μικρότερου εύρους μπορούν να ενσωματωθούν σε τύπους μεγαλύτερης εμβέλειας. Ο τύπος Byte μπορεί να είναι ένθετος σε όλους τους τύπους που καταλαμβάνουν 2 και 4 byte. Ταυτόχρονα, ο τύπος Short Int, ο οποίος καταλαμβάνει 1 byte, δεν μπορεί να ενσωματωθεί στον τύπο Word, καθώς δεν έχει αρνητικές τιμές.

Υπάρχουν 5 πραγματικοί τύποι:

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

2358.8395

0.23588395*10 4

0,23588395*E 4

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

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

Οι τακτικοί τύποι συνδυάζουν πολλούς απλούς τύπους. Αυτά περιλαμβάνουν:

  • Όλοι οι τύποι ακέραιων αριθμών.
  • τύπος χαρακτήρα?
  • Boolean τύπου?
  • Εύρος τύπου·
  • απαριθμημένος τύπος.

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

Για τιμές τακτικού τύπου, μπορεί να εφαρμοστεί η συνάρτηση ODD(x), η οποία επιστρέφει τον τακτικό αριθμό του ορίσματος x.

Συνάρτηση PRED(x) - επιστρέφει την προηγούμενη τιμή του τακτικού τύπου. PRED(A) = 5.

Συνάρτηση SUCC(x) - Επιστρέφει την επόμενη τιμή ενός τακτικού τύπου. SUCC(A) = 5.

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

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

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

Γ:= 'Α'

Boolean (boolean) τύπος

Υπάρχουν δύο τιμές Boolean τύπου: True (True) και False (False). Οι μεταβλητές αυτού του τύπου καθορίζονται από τη λέξη υπηρεσίας BOOLEAN. Μια Boolean τιμή καταλαμβάνει ένα byte στη μνήμη RAM. Οι τιμές True και False αντιστοιχούν στις αριθμητικές τιμές 1 και 0.

Εύρος τύπου

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

[ελάχιστη τιμή]…[μέγιστη τιμή]

Ο τύπος εύρους μπορεί να καθοριστεί στην ενότητα Τύπος ως συγκεκριμένος τύπος ή απευθείας στην ενότητα Var.

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

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

Απαριθμημένος τύπος

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

λαοί = (άνδρες, γυναίκες);

Η πρώτη τιμή είναι 0, η δεύτερη τιμή είναι 1 και ούτω καθεξής.

Μέγιστη ισχύς 65535 τιμές.

τύπος χορδής

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

Στο πρόγραμμα, ο τύπος συμβολοσειράς δηλώνεται με τη λέξη String. Εφόσον το String είναι βασικός τύπος, δηλώνεται στη γλώσσα και η δήλωση μιας μεταβλητής τύπου String γίνεται σε Var. Όταν δηλώνετε μια μεταβλητή τύπου συμβολοσειράς πίσω από το String, συνιστάται να υποδεικνύεται το μήκος της συμβολοσειράς σε αγκύλες. Καθορίζει έναν ακέραιο μεταξύ 0 και 255.

Fam: String;

Ο καθορισμός του μήκους συμβολοσειράς επιτρέπει στον μεταγλωττιστή να εκχωρήσει τον καθορισμένο αριθμό byte στη μνήμη RAM για τη δεδομένη μεταβλητή. Εάν το μήκος συμβολοσειράς δεν έχει καθοριστεί, τότε ο μεταγλωττιστής θα εκχωρήσει τον μέγιστο δυνατό αριθμό byte (255) για την τιμή αυτής της μεταβλητής.

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

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

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

Ας ρίξουμε μια ματιά στα πιο συνηθισμένα Τύποι Pascalδεδομένα.

Ακέραιοι τύποι δεδομένων σε Pascal

Τύπος Εύρος Απαιτούμενη μνήμη (bytes)
ψηφιόλεξη 0..255 1
σύντομο -128..127 1
ακέραιος αριθμός -32768.. 32767 2
λέξη 0..65535 2
λαχτάρα -2147483648..2147483647 4

Πρέπει να ληφθεί υπόψη ότι όταν γράφετε προγράμματα σε Pascal ακέραιος αριθμός(μεταφρασμένο από τα αγγλικά ως ακέραιος) είναι το πιο συχνά χρησιμοποιούμενο, καθώς το εύρος τιμών είναι το πιο απαιτητικό. Εάν χρειάζεται μεγαλύτερο εύρος, χρησιμοποιήστε λαχτάρα(long integer, μεταφρασμένο από τα αγγλικά long integer). Τύπος ψηφιόλεξηστο Pascal χρησιμοποιείται όταν δεν χρειάζεται να δουλέψουμε με αρνητικές τιμές, το ίδιο ισχύει και για τον τύπο λέξη(μόνο το εύρος τιμών εδώ είναι πολύ μεγαλύτερο).

Παραδείγματα για το πώς περιγράφονται (δηλώνονται) οι μεταβλητές στο Pascal:

πρόγραμμα α1; varx,y:ακέραιος; (ακέραιος τύπος) myname:string; (τύπος συμβολοσειράς) αρχίζει x:=1; y:=x+16; myname:="Peter"; writeln ("όνομα: ",myname, ", ηλικία: ", y) τέλος.

Αποτέλεσμα:
Όνομα: Πέτρος, ηλικία: 17

Σχόλια σε Pascal

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

Εργασία 3.Ο πληθυσμός της Μόσχας είναι α = 9.000.000 κάτοικοι. Ο πληθυσμός του Νέου Βασιούκοφ ισούται με b=1000 κατοίκους. Γράψτε ένα πρόγραμμα που να καθορίζει τη διαφορά στον αριθμό των κατοίκων μεταξύ δύο πόλεων. Χρησιμοποιήστε μεταβλητές

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

Πραγματικοί αριθμοί στο Pascal και γενικά στον προγραμματισμό είναι το όνομα των κλασματικών αριθμών.

Τύπος Εύρος Απαιτούμενη μνήμη (bytes)
πραγματικός 2.9*10E-39..1.7*10E38 6
μονόκλινο 1,5 * 10 E-45 .. 3,4 * 10E38 4
διπλό 5*10E-324..1.7*10E308 8
επεκτάθηκε 1,9 * 10E-4951 .. 1,1 * 10E4932 10

Ο πραγματικός τύπος στο Pascal είναι ο πιο συχνά χρησιμοποιούμενος από τους πραγματικούς τύπους.

Παρουσιάστηκαν παραπάνω απλοί τύποι δεδομένων στο Pascal, οι οποίοι περιλαμβάνουν:

  • Τακτικός
  • ολόκληρος
  • σπαζοκεφαλιά
  • Συμβολικός
  • απαριθμούνται
  • Διάστημα
  • Πραγματικός

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

  • η μορφή χρησιμοποιεί είτε έναν αριθμό, που σημαίνει τον αριθμό των θέσεων που έχουν εκχωρηθεί σε αυτόν τον αριθμό σε εκθετική μορφή.
  • p:=1234.6789; WriteIn(p:6:2); (1234,68)

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

    Σταθερές στον Πασκάλ

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

    Η δήλωση μιας σταθεράς στο Pascal συμβαίνει πριν από τη δήλωση μεταβλητών (πριν από τη λέξη υπηρεσίας var) και μοιάζει με αυτό:

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

    1 2 3 4 5 6 const x= 17 ; var myname: string ; Begin myname: = "Peter" ; writeln ("όνομα: " , το όνομα μου, ", ηλικία: " , x) τέλος .

    const x=17; varmyname:string; Begin myname:="Peter"; writeln ("όνομα: ", το όνομά μου, ", ηλικία: ", x) τέλος.

    "Όμορφη" έξοδος ακεραίων και πραγματικών αριθμών

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


    Αριθμητικές πράξεις σε Pascal

    Διάταξη Λειτουργίας

    1. αξιολόγηση των εκφράσεων σε παρενθέσεις.
    2. πολλαπλασιασμός, διαίρεση, div, mod από αριστερά προς τα δεξιά.
    3. πρόσθεση και αφαίρεση από αριστερά προς τα δεξιά.

    Τυπικές Αριθμητικές Διαδικασίες και Συναρτήσεις Pascal

    Εδώ αξίζει να σταθούμε αναλυτικότερα σε ορισμένες αριθμητικές πράξεις.

    • Ο τελεστής inc στο Pascal, που προφέρεται ως increment, είναι η τυπική διαδικασία Pascal, που σημαίνει αύξηση κατά ένα.
    • Παράδειγμα λειτουργίας Inc:

      x:=1; Inc(x); (Αυξήσεις x κατά 1, δηλ. x=2) γράψτε (x)

      Μια πιο περίπλοκη χρήση της διαδικασίας inc:
      Inc(x,n) όπου x είναι τακτικός τύπος, n είναι ακέραιος τύπος. η διαδικασία προσαυξάνεται x κατά n.

    • Η διαδικασία Dec στο Pascal λειτουργεί παρόμοια: Dec(x) - μειώνεται το x κατά 1 (μείωση) ή Dec(x,n) - μειώνεται το x κατά n.
    • Ο τελεστής abs αντιπροσωπεύει το μέτρο συντελεστή ενός αριθμού. Λειτουργεί ως εξής:
    • α: =- 9 ; b:=abs(a); (b=9)

      a:=-9; b:=abs(a); (b=9)

    • Ο τελεστής div στο Pascal είναι ένας ευρέως χρησιμοποιούμενος, καθώς ένας αριθμός εργασιών σχετίζεται με την ενέργεια διαίρεσης ακέραιος.
    • Το υπόλοιπο της διαίρεσης ή του τελεστή mod στο pascal είναι επίσης απαραίτητο για την επίλυση ορισμένων προβλημάτων.
    • Αξιοσημείωτο είναι τυπική λειτουργία odd Pascal, το οποίο καθορίζει αν ένας ακέραιος είναι περιττός. Δηλαδή, επιστρέφει true (true) για περιττούς αριθμούς, false (false) για ζυγούς αριθμούς.
    • Ένα παράδειγμα χρήσης της περιττής συνάρτησης:

      varx:integer; startx:=3; writeln(sqr(x)); (απάντηση 9) τέλος.

    • Εκθεσιμότητα λειτουργίας σε Pascalλείπει ως τέτοιο. Αλλά για να αυξήσετε έναν αριθμό σε δύναμη, μπορείτε να χρησιμοποιήσετε τη συνάρτηση exp.
    • Ο τύπος είναι: exp(ln(a)*n) , όπου a είναι ένας αριθμός, n είναι δύναμη (a>0).

      Ωστόσο, στον μεταγλωττιστή pascal abcη εκφορά είναι πολύ πιο εύκολη:

      varx:integer; startx:=9; writeln(sqrt(x)); (απάντηση 3) τέλος.

    Εργασία 4.Οι διαστάσεις ενός σπιρτόκουτου είναι γνωστές: ύψος - 12,41 cm, πλάτος - 8 cm, πάχος - 5 cm. Υπολογίστε το εμβαδόν βάσης του κουτιού και τον όγκο του
    (S=πλάτος * πάχος, V=εμβαδόν*ύψος)

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

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



    Φόρτωση...
    Μπλουζα