Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • Sfat
  • Funcțiile sunt toate tipurile de date pascal. Tipuri de date simple

Funcțiile sunt toate tipurile de date pascal. Tipuri de date simple

Tipuri de date Pascal

Orice date (constante, variabile, valori ale funcției sau expresii) din Turbo Pascal sunt caracterizate prin tipurile lor. Un tip definește setul de valori valide pe care le poate avea un obiect, precum și setul de operații valide care i se pot aplica. Tipul determină și formatul reprezentării interne a datelor din memoria computerului.

Există următoarele tipuri de date în Turbo Pascal.

1) Tipuri simple:

– real;

– simbolic;

– Boolean (logic);

– enumerate;

– limitat (gamă).

2) Tipuri compozite (structurate):

– regulat (matrice);

– combinate (înregistrări);

– dosar;

– multiplu;

– sfoară;

- obiecte.

3) Tipuri de referință (indicatori tip și netipizat).

4) Tipuri procedurale.

Turbo Pascal oferă un mecanism pentru crearea de noi tipuri de date, datorită căruia numărul total de tipuri utilizate în program poate fi atât de mare pe cât se dorește.

Tipul întreg. Valorile întregi sunt elementele unui subset de numere întregi. Există cinci tipuri de numere întregi în Turbo Pascal. Numele lor, intervalul de valori, lungimea reprezentării în octeți sunt date în tabel. 6.

Tabelul 6

Tipuri de date întregi

Variabilele întregi sunt descrise folosind cuvintele rezervate de mai sus:

i, j, k: întreg;

Datele de tip întreg sunt stocate exact în memorie. De exemplu, variabilele de tip întreg ocupă 2 octeți (16 biți) în memorie, care sunt alocați după cum urmează: 1 bit este alocat pentru a stoca semnul numărului (0 dacă numărul este pozitiv și 1 dacă numărul este negativ) și 15 biți pentru a stoca numărul în binar. Numărul zecimal maxim care poate fi scris ca binar pe 15 biți este 32767.

Atunci când utilizați proceduri și funcții cu parametri întregi, ar trebui să vă ghidați după „imbricarea” tipurilor, de exemplu. oriunde este folosit cuvântul, byte este permis (dar nu invers), longint „include” un număr întreg, care, la rândul său, include shortint.

Pentru tipul întreg, sunt definite cinci operații de bază, al căror rezultat este și un număr întreg: +, -, *, div, mod (adunare, scădere, înmulțire, împărțire întreg și rest de împărțire întreg). În expresiile aritmetice, operațiile *, div, mod au prioritate mai mare decât operațiile +, -. Exemple de expresii de scriere:

Lista procedurilor și funcțiilor aplicabile tipurilor întregi este dată în tabel. 7. Literele b, s, w, i, l denotă expresii de tip byte, shortint, word, întreg și, respectiv, longint; x este o expresie a oricăruia dintre aceste tipuri; identificatorii vb, vs, vw, vi, vl, vx denotă variabile ale tipurilor corespunzătoare. Un parametru opțional este indicat între paranteze drepte.

Tabelul 7

Proceduri și funcții standard aplicabile pentru tipuri întregi

Recurs Tip de rezultat Acțiune
Abs(x) X Returnează modulul x
Chr(b) Char Returnează un caracter după codul său
Dec(vx[,i]) - Descrește valoarea lui vx cu i, iar în absența lui i – cu 1
Inc(vx[,i]) - Crește valoarea lui vx cu i, iar în absența lui i – cu 1
Buna eu) octet Returnează octetul înalt al argumentului
Buna eu) octet La fel
Lo(i) octet Returnează octetul scăzut al argumentului
Scăzut) octet La fel
Impar(l) octet Returnează adevărat dacă argumentul este un număr impar
Aleatoriu (w) La fel ca parametrul Returnează un număr pseudo-aleatoriu distribuit uniform în intervalul 0...(w-1)
Sqr(x) X Returnează pătratul argumentului
Schimbați(i) Întreg
Schimbați (w) Cuvânt Schimbă octeți într-un cuvânt
Succ(x) La fel ca parametrul Returnează următoarea valoare întreagă, adică x+1
Pred(x) La fel ca parametrul Returnează valoarea întregului precedent, adică x-1

Când se operează cu numere întregi, tipul rezultatului va corespunde tipului de operand, iar dacă operanzii sunt de diferite tipuri întregi, tipului de operand care are intervalul maxim de valori. Posibila depășire a rezultatului nu este controlată, ceea ce poate duce la erori în program.

Tip real. Valorile tipurilor reale definesc un număr arbitrar cu o anumită precizie finită, în funcție de formatul intern al numărului real. Există cinci tipuri reale în Turbo Pascal (Tabelul 8).

Tabelul 8

Tipuri de date reale

Variabilele reale sunt descrise folosind cuvintele rezervate de mai sus:

Un număr real din memoria computerului este format din 3 părți:

Cifra semnului unui număr;

Parte exponențială;

Mantisa numărului.

Mantisa are o lungime de la 23 (Single) la 63 (Extended) cifre binare, ceea ce oferă o precizie de 7-8 pentru Single și 19-20 pentru Extended zecimal digits. Punctul zecimal (virgulă) este implicat înaintea cifrei din stânga (cea mai semnificativă) a mantisei, dar atunci când se operează pe un număr, poziția acestuia este deplasată la stânga sau la dreapta, în conformitate cu ordinea binară a numărului stocat în partea exponențială. , prin urmare operațiile pe numere reale se numesc aritmetică în virgulă mobilă (virgulă).

Tipurile Single, Double și Extended sunt accesate numai în moduri speciale de compilare. Pentru a activa aceste moduri, selectați elementul de meniu Opțiuni, Compilator…și activați opțiunea 8087/80287 in grup Prelucrare numerică.

O poziție specială în Turbo Pascal este ocupată de tipul Comp, care este tratat ca un număr real fără părți exponențiale și fracționale. De fapt, Comp este un întreg mare cu semn care stochează 19...20 de cifre zecimale semnificative. În același timp, în expresii, Comp este pe deplin compatibil cu orice alte tipuri reale: toate operațiile reale sunt definite pe el, poate fi folosit ca argument pentru operații matematice etc.



Numerele reale sunt specificate în sistemul numeric zecimal într-unul dintre doua forme.

ÎN formă de punct fixînregistrarea constă dintr-un număr întreg și o parte fracțională, separate între ele printr-un punct, de exemplu:

0.087 4.0 23.5 0.6

ÎN formă în virgulă mobilă intrarea conține litera E, care înseamnă „înmulțiți cu zece la putere”, iar puterea este un număr întreg, de exemplu:

7E3 6.9E-8 0.98E-02 45E+04

Următoarele operații sunt definite pe obiecte de tip real: +, -, *, /.

Operațiunile „*” și „/” au prioritate mai mare decât operațiunile „+” și „-”.

Dacă cel puțin un operand este real, atunci operațiile +, -, *, / conduc la un rezultat real. Operația de împărțire / conduce la un rezultat real chiar și în cazul a doi operanzi întregi, de exemplu: 9/3 = 3,0.

Pentru a lucra cu date reale, pot fi utilizate funcții matematice standard prezentate în tabel. 9. Rezultatul acestor funcții este și el real.

Tabelul 9

Funcții matematice care funcționează cu date reale

Este interzisă utilizarea variabilelor și constantelor de tip REAL:

– în funcțiile pred(x), succ(x), ord(x);

– ca indici de matrice;

– ca etichete în declarațiile de transfer de control;

– ca variabile de control (parametri de ciclu).

Pentru a converti un număr real într-un număr întreg, puteți utiliza următoarele funcții:

trunc(x) – parte întreagă a lui x (x – real);

round(x) – rotunjirea la cel mai apropiat număr întreg (x este real).

Tip de caracter. Variabilele de caractere sunt descrise folosind cuvântul rezervat char:

Valorile de acest tip sunt selectate dintr-un set de caractere ordonat (set ASCII) format din 256 de caractere. Fiecărui caracter i se atribuie un număr întreg din intervalul 0..255. De exemplu, literele mari ale alfabetului latin A..Z au codurile 65..90, iar literele mici au codurile 97..122.

Valoarea unei variabile de tip de caracter este un singur caracter înconjurat de apostrofe, de exemplu:

„F” „8” „*”

Variabilele de caractere pot fi comparate între ele, iar codurile de caractere sunt comparate.

Există funcții care stabilesc o corespondență între un simbol și codul său:

ord(c) – dă numărul simbolului c;

chr(i) – returnează numărul caracterului i.

Aceste funcții sunt inverse între ele.

tip boolean. Variabilele booleene sunt descrise folosind cuvântul rezervat boolean:

p1, p2: boolean;

Variabilele de tip boolean iau două valori: Adevărat(Adevărat), fals(minciună).

Aceste valori sunt ordonate după cum urmează: false< true. false имеет порядковый номер 0, true имеет порядковый номер 1.

Variabilelor booleene li se poate atribui direct o valoare sau pot folosi o expresie booleană. De exemplu,

a, d, g, b: boolean;

Operațiuni de relație (<, <=, >, >=, =, <>), aplicate variabilelor întregi, reale și simbolice, produc un rezultat logic.

Operațiile logice pe operanzi de tip logic produc, de asemenea, un rezultat logic (operațiile sunt enumerate în ordinea descrescătoare a priorității) (pentru mai multe detalii, vezi Tabelele 3 și 5):

nu – negație (operație NU);

și – înmulțirea logică (operație AND);

sau – adăugare logică (operație OR);

xor – OR exclusiv.

Expresia (nu a) are sensul opus a lui a.

Expresia (a și b) se evaluează drept adevărată dacă doar a și b sunt adevărate; în caz contrar, valoarea acestei expresii este falsă.

Expresia (a sau b) este evaluată ca falsă dacă doar a și b sunt evaluate ca false; în caz contrar, rezultatul este adevărat.

Tip enumerare. Un tip de enumerare non-standard este specificat printr-o enumerare sub formă de nume de valori pe care o variabilă le poate lua. Fiecare valoare este denumită printr-un identificator și este situată într-o listă înconjurată de paranteze. Forma generală a descrierii tipului enumerat:

x = (w1, w2, …, wn);

unde x este numele tipului, w1, w2,..., wn sunt valorile pe care le poate lua o variabilă de tip x.

Aceste valori sunt ordonate w1

Următoarele funcții standard se aplică argumentului w de tip enumerat:

succ(w), pred(w), ord(w).

culoare=(rosu, negru, galben, verde)

ww=(stânga, sus, dreapta, jos);

f: matrice de ww;

succ(d) = galben;

Variabilele a și b sunt de tip w. pot lua una dintre cele trei valori, cu pornit

Operațiile relaționale sunt aplicabile valorilor de tip enumerat: =,<>, <=, >=, <, >.

Este permisă specificarea constantelor de tip enumerate direct în secțiune var fără a utiliza partiția tip, De exemplu

c,d: (rosu, negru, galben, verde);

Tip de gamă (limitat).. Când definiți un tip limitat, specificați valorile inițiale și finale pe care le poate lua o variabilă de tip interval. Valorile sunt separate prin două puncte.

Descrierea tipului restricționat este de formă

Aici a este numele tipului, min, max sunt constante.

Atunci când specificați un tip restricționat, trebuie respectate următoarele reguli:

– ambele constante de limită min și max trebuie să fie de același tip;

– se creează un tip limitat din datele unui tip de bază, care poate fi un întreg, caracter sau tip enumerat. De exemplu:

col = roșu.. galben;

litera = 'a'..'f';

– Variabilele de tip restricționat pot fi declarate în secțiunea var fără a se face referire la secțiunea de tip:

– un tip restricționat moștenește toate proprietățile tipului de bază din care este creat;

– limita minimă trebuie să fie întotdeauna mai mică decât limita maximă.

Matrice. Un tablou este un tip complex care este o structură constând dintr-un număr fix de componente de același tip. Tipul de componentă se numește tip de bază. Toate componentele matricei pot fi comandate cu ușurință și accesul la oricare dintre ele poate fi asigurat prin simpla indicare a numărului său de serie. Descrierea matricei în secțiune var are forma:

A: matrice de t2;

unde a este numele matricei, matrice, de– cuvinte de serviciu (însemnând „matrice de...”), t1 – tip index; t2 – tip componentă (tip bază).

Numărul de indici determină dimensiunea matricei. Indecii pot fi tipuri întregi (cu excepția longint), caractere, logice, enumerare și intervale. Indicele sunt separate prin virgule și cuprinse între paranteze drepte. Componentele matricei pot fi de orice tip, cu excepția fișierului.

Exemplul 1. Luați în considerare o matrice unidimensională C, ale cărei valori sunt cinci numere reale:

4.6 6.23 12 -4.8 0.7

Descrierea acestei matrice este următoarea:

c: matrice de real;

Pe baza unei anumite valori de index, puteți selecta o anumită componentă a matricei (de exemplu, C înseamnă al treilea element al matricei C, adică numărul 12).

Exemplul 2. Luați în considerare o matrice bidimensională B (matricea B), a cărei valoare este un tabel de numere întregi:

Descrierea acestei matrice este următoarea:

b de număr întreg;

Aici b este numele matricei, primul index este numărul rândului și ia valori de la 1 la 2, al doilea este numărul coloanei și ia valori de la 1 la 4. Pe baza unor valori specifice de index, puteți selectați o componentă de matrice specifică (de exemplu, b înseamnă un element de tabel situat în primul rând și a treia coloană, adică numărul -4).

Indecșii pot fi expresii arbitrare corespunzătoare tipului de index din descrierea matricei:

a: matrice de real;

a[(i+1)*2]:= 24;

Setul de operații asupra elementelor matrice este complet determinat de tipul acestor elemente.

Tip șir. Tipul de șir este un set de șiruri de caractere de lungime arbitrară (de la zero la un număr dat). Variabilele de tip șir sunt descrise folosind un cuvânt funcție şir:

b: şir ;

Particularitati:

– valoarea unei variabile șir poate fi introdusă folosind tastatura, atribuită într-un operator de atribuire sau citită dintr-un fișier. În acest caz, lungimea șirului introdus poate fi orice (mai mică decât dimensiunea specificată, egală cu dimensiunea sau mai mare, în acest din urmă caz, caracterele suplimentare sunt eliminate); a:= „Rezultate”;

– este permisă utilizarea operației de concatenare în operatorul de atribuire, deoarece șirurile își pot modifica dinamic lungimea: a:= a + ‘calculări’;

– lungimea maximă a unei variabile șir este de 255 de caractere, această indicație de lungime poate fi omisă:

A: şir;

a1: şir ;

Variabilele a și a1 sunt aceleași (descriere echivalentă).

– memoria pentru variabilele de tip șir este alocată la maximum, dar este utilizată doar partea din memorie ocupată efectiv de caractere șir în momentul de față. Pentru a descrie o variabilă șir de lungime n, se folosesc n+1 octeți de memorie: n octeți pentru a stoca caractere șir, n+1 octeți pentru a stoca lungimea curentă.

– operațiunile de comparare sunt definite pe valorile tipurilor de șir:< <= > >= = <>. Un șir scurt este întotdeauna mai mic decât unul lung. Dacă șirurile au aceeași lungime, atunci codurile de caractere sunt comparate.

– accesul la elementele individuale ale unui șir este posibil în același mod ca și accesul la elementele matricei: a, a. Numărul elementului de linie este indicat între paranteze drepte.

Proceduri și funcții orientate spre lucrul cu șiruri.

concat (s1, s2,…)– funcția de îmbinare a șirurilor, s1, s2,... - linii, numărul de linii poate fi arbitrar. Rezultatul funcției este un șir. Dacă șirul rezultat este mai lung de 255 de caractere, șirul este trunchiat la 255 de caractere.

copie(e, index, numărare)– funcția de extragere a unui șir dintr-un șir sursă s lungime numara caractere, începând cu numărul caracterului index.

șterge (s, index, număr)– procedură pentru îndepărtarea din șirul s a unui subșir de lungime numara caractere, începând cu numărul caracterului index.

insert (s1, s2, index)– procedura de inserare a rândurilor s1 a alinia s2, începând cu caracterul cu numărul index.

lungime(i)– funcție pentru determinarea lungimii curente a șirului, returnează un număr egal cu lungimea curentă a șirului.

poziție (s1, s2)– funcția de căutare într-un șir s2 subșiruri s1. returnează numărul de poziție al primului caracter al unui subșir s1în linie s2(sau 0 dacă această linie nu există).

val (st, x, cod)– procedura de conversie a șirului s într-un număr întreg sau variabilă reală X. Parametru cod conține 0 dacă conversia a avut succes (și în X este plasat rezultatul conversiei), sau numărul de poziție al liniei în care este detectat caracterul eronat (în acest caz, valoarea X nu se schimba).

Compatibilitate și conversie de tip. Turbo Pascal este un limbaj tipizat. Este construit pe baza respectării stricte a conceptului de tip, conform căruia toate operațiile utilizate în limbaj sunt definite numai pe operanzi de tipuri compatibile.

Două tipuri sunt considerate compatibile dacă:

– ambele sunt de același tip;

– ambele sunt reale;

- ambele sunt intacte;

– un tip este un tip de interval de al doilea tip;

– ambele sunt tipuri de gamă de același tip de bază;

– ambele sunt mulţimi compuse din elemente de acelaşi tip de bază;

– ambele sunt șiruri de caractere împachetate (definite cu cuvântul precedent packed) de aceeași lungime maximă;

– unul este de tip șir, iar celălalt este de tip șir sau caracter;

– un tip este orice pointer, iar celălalt este un pointer către obiectul său asociat;

– ambele sunt tipuri procedurale cu același tip de rezultat (pentru un tip de funcție), număr de parametri și tip de parametri corespunzători reciproc.

Compatibilitatea tipurilor este deosebit de importantă în operatorii de atribuire. Fie t1 tipul variabilei și t2 tipul expresiei, adică se realizează atribuirea t1:=t2. Această atribuire este posibilă în următoarele cazuri:

– t1 și t2 sunt de același tip, iar acest tip nu se referă la fișiere, rețele de fișiere, înregistrări care conțin câmpuri de fișiere sau rețele de astfel de înregistrări;

– t1 și t2 sunt tipuri ordinale compatibile, iar valoarea lui t2 se află în intervalul valorilor posibile ale lui t1;

– t1 și t2 sunt tipuri reale, iar valoarea lui t2 se află în intervalul de valori posibile ale lui t1;

– t1 – tip real și t2 – tip întreg;

– t1 – linie și t2 – caracter;

– t1 – sfoară și t2 – sfoară ambalată;

– t1 și t2 – șiruri ambalate compatibile;

– t1 și t2 sunt mulțimi compatibile și toți membrii lui t2 aparțin mulțimii de valori posibile ale lui t1;

– t1 și t2 sunt pointeri compatibili;

– t1 și t2 sunt tipuri procedurale compatibile;

– t1 este un obiect și t2 este descendentul acestuia.

Într-un program, datele de un tip pot fi convertite în date de alt tip. Această conversie poate fi explicită sau implicită.

Conversia explicită de tip apelează funcții speciale de conversie ale căror argumente aparțin unui tip și ale căror valori aparțin altuia. Un exemplu sunt funcțiile deja discutate ord, trunc, round, chr.

Conversia implicită este posibilă numai în două cazuri:

– în expresiile compuse din variabile reale și întregi, acestea din urmă sunt convertite automat într-un tip real, iar întreaga expresie în ansamblu capătă tip real;

– aceeași zonă de memorie este tratată alternativ ca conținând date de unul sau altul tip (combinând date de diferite tipuri în memorie).

Când descrieți o variabilă, trebuie să indicați tipul acesteia. Tipul unei variabile descrie setul de valori pe care îl poate lua și acțiunile care pot fi efectuate asupra acesteia. O declarație de tip specifică un identificator care reprezintă tipul.

Tipurile simple sunt împărțite în standard (ordinal) și enumerate (restrâns).

Tipuri standard

Turbo Pascal are patru tipuri standard încorporate: întreg, real, boolean și char.

Tip întreg (întreg)

Turbo Pascal are cinci tipuri de numere întregi încorporate: shortint, integer, longint, byte și word. Fiecare tip denotă un subset specific de numere întregi, așa cum se arată în tabelul următor.

Tipuri întregi încorporate.

Gamă

Format

8 biți semnați

16 biți semnați

2147483648 +2147483647

Semnat pe 32 de biți

8 biți nesemnați

16 biți nesemnați

Operațiile aritmetice pe operanzi de tip întreg sunt efectuate în conformitate cu următoarele reguli:

  1. Un tip de constantă întreg este un tip de număr întreg încorporat cu cel mai mic interval care include valoarea acelei constante întregi.
  2. În cazul unei operații binare (o operație care utilizează doi operanzi), ambii operanzi sunt convertiți în tipul lor comun înainte ca operația să fie efectuată asupra lor. Tipul comun este tipul întreg încorporat, cu cel mai mic interval care include toate valorile posibile ale ambelor tipuri. De exemplu, tipul obișnuit pentru un număr întreg și un număr întreg cu lungimea de octeți este întreg, iar tipul comun pentru un întreg și un număr întreg cu lungimea unui cuvânt este întreg lung. Acțiunea se realizează în funcție de precizia tipului generic, iar tipul rezultatului este tipul generic.
  3. Expresia din partea dreaptă a operatorului de atribuire este evaluată indiferent de mărimea variabilei din stânga.

Operații efectuate pe numere întregi:

„+” - adaos

„-“ - scădere

"*" - înmulțire

SQR - pătrat

DIV - renunță la partea fracțională după împărțire

MOD - obținerea restului întreg după împărțire

ABS - modul de număr

RANDOM(X) - obținerea unui număr aleatoriu de la 0 la X

A:=100; b:=60; a rezultat DIV b - 1 a rezultat MOD b - 40

Variabilele de tip întreg sunt descrise după cum urmează:

var lista de variabile: tip;

De exemplu: var а,р,n:integer;

Tip real (real)

Tipul real este un subset de numere reale care poate fi reprezentat în format virgulă mobilă cu un număr fix de cifre. Scrierea unei valori în format virgulă mobilă implică de obicei trei valori - m, b și e - astfel încât m*b e, unde b este întotdeauna 10 și m și e sunt valori întregi în intervalul real. Aceste valori ale lui m și e determină în continuare intervalul și precizia tipului real.

Există cinci tipuri de tipuri reale: reale, simple, duble, exnende, comp. Tipurile reale variază în domeniul și precizia valorilor asociate cu acestea

Interval și cifre zecimale pentru tipuri reale

Gamă

Numerele

2,9x10E-39 până la 1,7x10E 38

1,5x10E-45 până la 3,4x10E 38

5,0x10E-324 până la 1,7x10E 308

3,4x10E-493 până la 1,1x10E 403

2E 63 până la 2E 63

Operatii efectuate pe numere reale:

  • Toate operațiunile sunt valabile pentru numere întregi.
  • SQRT(x) este rădăcina pătrată a lui x.
  • SIN(X), COS(X), ARCTAN(X).
  • LN(X) este logaritmul natural.
  • EXP(X) este exponentul lui X (e x).
  • EXP(X*LN(A)) - exponentiație (A x).
  • Funcții de conversie a tipului:
    • TRUNC(X) - aruncă partea fracționată;
    • ROUND(X) - rotunjire.
  • Câteva reguli ale operațiilor aritmetice:
    • Dacă o operație aritmetică conține numere de tip real și întreg, atunci rezultatul va fi de tip real.
    • Toate componentele expresiei sunt scrise pe o singură linie.
    • Se folosesc doar paranteze.
    • Nu poți pune două semne aritmetice la rând.

Variabilele de tip real sunt descrise după cum urmează:

var lista de variabile: tip;

De exemplu:

var d,g,k:real ;

Tip de caracter (caracter)

Tipul char este orice caracter inclus în apostrofe. Pentru a reprezenta un apostrof ca variabilă caracter, trebuie să-l încadrați într-un apostrof: ''''.

Fiecare caracter are propriul său cod și număr. Numerele de serie ale cifrelor 0,1..9 sunt ordonate crescător. Numerele de serie ale literelor sunt, de asemenea, ordonate în ordine crescătoare, dar nu se succed neapărat.

Următoarele semne de comparație se aplică datelor de caractere:

> , < , >=, <=, <> .

De exemplu: „A”< ‘W’

Funcții care se aplică variabilelor caracter:

  1. ORD(X) - determină numărul de serie al simbolului X. ord (‘a’) =97 ;
  2. CHR(X) - identifică un caracter după număr. chr(97) =’a’;
  3. PRED(X) - returnează caracterul care precede caracterul X. pred (‘B’) =’A’;
  4. SUCC(X) - returnează caracterul după caracterul X. succ (‘A’) =’B’;

Tip de enumerare

Un tip de date enumerate este numit astfel deoarece este specificat ca o listă de constante într-o ordine strict definită și într-o cantitate strict definită. Un tip enumerat constă dintr-o listă de constante. Variabilele de acest tip pot lua valoarea oricăreia dintre aceste constante. Descrierea tipului de enumerare arată astfel:

Tip<имя типа>=(lista de constante) ; Var<имя переменной>:<имя типа>;

Unde<список констант>- acesta este un tip special de constante, specificate separate prin virgule și având propriul număr de serie, începând de la 0.

De exemplu:

tip direction=(nord, sud, vest, est) ; luna=(iunie, iulie, august, ianuarie) ; capacitate=(galeata, butoi, canistra, rezervor); var rotatie:directie; plecare:luna; volum:capacitate; var turn:(nord, sud, vest, est) ; plecare: (iunie, iulie, august, ianuarie) ; volum: (galeata, butoi, canistra, rezervor);

Puteți efectua următorii operatori de atribuire:

Rotatie:=sud; plecare:=august; volum:=rezervor;

dar nu poți face sarcini mixte:

Plecare:=sud; volum:=august;

Următoarele funcții se aplică variabilelor de tip enumerat:

1. ORD - număr de serie

2. PRED - element anterior

3. SUCC - element ulterior.

PRED (butoaie) = găleată; SUCC (sud) =vest; ORD (iulie) =1 ;

Variabilele de tip enumerat pot fi comparate deoarece sunt ordonate și numerotate. Deci expresiile: nord< юг, июнь < январь имеют значения TRUE, а юг>vest și tanc<бочка значение FАLSE.

Tip limitat

Dacă o variabilă nu acceptă toate valorile tipului său, ci doar într-un anumit interval, atunci poate fi considerată o variabilă de tip limitat. Fiecare tip constrâns este definit prin impunerea unei constrângeri asupra tipurilor de bază.

Este descris după cum urmează:

TIP<имя типа>=constant1 ..constant2

În acest caz, trebuie respectate următoarele reguli:

  1. Ambele constante mărginite trebuie să fie de același tip.
  2. Orice tip simplu, cu excepția realului, poate fi folosit ca tip de bază.
  3. Valoarea inițială la definirea unui tip limitat nu trebuie să fie mai mare decât valoarea finală.
indice de tip =0 ..63 ; litera=’a’...’z’; var char1,char2:litera; a,g:index ;

O puteți descrie imediat în secțiunea descriere a variabilei:

var a,g:0 ..63; char1,char2:'a'..'z'.

În limbajul Pascal variabilele se caracterizează prin lor tip. Un tip este o proprietate a unei variabile prin care o variabilă poate lua multe valori permise de acel tip și poate participa la multe operațiuni permise pe acel tip.

Un tip definește setul de valori valide pe care le poate lua o variabilă de un anumit tip. De asemenea, definește setul de operații permise pe o variabilă de un anumit tip și determină reprezentarea datelor în memoria RAM a computerului.

De exemplu:

n: întreg;

Pascal este un limbaj static, ceea ce înseamnă că tipul unei variabile este determinat atunci când este declarată și nu poate fi schimbat. Limbajul Pascal are un sistem dezvoltat de tipuri - toate datele trebuie să aparțină unui tip de date cunoscut anterior (fie un tip standard creat în timpul dezvoltării limbajului, fie un tip personalizat definit de programator). Programatorul își poate crea propriile tipuri cu o structură de complexitate arbitrară bazată pe tipuri standard sau tipuri deja definite de utilizator. Numărul de tipuri create este nelimitat. Tipurile personalizate dintr-un program sunt declarate în secțiunea TYPE folosind formatul:

[nume] = [tip]

Sistemul de tipuri standard are o structură ramificată, ierarhică.

Primare în ierarhie sunt tipuri simple. Astfel de tipuri sunt prezente în majoritatea limbajelor de programare și sunt numite simple, dar în Pascal au o structură mai complexă.

Tipuri structurate sunt construite după anumite reguli din tipuri simple.

Indicatoare sunt formate din tipuri simple și sunt folosite în programe pentru a specifica adrese.

Tipuri procedurale sunt o inovație în limbajul Turbo Pascal și permit accesarea subrutinelor ca și cum ar fi variabile.

Obiecte sunt, de asemenea, o inovație și sunt destinate să utilizeze limbajul ca limbaj orientat pe obiecte.

În limbajul Pascal, există 5 tipuri de tipuri întregi. Fiecare dintre ele caracterizează gama de valori acceptate și spațiul pe care îl ocupă în memorie.

Când utilizați numere întregi, ar trebui să vă ghidați după imbricarea tipurilor, de exemplu. tipurile cu o gamă mai mică pot fi imbricate în tipurile cu o gamă mai mare. Tipul de octeți poate fi imbricat în toate tipurile care ocupă 2 și 4 octeți. În același timp, tipul Short Int, care ocupă 1 octet, nu poate fi imbricat în tipul Word, deoarece nu are valori negative.

Există 5 tipuri reale:

Tipurile întregi sunt reprezentate cu absolut exactitate într-un computer. Spre deosebire de tipurile întregi, valoarea tipurilor reale definește un număr arbitrar doar cu o precizie finită, în funcție de formatul numărului. Numerele reale sunt reprezentate într-un computer fie ca virgulă fixă, fie ca virgulă mobilă.

2358.8395

0.23588395*10 4

0,23588395*E 4

Tipul Comp ocupă o poziție specială în Pascal; de fapt, este un întreg mare cu semn. Acest tip este compatibil cu toate tipurile reale și poate fi folosit pentru un întreg mare. Când se reprezintă numere reale cu virgulă mobilă, punctul zecimal este întotdeauna implicat înaintea mantisei din stânga sau din frunte, dar atunci când se operează pe un număr, aceasta este deplasată la stânga sau la dreapta.

Tipuri ordinale

Tipurile ordinale combină mai multe tipuri simple. Acestea includ:

  • toate tipurile de numere întregi;
  • tip de caracter;
  • tip boolean;
  • tip-gamă;
  • tip enumerat.

Caracteristicile comune pentru tipurile ordinale sunt: ​​fiecare tip are un număr finit de valori posibile; valoarea acestor tipuri poate fi ordonată într-un anumit mod și un anumit număr, care este un număr de serie, poate fi asociat fiecărui număr; valorile adiacente ale tipurilor ordinale diferă cu unu.

Pentru valorile de tip ordinal se poate aplica funcția ODD(x), care returnează numărul ordinal al argumentului x.

Funcția PRED(x) - returnează valoarea anterioară a unui tip ordinal. PRED(A) = 5.

Funcția SUCC(x) - returnează următoarea valoare ordinală. SUCC(A) = 5.

Tip de caracter

Valorile tipului de caractere sunt de 256 de caractere din setul permis de tabelul de coduri al computerului utilizat. Zona inițială a acestui set, adică intervalul de la 0 la 127, corespunde setului de coduri ASCII, unde sunt încărcate caracterele alfabetice, numerele arabe și caracterele speciale. Caracterele zonei de început sunt întotdeauna prezente pe tastatura PC-ului. Regiunea senior se numește regiunea alternativă, conține caractere din alfabetele naționale și diverse caractere speciale și caractere pseudografice care nu corespund codului ASCII.

O valoare de tip caracter ocupă un octet în RAM. În program, semnificațiile sunt incluse în apostrofe. Valorile pot fi specificate și sub forma codului lor ASCII. În acest caz, trebuie să puneți semnul # în fața numărului cu codul simbol.

C:= 'A'

Tip logic (boolean).

Există două valori booleene: adevărat și fals. Variabilele de acest tip sunt specificate folosind cuvântul funcție BOOLEAN. Valorile booleene ocupă un octet în RAM. Valorile True și False corespund valorilor numerice 1 și 0.

Tip-gamă

Există un subset al tipului său de bază, care poate fi orice tip ordinal. Un tip de interval este definit de limitele din cadrul tipului de bază.

[valoare-minimă]…[valoare-maximum]

Tipul intervalului poate fi specificat în secțiunea Tip, ca tip specific sau direct în secțiunea Var.

Atunci când determinați intervalul de tip, trebuie să vă ghidați după:

  • marginea stângă nu trebuie să depășească marginea dreaptă;
  • un tip de interval moștenește toate proprietățile tipului de bază, dar cu limitări asociate cu puterea sa mai mică.

Tip de enumerare

Acest tip aparține tipurilor ordinale și este specificat prin enumerarea valorilor pe care le poate enumera. Fiecare valoare se numește un anumit identificator și se află în listă, încadrată în paranteze. Tipul enumerat este specificat în Tip:

Popoare = (bărbați, femei);

Prima valoare este 0, a doua valoare este 1 etc.

Putere maximă 65535 valori.

Tip șir

Tipul șir aparține grupului de tipuri structurate și este format din tipul de bază Char. Tipul șirului nu este un tip ordinal. Acesta definește multe șiruri de caractere de lungime arbitrară de până la 255 de caractere.

Într-un program, un tip de șir este declarat cu cuvântul String. Deoarece String este un tip de bază, este definit în limbaj și declararea unei variabile de tip String se face în Var. Când declarați o variabilă de tip șir ca șir, este recomandabil să indicați lungimea șirului între paranteze drepte. Un număr întreg de la 0 la 255 este folosit pentru a indica.

Fam: String;

Specificarea lungimii șirului permite compilatorului să aloce numărul specificat de octeți în RAM pentru această variabilă. Dacă lungimea șirului nu este specificată, atunci compilatorul va aloca numărul maxim posibil de octeți (255) pentru valoarea acestei variabile.

Lecția acoperă principalele tipuri de date standard în Pascal, conceptul de variabilă și constantă; explică modul de lucru cu operații aritmetice

Pascal este un limbaj de programare tipizat. Aceasta înseamnă că variabilele care stochează date sunt de un anumit tip de date. Acestea. Programul trebuie să indice direct ce date pot fi stocate într-o anumită variabilă: date text, date numerice, dacă sunt numerice, apoi întregi sau fracționale etc. Acest lucru este necesar în primul rând pentru ca computerul să „știe” ce operațiuni pot fi efectuate cu aceste variabile și cum să le efectueze corect.

De exemplu, adăugarea de date text, sau așa cum este numită corect în programare - concatenare - este îmbinarea obișnuită a șirurilor de caractere, în timp ce adăugarea datelor numerice are loc pe biți, în plus, numerele fracționale și întregi sunt adăugate diferit. Același lucru este valabil și pentru alte operațiuni.

Să ne uităm la cele mai comune tipuri de date în Pascal.

Tipuri de date întregi în Pascal

Tip Gamă Memoria necesară (octeți)
octet 0..255 1
scurtătură -128..127 1
întreg -32768.. 32767 2
cuvânt 0..65535 2
longint -2147483648..2147483647 4

Trebuie să rețineți că atunci când scrieți programe în Pascal întreg(tradus din engleză în ansamblu) este cel mai frecvent utilizat, deoarece intervalul de valori este cel mai solicitat. Dacă este nevoie de o gamă mai largă, utilizați longint(întreg lung, tradus din engleză ca întreg lung). Tip octetîn Pascal este folosit atunci când nu este nevoie să lucrați cu valori negative, același lucru este valabil și pentru tip cuvânt(doar intervalul de valori aici este mult mai mare).

Exemple de modul în care variabilele sunt descrise (declarate) în Pascal:

programul a1; var x,y:intger; (tip întreg) myname:string; (tip șir) începe x:=1; y:=x+16; numele meu:="Petru"; writeln("nume: ",numele meu, ", vârsta: ", y) sfârșit.

Rezultat:
nume: Peter, vârsta: 17

Comentarii în Pascal

Observați cum comentariile sunt folosite în Pascal. În comentariile exemplu, i.e. textul serviciului care este „nu este vizibil” pentru compilator este inclus între acolade. De obicei, comentariile sunt făcute de programatori pentru a explica bucăți de cod.

Sarcina 3. Populația Moscovei este de a = 9.000.000 de locuitori. Populația din New Vasyuki este b=1000 de locuitori. Scrieți un program care să determine diferența dintre numărul de locuitori dintre două orașe. Utilizați variabile

Tipuri de date reale în Pascal

Numerele reale în Pascal și în programare în general sunt numele numerelor fracționale.

Tip Gamă Memoria necesară (octeți)
real 2,9 * 10E-39 .. 1,7 * 10E38 6
singur 1,5 * 10 E-45 .. 3,4 * 10E38 4
dubla 5 * 10E-324 .. 1,7 * 10E308 8
extins 1,9 * 10E-4951 .. 1,1 * 10E4932 10

Tipul real din Pascal este cel mai des folosit tip real.

Au fost prezentate cele de mai sus tipuri de date simple în Pascal, care includ:

  • Ordinal
  • Întregul
  • joc de inteligență
  • Caracter
  • Listabil
  • Interval
  • Real

Pentru a afișa valorile variabilelor de tip real, se utilizează de obicei ieșirea formatată:

  • formatul folosește fie un număr, indicând numărul de poziții alocate acestui număr în formă exponențială;
  • p:=1234,6789; Scrie (p:6:2); (1234,68)

    Alături de tipurile simple, limbajul mai folosește tipuri de date structurate și indicatori, care va face obiectul unor lecții ulterioare despre Pascal.

    Constante în Pascal

    Adesea într-un program se știe dinainte că o variabilă va lua o anumită valoare și nu o va modifica pe toată durata execuției întregului program. În acest caz, trebuie să utilizați o constantă.

    Declarația unei constante în Pascal are loc înainte de declararea variabilelor (înainte de cuvântul de serviciu var) și arată astfel:

    Un exemplu de descriere constantă în Pascal:

    1 2 3 4 5 6 const x= 17 ; var numele meu: șir ; începe numele meu: = "Petru" ; writeln("nume: ", numele meu, ", vârsta: ", x) final.

    const x=17; var myname:string; începe numele meu:="Petru"; writeln("nume: ",numele meu, ", vârsta: ", x) sfârșit.

    Ieșire „frumoasă” de numere întregi și numere reale

    Pentru a ne asigura că după afișarea valorilor variabilelor există indentări, astfel încât valorile să nu se „imbina” între ele, se obișnuiește să se indice prin două puncte câte caractere trebuie furnizate pentru a afișa valoare:


    Operații aritmetice în Pascal

    Ordinea operațiunilor

    1. evaluarea expresiilor din paranteze;
    2. înmulțire, împărțire, div, mod de la stânga la dreapta;
    3. adunare si scadere de la stanga la dreapta.

    Proceduri și funcții aritmetice standard Pascal

    Aici merită să ne oprim mai în detaliu asupra unor operații aritmetice.

    • Operația inc în Pascal, increment pronunțat, este o procedură Pascal standard care înseamnă creșterea cu unu.
    • Exemplu de operație inc:

      x:=1; inc(x); (Crește x cu 1, adică x=2) writeln(x)

      Utilizare mai complexă a procedurii inc:
      Inc(x,n) unde x este un tip ordinal, n este un tip întreg; procedura inc crește x cu n.

    • Procedura Dec în Pascal funcționează similar: Dec(x) - scade x cu 1 (descrește) sau Dec(x,n) - scade x cu n.
    • Operatorul abs reprezintă modulul unui număr. Funcționează așa:
    • a: =- 9; b:=abs(a); (b=9)

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

    • Operatorul div în Pascal este adesea folosit, deoarece o serie de sarcini implică operarea întregii diviziuni.
    • Restul de diviziune sau operatorul mod în Pascal este, de asemenea, indispensabil pentru rezolvarea unui număr de probleme.
    • De remarcat este funcția impar standard a lui Pascal, care determină dacă un număr întreg este impar. Adică returnează adevărat pentru numerele impare, fals pentru numerele pare.
    • Un exemplu de utilizare a funcției impar:

      var x:intger; începe x:=3; scrieln(sqr(x)); (răspunsul 9) sfârşitul.

    • Operația de exponențiere în Pascal lipsește ca atare. Dar pentru a ridica un număr la o putere, puteți folosi funcția exp.
    • Formula este: exp(ln(a)*n), unde a este un număr, n este un grad (a>0).

      Cu toate acestea, în compilatorul Pascal abc, exponențiarea este mult mai simplă:

      var x:intger; începe x:=9; scrieln(sqrt(x)); (răspunsul 3) sfârşitul.

    Sarcina 4. Dimensiunile unei cutii de chibrituri sunt cunoscute: înălțime - 12,41 cm, lățime - 8 cm, grosime - 5 cm Calculați aria bazei cutiei și volumul acesteia
    (S=latime*grosime, V=zona*inaltime)

    Sarcina 5. Grădina zoologică are trei elefanți și destul de mulți iepuri, numărul de iepuri schimbându-se frecvent. Un elefant ar trebui să mănânce o sută de morcovi pe zi, iar un iepure - doi. În fiecare dimineață, grădina zoologică spune computerului numărul de iepuri. Computerul, ca răspuns la aceasta, trebuie să spună însoțitorului numărul total de morcovi care trebuie hrăniți astăzi iepurilor și elefanților.

    Sarcina 6. Se știe că X kg de dulciuri costă A ruble Stabilește cât costă y kg din aceste dulciuri și, de asemenea, la câte kilograme de dulciuri pot fi cumpărate k ruble Toate valorile sunt introduse de utilizator.

    Agenția Federală pentru Educație

    Eseu

    „TIPURI DE DATE ÎN PASCAL”

    1. Tipuri de date

    Orice date, de ex. constantele, variabilele, proprietățile, valorile funcției sau expresiile sunt caracterizate prin tipurile lor. Un tip definește setul de valori valide pe care le poate avea un obiect, precum și setul de operații valide care i se pot aplica. În plus, tipul determină și formatul reprezentării interne a datelor în memoria PC-ului.

    În general, limbajul Object Pascal este caracterizat de o structură ramificată de tipuri de date (Fig. 1.1). Limbajul oferă un mecanism pentru crearea de noi tipuri, datorită căruia numărul total de tipuri utilizate într-un program poate fi atât de mare pe cât se dorește.

    Datele procesate în program sunt împărțite în variabile, constante și literale:

    constante reprezintă date ale căror valori sunt setate în secțiunea declarație constantă și nu se modifică în timpul execuției programului.

    Variabile sunt declarate în secțiunea de declarare a variabilelor, dar spre deosebire de constante, ele își primesc valorile în timpul execuției programului, iar aceste valori pot fi modificate. Constantele și variabilele pot fi denumite după nume.

    Literal nu are identificator și este reprezentat direct de valoarea din textul programului.

    Tip definește setul de valori pe care le pot lua elementele de date și setul de operațiuni permise asupra acestora.

    Acesta și cele patru capitole ulterioare oferă descrieri detaliate ale fiecărui tip.

    1.1 Tipuri simple

    Tipurile simple includ tipurile ordinale, reale și datetime.

    Tipuri ordinale diferă prin faptul că fiecare dintre ele are un număr finit de valori posibile. Aceste valori pot fi ordonate într-un anumit mod (de unde și numele tipurilor) și, prin urmare, fiecare dintre ele poate fi asociată cu un număr întreg - numărul ordinal al valorii.

    Tipuri reale, strict vorbind, au și un număr finit de valori, care este determinat de formatul reprezentării interne a unui număr 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 un număr întreg (numărul său) cu fiecare dintre ele.

    Tip dată-oră conceput pentru a stoca data și ora. De fapt, folosește formatul real în aceste scopuri.

    1.1.1 Tipuri ordinale

    Tipurile ordinale includ (vezi Figura 1.1) tipuri întregi, logice, cu caractere, enumerate și intervale. Funcția Ord(x) poate fi aplicată la oricare dintre ele, care returnează numărul ordinal al valorii expresiei X.


    Orez. 1.1 - Structura tipului de date

    Pentru întreg tipuri, funcția ord(x) returnează însăși valoarea lui x, adică Ord(X) = x pentru x aparținând oricărui întreg tip. Aplicarea Ord(x) la logic , simbolic şi enumerabil tipuri oferă un număr întreg pozitiv în intervalul de la 0 la 1 ( tip boolean), de la 0 la 255 ( simbolic), de la 0 la 65535 ( enumerabil). Tip-gamă păstrează 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 aplica funcții la tipurile ordinale:

    pred(x)- returnează valoarea anterioară a tipului ordinal (valoarea care corespunde numărului ordinal ord(x) -1, adică ord(pred(x)) = ord(x) - 1;

    succ(x)- returnează următoarea valoare a tipului ordinal, care corespunde numărului ordinal ord(x) +1, adică ord(Succ(x)) = ord(x) + 1.

    De exemplu, dacă un program definește o variabilă

    atunci funcția PRED(c) va returna caracterul „4”, iar funcția SUCC(c) va returna caracterul „6”.

    Dacă ne imaginăm orice tip ordinal ca un set ordonat de valori care cresc de la stânga la dreapta și ocupă un anumit segment pe axa numerelor, atunci funcția pred(x) nu este definită pentru capătul din stânga, iar succ (x) este nedefinit pentru capătul drept al acestui segment.

    Tipuri întregi . Gama de valori posibile ale tipurilor întregi depinde de reprezentarea lor internă, care poate fi unul, doi, patru sau opt octeți. În tabel 1.1 arată numele tipurilor întregi, lungimea reprezentării lor interne în octeți și intervalul de valori posibile.

    Tabelul 1.1 - Tipuri întregi

    Nume Lungime, octeți Gama de valori
    Cardinal 4 0. .. 2 147 483 647
    octet 1 0...255
    Shortint 1 -128...+127
    Smallint 2 -32 768...+32 767
    Cuvânt 2 0...65 535
    Întreg 4
    Longint 4 -2 147 483 648...+2 147 483 647
    Int64 8 -9*1018...+9*1018
    Cuvânt lung 4 0. . .4 294 967 295

    Tipuri Cuvânt lungȘi Int64 au fost introduse pentru prima dată în versiunea 4 și tipurile SmallintȘi Cardinal nu este disponibil în Delphi 1. Tastați întreg pentru această versiune este nevoie de 2 octeți și are un interval de valori de la -32768 la +32767, adică la fel ca Smallint .

    Atunci când utilizați proceduri și funcții cu parametri întregi, ar trebui să vă ghidați după „imbricarea” tipurilor, de exemplu. oriunde poate fi folosit cuvânt, permis de utilizare octet(dar nu invers), în Longint„intră” Smallint, care la rândul său include Shortint .

    Lista procedurilor și funcțiilor aplicabile tipurilor întregi este dată în tabel. 1.2. Literele b, s, w, i, l denotă expresii de următorul tip: octet , Shortint, Word, Integer și Longint ,

    x este o expresie a oricăruia dintre aceste tipuri; literele vb, vs, vw, vi, vl, vx denotă variabile ale tipurilor corespunzătoare. Un parametru opțional este indicat între paranteze drepte.

    Tabelul 1.2 - Proceduri standard și funcții aplicabile pentru tipuri întregi

    Recurs Tip de rezultat Acțiune
    abs(x) X Returnează modulul x
    chr(b) Char Returnează un caracter după codul său
    dec(vx[,i]) - Descrește valoarea lui vx cu i, iar în absența lui i - cu 1
    inc(vx[,i]) - Crește valoarea lui vx cu i, iar în absența lui i - cu 1
    salut(w) octet Returnează cel mai înalt arc al argumentului
    Buna eu) La fel Returnează al treilea octet
    Lo(i) Returnează octetul scăzut al argumentului
    Scăzut) La fel
    impar (l) boolean Returnează True dacă argumentul este un număr impar
    Aleatoriu (w) La fel ca parametrul Returnează un număr pseudoaleator distribuit uniform în intervalul 0...(w-l)
    sqr(x) X Returnează pătratul argumentului
    schimb(i) Întreg Schimbă octeți într-un cuvânt
    schimb(w) Cuvânt La fel

    Când se operează cu numere întregi, tipul rezultat va corespunde tipului operanzilor, iar dacă operanzii sunt de diferite tipuri întregi, tipul general care include ambii operanzi. De exemplu, când operezi cu scurtăturăȘi cuvânt tipul comun va fi întreg. În setarea implicită, compilatorul Delphi nu produce cod pentru a verifica dacă o valoare este în afara intervalului, ceea ce poate duce la neînțelegeri.

    Tipuri booleene . Tipurile logice includ Boolean, ByteBool, Bool, wordBoolȘi LongBool. În Pascal standard, este definit doar tipul boolean, alte tipuri logice sunt introduse în Object Pascal pentru compatibilitate cu Windows: tipuri booleanȘi ByteBool fiecare ocupă un octet, BoolȘi WordBool- 2 octeți fiecare, LongBool- 4 octeți. Valorile booleene pot fi una dintre constantele pre-declarate False sau True.

    Deoarece tipul boolean este un tip ordinal, poate fi folosit într-o instrucțiune buclă de tip numărabil. În Delphi 32 pentru boolean sens

    Ord (Adevărat) = +1, în timp ce pentru alte tipuri ( Bool, WordBool etc.)

    Ord(True) = -1, astfel încât aceste tipuri de operatori ar trebui să fie utilizați cu precauție! De exemplu, pentru versiunea Delphi 6, instrucțiunea executabilă showMessage(" --- ") în bucla următoare pentru nu va fi executat niciodată:

    pentru L:= Fals la True do

    ShowMessage("--);

    Dacă înlocuim parametrul de buclă tip L din exemplul anterior cu boolean, bucla va rula și mesajul va apărea de două ori pe ecran. [Pentru versiunile Delphi 1 și 2 ord (True) =+1 pentru orice tip boolean.]

    Tip de caracter . Valoarea unui tip de caracter este setul tuturor caracterelor PC. Fiecărui caracter i se atribuie un număr întreg în intervalul 0...255. Acest număr servește ca cod pentru reprezentarea internă a simbolului; este returnat de funcția ord.

    Pentru codificare în Windows se folosește codul ANSI (numit după American National Standard Institute, institutul american de standardizare care a propus acest cod). Prima jumătate a caracterelor PC cu codurile 0... 127 corespunde Tabelului 1.3. A doua jumătate a caracterelor cu codurile 128...255 variază pentru diferite fonturi. Fonturile standard Windows Arial Cyr, Courier New Cyr și Times New Roman folosesc ultimele 64 de coduri (de la 192 la 256) pentru a reprezenta caractere chirilice (fără literele „ё” și „Ё”): „A”... „Z” sunt valori codificate 192..223, „a”... „i” - 224...255. Simbolurile „Ё” și „е” au codurile 168 și, respectiv, 184.

    Tabelul 1.3 - Codificarea caracterelor în conformitate cu standardul ANSI

    Cod Simbol Cod. Simbol Cod. Simbol Cod Simbol
    0 NUL 32 B.L. 64 @ 96 "
    1 ZON 33 ! 65 A 97 A
    2 STX 34 66 ÎN 98 b
    3 ETX 35 # 67 CU 99 Cu
    4 EOT 36 $ 68 D 100 d
    5 ENQ 37 % 69 E 101 e
    6 ACK 38 & 70 F 102 f
    7 BEL 39 " 71 G 103 d
    8" B.S. 40 ( 72 N 104 h
    9 HT 41 ) 73 eu 105 i
    10 LF 42 * 74 J 106 j
    11 VT 43 + 75 LA 107 k
    12 FF 44 F 76 L 108 1
    13 CR 45 - 77 M 109 m
    14 ASA DE 46 78 N 110 n
    15 SI. 47 / 79 0 111 O
    16 DEL 48 0 80 R 112 P
    17 DC1 49 1 81 Q 113 q
    18 DC2 50 2 82 R 114 r
    19 DC3 51 3 83 S 115 s
    20 DC 4 52 4 84 T 116 t
    21 N.A.K. 53 5 85 U 117 u
    22 SYN 54 6 86 V 118 v
    23 ETB 55 7 87 W 119 W
    24 POATE SA 56 8 88 X 120 X
    25 E.M. 57 9 89 Y 121 U
    26 SUB 58 : 90 Z .122 z
    27 ESC 59 ; 91 t 123 {
    28 FS 60 < 92 \ 124 1
    29 G.S. 61 = 93 ] 125 }
    30 R.S. 62 > 94 L 126 ~
    31 NE 63 F 95 127 r

    Caracterele cu codurile 0...31 se referă la coduri de service. Dacă aceste coduri sunt folosite în textul caracterelor programului, ele sunt considerate spații albe.

    Cele mai bune articole pe această temă