Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ
  • në shtëpi
  • Këshilla
  • Funksionet janë të gjitha llojet e të dhënave pascal. Lloje të thjeshta të dhënash

Funksionet janë të gjitha llojet e të dhënave pascal. Lloje të thjeshta të dhënash

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 të numrave 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.

Gjatë përdorimit të procedurave dhe funksioneve me parametra 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 Gjithashtu
Lo(i) byte Rikthen bajtin e ulët të argumentit
ja (w) byte Gjithashtu
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ë domethënëse) 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 me numra 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ë 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.

V 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

V 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ë(Gënjeshtra).

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ë komponent 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ë bashkimit 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 ne rresht 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 – vargu dhe t2 – simboli;

– 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).

Kur deklaroni një variabël, duhet të specifikoni llojin e saj. Lloji i një ndryshoreje përshkruan grupin e vlerave që mund të marrë dhe veprimet që mund të kryhen në të. Deklarata e tipit përcakton një identifikues që tregon llojin.

Llojet e thjeshta ndahen në standarde (rendore) dhe të numëruara (të kufizuara).

Llojet standarde

Turbo Pascal ka katër lloje standarde të integruara: integer (integer), real (real), boolean (boolean) dhe char (karakter).

Lloji i plotë (i plotë)

Turbo Pascal ka pesë lloje numrash të plotë të integruar: shortint (numër i plotë i shkurtër), integer (integer), longint (integer i gjatë), byte (byte i gjatë) dhe word (fjalë e gjatë). Çdo lloj tregon një nëngrup specifik të numrave të plotë, siç tregohet në tabelën e mëposhtme.

Llojet e integruara të numrave.

Gama

Formati

8 bit i nënshkruar

16 bit i nënshkruar

2147483648 +2147483647

32 bit i nënshkruar

8 bit të panënshkruara

16 bit të panënshkruara

Veprimet aritmetike në operandët e tipit të plotë kryhen në përputhje me rregullat e mëposhtme:

  1. Lloji i një konstante të plotë është tipi integral i integruar me diapazonin më të vogël që përfshin vlerën e asaj konstante të numrit të plotë.
  2. Në rastin e një operacioni binar (një operacion që përdor dy operandë), të dy operandët konvertohen në llojin e tyre të përbashkët përpara se të kryhet operacioni mbi ta. Lloji gjenerik është tipi integral i integruar me gamën më të vogël që përfshin të gjitha vlerat e mundshme të të dy llojeve. Për shembull, lloji i zakonshëm për numër të plotë dhe numër i plotë me gjatësi bajti është numër i plotë, dhe lloji i zakonshëm për numër të plotë dhe numër i plotë me gjatësi fjalësh është numër i plotë i gjatë. Veprimi kryhet sipas saktësisë së tipit gjenerik dhe lloji i rezultatit është tipi gjenerik.
  3. Shprehja në të djathtë në një deklaratë caktimi vlerësohet pavarësisht nga madhësia e ndryshores në të majtë.

Veprimet e kryera në numra të plotë:

"+" - shtim

“-“ - zbritje

"*" - shumëzim

SQR - katrore

DIV - hedh pjesën e pjesshme pas pjesëtimit

MOD - merrni mbetjen e numrit të plotë pas pjesëtimit

ABS - moduli i numrit

RANDOM(X) - marrja e një numri të rastësishëm nga 0 në X

A:=100 ; b:=60 ; një rezultat DIV b është 1 dhe rezultati MOD b është 40

Variablat me numra të plotë deklarohen si më poshtë:

var lista e variablave: lloji;

Për shembull: var a,p,n:integer;

Lloji i vërtetë (i vërtetë)

Lloji real i referohet nëngrupit të numrave realë që mund të përfaqësohen në formatin me pikë lundruese me një numër fiks shifrash. Një vlerë me pikë lundruese zakonisht përfshin tre vlera - m, b dhe e - të tilla që m*b e, ku b është gjithmonë 10, dhe m dhe e janë vlera të plota në intervalin e tipit real. Këto vlera m dhe e përcaktojnë më tej gamën dhe saktësinë e tipit real.

Ekzistojnë pesë lloje të llojeve reale: real, single, duble, exnende, comp. Llojet reale ndryshojnë në diapazonin dhe saktësinë e vlerave të tyre të lidhura

Gama dhe shifra dhjetore për llojet reale

Gama

Numrat

2,9x10E-39 deri në 1,7x10E 38

1,5x10E-45 deri në 3,4x10E 38

5,0x10E-324 deri në 1,7x10E 308

3,4x10E-493 deri në 1,1x10E 403

2E 63 deri në 2E 63

Veprimet e kryera në numra realë:

  • Të gjitha operacionet janë të vlefshme për numra të plotë.
  • SQRT(x) është rrënja katrore e x.
  • SIN(X), COS(X), ARCTAN(X).
  • LN(X)-logaritmi natyror.
  • EXP(X)-eksponenti X (e x).
  • EXP (X * LN (A)) - fuqizimi (A x).
  • Lloji i funksioneve të konvertimit:
    • TRUNC(X) - hedh pjesën e pjesshme;
    • ROUND(X) - rrumbullakim.
  • Disa rregulla për veprimet aritmetike:
    • Nëse në një veprim aritmetik ka numra të tipit real dhe numër të plotë, atëherë rezultati do të jetë i tipit real.
    • Të gjithë përbërësit e shprehjes shkruhen në një rresht.
    • Përdoren vetëm kllapa.
    • Ju nuk mund të vendosni dy shenja aritmetike në një rresht.

Variablat e tipit real përshkruhen si më poshtë:

var lista e variablave: lloji;

Për shembull:

var d,g,k:real ;

Lloji i karakterit (char)

Lloji char është çdo karakter i mbyllur në apostrofa. Për të paraqitur një apostrof si një variabël karakteresh, mbylleni atë në një apostrof: ''''.

Çdo karakter ka kodin dhe numrin e vet. Numrat rendorë të shifrave 0,1..9 renditen në rend rritës. Numrat rendorë të shkronjave janë gjithashtu në rend rritës, por jo domosdoshmërisht pasojnë njëri-tjetrin.

Shenjat e krahasimit zbatohen për të dhënat e karaktereve:

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

Për shembull: 'A'< ‘W’

Funksionet që zbatohen për variablat e karaktereve:

  1. ORD(X) - përcakton numrin rendor të karakterit X. ord ('a') =97 ;
  2. CHR(X) - përcakton karakterin me numër. chr (97 ) ='a';
  3. PRED(X) - printon karakterin që vjen përpara karakterit X. pred('B') ='A';
  4. SUCC(X) - nxjerr karakterin pas karakterit X. succ('A') ='B';

lloji i numëruar

Një lloj i të dhënave të numëruar quhet kështu sepse është specifikuar si një numërim i konstanteve në një rend të përcaktuar rreptësisht dhe në një numër të përcaktuar rreptësisht. Një lloj i numëruar përbëhet nga një listë konstantesh. Variablat e këtij lloji mund të marrin vlerën e cilësdo prej këtyre konstanteve. Deklarata e tipit të numëruar duket kështu:

lloji<имя типа>=(lista e konstantave); Var<имя переменной>:<имя типа>;

ku<список констант>- ky është një lloj i veçantë konstante, të ndara me presje dhe që kanë numrin e tyre serial, duke filluar nga 0.

Për shembull:

lloji drejtim=(veri, jug, perëndim, lindje) ; muaj=(qershor, korrik, gusht, janar) ; kapaciteti = (kovë, fuçi, bombola, rezervuar) ; var rotacioni:drejtimi; nisja: muaj; vëllimi:kapaciteti; var kthese:(veri, jug, perëndim, lindje) ; nisja: (qershor, korrik, gusht, janar); vëllimi: (kovë, fuçi, bombola, rezervuar) ;

Ju mund të ekzekutoni operatorët e mëposhtëm të caktimit:

Kthesë:=jug; nisje:=Gusht; vëllimi:=tank;

por nuk mund të bëni detyra të përziera:

Nisja:=jug; vëllimi:=Gusht;

Funksionet e mëposhtme zbatohen për variablat e tipit të numëruar:

1. ORD - numri serial

2. PRED - elementi paraardhës

3. SUCC është elementi tjetër.

PRED (fuçi) = kovë; SUCC (jug) = perëndim; ORD (korrik) =1 ;

Variablat e tipit të numëruar mund të krahasohen sepse ato janë të renditura dhe të numëruara. Pra shprehje: veri< юг, июнь < январь имеют значения TRUE, а юг>perëndim dhe tank<бочка значение FАLSE.

lloj i kufizuar

Nëse një variabël nuk merr të gjitha vlerat e llojit të tij, por vetëm në një gamë të caktuar, atëherë ai mund të konsiderohet si një variabël i një lloji të kufizuar. Çdo lloj i kufizuar përcaktohet duke vendosur një kufizim në llojet bazë.

Përshkruhet kështu:

LLOJI<имя типа>=konstant1 ..konstant2

Në këtë rast, duhet të respektohen rregullat e mëposhtme:

  1. Të dyja konstantat e kufizuara duhet të jenë të të njëjtit lloj.
  2. Çdo lloj i thjeshtë, përveç realit, mund të përdoret si lloj bazë.
  3. Vlera fillestare gjatë përcaktimit të një tipi të kufizuar nuk duhet të jetë më e madhe se vlera përfundimtare.
indeksi i tipit =0 ..63 ; shkronja='a'..'z'; varchar1,char2:shkronjë; a,g:indeks ;

Mund ta përshkruani menjëherë në seksionin e deklarimit të ndryshoreve:

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

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ë tipe 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ëfarë saktësie të fundme, 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 tipit të karaktereve 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.

Mësimi diskuton llojet kryesore të të dhënave standarde në Pascal, konceptin e një ndryshoreje dhe një konstante; shpjegon mënyrën e punës me veprimet aritmetike

Pascal është një gjuhë programimi e shtypur. Kjo do të thotë që variablat që ruajnë të dhënat janë të një lloji specifik të të dhënave. ato. programi duhet drejtpërdrejt të tregojë se cilat të dhëna mund të ruhen në një variabël të caktuar: të dhëna teksti, të dhëna numerike, nëse janë numerike, atëherë numër i plotë ose i pjesshëm, etj. Kjo është e nevojshme në radhë të parë në mënyrë që kompjuteri "të dijë" se çfarë operacionesh mund të kryhen me këto variabla dhe si t'i kryejë ato në mënyrë korrekte.

Për shembull, shtimi i të dhënave të tekstit, ose siç quhet saktë në programim - bashkimi - është bashkimi i zakonshëm i vargjeve, ndërsa shtimi i të dhënave numerike ndodh pak nga pak, përveç kësaj, numrat thyesorë dhe të plotë shtohen në të ndryshëm. mënyrat. E njëjta gjë vlen edhe për operacionet e tjera.

Konsideroni llojet më të zakonshme të të dhënave në Pascal.

Llojet e të dhënave të plota në Pascal

Një lloj Gama Kujtesa e kërkuar (bajt)
bajt 0..255 1
shkurtim -128..127 1
numër i plotë -32768.. 32767 2
fjalë 0..65535 2
gjarpërues -2147483648..2147483647 4

Duhet pasur parasysh se kur shkruani programe në Pascal numër i plotë(përkthyer nga anglishtja si numër i plotë) është më i përdoruri, pasi diapazoni i vlerave është më i kërkuari. Nëse nevojitet një gamë më e gjerë, përdorni gjarpërues(i gjatë i plotë, përkthyer nga anglishtja numër i plotë i gjatë). Një lloj bajt në Pascal përdoret kur nuk ka nevojë të punohet me vlera negative, e njëjta gjë vlen edhe për llojin fjalë(vetëm diapazoni i vlerave këtu është shumë më i madh).

Shembuj se si variablat përshkruhen (deklarohen) në Pascal:

programi a1; varx,y:integer; (lloji i plotë) myname:string; (lloji i vargut) fillon x:=1; y:=x+16; emri im:="Pjetër"; writeln ("emri: ",emri im, ", mosha: ", y) fund.

Rezultati:
Emri: Peter, mosha: 17

Komentet në Pascal

Kushtojini vëmendje mënyrës Përdoren komentet e Pascal. Në shembull, komentet, d.m.th. teksti i shërbimit që "nuk është i dukshëm" për përpiluesin është i mbyllur në kllapa kaçurrelë. Në mënyrë tipike, komentet bëhen nga programuesit për të sqaruar copat e kodit.

Detyra 3. Popullsia e Moskës është një = 9,000,000 banorë. Popullsia e Vasyukovit të Ri është e barabartë me b=1000 banorë. Shkruani një program që përcakton ndryshimin në numrin e banorëve midis dy qyteteve. Përdorni variablat

Llojet reale të të dhënave në Pascal

Numrat realë në Pascal dhe në përgjithësi në programim është emri i numrave thyesorë.

Një lloj Gama Kujtesa e kërkuar (bajt)
reale 2.9*10E-39..1.7*10E38 6
beqare 1,5 * 10 E-45 .. 3,4 * 10E38 4
dyfishtë 5*10E-324..1.7*10E308 8
zgjatur 1,9 * 10E-4951 .. 1,1 * 10E4932 10

Lloji real në Pascal është më i përdoruri nga llojet real.

Më sipër u prezantuan lloje të thjeshta të dhënash në Pascal, të cilat përfshijnë:

  • rendore
  • e tërë
  • ngacmues truri
  • simbolike
  • të numëruara
  • Intervali
  • Reale

Për të nxjerrë vlerat e variablave të një lloji real, zakonisht përdoret prodhimi i formatuar:

  • formati përdor një numër, që do të thotë numrin e pozicioneve që i janë caktuar këtij numri në formë eksponenciale;
  • p:=1234.6789; WriteIn (fq:6:2); (1234.68)

    Krahas llojeve të thjeshta, gjuha përdor edhe llojet e të dhënave të strukturuara dhe treguesit, e cila do të jetë temë e mësimeve të mëpasshme të Pascal.

    Konstantet në Pascal

    Shpesh, programi e di paraprakisht se ndryshorja do të marrë një vlerë të caktuar dhe nuk do ta ndryshojë atë gjatë ekzekutimit të të gjithë programit. Në këtë rast, duhet të përdorni një konstante.

    Deklarimi i një konstante në Pascal ndodh para deklarimit të variablave (përpara fjalës së shërbimit var) dhe duket kështu:

    Një shembull i një përshkrimi të vazhdueshëm në Pascal:

    1 2 3 4 5 6 konst x= 17 ; var myname: varg ; Fillo emri im: = "Pjetër" ; writeln ("emri: " , emri im, ", mosha: " , x) fund .

    konst x=17; varmyname:string; Filloj emri im:="Pjetër"; writeln ("emri: ", emri im, ", mosha: ", x) fund.

    Prodhimi "i bukur" i numrave të plotë dhe real

    Për të lënë pika pas daljes së vlerave të variablave, në mënyrë që vlerat të mos "bashkohen" me njëra-tjetrën, është e zakonshme të tregohet përmes dy pikave se sa karaktere duhet të sigurohen për daljen. të vlerës:


    Veprimet aritmetike në Pascal

    Urdhri i Operacioneve

    1. vlerësimi i shprehjeve në kllapa;
    2. shumëzim, pjesëtim, div, mod nga e majta në të djathtë;
    3. mbledhje dhe zbritje nga e majta në të djathtë.

    Procedurat dhe funksionet aritmetike standarde të Pascal

    Këtu ia vlen të ndalemi më në detaje në disa veprime aritmetike.

    • Operatori inc në Pascal, i shqiptuar si increment, është procedura standarde Pascal, që do të thotë rritje me një.
    • Shembull i operacionit Inc:

      x:=1; inc(x); (Rritet x me 1, d.m.th. x=2) shkruani (x)

      Një përdorim më kompleks i procedurës inc:
      Inc(x,n) ku x është një tip rendor, n është një tip numër i plotë; procedura rritet x me n.

    • Procedura Dec në Pascal funksionon në mënyrë të ngjashme: Dec(x) - zvogëlohet x me 1 (zvogëlim) ose Dec(x,n) - zvogëlohet x me n.
    • Operatori abs paraqet modulin e një numri. Punon si kjo:
    • a: =- 9 ; b:=abs(a); (b=9)

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

    • Operatori div në Pascal është një operator i përdorur zakonisht, pasi një numër detyrash shoqërohen me veprimin e numrit të plotë të ndarjes.
    • Pjesa e mbetur e ndarjes ose operatori mod në pascal është gjithashtu i domosdoshëm për zgjidhjen e një numri problemesh.
    • Vlen të përmendet funksioni standard tek i Paskalit, i cili përcakton nëse një numër i plotë është tek. Kjo do të thotë, ai kthen true (true) për numrat tek, false (false) për numrat çift.
    • Një shembull i përdorimit të funksionit tek:

      varx:integer; fillimx:=3; writeln(sqr(x)); (përgjigjja 9) fund.

    • Shpërndarja e operacionit në Pascal mungon si e tillë. Por për të ngritur një numër në një fuqi, mund të përdorni funksionin exp.
    • Formula është: exp(ln(a)*n) , ku a është një numër, n është një fuqi (a>0).

      Sidoqoftë, në përpiluesin abc pascal, fuqizimi është shumë më i lehtë:

      varx:integer; fillimx:=9; writeln(sqrt(x)); (përgjigjja 3) fund.

    Detyra 4. Dimensionet e një kutie shkrepse janë të njohura: lartësia - 12,41 cm, gjerësia - 8 cm, trashësia - 5 cm. Llogaritni sipërfaqen e bazës së kutisë dhe vëllimin e saj
    (S = gjerësia * trashësia, V = sipërfaqja * lartësia)

    Detyra 5. Ka tre elefantë dhe mjaft lepuj në kopshtin zoologjik, dhe numri i lepujve ndryshon shpesh. Një elefant supozohet të hajë njëqind karota në ditë dhe një lepur dy. Çdo mëngjes kujdestari i kopshtit zoologjik raporton numrin e lepujve në kompjuter. Kompjuteri, si përgjigje, duhet t'i tregojë shoqëruesit numrin total të karotave që sot duhet t'u ushqehen lepujve dhe elefantëve.

    Detyra 6. Dihet se x kg ëmbëlsira a rubla. Përcaktoni sa y kg nga këto ëmbëlsira, si dhe me sa kilogramë ëmbëlsira mund të blihen k rubla. Të gjitha vlerat futen nga përdoruesi.

    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.

    Një lloj 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 (pra 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ë) Gjithashtu Kthen bajtin e tretë
    Lo(i) Rikthen bajtin e ulët të argumentit
    Jashtë (w) Gjithashtu
    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 llojin e përgjithshëm 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 A 97 a
    2 STX 34 66 V 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 TE 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 O
    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.

    Artikujt kryesorë të lidhur