Tipuri de date șiruri structurate. Tipuri simple. Tipuri de date: simple și structurate

Capitolul 6. STRUCTURAT
TIPURI DE DATE Tipurile de date structurate definesc seturi de componente de aceleași tipuri sau diferite. Tipurile de componente sunt derivate din alte tipuri (simple, structurate, pointeri etc.) de date. Există următoarele tipuri structurate în Pascal: - tipul matricei; - tipul de înregistrare; - tipar; - tip fișier. ÎN TurboPascal Există două tipuri mai structurate: - șir de tip șir și - tipul șir de caractere PChar, care sunt varietăți ale matricei. În cele ce urmează, obiectele de tipuri structurate vor fi denumite, pentru concizie, cu aceleași nume ca și tipurile lor, fără a se specifica cuvântul „tip”: matrice, înregistrare, set, fișier, șir. Există tipuri structurate ambalate și dezambalate în standardul lingvistic. În Turbo Pascal, cuvântul împachetat pentru un tip împachetat nu are efect; acolo unde este posibil, împachetarea datelor se face automat. 6.1. Matrice Un tip de matrice este un număr fix de componente ordonate de același tip, prevăzute cu indici. Poate fi unidimensional și multidimensional. Pentru a specifica un tip de matrice, se folosește matricea de cuvinte rezervate, după care trebuie specificat tipul indexului (indicilor) componentei (în paranteze drepte), apoi după cuvântul - tipul componentelor în sine: tip<имя типа>= matrice[<тип индекса(индексов)>] de<тип компонент> ; Exemplu. tip Arr = matrice de Real; (tip-matrice de 3 numere reale) Matrice = matrice de Integer; (Tipul este o matrice bidimensională de numere întregi, constând din 3 rânduri și 2 coloane) Prin introducerea unui tip de matrice, puteți defini apoi variabile sau constante tastate de acel tip. Matricea poate avea orice dimensiune, componentele matricei pot fi de orice tip, inclusiv cele structurate, indexul (indicii) poate fi de orice tip ordinal, cu exceptia tipului Longint. Când se atribuie valori unei constante de matrice, componentele sunt specificate în paranteze și separate prin virgule, iar dacă matricea este multidimensională, parantezele exterioare corespund indexului din stânga, parantezele imbricate în ele corespund următorului index etc. Deci, pentru tipurile introduse mai sus, puteți seta, de exemplu, următoarele variabile și constante: var Ml, M2: Arr; Matr: Matrice; const M3: Arr =(1, 2, 3); Mat: Matrice = ((1, 2), (3, 4), (5, 6)); Ultima constantă corespunde următoarei structuri: 1 2 3 4 5 6 Notă. Un tip de matrice poate fi introdus direct și la definirea variabilelor corespunzătoare sau a constantelor tastate. De exemplu: var Ml, M2: matrice de Real; Matr: matrice de Integer; Aceleași matrice sunt definite aici ca în exemplul anterior. Când declarați matrice în acest fel, amintiți-vă că tipurile lor nu vor fi identice cu alte tipuri, chiar dacă au aceeași structură. Prin urmare, nu pot fi transferați ca parametri unei subrutine (vezi Secțiunea 10.3) și nici nu li se pot atribui valorile altor tablouri (și invers), chiar dacă structurile lor sunt aceleași. Componentele matricei sunt accesate prin specificarea numelui matricei urmat de valoarea indicilor componentelor între paranteze drepte. În general, fiecărui indice de componentă i se poate da o expresie de tipul corespunzător, de exemplu: M1, Matrix, M2, etc. Un tablou i se poate atribui valoarea unui alt tablou, dar numai de același tip. Deci, dacă sunt date următoarele tablouri: var A, B: matrice de Integer; C: matrice de numere întregi; atunci este admis următorul operator: A:= B; Pe de altă parte, operatorul C:= A; invalid deoarece tablourile A și C nu sunt tipuri identice. Există unele diferențe în lucrul cu matrice de caractere unidimensionale (a nu se confunda cu valorile șirurilor - vezi secțiunea 6.2). Astfel, constantelor tipizate de acest fel li se poate atribui o valoare asemănătoare constantelor normale de șir prin specificarea unui șir de caractere în apostrofe, de exemplu const A: array of Char="ааааа"; B: matrice de Char="bbb"; Pentru astfel de tablouri, ca și pentru șiruri de caractere, puteți folosi operații de comparare (chiar dacă nu sunt de tipuri identice și chiar dacă au dimensiune diferită) și concatenare (unire) - vezi secțiunea 6.2. Ele pot fi utilizate în instrucțiunile de ieșire Write și WriteLn. De exemplu, pentru tablourile introduse mai sus, puteți scrie dacă A > B apoi WriteLn(A) altfel WriteLn(B); 6.2. Șir de tip șir În Turbo Pascal, tip șir (tip șir standard) este o secvență de caractere de lungime arbitrară (până la 255 de caractere). Un șir poate fi văzut ca o matrice de caractere, dar din cauza utilizării pe scară largă a șirurilor și a unor particularități în comparație cu matricele standard, acestea sunt separate într-un tip de date separat. Tipul șirului poate avea dimensiunea între paranteze pătrate (de la 1 la 255). Dacă dimensiunea șirului nu este specificată, se presupune că este 255, de exemplu: var Str: șir; MaxStr:șir; (șir de 255 de caractere) const ianuarie: șir = "ianuarie"; Pentru șiruri, se aplică operatorii de concatenare (+) și de comparare. Operația de concatenare adaugă al doilea șir la primul șir. Exemplu. Concatenarea a două șiruri. Str, Strl, Str2:șir; begin Strl:= "Turbo"; Str2:= „Pascal”; Str:= Strl + Str2; (în variabila Str - „Turbo Pascal”) final. Puteți compara șiruri de lungimi diferite. Comparația se efectuează de la stânga la dreapta în conformitate cu codurile ASCII ale caracterelor corespunzătoare. Caracterele lipsă dintr-un șir mai scurt sunt considerate a avea un cod mai mic decât cel al oricărui caracter valid. De exemplu, „XS” este mai mare decât „X”. Exemplu. Verificați dacă setul de caractere introdus este numele lunii în rusă. programul EXEMPLUL11; const Instanță: matrice de șir!10]= („IANUARIE”, „FEBRUARIE”, „MARTIE”, „APRILIE”, „MAI”, „IUNIE”, „IULIE”, „AUGUST”, „SEPTEMBRIE”, „OCTOMBRIE” , "NOIEMBRIE DECEMBRIE"); Luna: Boolean = Fals; varstr:șir; i: întreg; begin Writeln("Introduceți caractere majuscule: "); ReadLn(Str); pentru i:= 1 la 12 face if Str = Instance[i] then Month:=True; if Month then WriteLn("Numele lunii a fost introdus") else WriteLn("Numele lunii nu a fost introdus") end. De fapt, un șir de N caractere este o matrice de N+1 caractere: șir[N] = matrice de Char. Caracterul nul este destinat să indice numărul de caractere ale șirului utilizat și poate varia de la un caracter cu cod 0 la un caracter cu cod N. Puteți lucra cu el ca și cu alte caractere ale șirului (scrieți și citiți valoarea acestuia, etc.), dar fără a uita de scopul său principal. 6.3. șir ASCIIZ În versiunea 7.0 pentru compatibilitate cu alte limbaje de programare și Mediul Windows a fost introdus un alt tip de șiruri - șiruri care se termină cu un octet nul - un caracter cu cod 0 (așa-numitele șiruri ASCIIZ). Spre deosebire de șirurile de caractere de tip șir, aceste șiruri nu au nicio limită în ceea ce privește dimensiunea lor (de fapt, dimensiunea poate fi de până la 65535 de octeți). Aceste șiruri primesc tipul standard PChar. De fapt, acest tip este un pointer către un caracter (pentru pointeri, vezi Secțiunea 7): PChar = ^Char; Cu toate acestea, utilizarea sintaxei extinse (key (X+) - vezi 17.7.1) permite utilizarea unei astfel de variabile ca șir, echivalent cu o matrice de tip pChar = array of Char, unde K este numărul de caractere din șir, nu numărarea caracterului final cu codul 0 Spre deosebire de tipul șirului, caracterul de la indexul 0 aici este primul caracter al șirului și ultimul personaj cu index K - caracterul final cu codul 0. Când lucrați cu șiruri ASCIIZ, este indicat să setați sintaxa extinsă; în acest caz, nu există dificultăți la utilizarea diferitelor rutine standard care funcționează cu șiruri. Exemplu. Utilizarea șirurilor de caractere de tip PChar cu sintaxă extinsă. programul EXEMPLUL 12; ($X+) (nu este necesar ca implicit) tip T = matrice de caractere; (matrice pentru șir de 7 caractere) var Str: PChar; const A: T = "bună ziua!"#0; begin Str:= "ALO!"; WriteLn(Str); (ieșire de linie: HELLO Str:= @А; {допустимо также: Str:=A} WriteLn(Str); {вывод строки: привет!} WriteLn(Str);{вывод символа "р"} ReadLn end. Если используется ключ {$Х-}, переменная типа PChar в этом случае рассматривается как указатель на один единственный символ. В этом случае ни один из операторов предыдущего примера, за исключением операторов Str:!} [email protected]; și ReadLn sunt invalide, iar instrucțiunea WriteLn(Str^) este executată după instrucțiunea Str: [email protected]; va produce un singur caracter „p”. Pentru a lucra cu șiruri ASCIIZ în versiunea 7.0, sunt utilizate module standard speciale Strings (vezi secțiunea 16.2) și WinDos (vezi secțiunea 16.6). 6.4. Înregistrare Un tip de înregistrare conține un număr de componente, numite câmpuri, care pot fi de diferite tipuri. Când specificați un tip de înregistrare după înregistrarea de cuvânt rezervată, listați toate câmpurile tipului de înregistrare cu tipurile lor separate prin două puncte și terminați specificația tipului cu sfârșitul cuvântului. Câmpurile sunt separate între ele prin punct și virgulă. Numărul de câmpuri de înregistrare poate fi oricare. Exemplu. tip Complex = înregistrare (Tip de numere complexe) Re: Real; Im: Sfârșit adevărat; Date = înregistrare (Tip - data nașterii) An: Întregul; Luna: 1..12; Ziua: 1..31 Persoană = înregistrare (Tip - informații despre angajat) Nume: șir; Sex: (Bărbat, Femeie); Varsta: Integer; Căsătorit: sfârșit boolean; Notă. Dacă mai multe câmpuri de tip înregistrare sunt de același tip, puteți lista numele lor separate prin virgule și apoi să specificați acel tip comun. Deci, tipul de numere complexe luate în considerare în exemplu poate fi introdus în alt mod: tip Complex = înregistrare Re, Im: Final real; După introducerea unui tip de înregistrare, puteți defini variabile sau constante tastate ale acelui tip de înregistrare. Când se atribuie valori unei constante, câmpurile acesteia sunt scrise între paranteze rotunde, separate prin punct și virgulă. Pentru a seta valoarea fiecărui câmp, mai întâi specificați numele câmpului, apoi, separate prin două puncte, valoarea acestuia. Deci, pentru tipurile introduse mai sus, puteți seta, de exemplu, următoarele variabile și constante: var X, Y, Z: Complex; Dat: Date; const Data nașterii: Date = (Anul: 1971; Luna: 12; Ziua: 9); Ivanov: Persoană = (Nume: „Ivanov”; Sex: Bărbat; Vârsta: 40; Căsătorit: Adevărat); Notă. Un tip de înregistrare poate fi, de asemenea, introdus direct la definirea variabilelor sau a constantelor tastate. De exemplu, un fragment var X, Y, Z: record Re, Im: Real end; definește aceleași variabile complexe ca în exemplul anterior. Câmpurile de înregistrare sunt accesate prin specificarea numelui variabilei (constantei) și a numelui câmpului scris cu punct, de exemplu: Ivanov.Age, X.Re, Dat.Day etc. Exemplu. Utilizarea câmpurilor de înregistrare. X.Re:= 1,5; X.Im:=1,7; Y.Re:= -X.Re; Y.Im:= -X.Im; Ivanov Căsătorit:= Fals; Pentru a nu scrie numele înregistrării de fiecare dată când accesați câmpurile sale, puteți utiliza operatorul WITH pe înregistrări. Structura sa arată astfel:<имя записи>do<оператор> ; În acest caz, numai câmpul de înregistrare poate fi specificat în interiorul operatorului. De exemplu, fragmentul: cu X începe Re:= 1,5; Im:= 1,7; Y.Re:= -Re; Y.Im:= -Im end; cu Ivanov do Married:= False; este echivalent cu fragmentul din exemplul anterior. Tipul de înregistrare poate avea o parte variantă care se modifică cu diferite implementări, de exemplu, în tipul de înregistrare a parametrilor formelor geometrice, este specificată o latură pentru un pătrat, două laturi și un unghi între ele pentru un triunghi, un raza pentru un cerc, etc. Partea variantă poate fi doar una și trebuie plasată la sfârșitul intrării. Exemplu. Utilizarea variantei. tip Figura = (Pătrat, Triunghi, Cerc); Param = înregistrarea X, Y: Real; (coordonatele punctului de ancorare) caz Fig: Figura (parametrii figurii) Pătrat: (Latura: Real); Triunghi: (Sidel, Side2, Angle: Real); Cerc: (Raza: Real) capăt; var MySquare, MyCircle: Param; Partea de variantă începe cu cuvântul case, urmată de variabila de selecție a variantei (în exemplul Fig) cu o indicație de tip. În continuare, sunt specificate constante, ale căror valori pot fi luate de variabila de selecție a opțiunii (în exemplu, Pătrat, Triunghi, Cerc). În spatele fiecărei constante, după două puncte în paranteză, câmpurile acestei opțiuni de înregistrare sunt scrise cu indicarea tipurilor lor. Parantezele sunt necesare chiar dacă nu există o parte variantă pentru varianta dată. Trebuie remarcat faptul că partea variantă nu este terminată de capătul său de bracket operator, ca într-o construcție normală CASE, deoarece urmează capătul final de bracket operator al întregului tip. În standardul limbajului Pascal, înainte de a utiliza una dintre opțiunile de notare, variabilei de selecție a opțiunii trebuie să i se atribuie valoarea corespunzătoare: Fig:= Pătrat; MySquare.Side:=5,0; Fig:= Cerc; MyCircle.Radius:=7,5; În Turbo Pascal, această operație este opțională, deși dacă este setată o variabilă de alegere, aceasta poate fi apoi căutată în program pentru a determina ce opțiune este setată. Mai mult, setarea valorii variabilei de selecție nu are efect, iar următorul fragment este echivalent cu cel de mai sus: Fig:= Cerc; MySquare.Side:= 5,0; Fig:= Patrat; MyCircle.Radius:-7,5; În tipul de înregistrare, este permis să nu introduceți o variabilă de opțiuni, ci să enumerați doar opțiuni diferite, de exemplu: Transf = caz de înregistrare Întreg de 1: (_Word: Word); 2: (_TwoSymb: matrice de Char) final; 6.5. Set În Pascal, un tip-set este o set-putere a unui set inițial de obiecte de tip ordinal, adică un set de toate combinațiile posibile de obiecte ale setului original. Numărul de elemente ale setului inițial în Turbo Pascal nu poate fi mai mare de 256, iar numerele ordinale ale elementelor (adică valoarea funcției Ord) trebuie să fie în intervalul de la 0 la 255. Pentru a specifica un tip de set, utilizați cuvintele rezervate set și of, și apoi specificați elementele acestui set, de obicei ca o enumerare sau un interval, de exemplu: tip Alfa = set de „A”..”Z”; Număr = set de (Plus, Minus, Mult, Împărțit); Zece = set de 0..9; Număr = set de „0”..”9” ; Prin introducerea unui tip de set, puteți defini variabile sau constante tipizate ale acelui tip de set. Când se atribuie valori unui set constant, elementele sale sunt enumerate separate prin virgule (intervalele sunt permise) și plasate între paranteze drepte. De exemplu, pentru tipurile introduse mai sus, puteți seta următoarele variabile și constante tastate: var CharVal: Alfa; Operațiune: Numărare; const Index: Zece = ; Cifra: Număr = ["0".."9"]; Notă. Ca și în cazul altor tipuri structurate, un tip de set poate fi introdus direct la stabilirea variabilelor sau a constantelor tastate: var CharVal: set of "A".."Z"; Operațiune: set de (Plus, Minus, Mult, Împărțit); const Index: set de 0..9 = ; Cifra: set de "0".."9"=["0".."9"]; Un set i se poate atribui una sau alta valoare în program. De obicei, valoarea este setată folosind constructorul set. Constructorul specifică un set de elemente prin enumerarea expresiilor între paranteze drepte ale căror valori dau elementele acestui set. Puteți utiliza intervale de elemente. Exemplu. Următoarele structuri sunt constructori de setări: un set gol care nu conține elemente. Constructorul de set poate fi folosit și direct în operațiuni pe seturi. Pentru mulţimi sunt definite următoarele operaţii: + - unirea mulţimilor; - - diferenta de seturi; * - intersectia multor; = - verificarea echivalenței a două mulțimi;<>- verificarea neechivalenţei a două mulţimi;<= - проверка, является ли левое множество подмножеством правого множества; >= - se verifică dacă setul din dreapta este un submult al setului din stânga; in - verifică dacă elementul specificat în stânga este inclus în setul specificat în dreapta. Rezultatul operației de unire, diferență sau intersecție este mulțimea corespunzătoare, operațiile rămase dau un rezultat de tip boolean. Exemplu. Introduceți un șir de caractere format din litere latine, numere și spații. Verificați dacă caracterele introduse sunt corecte. programul EXEMPLUL 13; varstr:șir; L: octet; Adevărat: boolean; begin WriteLn("Introduceți un șir"); ReadLn(Str); L:= Lungime(str); (numar de caractere introduse) Tru:= L > 0; (adevărat dacă nu șir gol) în timp ce Tru și (L > 0) fac (test de la sfârșitul șirului) începe Tru:=Str[L] în ["0".."9", "A".,"Z" , "a".."z", " "]; (validare caracter) Dec(L) (caracterul anterior) sfârşit; if Tru, atunci WriteLn("Linie corectă") else WriteLn("Linie incorectă") se termină. 6.6. Fișier Un fișier de tip este o secvență de componente de același tip situate pe un dispozitiv extern (în standardul de limbă, aranjarea datelor pe benzi magnetice este luată ca bază). Componentele pot fi de orice tip, cu excepția tipului de fișier (sau care conține componente de tip fișier) și a tipului de obiect. Numărul de componente din fișier nu este declarat. Pentru a specifica un tip de fișier, utilizați fișierul cu cuvinte rezervate și of, urmat de tipul componentelor fișierului. Exemplu. typeNumber = fișierul întregului; (fișier de tip de numere întregi) Symb = fișier de „A”..”Z”; (tip de fișier cu litere latine majuscule) Tipul standard Text definește un tip de fișier care conține caractere concatenate în linii. Rețineți că tipul de text al lui Turbo Pascal nu este echivalent cu fișierul Char. Prin introducerea tipului de fișier, puteți defini variabile de tip de fișier: var Fl, F2: Number; F3: text; FF4: Simb; În Turbo Pascal, puteți utiliza un fișier fără tip care nu specifică tipul de componentă atunci când îl definiți. În acest caz, lucrul cu fișierul se desfășoară la nivel fizic în conformitate cu formatul intern al datelor acestuia. În acest caz, componentele reale ale fișierului pot avea un alt tip. Exemplu. tip UnType = fișier; Tipul de fișier poate fi definit și direct la declararea variabilelor de fișier: var Fl, F2: fișier de Integer; Variabilele fișierelor au utilizări specifice. Nu pot fi efectuate operații asupra acestora (atribuiți o valoare, comparați etc.). Acestea pot fi folosite doar pentru a efectua operațiuni cu fișiere (citire, scriere, ștergere a unui fișier etc.). Lucrul cu fișierele va fi discutat în Secțiunea 11. În plus, printr-o variabilă de fișier, puteți obține informații despre un anumit fișier (tip, parametri, nume de fișier etc.)

Metoda algoritmizării structurale este una dintre metodele de sistem pentru dezvoltarea algoritmilor. Se bazează pe reprezentarea vizuală a algoritmilor sub formă de secvențe de fragmente structurale de control.

Fiecare algoritm constă din pași elementari care pot fi combinați în anumite construcții algoritmice: liniar (serial), ramificare , ciclic .

Definiția 1

Liniar este construcția unui algoritm implementat ca o succesiune de acțiuni (pași), iar fiecare acțiune (pas) se execută doar 1 dată, după fiecare acțiune (pas) acțiunea (pasul) este mărită cu 1 până când valoarea devine mai mare decât parametrul final al algoritmului .

Cu ajutorul algoritmilor liniari sunt reprezentate procese liniare. Algoritmii de acest tip sunt utilizați pentru a descrie soluția generalizată a problemelor sub formă de secvențe de module.

Definiția 2

ramificare (ramificare) se numește construcție algoritmică care oferă o alegere între 2 soluții în funcție de valorile datelor de intrare.

Ramurile sunt de două tipuri: incomplet (dacă ceva) Și complet (dacă-atunci-altfel). Cu ajutorul ramificării complete, puteți organiza 2 ramuri în algoritm ( apoi sau in caz contrar), fiecare dintre acestea va duce la un punct comun al confluenței lor, algoritmul va fi executat indiferent de calea pe care a urmat soluția. În prezența ramificării incomplete, unele acțiuni ale algoritmului sunt presupuse doar pe o ramură ( apoi), deoarece al doilea lipsește, nu este nevoie să efectuați o acțiune pentru unul dintre rezultatele testului, controlul va merge imediat la punctul de îmbinare. Există 4 variante de bază ale structurii de ramificare:

  1. Ramificare de tip incomplet "daca atunci ”, în care toate acțiunile vor fi efectuate dacă condiția este adevărată.
  2. Ramificare de tip complet „dacă-atunci-altfel” , la care se vor efectua 2 actiuni in functie de adevarul afectiunii.
  3. Ramificare cu selecția tipului "apoi" , în care acțiunea 1 va fi efectuată în condiția 1, acțiunea 2 în condiția 2 și așa mai departe.
  4. Ramificare cu selecția tipului "in caz contrar" , sub care, la condiția 1, se va executa acțiunea 1, la condiția 2, acțiunea 2 etc., în caz contrar se vor executa toate celelalte acțiuni.

Mai jos sunt diagrame ale algoritmilor de ramificare.

Definiția 3

Ciclic (sau ciclu) se numeste constructia unui algoritm in care un anumit grup de actiuni (pasi) consecutive se executa de mai multe ori in functie de starea problemei si de datele de intrare.

Definiția 4

Se numește un astfel de grup de acțiuni repetate la fiecare pas al ciclului corpul buclei .

Orice construcție ciclică conține elemente ale construcției de ramificare a algoritmului.

Există 3 tipuri de algoritmi ciclici:

  • bucla cu parametru (bucla aritmetica);
  • buclă cu precondiție;
  • un ciclu cu o postcondiție (ultimele două se numesc iterative).

Ciclul aritmetic

Într-un ciclu de acest tip numărul de pași este determinat în mod unic de regula de modificare a parametrului, care este specificată folosind valorile inițiale și finale ale acestuia, precum și pasul de modificare a acestuia. Adică, la fiecare pas al buclei, valoarea parametrului se modifică în funcție de pasul buclei până când ajunge la o valoare egală cu valoarea finală a parametrului.

Buclă cu precondiție

În această buclă, numărul de pași nu este determinat în prealabil, depinde de datele de intrare. În această structură ciclică, se verifică mai întâi valoarea expresiei (condiției) condiționate care precede execuția următorului pas al ciclului. Dacă expresia condiționată se evaluează la adevărat, corpul buclei va fi executat. După aceea, starea va fi verificată din nou. Aceste acțiuni vor fi repetate până când valoarea expresiei condiționate devine falsă, apoi bucla se va termina.

O caracteristică a acestui tip de buclă este că, dacă valoarea expresiei condiționale este inițial falsă, corpul buclei nu va fi executat deloc.

Bucla cu postcondiție

În această construcție ciclică, ca și în cea anterioară, numărul de repetări ale corpului ciclului nu este determinat în prealabil, acesta va depinde de parametrii de intrare. O trăsătură distinctivă a unui ciclu cu o precondiție este că corpul ciclului cu o postcondiție va fi în orice caz executat cel puțin o dată și numai după aceea condiția va fi verificată. În această construcție, corpul buclei este executat atâta timp cât valoarea expresiei condiționale este falsă. De îndată ce devine adevărată, executarea comenzilor se va opri.

În problemele reale, de regulă, există orice număr de cicluri.

Mai jos sunt diagrame bloc ale algoritmilor ciclici.

Tipuri de date: simple și structurate

Datele reale procesate de program includ numere întregi și reale, valori logice și simboluri. Ele aparțin unor tipuri de date simple și se numesc de bază. Toate datele procesate de computer sunt stocate în celulele sale de memorie, fiecare având propria sa adresă. În limbajele de programare, există variabile care vă permit să ignorați adresele celulelor de memorie și să vă referiți la ele folosind un nume (identificator).

Definiția 5

Variabil este un obiect numit (celula de memorie) care își schimbă valoarea.

Numele variabilei indică valoarea, dar adresa și modul în care este stocată sunt ascunse de programator. Pe lângă nume și valoare, variabilele au propriul lor tip, ceea ce ajută la determinarea tipului de informații în memorie.

Tipul variabilei este dat de:

  • metoda utilizată pentru a scrie informații în celulele de memorie;
  • cantitatea de memorie necesară pentru a-l stoca.

Pentru fiecare tip, cantitatea de memorie este determinată astfel încât să poată fi plasată în el orice valoare din intervalul de valori permis pentru acest tip.

Definiția 6

Sunt numite variabilele care sunt prezente în program pe toată perioada de funcționare a acestuia static .

Definiția 7

Sunt numite variabilele care sunt create și distruse în diferite etape ale execuției programului dinamic .Definiţia 10

matrice numit un set ordonat de valori similare care au un nume comun, numere ordinale pentru elemente (indici).

Elementele de matrice sunt stocate în memoria computerului din vecinătate, spre deosebire de elementele individuale. Matricele se disting prin numărul de indici de elemente.

O matrice unidimensională este caracterizată prin prezența unui singur index pentru fiecare element. Exemple de tablouri unidimensionale sunt secvențele geometrice și aritmetice, care definesc serii finite de numere.

Definiția 11

Numărul de elemente ale matricei este numit dimensiune .

Pentru o matrice unidimensională, dimensiunea sa este scrisă lângă nume între paranteze.

Elementele unui tablou unidimensional sunt introduse element cu element, în ordinea necesară pentru rezolvarea unei anumite probleme. Dacă este necesar să introduceți întregul tablou, elementele sunt introduse în ordinea crescătoare a indicilor.

3.2.1 Tipuri de date simple și structurate. Structuri de date - înregistrări, matrice, liste.

Variabile

În timpul programării, este de obicei necesar să rețineți o anumită cantitate de date (rezultate intermediare, evenimente care au avut loc, date de intrare, date de ieșire etc.). Aceste valori trebuie păstrate în memorie. Pentru a face acest lucru, este declarat un loc în memorie care este folosit pentru stocarea datelor, iar acest loc declarat este numit variabilă. Deoarece datele care sunt stocate pot fi foarte diferite, la declararea unei variabile se declară și tipul de date care vor fi stocate în această variabilă (tip de variabilă).

Tipuri simple

O variabilă de tip simplu ascunde o singură valoare (deseori citită ca număr) sub cuvântul cheie și poate fi accesată direct. Cele mai cunoscute tipuri primitive sunt: ​​întreg cu semn, întreg fără semn, număr fracționar (cu virgulă), caracter, valoare booleană. Ele pot diferi ușor în diferite limbi.

Tipuri structurate

În cazul tipurilor structurate, mai multe valori comune sunt grupate sub un singur cuvânt cheie, cum ar fi coordonatele unui punct sau numele și prenumele unei persoane. În această formă, setul de date este mai ușor de transferat simultan. În același timp, trebuie să utilizați sau să modificați datele din cadrul structurii pe rând.

Matrice

O matrice este o colecție de date de același tip care au același nume și sunt separate una de cealaltă printr-un index. Matricele facilitează foarte mult procesarea datelor de același tip. Ușurința procesării este rezultatul faptului că, în cursul execuției programului, puteți modifica pur și simplu indexul și astfel este mai ușor să accesați variabila dorită. Preluarea valorii unei variabile dintr-o matrice folosind un număr de serie este o sarcină destul de rapidă pentru un computer.

Matricele pot fi unidimensionale (rând, rând), bidimensionale (tabel, matrice), tridimensionale (cub) etc.

Exemplu (C#, Java)

int masa = newint ; //creăm o matrice pentru a stoca zece numere întregi

masa=1; //valoarea 1 este scrisă la indexul 0

Lectură suplimentară: http://enos.itcollege.ee/~jpoial/java/i200loeng4.html

Intrări

Înregistrările sunt folosite pentru a stoca date de diferite tipuri care împreună formează un set înrudit. De exemplu, o înregistrare de persoană este formată din următoarele date: prenume (text), prenume (text), sex (boolean, 0 - femeie, 1 - bărbat), greutate (număr fracționar). Aceste date formează un singur întreg atunci când descriu o persoană, cu toate acestea, ele sunt ele însele foarte diferite.

Exemplu (C#)

Structuranume {

șir public eesnimi;

șir public perenimi;

public bool sex;

plutitor public greutate;

Cu această intrare, putem crea o variabilă kasutaja (utilizator) și putem oferi utilizatorului valorile pentru prenume, nume, sex și greutate:

inimene kasutaja;

kasutaja.eesnimi ="Ian" ;

kasutaja.perenimi ="Mets" ;

kasutaja.sex = 1;

kasutaja.greutate = 80,0;

Liste și arbori

În prezent, listele sunt adesea folosite pentru a stoca date. Dacă fiecare element al listei indică către elementul care îl urmează, atunci aceasta este o listă legată, sfârșitul unei astfel de liste este indicat de un element gol (null). O listă legată în care fiecare element indică doar cel care îl urmează este numită listă legată individual. O listă legată în care fiecare element indică elementele următoare și precedente se numește listă bidirecțională. O listă legată în care primul și ultimul element lipsesc și fiecare element indică următorul se numește listă circulară. Lungimea listei legate este determinată de numărul de elemente ale acesteia. Primul element al listei este capul (English Head) iar elementele rămase - coada (English Tail).

O stivă este o listă legată în care elementul adăugat ultimul este citit primul (LIFO - Last In First Out).

O coadă este o listă legată în care elementul adăugat primul este citit primul (FIFO - First In First Out).

Lectură suplimentară: http://www.cs.tlu.ee/~inga/alg_andm/linked_list_C_2011.pdf

Un arbore este o structură de date în care datele sunt plasate sub forma unui arbore, constă din vârfuri (ing. Node) și arce (ing. Edges) care leagă vârfurile (pointerii). Vârfurile care sunt legate prin arce de vârful situat deasupra se numesc copii (Eng. Childs), iar vârful situat deasupra în acest caz este părintele (Eng. Parent). Vârful cel mai de sus este rădăcina. Un vârf care nu are copii se numește frunză.

Trecerea de sus la părinte și de acolo la următorul părinte și așa mai departe. ajungem la rădăcină. Strămoșii sunt toate nodurile situate pe calea de la vârful considerat până la rădăcină. Înălțimea copacului este determinată de calea cea mai lungă de la frunză la rădăcină.

În cazul unui arbore ordonat, rădăcina și vârfurile conectate direct la acesta sunt definite ca nodurile de primul nivel (copiii rădăcinii), iar vârfurile conectate direct la vârfurile de primul nivel sunt vârfurile de nivelul al doilea (copiii rădăcinii). vârfuri de primul nivel) și etc.; importantă este și ordinea copiilor de la stânga la dreapta.

Lectură suplimentară: http://www.cs.tlu.ee/~inga/alg_andm/tree_gen_2011.pdf

Un arbore binar este unul în care fiecare părinte poate avea un copil, doi copii sau deloc, iar ordinea copiilor este importantă.

Un arbore binar de căutare este un arbore binar care este ordonat. În stânga vârfului este întotdeauna un număr mai mic, iar în dreapta este întotdeauna unul mai mare.

Când căutați printr-un astfel de arbore, valoarea dorită este comparată cu rădăcina, iar dacă valoarea dorită este egală cu rădăcina, atunci aceasta există și este găsită. Dacă valoarea dorită nu este egală cu rădăcina, atunci operația de comparare continuă mai departe, respectiv comparând valoarea dorită cu un set de vârfuri situate în dreapta sau în stânga până ajung la frunze. Dacă valoarea căutată este egală cu valoarea unuia dintre vârfuri, atunci elementul căutat este găsit și există, dar dacă un astfel de vârf nu este găsit, atunci elementul căutat nu există în acest arbore. Acest mod de căutare este de multe ori mai rapid decât o parcurgere completă a unei matrice sau a unei liste legate.

Arborele B (ing. Arborele B) este un arbore de căutare în care numărul de copii de la fiecare vârf este în intervalul de la (t-1) la (2t-1), unde t este orice constantă.

Un arbore B* este un arbore B în care vârfurile sunt umplute cu 2/3, mai întâi umplând cele două vârfuri copil prin redistribuirea cheilor și apoi împărțindu-le în 3 vârfuri.

Datorită acestui fapt, arborele B vă permite să păstrați adâncimea arborelui mai mică decât cea a unui arbore binar. Prin limitarea umpluturii, este posibil și la niveluri intermediare să păstrați cantitatea de memorie utilizată în limite bine definite și, în același timp, puteți adăuga imediat date într-un loc potrivit.

Numele parametrului Sens
Subiect articol: Tipuri de date structurate
Rubrica (categoria tematica) Programare

Date tip structurat constau din date de alte tipuri. Variabilele de acest tip pot avea o singură valoare la un moment dat. Datele de tip structurat includ:

o siruri de caractere;

o tablouri;

o Seturi;

o Înregistrări;

o Dosare;

o Clase.

Șiruri (tipuri de șiruri): sunt reprezentate de trei tipuri fizice și unul generic.

Tastați date ShortString reprezintă un șir, care este de fapt o matrice de 256 de elemente - matrice. Octetul nul al acestei matrice indică lungimea șirului. Linia - ϶ᴛᴏ secvența de simboluri a tabelului de coduri.

Tipuri de date AnsiStringȘi șir lat sunt matrice dinamice, a căror lungime maximă este de fapt limitată de dimensiunea memoriei principale a computerului. Tastați date AnsiString m codificat în cod ANSI, dar de tip șir lat- în cod Unicode.

Comun este tipul Şir, care se poate potrivi cu tipul ShortString sau AnsiString, care este definit de directiva compilatorului $H.

Deoarece șirurile sunt de fapt matrice, pentru a se referi la un singur caracter dintr-un șir, puteți specifica numele variabilei șir și numărul (poziția) acestui caracter între paranteze drepte.

Format de descriere a tipului șirului de caractere:

tip<имя типа> = şir[lungimea maximă a șirului];

Altfel: var<имя переменной, ... >: şir[lungimea maximă a șirului];

Dacă nu este specificată valoarea lungimii maxime permise de șir, lungimea implicită este de 255 de caractere. Când este folosit în expresii, șirul este închis în apostrofe. Datele șir pot fi folosite ca constante. Nu este permisă utilizarea variabilelor șir ca selector într-un operator caz.

Exemplu: const Adrese = 'ul. Korolenco, 5';

tip String = șir;

var Str: String; St1:șir; St2, St3: sfoară;

Matrice: matrice - ϶ᴛᴏ o colecție ordonată indexată de elemente de același tip care au un nume comun. Elementele matricei pot fi date de orice tip, inclusiv date structurale. Fiecare element de matrice este identificat în mod unic prin numele și indexul matricei (numărul acestui element din matrice) sau indecși, dacă matricea este multidimensională. Pentru a face referire la un element individual al unei matrice, specificați numele acestei matrice și numărul (numerele) elementului cuprins între paranteze drepte, de exemplu, arr1 sau arr2.

Numărul de poziții de index determină dimensiunea matricei (unidimensională, bidimensională etc.), în timp ce dimensiunea matricei nu este limitată. În matematică, un analog al unei matrice unidimensionale este un vector, iar o matrice bidimensională este o matrice. Indicii elementelor matricei trebuie să fie de tip ordinal.

Distingeți matricele statica si dinamica . matrice statică este o matrice, granițe de index și, în consecință, a căror dimensiune este specificată la declararea, ᴛ.ᴇ. sunt cunoscute înainte ca programul să fie compilat. Format de descriere a tipului de matrice statică:

tip<имя типа> = Aggau [<тип индексов>] de<тип элементов >;

In caz contrar: var<имя переменной, ...>: Aggau[<тип индексов>] de <тип элементов >;

Exemplu.
Găzduit pe ref.rf
tip Matrice = un rr de întreg;

semn = matrice de caractere;

Zi =(Luni, Marți, Miercuri, Joi, Vineri, Sâmbătă, Duminică);

var m1, m2: Matrice; un semn;

Săptămâna: serie de zile; r: matrice de real;

matrice dinamică este un tablou, pentru care în timpul declarației este specificat doar tipul elementelor sale, iar dimensiunea matricei este determinată la executarea programului. Format de descriere a tipului de matrice dinamică:

tip<имя типа> = Aggau de <тип элементов >;

Setarea dimensiunii unui tablou dinamic în timpul execuției programului se realizează prin procedură SetLength (var S; NewLength:integer), care pentru o matrice dinamică S setează noua dimensiune la NewLength. Puteți efectua operații cu o matrice dinamică și elementele sale numai după ce se setează dimensiunea acestui tablou.

După setarea dimensiunii unui tablou dinamic, pentru a determina lungimea acestuia, numărul minim și maxim de elemente, funcțiile sunt utilizate lungime(), mic()Și Înalt() respectiv. Numerotarea elementelor unui tablou dinamic începe de la zero, în legătură cu aceasta, funcția scăzut() returnează întotdeauna zero.

Exemplu.
Găzduit pe ref.rf
Varn: întreg;

m: matrice de real;

SetLength(m, 100);

pentru n:=0 până la 99 face m[n]:=n;

SetLength(m, 200);

După descrierea unui tablou dinamic format din numere reale, se determină dimensiunea acestui tablou, egală cu 100 de elemente. Fiecărui element i se atribuie o valoare egală cu numărul său din matrice. Deoarece numerotarea elementelor matricei începe de la zero, numărul ultimului dintre ele nu este 100, ci 99. După buclă, dimensiunea matricei crește la două sute.

Pentru a descrie tipul matrice dinamică multidimensională (de exemplu, bidimensional) se folosește construcția:

tip<имя типа> = Aggau de Aggau de<тип элементов >;

Acțiunile asupra unui tablou sunt de obicei efectuate element cu element, inclusiv. operatii de intrare si iesire. Prelucrarea element cu element a tablourilor se realizează, de regulă, folosind cicluri. Matricea ca întreg (ca un singur obiect) poate participa doar la operațiuni relaționale și la operatorul de atribuire, în timp ce tablourile trebuie să fie complet identice ca structură, adică trebuie să aibă indici de aceleași tipuri și elemente de aceleași tipuri. .

Seturi: set este o colecție de elemente selectate dintr-un set predefinit de valori. Toate elementele unei mulțimi sunt de tip ordinal; numărul de elemente ale unui set nu poate depăși 256. Format, descrieri ale unui tip de set:

tip<имя типа> = Set de<тип элементов >;

O variabilă de tip set poate conține de la zero la număr maxim elemente ale setului său. Valorile de mai multe tipuri sunt incluse între paranteze pătrate. Mulțimea goală este notată cu . Operațiile permise pe platouri sunt date în tabel.

Cu toate acestea, există o operație în(test de apartenență), care determină dacă o expresie de tip ordinal (primul operand) aparține unui set (al doilea operand). Rezultatul operației va fi ca boolean si face diferenta Adevăratîn cazul respectării apartenenţei valorii la mulţime.

Intrări: s apisi concatenează un număr fix de elemente de date de alte tipuri. Elementele individuale ale unei înregistrări au nume și sunt numite câmpuri . Numele câmpului trebuie să fie unic într-o înregistrare. Distinge intrări fixe și variante . Intrare fixă constă dintr-un număr finit de câmpuri, declarația sa are următorul format:

tip<имя типа> = record;

<имя поля­_1>: <Тип поля>;

<имя поля_ n >: <Тип поля>;

Notație variantă, precum și unul fix, are un număr finit de câmpuri, cu toate acestea, oferă posibilitatea de a interpreta zonele de memorie ocupate de câmpuri în moduri diferite. Toate opțiunile de înregistrare sunt situate într-un singur loc în memorie și pot fi accesate cu nume diferite. Rețineți că termenul ʼʼnotație variantăʼʼ nu are nimic de-a face cu termenul ʼʼtip variantʼʼʼ ( variantă). Varianta de format de declarație de intrare:

tip<имя типа> = record;

caz<Признак>: <Тип признака> de;

<вариант_1>: (<описание варианта_1>)

<вариант_ n >: (<описание варианта_ n >);

Pentru a face referire la un anumit câmp, este esențial să specificați numele înregistrării și numele câmpului separate printr-un punct. Τᴀᴋᴎᴍ ᴏϬᴩᴀᴈᴏᴍ, numele câmpului este compus. Puteți efectua aceleași operații cu un câmp ca și cu o variabilă de acest tip.

Exemplu.
Găzduit pe ref.rf
varMan:record;

Man.Name:='Ivanov M.A.';

Barbat .Salariu:=5000;

Variabila Man este o înregistrare fixă ​​care conține câmpurile nume (Nume), salariu (Salariu) și note (Notă), fiecare câmp având tipul său.

Fișiere: Fişier este o secvență numită de elemente de același tip situate pe un dispozitiv extern, cel mai adesea pe un disc. Fișierul are multe în comun cu o matrice dinamică unidimensională, dar nu se află în RAM, ci în memoria externă și nu necesită specificarea prealabilă a dimensiunii.

Pentru a efectua operațiuni cu un anumit fișier aflat pe disc, programul folosește de obicei așa-numitul variabilă fișier (fișier logic). O variabilă de fișier, după declararea ei, este asociată unui anumit fișier, datorită căruia operațiunile efectuate asupra acestuia duc la modificări corespunzătoare în fisierul dat. După ce toate operațiunile sunt finalizate, legătura dintre variabila fișier și fișier este întreruptă. Acum variabila fișier poate fi asociată cu un alt fișier de același tip.

Având în vedere dependența de tipul de elemente, ele disting fișiere text, tastate și neînregistrate . Fisier text conține șiruri de caractere de lungime variabilă, fișier tastat constituie elemente de tipul specificat (cu excepția fișierului), în fișier netipizat există elemente al căror tip nu este specificat. Descrierea unei variabile de fișier destinată lucrului cu un fișier trebuie să corespundă tipului de elemente ale fișierului.

Exemplu.
Găzduit pe ref.rf
var f1: TextFile;

f2: Fișierul întregului;

f3: Fișierul realului;

aici variabila f1 este destinată lucrului cu fișiere text, variabilele f2 și f3 sunt pentru fișiere tipizate care conțin numere întregi și, respectiv, numere reale, iar variabila f4 este pentru fișiere netipizate.

Tipuri de date structurate - concept și tipuri. Clasificarea și caracteristicile categoriei „Tipuri de date structurate” 2017, 2018.

Tipurile structurate sunt caracterizate de o multitudine de elemente care formează acest tip, adică. au mai multe componente. Fiecare componentă, la rândul său, poate aparține unui tip structurat, adică. este permisă cuibărirea tipurilor.

Matrice reprezintă o uniune formală a mai multor obiecte de același tip (numere, simboluri, șiruri de caractere etc.), considerate ca o singură entitate. Toate componentele matricei sunt date de același tip.

Forma generală a definiției unui tablou:

Tip A = matrice [tip index matrice] din [tip component matrice]

De exemplu, M1=matrice de real;

Siruri de caractere este o matrice de caractere, dar numărul de caractere dintr-un șir poate varia. Șirul este tratat ca un șir de caractere de lungime arbitrară. Numărul maxim de caractere nu este mai mare de 255. Fiecare caracter dintr-un șir are propriul index (număr).

Înregistrare este o structură de date formată dintr-un număr fix de componente numite câmpuri de înregistrare. Spre deosebire de o matrice, componentele de înregistrare (câmpurile) pot fi tipuri variate. Înregistrările vă permit să combinați valori de diferite tipuri.

Luna: (Ian, Feb, Mar, Apr, Mai, Iunie, Iulie, Aug, Sept, Oct, Noi, Dec);

Anul: 2000..2050;

seturi sunt seturi de obiecte de același tip, legate logic între ele. Numărul de elemente incluse în set poate varia de la 0 la 256. Seturile diferă de matrice și înregistrări în variabilitatea elementelor lor.

Cifre = set de 1..5;

Fişier– zonă denumită a memoriei externe. Un fișier conține componente de același tip, cu excepția fișierelor (adică, nu puteți crea un „fișier de fișiere”). Lungimea fișierului nu este specificată și este limitată doar de capacitatea dispozitivelor de memorie externe.

F: Fișierul întregului;

Aflați mai multe despre tipurile structurate în continuarea studiilor limba.

      1. Indicator (tip de referință)

Conține adresa unui octet de memorie care conține o valoare de date de un anumit tip. Acest tip se mai numește și tip de referință. Descrierea folosește simbolul ^ și un identificator de tip. De exemplu, P=^intger;

Utilizarea pointerilor este un instrument flexibil pentru gestionarea memoriei dinamice și oferă capacitatea de a procesa matrice mari de date.

    1. constante

constant este o cantitate a cărei valoare nu se modifică în timpul execuției programului.

    Numeric constantele sunt folosite pentru a scrie numere. Există următoarele tipuri:

întreg numere: scrise cu semnul + sau - sau fără semn, conform regulilor aritmetice obișnuite: -10 +5 5

Real numerele pot fi scrise în una din două forme:

notație normală : 2,5 -3,14 2. - se observă că partea întreagă este separată de partea fracțională printr-o perioadă;

exponenţială formă: în această notație, un număr real este reprezentat ca m*10 p , unde m este mantisa sau baza unui număr, 0,1≤|m|≤1, p – Ordin numere, este o constantă întreagă. Într-adevăr, orice număr real poate fi reprezentat în formă exponențială:

153.5 -0.1535*10 3

99.005 0.99005*10 2

În toate computerele compatibile cu IBM, numerele reale sunt stocate ca o combinație de mantise și exponent, ceea ce face posibilă simplificarea operațiunilor asupra lor folosind aritmetică specială care procesează separat mantisa și exponentul. Pentru a scrie programatic un număr în formă exponențială, în loc de „înmulțire cu 10 la putere”, se folosește notația E sau e(Latin):

153,5 -0,1535*10 3 -0,1535E3 sau -1,535E02

99,005 0,99005*10 2 0,99005E+2 sau 9,9005e+01

Fără a lua măsuri speciale, un program Pascal va afișa numere reale în această formă pe ecran și pe imprimantă. În plus, această formă este convenabilă pentru a scrie numere foarte mici și foarte mari:

Deoarece dimensiunea memoriei alocată pentru mantise și ordine este limitată, atunci numerele reale sunt întotdeauna reprezentate în memoria computerului cu unele erori. De exemplu, cea mai simplă fracție reală 2/3 dă 0,666666 în reprezentare zecimală... și, indiferent de cantitatea de memorie alocată pentru stocarea numărului, este imposibil de stocat toate semnele sale sunt în partea fracționată. Una dintre problemele tipice de programare este luarea în considerare a posibilelor erori atunci când lucrați cu numere reale.

Numerele hexazecimale constau din cifre hexazecimale precedate de semnul $. Intervalul de numere hexazecimale este de la $00000000 la $FFFFFFFF.

Pe lângă constantele numerice, există și alte tipuri de ele:

    joc de inteligență constante.

Servește pentru a verifica adevărul sau falsitatea unor condiții din program și nu poate decât să accepte una dintre cele două valori: cuvânt funcție Adevărat reprezintă adevărul şi fals- Fals;

    Simbolic constante.

Poate lua valoarea oricărui caracter imprimabil și sunt scrise ca un caracter inclus în apostrofe("ghilimele simple"):

În acest din urmă caz, valoarea constantei caracter este egală cu caracterul spațiu. Dacă doriți să scrieți caracterul apostrof în sine ca o constantă de caracter, în interiorul apostrofelor exterioare este dublat: """"

Constantele de caractere includ, de asemenea, constante de forma #X, unde X este o valoare numerică de la 0 la 255 inclusiv, reprezentând o zecimală ASCII-Codul simbol. Tabelele cu codurile ASCII utilizate de sistemele de operare DOS și Windows sunt prezentate în Anexa 1. De exemplu, valoarea #65 ar corespunde codului de caractere „A” în latină.

    Şir constante.

Acestea sunt orice succesiune de caractere incluse în apostrofe. De regulă, constantele șir sunt utilizate pentru a înregistra solicitările de introducere a datelor emise de program, pentru a afișa mesaje de diagnosticare etc.:

„Introduceți valoarea X:”

Dacă este necesar să scrieți caracterul apostrof însuși într-o constantă șir, acest lucru se face în același mod ca și pentru constantele de caractere.

Constantele din Turbo Pascal pot fi numite. Anonim constantele sunt utilizate, de exemplu, la afișarea textului mesajului din exemplul anterior. Constante numite sunt descrise în secțiunea de descriere a programului de către un operator sub următoarea formă:

const Nume1=Valoare1;

Nume2=Valoare2;

NumeN=ValoareN;

Aici, cuvântul cheie const indică începutul secțiunii de declarare constantă numită. Este clar că deseori este mai convenabil să se facă referire la o constantă prin nume decât să rescrie valoarea sa numerică sau șir de fiecare dată. Exemplu de secțiune constantă:

const e=2,7182818285;

lang="Turbo Pascal 7.1";

Iată o constantă numerică e cu valoarea bazei logaritmului natural și o constantă șir numită lang care conține șirul „Turbo Pascal 7.1”.

Fiecare nume dat de programator trebuie să fie unic in cadrul aceluiasi program. Dacă includem această secțiune în programul nostru, nu vom mai putea crea în ea alte obiecte numite e și lang.