Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ

Në Pascal, lloji i vërtetë i të dhënave është. Llojet e të dhënave të adresës

më e zakonshme në matematikë llojet numerike- Kjo e tërë numra që përfaqësojnë një numër të pafund vlerash diskrete, dhe e vlefshme numra që përfaqësojnë një vazhdimësi të pakufizuar vlerash.

Përshkrimi i llojeve të të dhënave numerike (numrat e plotë) Pascal

Brenda së njëjtës gjuhë, nëngrupe të ndryshme të grupit të numrave të plotë mund të zbatohen. Gama e vlerave të mundshme të llojeve numerike të plotë varet nga përfaqësimi i tyre i brendshëm, i cili mund të jetë një, dy ose katër bajt. Pra, Pascal 7.0 përdor llojet e mëposhtme të të dhënave numerike me numra të plotë:

Me tërësi llojet e të dhënave numerike Pascal mund të kryejë veprimet e mëposhtme:

  • Aritmetika:
    shtimi (+);
    zbritja (-);
    shumëzimi (*);
    pjesa e mbetur e ndarjes (mod);
    fuqizim;
    plus unar (+);
    unary minus (-).
  • Operacionet e marrëdhënieve:
    relacioni i barazisë (=);
    relacioni i pabarazisë (<>);
    raport me pak (<);
    raport më i madh se (>);
    raport jo më pak se (>=);
    raport jo më shumë (<=).

Kur vepron me Llojet e të dhënave numerike të plota lloji i rezultatit do të korrespondojë me llojin e operandëve, dhe nëse operandët janë të llojeve të ndryshme të numrave të plotë, me llojin e operandit që ka kardinalitetin maksimal (gama maksimale e vlerave). Rrjedha e rezultatit të mundshëm nuk kontrollohet në asnjë mënyrë (është e rëndësishme!) , të cilat mund të çojnë në gabime.

Vëmendje e veçantë duhet t'i kushtohet funksionimit të ndarjes së llojeve të të dhënave numerike të plota. Në Pascal, lejohen dy operacione të ndarjes, të cilat shënohen përkatësisht "/" dhe div. Duhet të dini se rezultati i pjesëtimit "/" nuk është një numër i plotë, por numër real(kjo është e vërtetë edhe nëse pjesëtoni 8 me 2, d.m.th. 8/2=4.0). Ndarja e ndarjes është ndarja e numrave të plotë, d.m.th. lloji i rezultatit të numrit të plotë.

Përshkrimi i llojeve të të dhënave numerike (reale) Pascal

Lloji i të dhënave numerike reale i referohet një nëngrupi numrash realë që mund të përfaqësohen në të ashtuquajturin format me pikë lundruese me një numër fiks shifrash. Me pikë lundruese, çdo lloj i të dhënave numerike përfaqësohet si dy grupe shifrash. Grupi i parë i shifrave quhet mantisa, i dyti - rendi. Në përgjithësi, një lloj i të dhënave numerike në formën e pikës lundruese mund të përfaqësohet si më poshtë: X= (+|-)MP (+ | -) r, ku M është mantisa e numrit; r është rendi i numrit (r është një numër i plotë); P është baza e sistemit të numrave. Për shembull, për një bazë dhjetore, paraqitja e 2E-1 (këtu E është baza e sistemit të numrave dhjetorë) do të duket si: 2*10 -1 =0.2, dhe paraqitja e 1.234E5 do të korrespondojë me: 1.234* 10 5 =123400.0.

Pascal përdor llojet e mëposhtme të numrave realë, të cilët përcaktojnë një numër arbitrar vetëm me njëfarë saktësie të fundme, në varësi të formatit të brendshëm të numrit real:

Kur përshkruani një ndryshore reale të tipit real, në memorien e kompjuterit do të krijohet një variabël 4 bajt. Në këtë rast, 3 bajt do të jepen nën mantisa, dhe një - sipas rendit.

Ju mund të kryeni veprimet e mëposhtme në llojet reale të të dhënave numerike:

  • Aritmetika:
    shtimi (+);
    zbritja (-);
    shumëzimi (*);
    ndarje (/);
    fuqizim;
    plus unar (+);
    unary minus (-).
  • Operacionet e marrëdhënieve:
    relacioni i pabarazisë (<>);
    raport me pak (<);
    raport më i madh se (>);
    raport jo më pak se (>=);
    raport jo më shumë (<=).

Siç mund ta shihni, Pascal karakterizohet nga një gamë e pasur llojesh reale, por akses në llojet e të dhënave numerike beqare, dyfishtë dhe zgjatur e mundur vetëm në mënyra të veçanta përpilimi. Këto lloje të të dhënave numerike janë krijuar për mbështetjen harduerike të aritmetikës me pikë lundruese dhe për përdorimin efektiv të tyre, PC duhet të përfshijë një bashkëprocesor matematikor.

Një pozicion i veçantë në Pascal është i zënë nga një lloj i të dhënave numerike. komp, i cili trajtohet si numër real pa pjesë eksponenciale dhe thyesore. Në fakt, kompështë një numër i plotë "i madh" i nënshkruar që ruan 19..20 shifra dhjetore të rëndësishme. Në të njëjtën kohë, lloji i të dhënave numerike komp në shprehje, është plotësisht i pajtueshëm me llojet e tjera reale: të gjitha veprimet reale përcaktohen në të, mund të përdoret si argument i funksioneve matematikore, etj.

Rreth konvertimit të llojeve të të dhënave numerike në Pascal

Konvertimet e nënkuptuara (automatike) të llojeve të të dhënave numerike janë pothuajse të pamundura në Pascal. Një përjashtim bëhet vetëm për llojin numër i plotë, e cila lejohet të përdoret në shprehje si reale. Për shembull, nëse variablat deklarohen si më poshtë:

VarX: numër i plotë; Y: e vërtetë

Pastaj operatori

do të jetë sintaksisht e saktë, megjithëse një shprehje me numër të plotë është në të djathtë të shenjës së caktimit, dhe një ndryshore reale është në të majtë, përpiluesi do të bëjë konvertimin e llojeve të të dhënave numerike automatikisht. Konvertimi i kundërt është automatikisht i llojit reale për lloj numër i plotë nuk është e mundur në Pascal. Le të kujtojmë se sa bajt janë ndarë për variabla si numër i plotë dhe reale: sipas llojit të të dhënave të numrit të plotë numër i plotë Alokohen 2 bajtë memorie, dhe nën reale - 6 bajtë. Për konvertim realenumër i plotë ka dy funksione të integruara: rrumbullakët(x) rrumbullakos një x real në numrin e plotë më të afërt, trungu(x) shkurton një numër real duke hedhur poshtë pjesën thyesore.

Në Pascal variablat karakterizohen nga e tyre lloji. Një lloj është një veti e një ndryshoreje, sipas së cilës një ndryshore mund të marrë një grup vlerash të lejuara nga ky lloj dhe të marrë pjesë në një grup operacionesh të lejuara për këtë lloj.

Një lloj përcakton grupin e vlerave të vlefshme që mund të marrë një ndryshore e një lloji të caktuar. Ai gjithashtu përcakton grupin e operacioneve të lejuara nga një variabël i këtij lloji dhe përcakton paraqitjen e të dhënave në RAM-in e kompjuterit.

Për shembull:

n:numër i plotë;

Pascal është një gjuhë statike, që do të thotë se lloji i një ndryshore përcaktohet kur deklarohet dhe nuk mund të ndryshohet. Gjuha Pascal ka një sistem të zhvilluar llojesh - të gjitha të dhënat duhet t'i përkasin një lloji të të dhënave të njohur më parë (ose një tip standard i krijuar gjatë zhvillimit të gjuhës ose një lloj i përcaktuar nga përdoruesi që përcakton programuesi). Programuesi mund të krijojë llojet e tij me një strukturë kompleksiteti arbitrar bazuar në lloje standarde, ose lloje të përcaktuara tashmë nga përdoruesi. Numri i llojeve të krijuara është i pakufizuar. Llojet e personalizuara në program deklarohen në seksionin TYPE sipas formatit:

[emri] = [lloji]

Sistemi i tipit standard ka një strukturë të degëzuar, hierarkike.

Primar në hierarki janë lloje të thjeshta. Lloje të tilla janë të pranishme në shumicën e gjuhëve programuese dhe quhen të thjeshta, por në Pascal ato kanë një strukturë më komplekse.

Llojet e strukturuara ndërtohen sipas rregullave të caktuara nga lloje të thjeshta.

Treguesit janë formuar nga pamje të thjeshta dhe përdoren në programe për vendosjen e adresave.

Llojet procedurale janë një risi e gjuhës Turbo Pascal dhe ju lejojnë t'i referoheni nënprogrameve sikur të ishin variabla.

Objektet janë gjithashtu të reja dhe synohen të përdoren si gjuhë e orientuar drejt objektit.

Ekzistojnë 5 lloje të llojeve të numrave të plotë në Pascal. Secila prej tyre karakterizon gamën e vlerave të pranuara dhe vendin e tyre në kujtesë.

Gjatë përdorimit të numrave të plotë, duhet të udhëhiqet nga foleja e llojeve, d.m.th. Llojet e diapazonit më të vogël mund të futen brenda llojeve të diapazonit më të madh. Lloji Byte mund të futet në të gjitha llojet që zënë 2 dhe 4 bajt. Në të njëjtën kohë, tipi Short Int, i cili zë 1 bajt, nuk mund të futet në llojin Word, pasi nuk ka vlera negative.

Ekzistojnë 5 lloje reale:

Llojet e numrave të plotë përfaqësohen saktësisht në një kompjuter. Ndryshe nga llojet e numrave të plotë, vlera e llojeve reale përcakton një numër arbitrar vetëm me një saktësi të kufizuar, në varësi të formatit të numrit. Numrat realë paraqiten në një kompjuter me pikë fikse ose lundruese.

2358.8395

0.23588395*10 4

0.23588395*E 4

Një pozicion i veçantë në Pascal është i zënë nga lloji Comp, në fakt, ai është një numër i plotë i madh i nënshkruar. Ky lloj është i pajtueshëm me të gjitha llojet reale dhe mund të përdoret për numra të plotë të mëdhenj. Kur përfaqësoni numra realë me pikë lundruese, pika dhjetore nënkuptohet gjithmonë përpara mantisës së majtë ose më të lartë, por kur vepron mbi një numër, ajo zhvendoset majtas ose djathtas.

Llojet rendore

Llojet e zakonshme kombinojnë disa lloje të thjeshta. Kjo perfshin:

  • të gjitha llojet e numrave të plotë;
  • lloji i karakterit;
  • tip boolean;
  • diapazoni i tipit;
  • lloji i numëruar.

Tiparet e zakonshme për llojet rendore janë: çdo lloj ka një numër të kufizuar vlerash të mundshme; vlera e këtyre llojeve mund të renditet në një mënyrë të caktuar dhe me çdo numër mund të krahasohet një numër i caktuar, që është një numër serial; vlerat ngjitur të llojeve rendore ndryshojnë nga një.

Për vlerat e tipit rendor, mund të aplikohet funksioni ODD(x), i cili kthen numrin rendor të argumentit x.

Funksioni PRED(x) - kthen vlerën e mëparshme të tipit rendor. PRED(A) = 5.

Funksioni SUCC(x) - Rikthen vlerën tjetër të një lloji rendor. SUCC(A) = 5.

Lloji i personazhit

Vlerat e një lloji karakteresh janë 256 karaktere nga grupi i lejuar nga tabela e kodeve të kompjuterit që përdoret. Zona fillestare e këtij grupi, pra diapazoni nga 0 në 127, korrespondon me grupin e kodeve ASCII ku ngarkohen karakteret e alfabetit, numrat arabë dhe karakteret speciale. Karakteret e zonës fillestare janë gjithmonë të pranishme në tastierën e kompjuterit. Zona e vjetër quhet alternative, përmban karaktere të alfabeteve kombëtare dhe karaktere të ndryshme të veçanta, dhe karaktere pseudografike që nuk korrespondojnë me kodin ASCII.

Një vlerë e tipit të karakterit zë një bajt në RAM. Në program, vlerat janë të mbyllura në apostrofa. Gjithashtu, vlerat mund të specifikohen në formën e kodit të tij ASCII. Në këtë rast, numri me kodin e karakterit duhet të paraprihet nga një shenjë #.

C:= 'A'

Lloji boolean (boolean).

Ekzistojnë dy vlera të tipit Boolean: True (True) dhe False (False). Variablat e këtij lloji specifikohen me fjalën e shërbimit BOOLEAN. Një vlerë Boolean zë një bajt në RAM. Vlerat True dhe False korrespondojnë me vlerat numerike 1 dhe 0.

Lloji-varg

Ekziston një nëngrup i llojit të tij bazë, i cili mund të jetë çdo lloj rendor. Lloji i diapazonit përcaktohet nga kufijtë brenda llojit bazë.

[min-vlera]…[vlera maksimale]

Lloji i diapazonit mund të specifikohet në seksionin Lloji si një lloj specifik, ose drejtpërdrejt në seksionin Var.

Kur përcaktoni një lloj vargu, duhet të udhëhiqet nga:

  • kufiri i majtë nuk duhet të kalojë kufirin e djathtë;
  • një lloj vargu trashëgon të gjitha vetitë e tipit bazë, por me kufizime që lidhen me kardinalitetin e tij më të ulët.

Lloji i numëruar

Ky lloj i referohet llojeve rendore dhe specifikohet duke renditur ato vlera që mund të numërojë. Çdo vlerë emërtohet nga një identifikues dhe ndodhet në listën e vendosur në kllapa. Lloji i numëruar është specifikuar në Lloji:

popuj = (burra, gra);

Vlera e parë është 0, vlera e dytë është 1, e kështu me radhë.

Fuqia maksimale 65535 vlera.

lloji i vargut

Tipi i vargut bën pjesë në grupin e tipave të strukturuar dhe përbëhet nga tipi bazë Char. Lloji i vargut nuk është tip rendor. Ai përcakton një grup vargjesh karakteresh me gjatësi arbitrare deri në 255 karaktere.

Në program, lloji i vargut deklarohet me fjalën String. Meqenëse String është një lloj bazë, ai deklarohet në gjuhë dhe deklarimi i një ndryshoreje të tipit String bëhet në Var. Kur deklaroni një variabël të llojit të vargut pas String, këshillohet të tregoni gjatësinë e vargut në kllapa katrore. Përcakton një numër të plotë midis 0 dhe 255.

Fam: String;

Specifikimi i gjatësisë së vargut i lejon kompajlerit të ndajë numrin e caktuar të bajteve në RAM për variablin e dhënë. Nëse gjatësia e vargut nuk është e specifikuar, atëherë përpiluesi do të ndajë numrin maksimal të mundshëm të bajteve (255) për vlerën e kësaj ndryshore.

Agjencia Federale për Arsimin

abstrakte

"LLOJET E TË DHËNAVE NË PASCAL"

1. Llojet e të dhënave

Çdo të dhënë, d.m.th. konstantet, variablat, vetitë, vlerat ose shprehjet e funksionit karakterizohen nga llojet e tyre. Një lloj përcakton grupin e vlerave të vlefshme që mund të ketë një objekt, si dhe grupin e operacioneve të vlefshme që mund të zbatohen në të. Përveç kësaj, lloji përcakton edhe formatin e paraqitjes së brendshme të të dhënave në kujtesën e PC.

Në përgjithësi, gjuha Object Pascal karakterizohet nga një strukturë e degëzuar e llojeve të të dhënave (Fig. 1.1). Gjuha ofron një mekanizëm për krijimin e llojeve të reja, në mënyrë që numri i përgjithshëm i llojeve të përdorura në program të jetë arbitrarisht i madh.

Të dhënat e përpunuara në program ndahen në variabla, konstante dhe literale:

Konstante janë të dhëna, vlerat e të cilave vendosen në seksionin e deklarimit konstant dhe nuk ndryshojnë gjatë ekzekutimit të programit.

Variablat janë deklaruar në seksionin e deklarimit të ndryshoreve, por ndryshe nga konstantet, ato i marrin vlerat e tyre tashmë gjatë ekzekutimit të programit dhe këto vlera mund të ndryshohen. Konstantet dhe variablat mund të referohen me emër.

Literal nuk ka identifikues dhe përfaqësohet drejtpërdrejt nga vlera në tekstin e programit.

Lloji përcakton grupin e vlerave që mund të marrin elementët e të dhënave dhe grupin e operacioneve të lejuara në to.

Ky dhe katër kapitujt në vijim ofrojnë një përshkrim të detajuar të secilit lloj.

1.1 Llojet e thjeshta

Llojet e thjeshta përfshijnë llojet rendore, reale dhe datë-kohë.

Llojet rendore ndryshojnë në atë që secila prej tyre ka një numër të kufizuar vlerash të mundshme. Këto vlera mund të renditen në një mënyrë të caktuar (prandaj emri i llojeve) dhe, për rrjedhojë, secila prej tyre mund të shoqërohet me një numër të plotë - numrin rendor të vlerës.

Llojet reale, në mënyrë rigoroze, kanë gjithashtu një numër të fundëm vlerash, i cili përcaktohet nga formati i paraqitjes së brendshme të një numri real. Sidoqoftë, numri i vlerave të mundshme të llojeve reale është aq i madh sa nuk është e mundur të lidhet një numër i plotë (numri i tij) me secilën prej tyre.

lloji datë-kohë projektuar për të ruajtur datën dhe kohën. Në fakt, ai përdor formatin real për këto qëllime.

1.1.1 Llojet rendore

Llojet rendore përfshijnë (shih Figurën 1.1) numrat e plotë, boolean, karaktere, enum dhe varg. Për cilindo prej tyre është i zbatueshëm funksioni Ord(x), i cili kthen numrin rendor të vlerës së shprehjes X.


Oriz. 1.1 - Struktura e llojeve të të dhënave

Për e tërë tipet, funksioni ord(x) kthen vlerën e vetë x, domethënë Ord(X) = x për x që i përket ndonjë e tërë lloji. Aplikimi i urdhrit (x) në logjike , simbolike dhe të numëruara llojet jep një numër të plotë pozitiv në rangun 0 deri në 1 ( tip boolean), nga 0 në 255 ( simbolike), nga 0 në 65535 ( të numërueshme). Lloji-varg ruan të gjitha vetitë e tipit rendor themelor, kështu që rezultati i aplikimit të funksionit ord(x) në të varet nga vetitë e atij tipi.

Funksionet mund të aplikohen gjithashtu për llojet rendore:

parashikoj (x)- kthen vlerën e mëparshme të tipit rendor (vlera që i përgjigjet ordit rendor (x) -1, d.m.th. ord(pred(x)) = ord(x) - 1;

succ(x)- kthen vlerën tjetër të tipit rendor që i korrespondon ordit rendor(x) + 1, pra ord(Succ(x)) = ord(x) + 1.

Për shembull, nëse programi përcakton një variabël

atëherë funksioni PRED(c) do të kthejë karakterin "4" dhe funksioni SUCC(c) do të kthejë karakterin "6".

Nëse imagjinojmë ndonjë lloj rendor si një grup vlerash të renditura që rriten nga e majta në të djathtë dhe që zënë një segment të caktuar në boshtin e numrave, atëherë funksioni pred (x) nuk është përcaktuar për skajin e majtë, dhe succ (x) - për skajin e djathtë të këtij segmenti.

Llojet e numrave të plotë . Gama e vlerave të mundshme për llojet e numrave të plotë varet nga përfaqësimi i tyre i brendshëm, i cili mund të jetë një, dy, katër ose tetë bajt. Në tabelë. 1.1 liston emrat e llojeve të numrave të plotë, gjatësinë e paraqitjes së tyre të brendshme në bajt dhe gamën e vlerave të mundshme.

Tabela 1.1 - Llojet e numrave të plotë

Emri Gjatësia, bajt Gama e vlerave
kardinal 4 0. .. 2 147 483 647
byte 1 0...255
Shkurt 1 -128...+127
Smallint 2 -32 768...+32 767
fjalë 2 0...65 535
Numër i plotë 4
Longint 4 -2 147 483 648...+2 147 483 647
int64 8 -9*1018...+9*1018
fjalë e gjatë 4 0. . .4 294 967 295

Llojet fjalë e gjatë dhe int64 prezantuar për herë të parë në versionin 4, dhe llojet Smallint dhe kardinal mungon në Delphi 1. Lloji numër i plotë për këtë version, ai merr 2 bajt dhe ka një gamë vlerash nga -32768 në +32767, d.m.th., njësoj si Smallint .

Kur përdoren procedura dhe funksione me parametra të numrave të plotë, duhet të udhëhiqet nga "foleja" e llojeve, d.m.th. kudo që mund të përdoret fjalë, lejohet përdorimi byte(por jo anasjelltas) Longint"hyn" Smallint, e cila nga ana e saj përfshin Shkurt .

Lista e procedurave dhe funksioneve të zbatueshme për llojet e numrave të plotë është dhënë në tabelë. 1.2. Shkronjat b, s, w, i, l tregojnë përkatësisht shprehje të tipit byte , Shortint, Word, Integer dhe Longint ,

x është një shprehje e ndonjë prej këtyre llojeve; shkronjat vb, vs, vw, vi, vl, vx tregojnë variabla të llojeve përkatëse. Një parametër opsional tregohet në kllapa katrore.

Tabela 1.2 - Procedurat dhe funksionet standarde të aplikueshme për llojet e numrave të plotë

Apelim Lloji i rezultatit Veprimi
abs (x) x Kthen modulin x
chr(b) Char Kthen një karakter sipas kodit të tij
dhjetor (vx[, i]) - Zvogëlon vlerën e vx me i, dhe në mungesë të i - me 1
inc(vx[,i]) - Rrit vlerën e vx me i, dhe në mungesë të i - me 1
Përshëndetje byte Rikthen harkun më të lartë të argumentit
Përshëndetje (unë) Njësoj Kthen bajtin e tretë
Lo(i) Rikthen bajtin e ulët të argumentit
Jashtë (w) Njësoj
tek (l) Boolean Kthen True nëse argumenti është një numër tek
E rastësishme(w) Si parametër Jep një numër pseudo të rastësishëm të shpërndarë në mënyrë të barabartë në rangun 0...(w-l)
sqr(x) X Kthen katrorin e argumentit
ndërroj (i) Numër i plotë Ndërroni bajt me një fjalë
shkëmbejmë (w) fjalë Gjithashtu

Kur veprohet në numra të plotë, lloji i rezultatit do të korrespondojë me llojin e operandëve, dhe nëse operandët janë të llojeve të ndryshme të numrave të plotë, me një lloj të përbashkët që përfshin të dy operandët. Për shembull, kur veproni me shkurtim dhe fjalë e zakonshme do të jetë lloji numër i plotë. Si parazgjedhje, përpiluesi Delphi nuk gjeneron kod që kontrollon nëse një vlerë është jashtë rrezes, gjë që mund të çojë në konfuzion.

Llojet Boolean . Llojet Boolean janë Boolean, ByteBool, Bool, wordBool dhe longbool. Në Pascal standard, përcaktohet vetëm lloji Boolean, lloje të tjera Boolean janë futur në Object Pascal për përputhshmëri me Windows: llojet Boolean dhe ByteBool zënë një bajt secili, Bool dhe wordbool- 2 bajt, longbool- 4 bajt. Vlerat Boolean mund të jenë një nga konstantat e paradeklaruara False (false) ose True (true).

Meqenëse tipi Boolean është një tip rendor, ai mund të përdoret në një deklaratë të ciklit të tipit numërues. Në Delphi 32 për Boolean kuptimi

Ord (E vërtetë) = +1, ndërsa për llojet e tjera ( bool, fjalëbool etj.)

Ord (E vërtetë) = -1, kështu që këta lloj operatorësh duhet të përdoren me kujdes! Për shembull, për versionin Delphi 6, deklarata e ekzekutueshme showMessage (" ---") në ciklin vijues për nuk do të ekzekutohet kurrë:

për L:= E gabuar në të vërtetë bëj

ShowMessage ("--);

Nëse e zëvendësojmë parametrin loop tip L në shembullin e mëparshëm me Boolean, cikli do të ekzekutohet dhe mesazhi do të shfaqet dy herë në ekran. [Për versionin 1 dhe 2 të Delphi ord (E vërtetë) =+1 për çdo lloj boolean.]

Lloji i personazhit . Vlerat e tipit të karaktereve janë grupi i të gjithë karaktereve PK. Secilit karakter i caktohet një numër i plotë në rangun 0...255. Ky numër shërben si kod për paraqitjen e brendshme të karakterit dhe kthehet nga funksioni ord.

Kodimi i Windows përdor kodin ANSI (emërtuar për Institutin Kombëtar të Standardeve Amerikane, instituti amerikan i standardeve që propozoi këtë kod). Gjysma e parë e karaktereve të PC me kode 0...127 korrespondon me Tabelën 1.3. Gjysma e dytë e karaktereve me kode 128...255 ndryshon për shkronja të ndryshme. Shkronjat standarde të Windows Arial Cyr, Courier New Cyr dhe Times New Roman për të përfaqësuar karakteret cirilike (pa shkronjat "ё" dhe "Ё") përdorin 64 kodet e fundit (nga 192 në 256): "А"... "Я ” janë vlerat e koduara 192..223, “a”... “i” - 224...255. Personazhet "Ё" dhe "ё" kanë përkatësisht kodet 168 dhe 184.

Tabela 1.3 - Kodimi i karaktereve sipas standardit ANSI

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

Simbolet me kodet 0...31 i referohen kodeve të shërbimit. Nëse këto kode përdoren në tekstin simbolik të një programi, ato konsiderohen hapësira.

Llojet e të dhënave Pascal

Çdo e dhënë (konstante, variabla, vlera funksioni ose shprehje) në Turbo Pascal karakterizohet nga llojet e tyre. Një lloj përcakton grupin e vlerave të vlefshme që mund të ketë një objekt, si dhe grupin e operacioneve të vlefshme që mund të zbatohen në të. Lloji gjithashtu përcakton formatin e paraqitjes së brendshme të të dhënave në memorien e kompjuterit.

Llojet e mëposhtme të të dhënave ekzistojnë në Turbo Pascal.

1) Llojet e thjeshta:

- reale;

- simbolike;

- boolean (logjike);

- të listuara;

– i kufizuar (varg).

2) Llojet e përbëra (të strukturuara):

– të rregullt (vargje);

– të kombinuara (rekorde);

- dosje;

- të shumëfishta;

- varg;

- objekte.

3) Llojet e referencës (tregues të shtypur dhe të pashtypur).

4) Llojet procedurale.

Turbo Pascal ofron një mekanizëm për krijimin e llojeve të reja të të dhënave, në mënyrë që numri i përgjithshëm i llojeve të përdorura në program të jetë arbitrarisht i madh.

tip numër i plotë. Vlerat e tipit të numrave të plotë janë elementë të një nëngrupi numrash të plotë. Ekzistojnë pesë lloje të numrave të plotë në Turbo Pascal. Emrat e tyre, diapazoni i vlerave, gjatësia e paraqitjes në bajt janë dhënë në tabelë. 6.

Tabela 6

Llojet e të dhënave me numra të plotë

Ndryshoret e plota deklarohen duke përdorur fjalët e rezervuara të mësipërme:

i, j, k: numër i plotë;

Të dhënat e tipit të plotë ruhen saktësisht në memorie. Për shembull, variablat e tipit integer zënë 2 bajt (16 bit) në memorie, të cilat shpërndahen si më poshtë: 1 bit rezervohet për ruajtjen e shenjës së numrit (0 nëse numri është pozitiv dhe 1 nëse numri është negativ) dhe 15 bit për ruajtjen e numrit në llogaritjen e sistemit binar. Numri maksimal dhjetor që mund të shkruhet si binar 15 bit është 32767.

Kur përdoren procedura dhe funksione me parametra të numrave të plotë, duhet të udhëhiqet nga "foleja" e llojeve, d.m.th. kudo që përdoret fjala, bajt është i lejuar (por jo anasjelltas), longint "përfshin" numër të plotë, i cili, nga ana tjetër, përfshin shortint.

Lloji i plotë përcakton pesë operacione bazë që rezultojnë gjithashtu në një numër të plotë: +, -,*, div, mod (mbledhja, zbritja, shumëzimi, ndarja e numrit të plotë dhe pjesa e mbetur e pjesës së plotë). Në shprehjet aritmetike, veprimet *, div, mod kanë një përparësi më të lartë se veprimet +, -. Shembuj të shprehjeve të shkrimit:

Lista e procedurave dhe funksioneve të zbatueshme për llojet e numrave të plotë është dhënë në tabelë. 7. Shkronjat b, s, w, i, l shënojnë përkatësisht shprehje të tipit byte, shortint, word, integer dhe longint; x është një shprehje e ndonjë prej këtyre llojeve; identifikuesit vb, vs, vw, vi, vl, vx tregojnë variabla të llojeve përkatëse. Një parametër opsional tregohet në kllapa katrore.

Tabela 7

Procedurat dhe funksionet standarde të aplikueshme për llojet e numrave të plotë

Apelim Lloji i rezultatit Veprimi
Abs(x) x Kthen modulin x
Chr(b) Char Kthen një karakter sipas kodit të tij
dhjetor (vx[,i]) - Zvogëlon vlerën e vx me i, dhe në mungesë të i - me 1
Inc(vx[,i]) - Rrit vlerën e vx me i, dhe në mungesë të i - me 1
Përshëndetje (i) byte Rikthen bajtin e lartë të argumentit
Përshëndetje (i) byte Njësoj
Lo(i) byte Rikthen bajtin e ulët të argumentit
ja (w) byte Njësoj
Tek(l) byte Rikthen true nëse argumenti është një numër tek
E rastësishme(w) Si parametër Rikthen një numër pseudo të rastësishëm të shpërndarë në mënyrë uniforme në intervalin 0…(w-1)
Sheshi (x) x Kthen katrorin e argumentit
këmbe (i) Numër i plotë
Ndrysho (w) fjalë Ndërroni bajt me një fjalë
Succ(x) Si parametër Kthen vlerën e plotë të radhës, d.m.th. x+1
pred(x) Si parametër Rikthen vlerën e mëparshme të numrit të plotë, d.m.th. x-1

Kur operoni në numra të plotë, lloji i rezultatit do të korrespondojë me llojin e operandit, dhe nëse operandët janë të llojeve të ndryshme të numrave të plotë, me llojin e operandit që ka gamën maksimale të vlerave. Rrjedha e mundshme e rezultatit nuk kontrollohet, gjë që mund të çojë në gabime në program.

Lloji i vërtetë. Vlerat e llojeve reale përcaktojnë një numër arbitrar me njëfarë saktësie të kufizuar në varësi të formatit të brendshëm të numrit real. Ekzistojnë pesë lloje reale në Turbo Pascal (Tabela 8).

Tabela 8

Llojet reale të të dhënave

Variablat realë deklarohen duke përdorur fjalët e rezervuara të mësipërme:

Një numër real në kujtesën e kompjuterit përbëhet nga 3 pjesë:

Shifra e shenjës së numrit;

Pjesa eksponenciale;

Mantisa e numrit.

Mantisa ka një gjatësi prej 23 (Single) deri në 63 (Extended) shifra binare, e cila siguron një saktësi prej 7-8 për shifrat e vetme dhjetore dhe 19-20 për shifrat dhjetore të zgjeruara. Pika dhjetore (presja) nënkuptohet para shifrës së majtë (më të lartë) të mantisës, por kur vepron me një numër, pozicioni i saj zhvendoset majtas ose djathtas në përputhje me rendin binar të numrit të ruajtur në pjesën eksponenciale. prandaj veprimet mbi numrat realë quhen aritmetikë me pikë lundruese (presje).

Llojet Single, Double dhe Extended aksesohen vetëm në mënyra të veçanta përpilimi. Për të aktivizuar këto mënyra, zgjidhni artikullin e menysë Opsione, Përpiluesi... dhe aktivizoni opsionin 8087/80287 në një grup Përpunimi numerik.

Një pozicion të veçantë në Turbo Pascal zë tipi Comp, i cili trajtohet si një numër real pa pjesë eksponenciale dhe thyesore. Në fakt, Comp është një numër i plotë i madh i nënshkruar që ruan 19 deri në 20 shifra dhjetore të rëndësishme. Në të njëjtën kohë, Comp është plotësisht i pajtueshëm me çdo lloj tjetër real në shprehje: të gjitha operacionet reale përcaktohen në të, mund të përdoret si një argument i operacioneve matematikore, etj.



Numrat realë janë dhënë me shënime dhjetore në njërën prej dy forma.

AT formë pikë fikse rekordi përbëhet nga një numër i plotë dhe një pjesë thyesore, të ndara nga njëra-tjetra me një pikë, për shembull:

0.087 4.0 23.5 0.6

AT formë me pikë lundruese hyrja përmban shkronjën E, që do të thotë "shumohet me dhjetë në fuqi", dhe shkalla është një numër i plotë, për shembull:

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

Veprimet e mëposhtme përcaktohen në objekte të tipit real: +, -, *, /.

Operatorët "*" dhe "/" kanë përparësi më të lartë se operatorët "+" dhe "-".

Nëse të paktën një operand është real, atëherë operacionet +, -, *, / çojnë në një rezultat real. Operacioni i ndarjes / çon në një rezultat real në rastin e dy operandëve me numra të plotë, për shembull: 9/3 = 3.0.

Për të punuar me të dhëna reale, mund të përdoren funksionet standarde matematikore të paraqitura në tabelën 1. 9. Rezultati i këtyre funksioneve është gjithashtu real.

Tabela 9

Funksionet matematikore që punojnë me të dhëna reale

Variablat dhe konstantat e tipit REAL nuk lejohen të përdoren:

– në funksionet pred(x), succ(x), ord(x);

– si indekse vargjesh;

– si etiketa në pasqyrat e transferimit të kontrollit;

– si variabla kontrolli (parametrat e ciklit).

Për të kthyer një numër real në një numër të plotë, mund të përdorni funksionet e mëposhtme:

trunc(x) është pjesa e plotë e x (x është real);

round(x) – rrumbullakimi në numrin e plotë më të afërt (x është real).

lloji i karakterit. Variablat e karaktereve deklarohen duke përdorur fjalën e rezervuar char:

Vlerat e këtij lloji zgjidhen nga një grup i renditur karakteresh (nga grupi ASCII) i përbërë nga 256 karaktere. Secilit karakter i caktohet një numër i plotë nga diapazoni 0..255. Për shembull, shkronjat e mëdha të alfabetit latin A..Z kanë kodet 65..90 dhe shkronjat e vogla kanë kodet 97..122.

Vlera e një variabli të tipit të karakterit është një karakter i vetëm i mbyllur në apostrofa, për shembull:

'F' '8' '*'

Variablat e karaktereve mund të krahasohen me njëri-tjetrin duke krahasuar kodet e karaktereve.

Ka funksione që krijojnë një korrespondencë midis një karakteri dhe kodit të tij:

ord(с) - jep numrin e simbolit nga;

chr(i) - kthen karakterin me numrin i.

Këto funksione janë të kundërta nga njëra-tjetra.

tip boolean. Variablat Boolean deklarohen duke përdorur fjalën e rezervuar boolean:

p1, p2: boolean;

Variablat Boolean marrin dy vlera: e vërtetë(e vertete), i rremë(I rremë).

Këto vlera janë renditur si më poshtë: false< true. false имеет порядковый номер 0, true имеет порядковый номер 1.

Variablave Boolean ose mund t'u caktohet një vlerë drejtpërdrejt, ose mund të përdoret një shprehje boolean. Për shembull,

a, d, g, b: boolean;

Operacionet relacionale (<, <=, >, >=, =, <>) e aplikuar në variablat e numrave të plotë, realë dhe të karakterit prodhojnë një rezultat boolean.

Operacionet logjike në operandët e një lloji boolean japin gjithashtu një rezultat logjik (operacionet janë renditur në rend zbritës të përparësisë) (për detaje, shih tabelat 3 dhe 5):

jo – mohim (NOT operacion);

dhe - shumëzimi logjik (operacioni DHE);

ose – shtimi logjik (operacioni OSE);

xor - ekskluzive OSE.

Shprehja (jo a) ka kuptimin e kundërt të a.

Shprehja (a dhe b) vlerësohet si e vërtetë vetëm nëse edhe a dhe b janë të vërteta, përndryshe vlera e kësaj shprehjeje është e gabuar.

Shprehja (a ose b) vlerësohet si e gabuar vetëm nëse edhe a dhe b janë false, në të gjitha rastet e tjera rezultati është i vërtetë.

Lloji i numëruar. Një lloj i numëruar jo standard specifikohet nga numërimi si emrat e vlerave që mund të marrë ndryshorja. Çdo vlerë emërtohet nga ndonjë identifikues dhe ndodhet në një listë të mbyllur në kllapa. Forma e përgjithshme e përshkrimit të tipit të numëruar:

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

ku x është emri i tipit, w1, w2,…, wn janë vlerat që mund të marrë një ndryshore e tipit x.

Këto vlera janë renditur w1

Funksionet standarde të mëposhtme zbatohen për një argument të tipit të numëruar w:

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

ngjyra = (e kuqe, e zezë, e verdhë, jeshile)

ww=(majtas, lart, djathtas, poshtë);

f: grup i ww;

succ(d) = e verdhë;

Variablat a dhe b janë të tipit w. ata mund të marrin një nga tre vlerat, dhe në

Operacionet relacionale janë të zbatueshme për vlerat e tipit të numëruar: =,<>, <=, >=, <, >.

Lejohet të specifikohen konstantet e tipit të numëruar drejtpërdrejt në seksion var pa përdorur seksionin lloji, Për shembull

c,d: (e kuqe, e zezë, e verdhë, jeshile);

Lloji i diapazonit (i kufizuar).. Kur përcaktoni një lloj të kufizuar, ju specifikoni vlerat e fillimit dhe të përfundimit që mund të marrë një variabël e llojit të intervalit. Vlerat ndahen me dy pika.

Përshkrimi i një lloji të kufizuar është

Këtu a është emri i tipit, min, max janë konstante.

Kur specifikoni një lloj të kufizuar, duhet të ndiqen rregullat e mëposhtme:

– të dyja konstantat kufitare min dhe max duhet të jenë të të njëjtit lloj;

– Nga të dhënat e tipit bazë krijohet një lloj i kufizuar, i cili mund të jetë një numër i plotë, karakter ose tip i numëruar. Për shembull:

col = e kuqe..e verdhë;

shkronja = 'a'..'f';

- Variablat e një lloji të kufizuar mund të deklarohen në seksionin var pa iu referuar seksionit të tipit:

– një lloj i kufizuar trashëgon të gjitha vetitë e llojit bazë nga i cili është krijuar;

– kufiri minimal duhet të jetë gjithmonë më i vogël se kufiri maksimal.

Vargjeve. Një grup është një lloj kompleks, i cili është një strukturë e përbërë nga një numër fiks i komponentëve të të njëjtit lloj. Lloji i komponentit quhet lloji bazë. Të gjithë përbërësit e grupit mund të porositen lehtësisht dhe çdo njëri prej tyre mund të arrihet thjesht duke specifikuar numrin rendor të tij. Përshkrimi i grupit në seksion var duket si:

a: varg e t2;

ku a është emri i grupit, varg, e– fjalët shërbyese (që do të thotë “vargu i…”), t1 – lloji i indeksit; t2 – lloji i komponentit (lloji bazë).

Numri i indekseve përcakton dimensionin e grupit. Indekset mund të jenë të llojeve të numrave të plotë (përveç longint), karaktereve, boolean, të numëruara dhe të diapazonit. Indekset ndahen me presje dhe mbyllen në kllapa katrore. Komponentët e grupit mund të jenë të çdo lloji përveç skedarit.

Shembulli 1 Konsideroni një grup njëdimensional C, vlerat e të cilit janë pesë numra realë:

4.6 6.23 12 -4.8 0.7

Përshkrimi i këtij grupi është si më poshtë:

c: grup real;

Me një vlerë të caktuar indeksi, ju mund të zgjidhni një përbërës specifik të grupit (për shembull, C nënkupton elementin e tretë të grupit C, d.m.th. numrin 12).

Shembulli 2 Konsideroni një grup dydimensional B (matricë B) vlera e të cilit është një tabelë me numra të plotë:

Përshkrimi i këtij grupi është si më poshtë:

b e numrit të plotë;

Këtu b është emri i grupit, indeksi i parë është numri i rreshtit dhe merr vlera nga 1 në 2, i dyti është numri i kolonës dhe merr vlera nga 1 në 4. Sipas vlerave specifike të indeksit, mund të zgjidhni një komponent specifik i grupit (për shembull, b nënkupton një element tabele në rreshtin e parë dhe në kolonën e tretë, d.m.th. numri -4).

Indekset mund të jenë shprehje arbitrare, që korrespondojnë me llojin e indekseve nga deklarata e grupit:

a: grup real;

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

Grupi i veprimeve në elementët e grupit përcaktohet plotësisht nga lloji i këtyre elementeve.

lloji i vargut. Lloji i vargut - një grup vargjesh karakteresh me gjatësi arbitrare (nga zero në një numër të caktuar). Variablat e llojit të vargut përshkruhen duke përdorur një fjalë shërbimi varg:

b: varg ;

Veçoritë:

– vlera e një variabli të vargut mund të futet duke përdorur tastierën, të caktuar në një deklaratë caktimi, të lexuar nga një skedar. Në këtë rast, gjatësia e vargut të futur mund të jetë çdo (më pak se madhësia e specifikuar, e barabartë me madhësinë ose më shumë, në rastin e fundit, karakteret shtesë hidhen); a:= 'Rezultatet';

– lejohet përdorimi i operacionit të lidhjes në operatorin e caktimit, pasi vargjet mund të ndryshojnë dinamikisht gjatësinë e tyre: a:= a + ‘llogaritjet’;

– gjatësia maksimale e një variabli të vargut është 255 karaktere, ky tregues i gjatësisë mund të hiqet:

a: varg;

a1: varg ;

Variablat a dhe a1 janë të njëjta (përshkrim ekuivalent).

- memoria për variablat e tipit string shpërndahet në maksimum, por përdoret vetëm një pjesë e memories që aktualisht është e zënë nga karakteret e vargut. Për të përshkruar një variabël vargu me gjatësi n, përdoren n + 1 bajt memorie: n byte - për të ruajtur karakteret e vargut, n + 1 -të bajt - për të ruajtur gjatësinë aktuale.

– Operacionet e krahasimit përcaktohen në vlerat e llojeve të vargjeve:< <= > >= = <>. Një varg i shkurtër është gjithmonë më pak se një i gjatë. Nëse vargjet janë me të njëjtën gjatësi, atëherë kodet e karaktereve krahasohen.

– qasja në elementet individuale të një vargu është e mundur në të njëjtën mënyrë si aksesi në elementët e vargut: a, a. Kllapat katrore tregojnë numrin e elementit të rreshtit.

Procedurat dhe funksionet e fokusuara në punën me vargje.

concat (s1, s2,…)- funksioni i bashkimit të vargjeve, s1, s2,…- rreshta, numri i rreshtave mund të jetë arbitrar. Rezultati i funksionit është një varg. Nëse vargu që rezulton është më i gjatë se 255 karaktere, atëherë vargu shkurtohet në 255 karaktere.

kopje(t, indeksi, numërimi)– funksioni i nxjerrjes së një vargu nga vargu burimor s gjatë numëroj karaktere që fillojnë me numrin e karaktereve indeks.

fshij(t, indeksin, numërimin)është procedura për heqjen nga vargu i një nënvargu me gjatësi numëroj karaktere, duke filluar me një karakter me një numër indeks.

fut (s1, s2, indeks)- procedura e futjes së vijës s1 në një varg s2, duke filluar me një karakter me një numër indeks.

gjatësi(t)– funksioni për përcaktimin e gjatësisë aktuale të vargut, kthen një numër të barabartë me gjatësinë aktuale të vargut.

pos(s1, s2)- funksioni i kërkimit në një varg s2 nënstrings s1. kthen numrin e pozicionit të karakterit të parë të një nënvargu s1 në rradhë s2(ose 0 nëse kjo linjë nuk ekziston).

val (st, x, kodi)– procedura për konvertimin e vargut s në një variabël të plotë ose real x. Parametri kodi përmban 0 nëse konvertimi ishte i suksesshëm (dhe në x vendoset rezultati i konvertimit), ose numri i pozicionit të vargut ku u gjet karakteri i gabuar (në këtë rast, vlera x nuk ndryshon).

Përputhshmëria dhe konvertimi i tipit. Turbo Pascal është një gjuhë e shtypur. Është ndërtuar mbi bazën e respektimit të rreptë të konceptit të llojeve, sipas të cilit të gjitha operacionet e përdorura në gjuhë përcaktohen vetëm në operandët e llojeve të pajtueshme.

Dy lloje konsiderohen të pajtueshme nëse:

- janë të dy të të njëjtit lloj;

janë të dyja reale;

- të dyja janë të paprekura

– një lloj është një lloj vargu i llojit të dytë;

– të dyja janë lloje varg të të njëjtit lloj themelor;

– të dyja janë grupe të përbëra nga elementë të të njëjtit lloj bazë;

– të dyja janë vargje të paketuara (të përcaktuara me një fjalë të paketuar paraardhëse) me të njëjtën gjatësi maksimale;

- njëri është një varg tipi, dhe tjetri është një varg tipi ose karakter;

- një lloj është çdo tregues, dhe tjetri është një tregues për një objekt të lidhur;

– të dyja janë lloje procedurale me të njëjtin lloj rezultati (për një lloj funksioni), numrin e parametrave dhe llojin e parametrave që korrespondojnë reciprokisht.

Përputhshmëria e tipit merr një rëndësi të veçantë në deklaratat e detyrave. Le të jetë t1 lloji i ndryshores dhe t2 lloji i shprehjes, pra caktimi është t1:=t2. Kjo detyrë është e mundur në rastet e mëposhtme:

– t1 dhe t2 janë të të njëjtit lloj, dhe ky lloj nuk zbatohet për skedarët, grupet e skedarëve, regjistrimet që përmbajnë fushat e skedarëve ose grupet e të dhënave të tilla;

- t1 dhe t2 janë lloje rendore të pajtueshme dhe vlera e t2 qëndron në rangun e vlerave të mundshme të t1;

- t1 dhe t2 janë lloje reale, dhe vlera e t2 qëndron në rangun e vlerave të mundshme të t1;

– t1 është një tip real dhe t2 është një tip numër i plotë;

– t1 – varg dhe t2 – simbol;

– t1 është një varg dhe t2 është një varg i paketuar;

– t1 dhe t2 janë vargje të paketuara të përputhshme;

- t1 dhe t2 janë grupe të pajtueshme dhe të gjithë anëtarët e t2 i përkasin grupit të vlerave të mundshme të t1;

– t1 dhe t2 janë tregues të pajtueshëm;

– t1 dhe t2 janë lloje procedurale të përputhshme;

– t1 është një objekt dhe t2 është fëmija i tij.

Në një program, të dhënat e një lloji mund të konvertohen në të dhëna të një lloji tjetër. Një konvertim i tillë mund të jetë i qartë ose i nënkuptuar.

Konvertimi i tipit eksplicit thërret funksione të veçanta konvertimi, argumentet e të cilëve janë të një lloji dhe vlerat e të cilave janë të një lloji tjetër. Një shembull janë funksionet e konsideruara tashmë ord, trunc, round, chr.

Konvertimi i nënkuptuar është i mundur vetëm në dy raste:

- në shprehjet e përbëra nga ndryshore reale dhe të plota, këto të fundit shndërrohen automatikisht në një tip real dhe e gjithë shprehja në tërësi fiton një tip real;

- e njëjta zonë memorie trajtohet në mënyrë alternative si që përmban të dhëna të një lloji tjetër (kombinim i të dhënave të llojeve të ndryshme në memorie).

Koncepti i tipit është një nga konceptet themelore të çdo gjuhe programimi. Objektet (konstantet, variablat, funksionet, shprehjet) me të cilat funksionon programi janë të një lloji të caktuar.

Lloji është grupi i vlerave që mund të marrin objektet e programit dhe grupi i operacioneve të lejuara në këto vlera.

për shembull, vlerat 1 dhe 2 janë të llojit të plotë, mund të shtohen, shumëzohen dhe mund të kryhen veprime të tjera aritmetike. Kuptimi "monitor" dhe "Pascal" janë të natyrës gjuhësore, ato kanë grupin e tyre të operacioneve të vlefshme. Në gjuhët më të përdorura, mund të përdoren vetëm lloje të mirëpërcaktuara dhe të njohura. Pascal, së bashku me llojet standarde që gjenden në gjuhë të tjera të nivelit të lartë, i lejon programuesit të krijojë llojet e veta.

Të gjitha llojet e lejuara në gjuhën Pascal ndahen në dy grupe të mëdha: të thjeshta dhe komplekse (të strukturuara).

Lloji Gama Mantisa, shenja Kujtesa e kërkuar (bajt)
REAL 2.9*10E-39..1.7*10E38 11-12
SINGLE 1.5*10E-45..3.4*10E38 7-8
DYFISHTE 5.0*10E-324..1.7*10E308 15-16
I ZGJERUAR 1.9*10E-4951..1.1*10E4932 19-20
KOMP -2Е+63+1..2Е+63-1 10-20

Përdorimi efektiv i llojeve SINGLE, DOUBLE, EXTEND, COMP është i mundur vetëm kur përfshihet direktiva ($N+). Si parazgjedhje, është në gjendje joaktive. Për zgjidhjen e problemeve inxhinierike dhe ekonomike mjaftojnë vlerat e tipit REAL.

Shembull

Var Res, Summa, Itog: real;

Bulevsky lloji i të dhënave përshkruhet nga identifikuesi BOOLEAN. Variablat dhe konstantat e këtij lloji mund të marrin vetëm një nga dy vlerat: TRUE (true) ose FALSE (false).

Shembull

Var Sel1, Sel2: boolean;

A,B,C,D: boolean;

Shprehjet e tipit Boolean zënë 1 bajt memorie dhe përdoren në shprehje logjike dhe relacionale, si dhe për të kontrolluar rendin e ekzekutimit të deklaratave të programit.

Literal (karakter) lloji përshkruhet nga identifikuesi standard CHAR. Konstantet dhe variablat e këtij lloji mund të marrin një nga vlerat e tabelës së kodit ASCII. Vlera e një konstante ose ndryshoreje të këtij lloji është e mbyllur në apostrofa.

për shembull, Var Bukva, Znak, Simboli: char;

Shkronja:='A'; Shenja:='+'; Simboli:='!'

Variablat e tipit të karakterit zënë 1 bajt në memorie. Përdorimi i të dhënave të tipit char në shprehjet aritmetike është i ndaluar. Operacionet e krahasimit mund të zbatohen për vlerat literale, rezultati i të cilave varet nga numri i variablit literal ose konstante në tabelën e kodit.

Përveç llojeve standarde të të dhënave, Pascal mbështet lloje skalar, Perdorues i percaktuar. Kjo perfshin të numërueshme dhe intervali llojet . Këto lloje të dhënash zënë 1 bajt memorie, kështu që çdo lloj i përcaktuar nga përdoruesi nuk mund të përmbajë më shumë se 255 elementë. Përdorimi i tyre përmirëson ndjeshëm dukshmërinë e programit, e bën më të lehtë gjetjen e gabimeve dhe kursen kujtesën.

Lloji i numëruar specifikohet drejtpërdrejt duke renditur të gjitha vlerat që mund të marrë një ndryshore e një lloji të caktuar. Vlerat individuale ndahen me presje dhe e gjithë lista është e mbyllur në kllapa.

Formati

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

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

Shembull

Lloji Sezon =(Pranverë, Verë, Vjeshtë, Dimër);

Var S1, S2: Sezoni;

Vjeshtë: (Shtator, Tetor, Nëntor);

Në këtë shembull, tregohet lloji i të dhënave të deklaruara në mënyrë eksplicite të përdoruesit të sezonit. Përcaktohen kuptimet e tyre - emërtimet e stinëve. Variablat S1 dhe S2 mund të marrin vetëm një nga vlerat e listuara. Përpjekja për t'u caktuar atyre ndonjë vlerë tjetër do të shkaktojë një ndërprerje të softuerit. Lloji i tretë i numërimit është anonim (nuk ka emër) dhe specifikohet nga numërimi i vlerave në seksionin Var. Vjeshta është një variabël i këtij lloji dhe mund të marrë vlerat Shtator, Tetor, Nëntor. Kështu, mund të jepet çdo lloj, por kjo nuk është gjithmonë e pranueshme. Mënyra e parë është sigurisht më e kuptueshme dhe më në përputhje me natyrën e gjuhës Pascal.

lloji i intervalit ju lejon të vendosni dy konstante që përcaktojnë kufijtë e gamës së vlerave për këtë ndryshore. Sa herë që kryhet një operacion në një variabël të tipit interval, përpiluesi gjeneron rutina kontrolli për të përcaktuar nëse vlera e ndryshores mbetet brenda intervalit të caktuar. Të dyja konstantat duhet t'i përkasin njërit prej llojeve standarde, përveç reales. Vlera e konstantës së parë duhet domosdoshmërisht të jetë më e vogël se vlera e së dytës.

Formati

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

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

Shembull

Tipi Ditë = 1.. 31;

Var Work_d, Free_d: Ditët;

Në këtë shembull, variablat Work_d, Free_d janë të llojit ditë dhe mund të marrë çdo vlerë nga diapazoni 1 . . 31.

Jashtë rrezes shkakton një ndërprerje të softuerit.

Ju mund të përcaktoni një lloj intervali duke specifikuar kufijtë e diapazonit jo me vlera konstante, por nga emrat e tyre:

Konst Min = 1; max=31;

Tipi Ditë = Min .. Maks;

Var Work_d, Free_d: Ditët;

Llojet e strukturuara të dhënat bazohen në lloje skalare dhe mund të përmbajnë kombinime të ndryshme të tyre. Ato përcaktojnë një grup të renditur elementësh skalorë dhe karakterizohen nga lloji i përbërësve të tyre. Pascal ofron llojet e mëposhtme të strukturuara të të dhënave:

linjë - një sekuencë karakteresh të mbyllura në apostrofa;

grup - lloji i strukturuar i të dhënave që përbëhet nga një numër fiks elementësh të të njëjtit lloj, të aksesuar sipas indeksit ;

një tufë me - një grup objektesh të zgjedhura sipas ndonjë atributi ose grupi atributesh, të cilat mund të konsiderohen si një e tërë;

rekord - një grup i një numri fiks të komponentëve të llojeve të ndryshme;

dosje- një sekuencë përbërësish të të njëjtit lloj dhe të së njëjtës gjatësi.

Dy lloje më të strukturuara - objekti procedural dhe tipi (objektiv) - janë të vështira për t'u lidhur me të dhënat në një paraqitje konvencionale.

Foto 1- Një grup i llojeve bazë të gjuhës Pascal

Artikujt kryesorë të lidhur