Tipuri de date simple

Toate aceste tipuri, cu excepția reale, sunt tipuri ordinale.

Tipuri de ordinal sunt împărțite în standard si personalizate (enumerate, interval).

Tipuri de ordinal sunt caracterizate prin următoarele proprietăți:

Setul de valori permise de orice tip de secvență este o secvență ordonată, din care fiecare element are numărul său de serie. Numărul de ordine este un număr întreg. Prima valoare a oricărui tip de comandă are numărul de secvență 0, valoarea următoare este numărul de serie 1, etc. Excepția este tipul de comandă Integer. Valoarea numărul de ordine al acestui tip este valoarea în sine.
  • Pentru orice valoare a tipului de serie poate aplica functie standard Ord. Returnează numărul de valori.
  • Pentru orice valoare a tipului de serie poate aplica functie standard Pred. Valoarea se întoarce precedente la această valoare. Excepția este prima valoare.
  • Pentru orice valoare a tipului de serie poate aplica functie standard Succ. Returnează valoarea care urmează specificată. Excepția este cea mai recentă valoare.

  • Întregul termen (sau integral) este utilizat în sensul convențional.

    Valoarea întreagă sunt elementele unui subset al numerelor întregi ale căror limite depind de punerea în aplicare a limbii. Constante cu nume stocate MAXINT și MAXLongINT cea mai mare valoare întreagă a tipului respectiv Integer și Longint.

    Deoarece numere întregi în programele utilizate cel mai frecvent ca diferite tipuri de valori contra (de exemplu, numărul de repetiții ale ciclurilor), și valori index, apoi un interval limitat de numere întregi valabile, de obicei, nu duce la dificultăți în timpul programării. Se crede că numerele întregi (în contrast cu numere reale) în orice sistem informatic ar trebui să furnizeze exacte (adică, în înregistrarea unui număr întreg poate fi un punct zecimal) și toate operațiile definite pe ele trebuie să fie, de asemenea, efectuate cu precizie.

    De Pascal întregi multiple tipuri de date sunt definite, care diferă în lungime și prezența etichetei: mai puțin semnificativ bit sau semnul este perceput ca fiind fie un număr convențional de evacuare.

    restul diviziunii întreg

    Pentru toate valorile pot fi de asemenea utilizate operatorii relaționale. Rezultatul acestor operațiuni este un tip logic.

    De exemplu. comparație rezultat 3 <8 будет значение true.

    În plus, valori întregi pot fi aplicate operațiunilor binari și. sau. XOR și nu. La efectuarea acestor operații, fiecare valoare reprezentată ca un set de biți. Acțiunea este realizată pe fiecare pereche de biți de operanzi corespunzătoare: prima categorie la primul, al doilea - al doilea, etc ...

    De exemplu. rezultatul pasului 3 și 2 vor fi 2.

    Pentru a lucra cu valori întregi se schimba, de asemenea, operațiuni la SHR SHL stânga și dreapta. Funcționarea la stânga semnului este indicată cu o valoare a operațiunii va fi efectuată, precum și dreptul - pentru un număr de cifre binare necesare pentru suma de deplasare.

    De exemplu. 2 Valoarea rezultat 12shr funcționare este 3. Deoarece reprezentarea binară a numărului 12 - .. 11002. 12shl 1. După terminarea operațiunii, adică prin mutarea numărul lăsat de 1 bit, se obține 24. biți de forfecare eliberati sunt umplute cu zerouri la stânga și forfecare dreapta - reper descărcare.

    În Pascal există două tipuri de constante logice: true (adevărat) și fals (false). Prin urmare, o multitudine de valori posibile pentru variabile de tip Boolean, ByteBool, WordBool, LongBool (variabile logice) este format din două valori. Acest tip este definit astfel încât fals

    Când reprezentarea internă a variabilelor, cum ar fi variabile de tip Boolean, ByteBool ocupă 1 octet de memorie; tip tipuri WordBool de variabile - 2 octeți, tip LongBool - 4 octeți. Variabilele de tip ByteBool, WordBool, LongBool introdus numai pentru a se asigura că compatibilitatea Turbo Pascal cu alte limbaje de programare și de mediu Windows.

    Următoarele operații pot fi efectuate pe tipul de date logice:

    nu - negație logică, „nu“ - este o operație unară, adică, are un operand, care inversează.
  • și - multiplicare logică (conjuncție), „și“. rezultatul este setat la true. cu excepția cazului în ambele operanzi este adevărat.
  • sau - adăugarea logică (disjuncție), „sau“. rezultatul este setat la true. în cazul în care cel puțin unul dintre operanzi este adevărat.
  • XOR - "exclusiv sau". rezultatul său este adevărat atunci când valorile operanzilor nu sunt aceleași.

  • operațiuni de comparare (egal „=“ și inegal " <> „)

    tip știutor notată cu char nume (de la cuvântul caracter - un simbol, un semn).

    O valoare literală a tipului variabilei este un singur caracter din setul de caractere definit prin punerea în aplicare. Cu toate acestea, unele dintre personaje nu poate fi o reprezentare grafică - un caractere de control (de exemplu, trecerea de la un registru la altul, trecerea la următoarea linie a aparatului de imprimare pe hârtie, etc ...)

    In timp ce Pascal nu este fixat un anumit set de caractere, dar fiecare versiune a lui Pascal este stabilit trebuie să îndeplinească următoarele cerințe:

    pentru orice set de caractere (litere), toate caracterele sunt fixate și aranjate;
  • Acesta include toate litere mari de la A la Z; acest set este în ordine alfabetică;
  • inclusiv numere zecimale de la 0 la 9; un set de numere crescătoare, și conectat;
  • în cazul în care punerea în aplicare a permis litere mici de la z. acestea ar trebui să fie aranjate în ordine alfabetică;
  • Acesta include simboluri cum ar fi un spațiu, virgulă, perioadă, etc.;
  • relație de ordine între două caractere ale valorilor char de tip set ar trebui să fie aceeași cu cea dintre numerele lor de serie.

  • Elementele de tip char sunt considerate a fi numerotate pornind de la zero. Variabilele de acest tip ocupă un octet de memorie.

    O constantă (simbol) tip literal este una dintre literali valide, luate în apostrof.

    În cazul în care un apostrof face parte din valorile stabilite de tip char în sine. apostrof, valoarea constantă fiind înregistrată de două ori ( „“).

    Cele de mai sus sau valoarea următoare în ceea ce privește acest lucru depinde de punerea în aplicare a char set și o metodă de ordonare.

    Turbo Pascal ca valoare char folosind un singur cod de caractere ASCII. Pentru cele mai multe caractere există o cheie corespunzătoare. doua metodă de înregistrare este utilizat pentru caractere ASCII de control:

    folosind semnul #. înaintea ıntreg situată în intervalul de la 0 la 255, care stabilește numărul de caractere de control ASCII,

    folosind semnul ^. caracterul anterior.

    # 27 sau # $ 1B sau ^ [pentru a scăpa,

    # 7 sau # 7 sau $ ^ G să sune.

    Valoarea codului de caractere dorit poate fi definit cu ajutorul funcțiilor ord. și inversa acțiuni determină caracterul unui cod de executat dat funcția Cro.

    date literale pot fi de intrare și de ieșire, pentru a atribui pentru a compara unele cu altele. Atunci când se compară caracterele pe care de fapt nu le-au comparat, și -codurile lor ASCII, în timp ce un caracter este considerat mai mare decât altul numai în cazul în care are un cod de ASCII- mai mare.

    De exemplu. 'A'<'B', так как ASCII -код символа 'A' равен 65, а ASCII -код символа 'B' равен 66.

    Notă. Există o sizeof funcție (x), care permite determinarea numărului de octeți ocupate de un anumit tip de modificare; x - introduceți numele sau numele unei variabile. Folosind această funcție, este posibil să se determine cantitatea de memorie ocupată de datele unui tip standard sau dorit de tipuri de date structurate.

    Enumerarea permite programatorului pentru a descrie noile tipuri de date, a căror valoare determină programator.

    Descriere tip enumerat constă dintr-o listă a elementelor sale, separate prin virgulă și închise între paranteze. Fiecare dintre elementele este un identificator unic.

    EXEMPLU. Tipul de sezon = (primavara, vara, toamna, iarna);

    WEEKDAY = (Luni, Marti, Miercuri, Joi, Vineri, Sambata, Duminica);

    var Ieri, azi, mâine: WEEKDAY;

    Descrierea tipului și variabilele pot fi combinate.

    Ca parte a blocului, unde identificatorii de tip enumerate declarate ale tuturor elementelor unui tip enumerare sunt tratate ca și constante.

    Trebuie remarcat faptul că aceste ID-uri nu sunt constante șir în ghilimele nu sunt încheiate. Deoarece ID-urile sunt enumerate constante de tip ale blocului în care acestea sunt declarate, descrierea aceluiași identificator în diferite tipuri considerată o eroare.

    Constante predefinite tipuri pot să nu fie un tip enumerare valori.

    Constantele de asociere pe anumite motive atribuite de către programator. Variabilele de tipul descris poate lua orice valoare a acestor constante.

    EXEMPLU. Astăzi. = Mon

    Tip de date Interval - este un subset al unui tip scalar definit deja sau standard (cu excepția reale). Prin urmare, în literatura de specialitate pot fi găsite un alt nume de acest tip, cum ar fi un tip limitat de tip otrezochny, - gama.

    tip Interval este un interval (interval) ale oricărui tip de comandă, numit o bază. Descriind minimul specificat de tip interval și valoarea maximă a intervalului de valori permise pentru acel tip. Minimă și valoarea maximă a intervalului este împărțită cu „..“ (două perioade).

    EXEMPLU. 0..500; -128..127; 'A' .. 'Z'; Mon..Fri

    Tipul de interval variabil are toate proprietățile variabilei de tipul de bază. Prin urmare, toate funcțiile și operațiunile specifice tipului de bază standard pot fi aplicate la segmentul său, dar trebuie avut grija să nu se depășească limitele impuse.

    În cazul în care acest tip de bază identificat mai multe segmente, este permis, variabilele acestor tipuri pot interacționa în aceiași termeni, ele pot fi utilizate pe partea stângă și dreaptă a operatorului de atribuire, dar nu este întotdeauna fezabilă.

    EXEMPLU. Să o descriere

    var An: 1980..1985;

    Apoi, asignarea este valabilă:

    Zi: = Luna; (Și fezabil)

    Ziua: = An; (Și imposibil)

    Acest tip este folosit în cazurile în care există informații cu privire la o serie de valori ale variabilei (acest lucru salvează memoria programului de control al mașinii și la traducere de execuție).

    valori reale Tip regiune este determinată de subsetul de limbă de implementare a numerelor reale. Acest set nu este comandat, și, prin urmare, la valoarea de acest tip nu se aplică funcții succ și pred. Numerele reale nu pot fi utilizate ca indici, pentru contoare. selectorul în cazul.

    Particularitatea de tip real, este asociat cu următoarele situații.

    Numerele reale dintr-un calculator sunt prezentate de obicei sub forma unui float. și anume o reprezentare internă a unui număr real este format din două părți - o mantisă și ordine, iar fiecare parte are un semn.

    De exemplu. 0087 număr reprezentat ca 0,87 x10 -1

    Numărul de biți care urmează să fie alocate pentru ordinea imaginii, determină intervalul de numere, astfel încât intervalul este definit de un anumit computer. Spre deosebire de acest interval de tip întreg conține un subset infinit de numere reale. Deoarece imaginea mantisei este, de asemenea, atribuit un număr fix de biți, aparatul poate fi reprezentat exact printr-un set limitat de numere reale. Astfel, fiecare număr reprezintă aparatul cu diferite precizie unele interval de numere reale. Deci, numerele reale, în general, par operații aritmetice incorecte și pe ele nu sunt efectuate exact conform regulilor și acțiunilor privind numerele aproximative. Prin urmare, o multitudine de tipuri de valori reale și nu este comandat.

    Pentru stocare de tip variabile Real compilator Turbo Pascal alocă șase octeți în RAM (1 bit pentru semn, 39 de biți pentru a mantisei și 8 biți pentru comanda). Acest lucru permite stabilirea numerelor reale (în valoare absolută), în intervalul de la 2,9 * 10 -39-1.7 × 10 38.

    Există mai multe tipuri de materiale cu diferite precizie și intervalul de prezentare. Precizia este determinată de numărul de lungime mantisei și intervalul - despre lungimea.