Agenția Federală pentru Educație
"TIPURI DE DATE ÎN PASCALA"
Orice date, adică constantele, variabilele, proprietățile, valorile funcțiilor sau expresiile sunt caracterizate de tipurile lor. Un tip defineste setul de valori valide pe care un obiect le poate avea, precum si setul de operatii valabile care se aplica. În plus, tipul definește și formatul reprezentării interne a datelor în memoria PC-ului.
În general, limba obiectului Pascal este caracterizată de o structură ramificată de tipuri de date (Figura 1.1). Limba oferă un mecanism pentru crearea de noi tipuri, astfel încât numărul total de tipuri utilizate în program să fie arbitrar de mare.
Datele prelucrate în program sunt împărțite în variabile, constante și literali:
Litera nu are un identificator și este reprezentată direct în text în textul programului.
Tipul definește setul de valori pe care pot fi preluate elementele de date și setul de operații acceptat pe ele.
În acest capitol și în cele patru capitole următoare este prezentată o descriere detaliată a tuturor tipurilor.
1.1 Tipuri simple
Tipurile simple includ tipul ordinal, tipul real și tipul de dată-dată.
Tipurile de comenzi diferă prin faptul că fiecare dintre ele are un număr finit de valori posibile. Aceste valori pot fi aranjate într-un anumit mod (de aici numele tipurilor) și, prin urmare, puteți asocia cu fiecare dintre ele un număr întreg, numărul ordinal al valorii.
Strict vorbind, tipurile reale au, de asemenea, un număr finit de valori, care este determinat de formatul reprezentării interne a numărului real. Cu toate acestea, numărul de valori posibile ale tipurilor reale este atât de mare încât nu este posibil să se asocieze cu fiecare dintre ele un număr întreg (numărul său).
Tipul de date-dată este destinat să stocheze data și ora. De fapt, pentru acest scop, el folosește formatul real.
1.1.1 Tipuri de comenzi
Tipurile de ordine sunt întregi, logici, simbolici, enumerați și tip de interval (vezi Fig. Ord (x) poate fi aplicată oricăreia dintre ele, care returnează numărul de secvență al valorii expresiei X.
Fig. 1.1 - Structura tipurilor de date
Pentru tipul întreg ord (x) întoarce valoarea în sine x, t. E. Ord (X) = x pentru x, aparținând oricărui tip întreg. Aplicarea Ord (x) la logica, simbolic și enumeră tipurile dă un număr întreg pozitiv în intervalul 0 la 1 (Boolean) la 0 la 255 (caractere), 0-65535 (transferat). Tipul de gama stochează toate proprietățile tipului ordinal de bază, deci rezultatul aplicării funcției ord (x) la acesta depinde de proprietățile acestui tip.
De asemenea, puteți utiliza următoarele tipuri de comenzi:
pred (x) - returnează valoarea anterioară a tipului ordinal (valoarea care corespunde ordinului ordinal ord (x) -1, adică ord (pred (x)) = ord (x) -1;
succ (x) - returnează următoarea valoare a ordinului, care corespunde ordinului ordinal (x) +1, adică ord (Succ (x)) = ord (x) + 1.
De exemplu, dacă o variabilă este definită în program
atunci funcția PRED (c) returnează simbolul "4", iar funcția SUCC (c) - simbolul "6".
Dacă ne imaginăm orice tip de comandă ca fiind un set de valori, crescând de la stânga la dreapta și menținând pe real axa unui segment, pred (x) funcția nu este definită pentru stânga, un succ (x) - la capătul din dreapta al acestui interval.
Tipuri întregi. Gama de valori posibile ale tipurilor întregi depinde de reprezentarea lor internă, care poate ocupa unul, doi, patru sau opt octeți. În tabel. 1.1 arată numele tipurilor întregi, lungimea reprezentării lor interne în octeți și gama de valori posibile.
Tabelul 1.1 - Tipuri întregi
În operațiile cu numere întregi, tipul de rezultat va corespunde tipului de operanzi și dacă operanzii se referă la diferite tipuri întregi - un tip comun care include ambii operanzi. De exemplu, pentru acțiunile cu termen scurt și cuvânt, tipul general este întreg. În configurația standard, compilatorul Delphi nu generează cod care să monitorizeze posibila validare a ieșirii unei valori din intervalul admisibil, ceea ce poate duce la neînțelegeri.
Tipuri logice. Tipurile logice sunt Boolean, ByteBool, Bool, wordBool și LongBool. În Pascal standard, definit doar tipul boolean, alte tipuri logice introduse în Object Pascal pentru utilizarea de compatibilitate pentru Windows: tipuri și boolean ByteBool ocupă un octet fiecare, Bool și WordBool - 2 octeți, LongBool - 4 octeți. Valorile unui tip logic pot fi una dintre constantele declarate anterior False (false) sau True (true).
Deoarece un tip logic se referă la tipuri ordonale, acesta poate fi utilizat într-o instrucțiune de tip buclă. În Delphi 32 pentru Boolean, valoarea
Ord (True) = +1, în timp ce pentru alte tipuri (Bool, WordBool etc.)
Ord (True) = -1, deci acest tip de operatori trebuie folosit cu prudență! De exemplu, pentru versiunea Delphi 6, instrucțiunea executabilă showMessage ('---') în următoarea bucla nu va fi executată niciodată:
pentru L: = False to True
Dacă înlocuiți tipul de parametru al bucla L din exemplul anterior cu un Boolean, buclă va funcționa și mesajul va apărea de două ori pe ecran. [Pentru Delphi versiunea 1 și 2 ord (True) = + 1 pentru orice tip logic.]
Tipul de caractere. Valorile tipului de caractere sunt setul tuturor simbolurilor PC. Fiecare caracter este atribuit unui număr întreg în intervalul 0. 255. Acest număr servește drept cod pentru reprezentarea internă a simbolului, acesta returnează funcția ord.
Pentru a codifica în Windows utilizează codul ANSI (numit dupa Institutul American National Standard - Institutul American de Standarde, care a propus acest cod). Prima jumătate a simbolurilor calculatorului cu coduri 0. 127 corespunde tabelului 1.3. A doua jumătate a caracterelor cu codurile 128. 255 modificări pentru diferite fonturi. fonturi Windows standard, Arial Cyr, Courier New Cyr și Times New Roman pentru a reprezenta caractere chirilice (fără literele "e" și "E") utilizează cel mai recent cod 64 (192-256): "A". "I" sunt codificate cu valorile 192..223, "a". "I" - 224. 255. Simbolurile "E" și "E" sunt, respectiv, codurile 168 și 184.
Tabelul 1.3 - Codificarea caracterelor conform standardului ANSI
Caracterele cu coduri 0. 31 se referă la codurile de serviciu. Dacă aceste coduri sunt folosite în textul simbolic al programului, acestea sunt considerate spații.
Pentru caracterele de tip sunt implementate operațiunile de relaționare, precum și funcțiile încorporate:
Char (c) este o funcție de tip char; convertește o expresie într-un tip Byte într-un caracter și o readuce ca valoare;
UpCase (CH) este o funcție char; returneaza o majuscule daca cn este o literatura latina cu litere mici, altfel caracterul in sine se intoarce (caracterul chirilic returneaza caracterul original).
Tip enumerat. Tipul enumerat este specificat prin listarea valorilor pe care le poate primi. Fiecare valoare este numită un anumit identificator și este plasată într-o listă înconjurată de paranteze, de exemplu:
culori = (roșu, alb, albastru);
Utilizarea tipurilor enumerate face programele mai vizibile.
Utilizarea tipurilor enumerate sporește fiabilitatea programelor datorită capacității de a controla acele valori care primesc variabilele relevante. În Object Pascal este permisă o transformare inversă: orice expresie de tip Word poate fi convertită la o valoare a tipului enumerat, cu excepția cazului în care valoarea expresiei întregi depășește valoarea de acest tip. O astfel de conversie este realizată prin aplicarea unei funcții declarate automat cu numele tipului enumerat.
Tip bandă. Un tip de tip este o submulțime a tipului său de bază, care poate fi orice tip ordinal, altul decât tipul de domeniu.
Tipul de interval este definit de limitele valorilor sale în interiorul tipului de bază:
aici <мин. знач.> - valoarea minimă a tipului de interval; <макс. знач.> - valoarea maximă.
La definirea unui tip de domeniu, trebuie respectate următoarele reguli:
două caractere ".." sunt tratate ca un singur caracter, astfel încât nu există spații între ele; limita din stânga a intervalului nu trebuie să depășească marginea dreaptă.
Gama de tipuri moștenește toate proprietățile tipului de bază, dar cu constrângerile asociate cu puterea sa mai mică. În special, dacă este definită o variabilă.
Biblioteca obișnuită Object Pascal include două funcții care acceptă lucrul cu tipuri de gama:
High (x) - returnează valoarea maximă a tipului de domeniu la care variază variabila x;
Scăzut (x) - returnează valoarea minimă a tipului de interval.
Mai mult: Tipuri reale
(3,1415) = 3; 7. LN (1) = 0,000; 8. SQRT (36) = 6.000; 9. SIN (90 * pi / 180) = 1.000. Notă: În funcțiile trigonometrice, argumentul trebuie specificat numai în măsura radianului unghiului. Compatibilitatea și conversia tipurilor de date. Turbo-Pascal este un limbaj scris, prin urmare, toate operațiile aplicate sunt definite numai peste operanzi de tipuri compatibile. Două tipuri sunt considerate compatibile dacă sunt ambele.
sunt scrise fie cu un punct fix, de exemplu -1,234, fie cu un punct variabil, de exemplu -1,234E-5 sau 555e12. În program, de regulă, trebuie să utilizați variabile de tip aritmetic. Fiecare astfel de variabilă (și variabilă de orice alt tip) în limba Pascal trebuie să fie descrisă în mod necesar; tipul său trebuie indicat în mod clar. Descrierea variabilelor în cazul general are forma: numele VAR.
pune () mylat tilki un parametru і vivodyat vidpovіdno simbol al acelui rând, dar nu sigurde viu numarul de date. Funcția printf () vikoristovuetsya pentru formatovaniyu vivodu pe tipărirea tipurilor de date pentru specificul add-on. Formatul de specificator pentru a începe cu simbolul%, simbolul stânga nislya yakogo, tipul de dăruitori de tip shcho:. - numărul; % ld - numărul de tip int int; % u -.