Tipuri de date Pascal. Tipuri de date simple

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ă în calculator Numerele întregi și reale sunt reprezentate diferit: 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) - la urma urmei, 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 le pot lua valorile de acest tip;
  • 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 mantisă (punctul „plutește”, de unde și numele „înregistrarea unui număr în virgulă mobilă”) și în același timp schimbând 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ă doar una. cuvânt cheie Const , 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';

cel mai frecvent în matematică tipuri numerice- aceasta este întreg numere care reprezintă un număr infinit de valori discrete și valabil numere care reprezintă un continuum nelimitat de valori.

Descrierea tipurilor de date numerice (numere întregi) Pascal

În cadrul aceluiași limbaj, pot fi implementate diferite submulțimi ale mulțimii de numere întregi. Gama de valori posibile ale tipurilor numerice întregi depinde de reprezentarea lor internă, care poate fi de unul, doi sau patru octeți. Deci, Pascal 7.0 utilizează următoarele tipuri de date numerice întregi:

Cu întreg tipuri de date numerice Pascal poate efectua următoarele operații:

  • Aritmetic:
    adăugare(+);
    scădere(-);
    multiplicare(*);
    restul diviziunii (mod);
    exponentiarea;
    plus unar (+);
    minus unar (-).
  • Operațiuni de relație:
    relație de egalitate (=);
    relație de inegalitate (<>);
    raport mai mic (<);
    raport mai mare decât (>);
    raportul nu mai mic decât (>=);
    nu mai mult (<=).

Când acţionează cu tipuri de date numerice întregi tipul rezultatului va corespunde tipului operanzilor, iar dacă operanzii sunt de diferite tipuri întregi, tipului operandului care are cardinalitatea maximă (gamă maximă de valori). Depășirea posibilă a rezultatului nu este controlată în niciun fel (este important!) , ceea ce poate duce la erori.

O atenție deosebită trebuie acordată operațiunii de divizare a tipurilor de date numerice întregi. În Pascal sunt permise două operații de împărțire, care sunt respectiv notate "/" și div. Trebuie să știți că rezultatul împărțirii „/” nu este un întreg, dar numar real(acest lucru este adevărat chiar dacă împărțiți 8 la 2, adică 8/2=4,0). Divizia div este diviziune intregi, adică tipul de rezultat întreg.

Descrierea tipurilor de date numerice (reale) Pascal

Tipul de date numerice reale se referă la un subset de numere reale care pot fi reprezentate într-un așa-numit format în virgulă mobilă cu un număr fix de cifre. Cu virgulă mobilă, fiecare tip de date numerice este reprezentat ca două grupuri de cifre. Primul grup de cifre se numește mantisa, al doilea - ordinea. În general, un tip de date numerice în formă de virgulă mobilă poate fi reprezentat astfel: X= (+|-)MP (+ | -) r , unde M este mantisa numărului; r este ordinea numărului (r este un număr întreg); P este baza sistemului numeric. De exemplu, pentru o bază zecimală, reprezentarea lui 2E-1 (aici E este baza sistemului numeric zecimal) va arăta astfel: 2*10 -1 =0.2, iar reprezentarea lui 1.234E5 va corespunde cu: 1.234* 105 =123400,0.

Pascal folosește următoarele tipuri de numere reale, care definesc un număr arbitrar doar cu o precizie finită, în funcție de formatul intern al numărului real:

Când se descrie o variabilă reală de tip real, o variabilă de 4 octeți va fi creată în memoria computerului. În acest caz, 3 octeți vor fi dați sub mantise și unul - sub ordin.

Puteți efectua următoarele operații pe tipuri de date numerice reale:

  • Aritmetic:
    adăugare (+);
    scădere(-);
    multiplicare(*);
    Divizia(/);
    exponentiarea;
    plus unar (+);
    minus unar (-).
  • Operațiuni de relație:
    relație de inegalitate (<>);
    raport mai mic (<);
    raport mai mare decât (>);
    raportul nu mai mic decât (>=);
    nu mai mult (<=).

După cum puteți vedea, Pascal se caracterizează printr-o gamă bogată de tipuri reale, dar acces la tipuri de date numerice singur, dublași extins posibil numai în moduri speciale de compilare. Aceste tipuri de date numerice sunt concepute pentru suport hardware pentru aritmetica în virgulă mobilă și pentru utilizarea lor eficientă, PC-ul trebuie să includă un coprocesor matematic.

O poziție specială în Pascal este ocupată de un tip de date numerice. 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, tipul de date numerice compîn expresii, este pe deplin compatibil cu alte tipuri reale: toate operațiile reale sunt definite pe el, poate fi folosit ca argument al funcțiilor matematice etc.

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 tip întreg, care poate fi folosit în expresii precum 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ă este în dreapta semnului de atribuire, iar o variabilă reală este în stânga, compilatorul va face automat conversia tipurilor de date numerice. Conversia inversă este tip automat real pe tip întreg nu este posibil în Pascal. Să ne amintim câți octeți sunt alocați pentru variabile precum întregși real: sub tipul întreg date întreg Sunt alocați 2 octeți de memorie, iar sub real - 6 octeți. Pentru conversie realîn întreg există două funcții încorporate: rundă(x) rotunjește un x real la cel mai apropiat număr întreg, trunchi(x) trunchiază un număr real prin eliminarea părții fracționale.

Conceptul de tip este unul dintre conceptele fundamentale ale oricărui limbaj de programare. Obiectele (constante, variabile, funcții, expresii) pe care programul operează sunt de un anumit tip.

Tip de este setul de valori pe care obiectele programului le pot lua și setul de operații permise asupra acestor valori.

De exemplu, valorile 1 și 2 sunt de tip întreg, pot fi adunate, înmulțite și pot fi efectuate alte operații aritmetice. Semnificațiile „monitor” și „Pascal” sunt de natură lingvistică, au propriul set de operații valide. În cele mai frecvent utilizate limbi, pot fi folosite numai tipuri bine definite, cunoscute. Pascal, împreună cu tipurile standard găsite în alte limbaje de nivel înalt, permite programatorului să-și creeze propriile tipuri.

Toate tipurile permise în limba Pascal sunt împărțite în două grupuri mari: simplu și complex (structurat).

Tip de Gamă Mantissa, semne Memoria necesară (octeți)
REAL 2,9*10E-39..1,7*10E38 11-12
SINGUR 1,5*10E-45..3,4*10E38 7-8
DUBLA 5.0*10E-324..1.7*10E308 15-16
EXTINS 1,9*10E-4951..1,1*10E4932 19-20
COMP -2E+63+1..2E+63-1 10-20

Utilizarea eficientă a tipurilor SINGLE, DOUBLE, EXTEND, COMP este posibilă numai atunci când este inclusă directiva ($N+). În mod implicit, este în starea oprită. Pentru a rezolva problemele de inginerie și economice, valorile de tip REAL sunt suficiente.

Exemplu

Var Res, Summa, Itog: real;

Bulevski tipul de date este descris de identificatorul BOOLEAN. Variabilele și constantele de acest tip pot lua doar una din două valori: TRUE (adevărat) sau FALSE (fals).

Exemplu

Var Sel1, Sel2: boolean;

A,B,C,D: boolean;

Expresiile de tip boolean ocupă 1 octet de memorie și sunt folosite în expresii logice și relaționale, precum și pentru a controla ordinea de execuție a instrucțiunilor programului.

Literal (caracter) tipul este descris de identificatorul standard CHAR. Constantele și variabilele de acest tip pot lua una dintre valorile tabelului de coduri ASCII. Valoarea unei constante sau variabile de acest tip este inclusă în apostrofe.

De exemplu, Var Bukva, Znak, Simbol: char;

Litera:='A'; Semn:='+'; Simbol:='!'

Variabilele de tip caracter ocupă 1 octet în memorie. Utilizarea datelor de tip char în expresii aritmetice este interzisă. Operațiunile de comparare pot fi aplicate valorilor literale, al căror rezultat depinde de numărul variabilei sau constantei literale din tabelul de coduri.

Pe lângă tipurile de date standard, Pascal acceptă tipuri scalare, definit de utilizator. Acestea includ enumerabilși interval tipuri . Aceste tipuri de date ocupă 1 octet de memorie, astfel încât orice tip definit de utilizator nu poate conține mai mult de 255 de elemente. Utilizarea lor îmbunătățește semnificativ vizibilitatea programului, facilitează găsirea erorilor și economisește memorie.

Tip enumerat este specificat direct prin listarea tuturor valorilor pe care le poate lua o variabilă de un anumit tip. Valorile individuale sunt separate prin virgule, iar întreaga listă este inclusă în paranteze.

Format

tip<имя типа>=(<значение1, значение2, ..., значениеN>);

Var<идентификатор, ...>: < имя типа>;

Exemplu

Tip Sezon =(Primăvara, Vara, Toamna, Iarna);

Var S1, S2: Sezon;

Toamna: (septembrie, octombrie, noiembrie);

În acest exemplu, este afișat tipul de date declarat explicit al utilizatorului sezon. Semnificațiile lor sunt determinate - denumirile anotimpurilor. Variabilele S1 și S2 pot lua doar una dintre valorile enumerate. Încercarea de a le atribui orice altă valoare va cauza o întrerupere a software-ului. Al treilea tip de enumerare este anonim (nu are nume) și este specificat prin enumerarea valorilor în secțiunea Var. Toamna este o variabilă de acest tip și poate lua valorile Septembrie, Octombrie, Nowember. Astfel, se poate da orice tip, dar acest lucru nu este întotdeauna acceptabil. Prima modalitate este cu siguranță mai de înțeles și mai în concordanță cu natura limbajului Pascal.

tip de interval vă permite să setați două constante care definesc limitele intervalului de valori pentru această variabilă. Ori de câte ori o operație este efectuată pe o variabilă de tip interval, compilatorul generează rutine de verificare pentru a determina dacă valoarea variabilei rămâne în intervalul specificat. Ambele constante trebuie să aparțină unuia dintre tipurile standard, cu excepția reală. Valoarea primei constante trebuie să fie neapărat mai mică decât valoarea celei de-a doua.

Format

tip<имя типа> = <константа1> .. <константа2>;

Var<идентификатор>: < имя типа>;

Exemplu

Tip Zile = 1.. 31;

Var Work_d, Free_d: Zile;

În acest exemplu, variabilele Work_d, Free_d sunt de tip zileși poate lua orice valoare din intervalul 1 . . 31.

În afara intervalului declanșează o întrerupere software.

Puteți defini un tip de interval specificând limitele intervalului nu prin valori constante, ci după numele acestora:

Const Min = 1; max=31;

Tip Zile = Min .. Max;

Var Work_d, Free_d: Zile;

Tipuri structurate datele se bazează pe tipuri scalare și pot conține diverse combinații ale acestora. Ele definesc un set ordonat de elemente scalare și se caracterizează prin tipul componentelor lor. Pascal oferă următoarele tipuri de date structurate:

linie - o secvență de caractere închise în apostrofe;

matrice - tip de date structurate constând dintr-un număr fix de elemente de același tip, accesate prin index ;

Multe - un set de obiecte selectate în funcție de un anumit atribut sau grup de atribute, care poate fi considerat ca un întreg;

record - un set de un număr fix de componente de diferite tipuri;

fişier- o succesiune de componente de același tip și aceeași lungime.

Două tipuri mai structurate - procedurale și tip de obiect(obiectiv) - este dificil să potriviți datele în reprezentarea obișnuită.

Poza 1- Un set de tipuri de bază ale limbajului Pascal

Î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 pe o variabilă de un anumit tip și definește reprezentările de date în memorie cu acces aleator calculator.

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 deja definit de utilizator tipuri. 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 limbii TurboPascal, și vă permit să accesați 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 unul.

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. Simboluri zona initiala sunt întotdeauna prezente pe tastatura PC-ului. 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.

Lecția discută 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 se numește corect în programare - concatenare - este îmbinarea obișnuită a șirurilor de caractere, în timp ce adăugarea datelor numerice are loc bit cu bit, în plus, numerele fracționale și întregi sunt adăugate și în diferite moduri. moduri. Același lucru este valabil și pentru alte operațiuni.

Să aruncăm o privire la cele mai comune Tipuri Pascal date.

Tipuri de date întregi în Pascal

Tip de 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 avut în vedere faptul că atunci când scrieți programe în Pascal întreg(tradus din engleză ca număr întreg) este cel mai des folosit, deoarece intervalul de valori este cel mai solicitat. Dacă este nevoie de o gamă mai largă, utilizați longint(întreg lung, tradus din engleză întreg lung). Tip de octet in Pascal se foloseste atunci cand nu este nevoie sa lucrezi cu valori negative, acelasi lucru este valabil si 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; varx,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

Atenție la cum Se folosesc comentarii Pascal. În exemplu, comentarii, 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 clarifica fragmentele de cod.

Sarcina 3. Populația Moscovei este de a = 9.000.000 de locuitori. Populația din Noul Vasiukov este egală cu 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 general în programare este numele numerelor fracționale.

Tip de 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 în Pascal este cel mai frecvent utilizat dintre tipurile reale.

Mai sus au fost prezentate tipuri de date simple în Pascal, care includ:

  • Ordinal
  • întreg
  • joc de inteligență
  • Simbolic
  • enumerate
  • Interval
  • Real

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

  • formatul folosește fie un număr, ceea ce înseamnă numărul de poziții atribuite acestui număr în formă exponențială;
  • p:=1234,6789; WriteIn(p:6:2); (1234,68)

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

    Constante în Pascal

    Adesea, programul știe dinainte că variabila va lua o anumită valoare și nu o va modifica pe parcursul 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) sfârșit .

    const x=17; varmyname:șir; î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 lăsa liniuțe după ieșirea valorilor variabilelor, astfel încât valorile să nu se „contopească” între ele, se obișnuiește să se indice prin două puncte câte caractere trebuie furnizate pentru ieșire a valorii:


    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.

    • Operatorul inc în Pascal, pronunțat ca increment, este procedura standard Pascal, care înseamnă increment cu unu.
    • Exemplu de operare Inc:

      x:=1; inc(x); (Se mărește x cu 1, adică x=2) scrieți n (x)

      O utilizare mai complexă a procedurii inc:
      Inc(x,n) unde x este un tip ordinal, n este un tip întreg; procedura inc incrementează 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ă astfel:
    • a: =- 9; b:=abs(a); (b=9)

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

    • Operatorul div din Pascal este unul folosit în mod obișnuit, deoarece o serie de sarcini sunt asociate cu acțiunea de divizare întreg.
    • Restul diviziei sau al operatorului mod în pascal este, de asemenea, indispensabil pentru rezolvarea unui număr de probleme.
    • De remarcat este functie standard impar Pascal, care determină dacă un întreg este impar. Adică returnează adevărat (adevărat) pentru numerele impare, fals (fals) pentru numerele pare.
    • Un exemplu de utilizare a funcției impar:

      varx:intger; beginx:=3; scrieln(sqr(x)); (răspunsul 9) sfârşitul.

    • Operația de exponențiere în Pascal lipsind 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 o putere (a>0).

      Cu toate acestea, în compilator pascal abc exponentiarea este mult mai usoara:

      varx:intger; beginx:=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 de bază a cutiei și volumul acesteia
    (S = latime * grosime, V = suprafata * inaltime)

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

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



    Se încarcă...
    Top