Ce este byte în pascal. Tipuri de date întregi. Formatul de declarație al variabilelor booleene

Orice date - constante, variabile, valori ale funcției sunt caracterizate în Pascal printr-un tip de date.

Să definim conceptul tip de date. După cum se știe deja, toate obiectele programului (variabile, constante etc.) trebuie declarate.

Descrierile informează traducătorul, în primul rând, despre existența variabilelor și a altor obiecte utilizate și, în al doilea rând, indică proprietățile acestor obiecte. De exemplu, descrierea unei variabile a cărei valoare este un număr indică proprietățile numerelor. În mod formal, numerele pot fi întregi și reale (fracționale). În Pascal, ca și în alte limbaje de programare, numerele sunt împărțite în două tipuri: întreg(cuvânt întreg rezervat) și real(cuvânt rezervat real).

Selectarea numerelor întregi ca tip separat se explică prin faptul că numerele întregi și reale sunt reprezentate diferit într-un computer: un număr întreg poate fi reprezentat absolut exact, în timp ce un număr real este inevitabil reprezentat cu o eroare finită, care este determinată de proprietățile traducătorului.

De exemplu, să fie variabila x de tip real și valoarea ei este egală cu unu: x=1 . Valoarea corespunzătoare din memoria computerului poate fi 0,999999999 , 1,000000001 sau 1,000000000 . Dar dacă variabila x este declarată ca o variabilă de tip întreg, atunci unitatea va fi reprezentată în computer absolut exact, iar variabila x nu va putea lua valori reale (fracționale) - până la urmă, a fost declarată ca o variabilă de tip întreg.

Deci tipul de date definește:

  • Reprezentare internă a datelor în memoria computerului;
  • setul de valori pe care valorile de acest tip le pot lua;
  • operațiuni care pot fi efectuate pe valori de acest tip.

Introducerea tipurilor de date este unul dintre conceptele de bază ale limbajului Pascal, care constă în faptul că la efectuarea operației de atribuire a valorii unei expresii unei variabile, variabila și expresia trebuie să fie de același tip. Această verificare este efectuată de compilator, ceea ce simplifică foarte mult căutarea erorilor și crește fiabilitatea programului.

Setul de tipuri de date Turbo Pascal poate fi împărțit în două grupuri:

  • tipuri standard (predefinite). ;
  • tipuri definite de utilizator (tipuri definite de utilizator) .

Tipurile standard de Turbo Pascal includ:

  • tip întreg - întreg;
  • tip real - real ;
  • tip de caracter - char ;
  • tip boolean - boolean ;
  • tip șir - șir ;
  • tip pointer - pointer ;
  • tipul de text este text.

Tipurile de date personalizate sunt diferite combinații de tipuri standard.

Tipurile personalizate includ:

  • tip enumerat;
  • tip de interval;
  • tip de indicator;
  • tipuri structurate;
  • tip procedural.

cometariu. Este posibilă și o altă clasificare a tipurilor de date, în funcție de care tipurile sunt împărțite în simple și complexe.

Tipurile simple includ: tipul întreg, tipul real, tipul caracterului, tipul boolean, tipul enumerat și tipul intervalului.

Un tip complex reprezintă diverse combinații de tipuri simple (matrice, înregistrări, seturi, fișiere etc.)

Tipuri standard

Tipul de date standard este definit chiar de limbajul Pascal. Când utilizați tipuri standard într-un program, este suficient să indicați subsecțiunile tipurilor necesare (const , var) și apoi să descrieți constantele și variabilele utilizate în program. Nu este nevoie să folosiți subsecțiunea Tip.

De exemplu, dacă programul folosește numai variabile:

i,j - întreg (întregi);

x,y - real (real);

t,s - caracter (caracter);

a,b - boolean (logic),

atunci este nevoie doar de subsecțiunea de variabile - Var . Prin urmare, în partea descriptivă a programului, declarațiile de variabile sunt scrise după cum urmează:

Tipuri întregi

Datele de acest tip pot lua numai valori întregi. Într-un computer, valorile de tip întreg sunt reprezentate exact. Dacă variabila este negativă, atunci trebuie să fie precedată de semnul „-”; dacă variabila este pozitivă, atunci semnul „+” poate fi omis. Acest tip este necesar în cazul în care o anumită valoare nu poate fi reprezentată aproximativ - un număr real. De exemplu, numărul de oameni, animale etc.

Exemple de scriere a valorilor întregi: 17, 0, 44789, -4, -127.

Intervalul de date de tip întreg este determinat de cele cinci tipuri de numere întregi standard și este prezentat în tabel:

Tip de Gamă Dimensiunea în octeți
Shortint -128...+128 1
Întreg -32768...32767 2
Longint -2147483648...2147483647 4
octeți 0...255 1
Cuvânt 0...65535 2

Ultimele două tipuri servesc pentru a reprezenta numai numere pozitive, iar primele trei numere atât pozitive, cât și negative.

În textul programului sau la introducerea datelor de tip întreg, sunt scrise valori fără virgulă zecimală . Valorile reale ale variabilelor nu trebuie să depășească valorile admise de tipul (Shortint , Integer , Longint , Byte , Word) care a fost folosit pentru a descrie variabila. Posibilele excese în calcule nu sunt controlate în niciun fel, ceea ce va duce la funcționarea incorectă a programului.

Un exemplu de utilizare a unei variabile de tip întreg

var a:intger; b:cuvânt; c:octet; Începe a:=300; (a este setat la 300) b:=300; (b stabilit la 300) c:=200; (c este setat la 200) a:=b+c; (a este setat la 500) c:=b; (Eroare! Variabila c poate lua valori nu mai mari de 255. Aici, variabilei c i se atribuie valoarea 500, ceea ce va duce la depășirea rezultatului.) Sfârșit.

Tipuri reale

Valorile tipurilor reale într-un computer sunt reprezentate aproximativ. Gama de date de tip real este determinată de cinci tipuri standard: real (Real), cu precizie simplă (Single), precizie dublă (Double), cu precizie crescută (Extended), complex (Comp) și este prezentat în tabel:

Tip de Gamă Numărul de cifre semnificative Dimensiunea în octeți
Real 2.9E-39...1.7E+38 11-12 6
Singur 1.5E-45...3.4E+38 >7-8 4
Dubla 5E-324...1.7E+308 15-16 8
Extins 3.4E-4951...1.1E+4932 19-20 10
Comp -2E+63+1...+2E+63-1 19-20 8

Numerele reale pot fi reprezentate în două formate: fix și virgulă mobilă.

Formatul unui număr cu virgulă fixă ​​este același cu notația matematică obișnuită pentru un număr zecimal cu o parte fracțională. Partea fracțională este separată de partea întreagă cu un punct, de exemplu

34.5, -4.0, 77.001, 100.56

Formatul în virgulă mobilă este utilizat atunci când scrieți numere foarte mari sau foarte mici. În acest format, numărul de dinaintea „E” este înmulțit cu numărul 10 la puterea specificată după „E”.

1E-4 1*10-4
3,4574E+3 3.4574*10+3
4,51E+1 4.51*10+1

Exemple cu virgulă mobilă:

Număr Scriind în Pascal
0,0001 1E-4
3457,4 34574E-1
45,1 451E-1
40000 4E+4
124 0,124E+3
124 1,24E+2
124 12,4E+1
124 1240E-1
124 12400E-2

Tabelul de la 5 la 9 arată introducerea aceluiași număr 124. Prin schimbarea poziției punctului zecimal în mantise (punctul „plutește”, de unde și denumirea „înregistrarea unui număr în virgulă mobilă”) și în același timp schimbarea exponentului, puteți alege cele mai potrivite numere de intrare.

Exemplu de declarare a variabilelor de tip real.

Tip de caracter

Valorile tipului de caractere sunt caractere care pot fi tastate pe tastatura computerului. Acest lucru vă permite să prezentați text în program și să efectuați diferite operații asupra acestuia: inserați, ștergeți litere și cuvinte individuale, formatare etc.

Tipul de caracter este notat cu cuvântul rezervat Char și este conceput pentru a stoca un singur caracter. Datele de tip caracter din memorie ocupă un octet.

Formatul declarației variabilelor simbolice:

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

La definirea valorii unei variabile caracter, caracterul este scris cu apostrofe. În plus, puteți specifica caracterul necesar specificând direct valoarea sa numerică a codului ASCII. În acest caz, este necesar să precedați numărul care denotă codul ASCII al caracterului necesar cu semnul #.

Un exemplu de utilizare a variabilelor tip caracter:

varc:char; (c este o variabilă de tip caracter) Begin c:='A'; (caracterul „A” este atribuit variabilei c) c:=#65; (variabilei c i se atribuie și simbolul A. Codul său ASCII este 65) c:='5'; (variabilei c i se atribuie caracterul 5, End. aici 5 nu mai este un număr)

tip boolean

Tipul de date logic se numește Boolean după matematicianul englez George Boole, creatorul domeniului matematicii - logica matematică.

Formatul declarației variabilelor booleene:

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

Datele de acest tip pot lua doar două valori:

  • Adevarat adevarat;
  • Fals - fals.

Datele booleene sunt utilizate pe scară largă în verificarea validității anumitor condiții și în compararea valorilor. Rezultatul poate fi adevărat sau fals.

Pentru a compara datele, sunt furnizate următoarele operații relaționale:

Un exemplu de utilizare a operațiilor relaționale:

relația 5>3 , rezultat adevărat (adevărat);

relația 5=3, rezultatul este fals (fals).

Un exemplu de utilizare a variabilelor booleene.

var a,b:boolean; (a,b sunt variabile booleene) Begin a:=True; (variabila a este setată la adevărat) b:=fals; (variabila b este setată la fals) End.

constante

Ca constante pot fi folosite numere întregi, numere reale, simboluri, șiruri de caractere, constante logice.

Constanta trebuie declarată în partea descriptivă folosind cuvântul rezervat const.

Format de declarație constant

Const<имя константы>= <значение>;

Dacă într-un program sunt utilizate mai multe constante, este permis un singur cuvânt cheie Const, iar descrierea fiecărei constante se termină cu punct și virgulă. Blocul constant se termină cu declararea unei alte secțiuni sau declararea unui bloc de instrucțiuni executabile.

Const (declarație secțiune constantă) an=2003; (constantă de tip întreg, deoarece nu există virgulă zecimală în înregistrare) timp=14,05; (constantă de tip real) N=24; (constantă de tip întreg, deoarece nu există punct zecimal în înregistrare) P=3,14; (constantă de tip real) A=adevărat; (constantă booleană) str1='7'; (constantă tip caracter) str2='A'; (constantă tip caracter) str3='Turbo'; (constantă de tip șir) Var (declarație secțiune variabilă) X,y:întreg; (variabile de tip întreg)

Tipuri personalizate

Din setul de tipuri personalizate, vom lua în considerare numai

  • tip enumerat;
  • tip de interval.

Vom avea nevoie de aceste două tipuri atunci când studiem tablourile.

Tip enumerat

Un tip de date enumerate descrie noi tipuri de date ale căror valori sunt definite de programator. Un tip enumerat este definit prin enumerarea valorilor pe care le poate primi. Fiecare valoare este denumită printr-un identificator și se află într-o listă cuprinsă între paranteze. Un tip enumerat este un tip de date definit de utilizator, astfel încât declarația sa de tip începe cu cuvântul rezervat TYPE .

Format de tip enumerat:

<имя типа>= (constant1, constant2,..., constantN);

Unde
constant1 , constant2 ,..., constantN este un set ordonat de valori identificatoare tratate ca constante.

Un exemplu de declarație de tip enumerat:

Tip minge=(unu, doi, trei, patru, cinci); vart:ball;

Aici bila este numele tipului enumerat; unu , doi , trei , patru , cinci sunt constante; t este o variabilă care poate lua orice valoare a constantelor.

Într-un tip enumerat, o constantă este un identificator, deci nu este citată și nu poate fi un număr. Astfel, într-un tip enumerat, o constantă este un tip special de constante care nu poate fi:

  • constante de tip numeric: 1, 2, 3, 4 etc.;
  • constante de tip de caracter: „a”, „s”, „1”, „3”, etc.;
  • constante de tip șir: „primul”, „al doilea”, etc.

În plus, operațiile aritmetice și procedurile standard de intrare și ieșire Citire, Scriere nu sunt aplicabile valorilor de acest tip.

Un exemplu de utilizare a variabilelor de tip enumerat:

Tip zile = (luni, marți, miercuri, joi, vineri, sâmbătă, duminică); Var zi: zile; begin if day = Sunday then writeln('Astăzi este duminică!'); Sfârşit.

Elementele dintr-o definiție a tipului enumerat sunt considerate ordonate în ordinea în care sunt listate. Numerotarea începe de la zero. Prin urmare, în exemplul de mai sus, zilele săptămânii au următoarele numere de serie

Pentru a determina în mod programatic numărul de secvență, utilizați funcția Ord().

În exemplul nostru, numerele de serie sunt egale:

Ord(luni) = 0;

Ord(sâmbătă) = 5;

Ord (duminică) = 6.

tip de interval

Dacă o variabilă nu ia toate valorile tipului său, ci doar valorile conținute într-un anumit interval, atunci un astfel de tip de date se numește tip de interval. Adesea, un tip de interval este numit tip mărginit și tip interval. Un tip de interval este definit de limitele valorilor sale:

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

  • două caractere „..” sunt tratate ca un singur caracter, deci nu sunt permise spații între ele;
  • capătul din stânga intervalului nu trebuie să depășească capătul din dreapta.

Un tip de interval este un tip de date definit de utilizator, astfel încât declarația acestui tip începe cu cuvântul cheie TYPE .

Un exemplu de descriere a tipului de interval:

tip digit = 1..10; luna = 1..31; lat = 'A'..'Z';

Când declarați o variabilă, trebuie să specificați tipul acesteia. Tipul unei variabile descrie setul de valori pe care îl poate lua și acțiunile care pot fi efectuate asupra acesteia. Declarația de tip definește un identificator care denotă tipul.

Tipurile simple sunt împărțite în standard (ordinale) și enumerate (limitate).

Tipuri standard

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

Tip întreg (întreg)

Turbo Pascal are cinci tipuri de numere întregi încorporate: shortint (întreger scurt), întreg (întreg), longint (întreg lung), octet (octet lung) și cuvânt (cuvânt lung). 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 semnat

16 biți semnat

2147483648 +2147483647

32 de biți semnat

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. Tipul unei constante întregi este tipul integral î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 generic este tipul integral încorporat cu cel mai mic interval care include toate valorile posibile ale ambelor tipuri. De exemplu, tipul obișnuit pentru întregul întreg și întregul cu lungimea octetilor este întreg, iar tipul comun pentru întregul întreg și întregul cu lungimea cuvântului este întregul lung. Acțiunea este efectuată în funcție de precizia tipului generic, iar tipul de rezultat este tipul generic.
  3. Expresia din dreapta într-o declarație 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ține restul întreg după împărțire

ABS - modul numeric

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

A:=100; b:=60; un rezultat DIV b este 1 și rezultatul MOD b este 40

Variabilele întregi sunt declarate după cum urmează:

var lista de variabile: tip;

De exemplu: var a,p,n:integer;

Tip real (real)

Tipul real se referă la submulțimea de numere reale care poate fi reprezentată în format virgulă mobilă cu un număr fix de cifre. O valoare în virgulă mobilă include de obicei trei valori - m, b și e - astfel încât m*b e, unde b este întotdeauna 10, iar m și e sunt valori întregi în intervalul de tip real. Aceste valori m și e definesc în continuare intervalul și precizia tipului real.

Există cinci tipuri de tipuri reale: real, single, duble, exnende, comp. Tipurile reale diferă în intervalul și precizia valorilor asociate acestora

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)-logaritm natural.
  • EXP(X)-exponent 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 pentru operațiile aritmetice:
    • Dacă într-o operație aritmetică există 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ă de caracter, încadrați-l într-un apostrof: ''''.

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

Semnele 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 ordinal al caracterului X. ord ('a') =97 ;
  2. CHR(X) - determină caracterul după număr. chr (97 ) ='a';
  3. PRED(X) - tipărește caracterul care vine înaintea caracterului X. pred('B') ='A';
  4. SUCC(X) - scoate caracterul după caracterul X. succ('A') ='B';

tip enumerat

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

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

Unde<список констант>- acesta este un tip special de constante, 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 executa următorii operatori de atribuire:

Viraj:=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 enumerate:

1. ORD - număr de serie

2. PRED - elementul precedent

3. SUCC este următorul element.

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

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

tip restrâns

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

Este descris astfel:

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 mărginit nu trebuie să fie mai mare decât valoarea finală.
indice de tip =0 ..63 ; litera='a'..'z'; varchar1,char2:litera; a,g:index ;

O puteți descrie imediat în secțiunea declarație variabilă:

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

Tipul de date definește setul de valori permise și setul de operațiuni permise.

Tipuri simple.

Tipurile simple sunt împărțite în ORDINALE și REALE.

1. Tipuri ordinale , la randul lor sunt:

un întreg

Pascal definește 5 tipuri de numere întregi, care sunt determinate în funcție de semnul și valoarea pe care le va lua variabila.

Tastați numele

Lungime (în octeți)

Interval de valori

32 768...+32 767

2 147 483 648...+2 147 483 647

b) logic

Numele acestui tip este BOOLEAN. Valorile booleene pot fi una dintre constantele booleene: TRUE (adevărat) sau FALSE (fals).

c) simbolic

Numele acestui tip CHAR - ocupă 1 octet. Valoarea tipului de caracter este setul tuturor caracterelor PK. Fiecărui caracter i se atribuie un număr întreg în intervalul 0...255. Acest număr servește drept cod pentru reprezentarea internă a personajului.

2. TIPURI REALE .

Spre deosebire de tipurile ordinale, ale căror valori sunt întotdeauna comparate cu o serie de numere întregi și, prin urmare, sunt reprezentate în PC absolut exact, valorile tipurilor reale definesc un număr arbitrar doar cu o anumită precizie finită, în funcție de formatul intern a numărului real.

Lungimea tipului de date numerice, octeți

Numele tipului de date numerice

Numărul de cifre semnificative ale unui tip de date numerice

Interval de exponent zecimal al tipului de date numerice

2*1063 +1..+2*1063 -1

TIPURI STRUCTURATE

Tipurile de date structurate definesc un set ordonat de variabile scalare și sunt caracterizate de tipul componentelor lor.

Tipurile de date structurate, spre deosebire de cele simple, definesc seturi de valori complexe cu un singur nume comun. Putem spune că tipurile structurale definesc un anumit mod de a forma noi tipuri din cele existente.

Există mai multe metode de structurare. După metoda de organizare și tipul de componente în tipurile de date complexe, se disting următoarele soiuri: tip obișnuit (matrice); tip combinat (înregistrări); tip de fișier (fișiere); mai multe tipuri; tipul de șir (șiruri de caractere); Turbo Pascal versiunea 6.0 și mai târziu introduce un tip de obiect (obiecte).

Spre deosebire de tipurile de date simple, datele de tip structurat sunt caracterizate de o multitudine de elemente care formează acest tip, adică o variabilă sau constantă de tip structurat are întotdeauna mai multe componente. Fiecare componentă la rândul său poate aparține unui tip structurat, adică. posibilă cuibărit de tipuri.

1. Matrice

Matricele din Turbo Pascal sunt în multe privințe similare cu tipurile de date similare din alte limbaje de programare. O caracteristică distinctivă a tablourilor este că toate componentele lor sunt date de același tip (eventual structurate). Aceste componente pot fi comandate cu ușurință și oricare dintre ele poate fi accesată pur și simplu prin specificarea unui număr de serie.

O descriere a matricei este definită după cum urmează:

<имя типа>= matrice[<сп.инд.типов>] de<тип>

Aici<имя типа>- identificator corect;

Array, of - cuvinte rezervate (array, from);

<сп.инд.типов>- o listă cu unul sau mai multe tipuri de index separate prin virgule; parantezele pătrate din jurul listei sunt o cerință de sintaxă;

<тип>- orice tip de Turbo Pascal.

Ca tipuri de index în Turbo Pascal, puteți utiliza orice tipuri ordinale, cu excepția tipurilor LongInt și interval cu tipul de bază LongInt.

Adâncimea de imbricare a tipurilor structurate în general, și, în consecință, a tablourilor, este arbitrară, prin urmare numărul de elemente din lista de indici de tip (dimensiunea matricei) nu este limitat, totuși, lungimea totală a reprezentării interne a oricărui matricea nu poate depăși 65520 de octeți.

2. Înregistrări

O înregistrare este o structură de date care constă dintr-un număr fix de componente numite câmpuri ale unei înregistrări. Spre deosebire de o matrice, componentele (câmpurile) unei înregistrări pot fi de diferite tipuri. Pentru a putea face referire la una sau la alta componentă a înregistrării, câmpurile sunt denumite.

Structura unei declarații de tip de înregistrare este următoarea:

< Numetip>= ÎNREGISTRARE< cn. câmpuri> Sfârșit

Aici<имя типа>- identificator corect;

RECORD, END - cuvinte rezervate (record, end);

<сп.полей>- lista câmpurilor; este o succesiune de secțiuni ale unei înregistrări separate prin punct și virgulă.

3. Seturi

Seturile sunt un set de același tip de obiecte logice legate între ele. Natura relațiilor dintre obiecte este doar implicată de programator și nu este controlată în niciun fel de Turbo Pascal. numarul de elemente incluse in multime poate varia de la 0 la 256 (o multime care nu contine elemente se numeste goala).Seturile se deosebesc de tablouri si inregistrari prin variabilitatea numarului de elemente ale acestora.

Două mulțimi sunt considerate echivalente dacă și numai dacă toate elementele lor sunt aceleași, iar ordinea elementelor mulțimii este indiferentă. Dacă toate elementele unui set sunt incluse și în altul, spunem că primul set este inclus în al doilea.

Descrierea unui tip de set este:

< Numetip>=SET DE< bazele. tip de>

Aici<имя типа>- identificator corect;

SET, OF - cuvinte rezervate (set, from);

<баз.тип>- tipul de bază al elementelor mulţimii, care poate fi orice tip ordinal, cu excepţia CUVÂNTULUI, ÎNTREGUL şi LONGINTUL.

Pentru a specifica o mulțime, se folosește așa-numitul constructor de mulțimi: o listă de specificații ale elementelor de mulțime, separate între ele prin virgule; lista este cuprinsă între paranteze drepte. Specificațiile elementului pot fi constante sau expresii ale unui tip de bază sau un tip de interval de același tip de bază.

4. Fișiere

Un fișier este înțeles fie ca o zonă numită a memoriei externe a unui computer, fie ca un dispozitiv logic - o sursă potențială sau un receptor de informații.

Orice fișier are trei caracteristici

    are un nume, ceea ce face posibil ca programul să lucreze cu mai multe fișiere în același timp.

    conţine componente de acelaşi tip. Tipul de componentă poate fi orice tip Turbo Pascal, cu excepția fișierelor. Cu alte cuvinte, nu puteți crea un „fișier de fișiere”.

    lungimea fisierului nou creat nu este specificata in niciun fel atunci cand este declarat si este limitata doar de capacitatea dispozitivelor de memorie externe.

Un tip de fișier sau o variabilă de tip de fișier poate fi specificat în unul din trei moduri:

< Nume>= DOSARUL DE< tip de>;

< Nume>=TEXT;

<имя>= FIȘIER;

Aici<имя>- numele tipului de fișier (identificatorul corect);

FILE, OF - cuvinte rezervate (file, from);

TEXT este numele tipului standard de fișiere text;

<тип>- orice tip de Turbo Pascal, cu excepția fișierelor.

În funcție de metoda de declarare, se pot distinge trei tipuri de fișiere:

Fișiere tipizate (specificate prin clauza FILE OF...);

fișiere text (determinate de tipul TEXT);

fișiere netipizate (determinate de tipul FILE).

Despre conversia tipurilor de date numerice în Pascal

Conversiile implicite (automate) ale tipurilor de date numerice sunt aproape imposibile în Pascal. Se face o excepție numai pentru tipul întreg, care poate fi folosit în expresii de tip real. De exemplu, dacă variabilele sunt declarate după cum urmează:

VarX: întreg; Y: real

apoi operatorul

va fi corectă din punct de vedere sintactic, deși o expresie întreagă se află în dreapta semnului de atribuire, iar o variabilă reală este în stânga, compilatorul va face automat conversia tipurilor de date numerice. Conversia inversă automată de la tipul real la tipul întreg este imposibilă în Pascal. Să ne amintim câți octeți sunt alocați pentru variabilele de tip întreg și real: 2 octeți de memorie sunt alocați pentru tipul de date întreg și 6 octeți pentru real. Există două funcții încorporate pentru conversia realului în întreg: round(x) rotunjește un x real la cel mai apropiat număr întreg, trunc(x) trunchiază un număr real eliminând partea fracțională.

Te afli in sectiunea de materiale despre programare in Pascal. Înainte de a începe programarea, trebuie să clarificăm câteva concepte de care vom avea nevoie la început. Nu poți doar să programezi așa. Nu putem scrie programul în cuvinte - computerul, în afară de zerouri și unu, nu înțelege altceva. Pentru a face acest lucru, Pascal a creat un simbolism special - limbajul Pascal, un set de cuvinte rezervate care nu pot fi folosite în programele lor nicăieri, cu excepția scopului propus. Enumerăm conceptele de bază de care avem nevoie la început:

✎ 1) program - în limba engleză „program”, scris chiar la începutul codului, urmat de numele programului în latină și punct și virgulă. De exemplu: program suma; − un program numit Summa. Dar această parte a codului, numită antetul programului, poate să nu fie scrisă - este prezentă doar pentru claritate și arată ce problemă rezolvă acest program. Aici am folosit cuvântul „cod” - acesta este numele înregistrării text a programului.

✎ 2) întreg - în engleză înseamnă „întreg” (sau pur și simplu „întreg”), iar în Pascal este folosit pentru a desemna numere întregi cu semn de 32 de biți (8 octeți) din intervalul [-2147483648, 2147483647] . Ce înseamnă aceste numere mari, vom analiza mai târziu.

✎ 3) real - din engleză „real”, „real”, „real”, „real”. În Pascal, acest termen se referă la numere reale din intervalul [-1,8∙10 308 , 1,8∙10 308 ] . Acestea sunt numere foarte mari, dar sunt afișate 15 - 16 cifre semnificative.Apropo, tipurile de date întregi și reale din mediul de programare PascalABC.Net sunt întotdeauna evidențiate automat cu albastru.

✎ 4) const - analog al englezei. „constant”, adică „constant”, „constant”. În Pascal, aceasta este o valoare care nu poate fi schimbată. Este scris astfel:


Această intrare ar trebui luată așa cum este scrisă: numărul N este egal cu 12, S este egal cu 5, „pi” este egal cu 3,14 (ca și în matematică, se folosește doar un punct în loc de virgulă în Pascal). În ultima linie, am folosit o bară oblică dublă (două bare oblice), urmată de text - așa sunt scrise comentariile în Pascal, iar programul nu le percepe. Tot ce începe cu o bară oblică și până la sfârșitul rândului este un comentariu care este scris pentru a explica programul și este întotdeauna evidențiat într-o culoare diferită (în PascalABC.Net este verde, în Turbo Pascal acest tip de comentariu nu este folosit). Există un alt tip de comentariu - acesta (text inclus între paranteze, la fel ca aici, evidențiat și în verde) . Acest tip de comentariu poate acționa pentru mai multe rânduri la rând - de la începutul parantezei până la închiderea acestuia, iar compilatorul nu percepe tot ce se află în mijlocul unei astfel de construcții ca cod și pur și simplu îl omite.

De fapt, formatul de înregistrare const putin mai greu. Conform regulilor, trebuia să scriem:

1 2 3 4 const N: tip întreg;

Descriere:

")" onmouseout="toolTip()">întreg
= 12 ; //numărul N - tipul întreg S: tip întreg;

Descriere:
Reprezintă un număr întreg cu semn de 32 de biți.

Interval de valori: -2 147 483 648 .. 2 147 483 647")" onmouseout="toolTip()">întreg
= 5 ; //numărul S - tipul întreg pi: tip real;

Descriere:
Reprezintă un număr în virgulă mobilă cu precizie dublă.

Dimensiune: 8 octeți
Număr de cifre semnificative: 15 - 16
Interval de valori: -1,8∙10 308 .. 1,8∙10 308
")" onmouseout="toolTip()">real
= 3.14 ; //numărul „pi” - real

După declararea fiecărei valori, este specificat tipul acesteia, apoi este atribuită o valoare. Dar și intrarea anterioară este corectă, deoarece compilatorul Pascal este configurat să determine automat tipul constantei. Dar acest lucru nu se poate spune despre următorul tip de numere - variabile.

✎ 5) var - vine din engleză. „variabilă” („variabilă”, sau „modificabilă”), care în Pascal înseamnă o valoare care își poate schimba valoarea în timpul programului. Este scris astfel:


După cum se poate vedea din intrare, aici nu există semnul „=” - variabilele de același tip sunt recalculate (separate prin virgule) și numai tipul este indicat după două puncte. Variabilele N, m (întreg) și Q, r, t (real) din program pot schimba valori în cadrul întregului și, respectiv, real. Încă o notă: descrierea variabilelor vine întotdeauna după descrierea constantelor (constant) - mai întâi vine construcția const , iar apoi var .

✎ 6) începe - tradus din engleză înseamnă „începe” și Pascal înseamnă începutul programului principal în care sunt scrise comenzi (operatorii). După cuvânt ÎNCEPE punct și virgulă nu sunt incluse.

✎ 7) final - în engleză. „sfârșit”, iar în Pascal înseamnă același lucru (sfârșitul programului). După ultimul cuvânt Sfârşit există întotdeauna un punct. Am evidențiat cuvântul „ultimul” din cauza utilizării construcției inceput-sfarsit poate într-un alt caz: acestea sunt așa-numitele paranteze operator, care sunt folosite pentru a combina mai multe operații sub un singur operator. Dar mai multe despre asta mai târziu. Deci programul principal ar arăta astfel:

1 2 3 4 5 6 ÎNCEPE < оператор 1 > ; < оператор 2 > ; . . . . . . . < оператор N > ; Sfârşit.

Aici, instrucțiunile din corpul programului sunt comenzi diferite față de compilator.

✎ 8) scrie - în engleză înseamnă „a scrie”. Această instrucțiune afișează textul plasat în ea, motiv pentru care se numește instrucțiune de ieșire. Textul plasat în el este evidențiat cu albastru și scris astfel:

Scrie( „acest text este afișat pe ecran”);

Mesajul dintre paranteze și ghilimele va fi afișat în fereastra consolei (nu îl puteți pune doar între paranteze fără ghilimele). După executarea acestei instrucțiuni, vom vedea pe ecran:

acest text este afișat pe ecran

În această formă, operatorul de scriere este utilizat atunci când este necesar să se afișeze un indiciu, o explicație, un comentariu etc. Și de la dacă este necesar să se afișeze și o valoare numerică, să zicem, S = 50 de metri pătrați. m, atunci se folosește următorul format:

Scrie(, S);

Ca rezultat, obținem rezultatul pe ecran:

Valoarea zonei este: S = 50

Și dacă trebuie să afișați unitățile de măsură, trebuie să introduceți din nou textul între ghilimele după S:

Scrie( "Dimensiunea zonei este: S = ", S, "mp");

După executarea ultimei instrucțiuni de ieșire, obținem rezultatul pe ecran:

Dimensiunea suprafetei este: S = 50 mp

✎ 9) writeln - la fel ca write, dar după execuție, cursorul se va muta la următoarea linie.

✎ 10) citire - tradus din engleză înseamnă „citește”, deci citirea se numește operator de citire sau intrare de date. Scris ca read(N), ceea ce înseamnă că trebuie introdusă valoarea N, unde N este orice număr, sau text sau alt tip de variabilă. De exemplu, dacă trebuie să introducem vârsta unei persoane care are 32 de ani, o putem scrie astfel:


În prima linie a acestui cod, programul afișează întrebarea „ Ce vârstă ai?» și mută cursorul pe linia următoare (se termină cu ln); în a doua linie tipărim „Anul =" (un spațiu la început); apoi vedem operatorul readln(Year), ceea ce înseamnă nevoia de a introduce vârsta Anului (numărul 32); în cele din urmă, afișăm mesajele „Vârsta mea”, „32” și „ani. " la rândul său. Trebuie să fii atent la spații. Ca urmare a executării acestui cod, vom primi un mesaj:

Ce vârstă ai?
Anul = 32
Vârsta mea are 32 de ani

✎ 11) readln - la fel ca readln, numai cu o linie nouă. Într-adevăr, în exemplul de mai sus, după introducerea numărului An, scriem doar în rândul următor: „ Vârsta mea are 32 de ani».

Asta este tot pentru acum. Pe pagina următoare vom scrie primul nostru program, iar în programarea Pascal acestea vor fi ale noastre

În Pascal variabilele se caracterizează prin lor tip. Un tip este o proprietate a unei variabile, conform căreia o variabilă poate prelua un set de valori permise de acest tip și poate participa la un set de operațiuni permise pe acest 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țiuni permise dintr-o variabilă de acest tip și definește 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 definit de utilizator pe care programatorul îl definește). Programatorul își poate crea tipurile 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 din program sunt declarate în secțiunea TYPE după formatul:

[nume] = [tip]

Sistemul de tip 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.

Indicatori sunt formate din vederi simple și sunt folosite în programe pentru a seta adrese.

Tipuri procedurale sunt o inovație a limbajului Turbo Pascal și vă permit să vă referiți la subrutine ca și cum ar fi variabile.

Obiecte sunt, de asemenea, noi și sunt destinate a fi utilizate ca limbaj orientat pe obiecte.

Există 5 tipuri de tipuri de întregi în Pascal. Fiecare dintre ele caracterizează gama de valori acceptate și locul lor în memorie.

Când folosiți numere întregi, trebuie să vă ghidați după imbricarea tipurilor, de exemplu. tipurile de interval mai mici pot fi imbricate în tipuri de interval mai mari. Tipul Byte 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 exact î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 cu virgulă fixă ​​sau mobilă.

2358.8395

0.23588395*10 4

0,23588395*E 4

O poziție specială în Pascal este ocupată de tipul Comp, de fapt, este un întreg mare cu semn. Acest tip este compatibil cu toate tipurile reale și poate fi folosit pentru numere întregi mari. Când se reprezintă numere reale în virgulă mobilă, punctul zecimal este întotdeauna implicat înaintea mantisei din stânga sau cea mai înaltă, dar când se operează pe un număr, 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 cu fiecare număr se poate compara un anumit număr, care este un număr de serie; 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 tipului ordinal. PRED(A) = 5.

Funcția SUCC(x) - Returnează următoarea valoare a unui tip 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 în care sunt încărcate caracterele alfabetului, numerele arabe și caracterele speciale. Caracterele zonei de început sunt întotdeauna prezente pe tastatura computerului. Zona mai veche se numește alternativă, conține caractere ale alfabetelor naționale și diverse caractere speciale, precum și caractere pseudografice care nu corespund codului ASCII.

O valoare a tipului de caracter ocupă un octet în RAM. În program, valorile sunt incluse în apostrofe. De asemenea, valorile pot fi specificate sub forma codului său ASCII. În acest caz, numărul cu codul caracterului trebuie să fie precedat de semnul #.

C:= 'A'

Tip boolean (boolean).

Există două valori de tip boolean: True (True) și False (False). Variabilele de acest tip sunt specificate de cuvântul de serviciu BOOLEAN. O valoare booleană ocupă un octet în RAM. Valorile Adevărat și Fals corespund valorilor numerice 1 și 0.

Tip-gamă

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

[valoare minimă]…[valoare maximă]

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

Când definiți un tip de interval, 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 legate de cardinalitatea sa inferioară.

Tip enumerat

Acest tip se referă la tipurile ordinale și este specificat prin enumerarea acelor valori pe care le poate enumera. Fiecare valoare este denumită printr-un identificator și se află în lista încadrată în paranteze. Tipul enumerat este specificat în Tip:

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

Prima valoare este 0, a doua valoare este 1 și așa mai departe.

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 un set de șiruri de caractere de lungime arbitrară de până la 255 de caractere.

În program, tipul șirului este declarat de cuvântul String. Deoarece String este un tip de bază, acesta este declarat în limbaj și declararea unei variabile de tip String se face în Var. Când declarați o variabilă de tip șir în spatele String, este recomandabil să indicați lungimea șirului între paranteze drepte. Specifică un număr întreg între 0 și 255.

Fam: String;

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

  • Serghei Savenkov

    un fel de recenzie „rare”... parcă s-ar grăbi undeva