Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ
  • në shtëpi
  • Interesante
  • Llojet e të dhënave të plota dhe reale në pascal. Procedurat dhe funksionet aritmetike standarde të Pascal

Llojet e të dhënave të plota dhe reale në pascal. Procedurat dhe funksionet aritmetike standarde të Pascal

Lloji i të dhënave përcakton grupin e vlerave të vlefshme dhe grupin e operacioneve të vlefshme.

Llojet e thjeshta.

Llojet e thjeshta janë ORDERAL dhe REAL.

1. LLOJET E POROSIT , nga ana tjetër, ka:

a) e tërë

Pascal përcakton 5 lloje të numrave të plotë, të cilët përcaktohen në varësi të shenjës dhe vlerës që do të marrë ndryshorja.

Shkruani emrin

Gjatësia (bajt)

Gama e vlerave

32 768...+32 767

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

b) logjike

Emri i këtij lloji është BOOLEAN. Vlerat Boolean mund të jenë një nga konstantat e Boolean: TRUE ose FALSE.

c) simbolike

Emri i këtij lloji është CHAR - merr 1 bajt. Një vlerë e tipit të karakterit është grupi i të gjithë karaktereve të PC. 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ë simbolit.

2. LLOJET SUBSTANCIAL .

Ndryshe nga llojet rendore, vlerat e të cilave krahasohen gjithmonë me një numër numrash të plotë dhe, për rrjedhojë, përfaqësohen në PC absolutisht saktësisht, vlerat e llojeve reale përcaktojnë një numër arbitrar vetëm me njëfarë saktësie të fundme, në varësi të formati i brendshëm i numrit real.

Gjatësia e llojit të të dhënave numerike, bajt

Emri i llojit të të dhënave numerike

Numri i shifrave të rëndësishme të një lloji të të dhënave numerike

Gama e rendit dhjetore e një lloji të të dhënave numerike

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

LLOJET E STRUKTUARA

Llojet e strukturuara të të dhënave përcaktojnë një koleksion të renditur të variablave skalare dhe karakterizohen nga lloji i përbërësve të tyre.

Llojet e strukturuara të të dhënave, ndryshe nga llojet e thjeshta të të dhënave, përcaktojnë grupe vlerash komplekse me një emër të vetëm të përbashkët. Mund të themi se llojet strukturore përcaktojnë një mënyrë të caktuar të formimit të llojeve të reja nga ato ekzistuese.

Ka disa metoda strukturimi. Sipas mënyrës së organizimit dhe llojit të komponentëve në llojet komplekse të të dhënave, dallohen këto varietete: tipi i rregullt (vargje); tip i kombinuar (rekorde); lloji i skedarit (skedarët); lloji i shumësit (bashkësitë); lloji i vargut (strings); në versionin Turbo Pascal 6.0 e më vonë, prezantohet një lloj objekti (objekte).

Në ndryshim nga llojet e thjeshta të të dhënave, të dhënat e një lloji të strukturuar karakterizohen nga një mori elementesh që formojnë këtë lloj, d.m.th. një variabël ose konstante e tipit të strukturuar ka gjithmonë komponentë të shumtë. Çdo komponent, nga ana tjetër, mund t'i përkasë një lloji të strukturuar, d.m.th. foleja e llojeve është e mundur.

1. Vargje

Vargjet në Turbo Pascal janë shumë të ngjashme me llojet e ngjashme të të dhënave në gjuhë të tjera programimi. Një tipar dallues i vargjeve është se të gjithë përbërësit e tyre janë të dhëna të të njëjtit lloj (ndoshta të strukturuara). Këta komponentë mund të porositen dhe aksesohen lehtësisht duke specifikuar thjesht një numër serial.

Përshkrimi i grupit është vendosur si më poshtë:

<имя типа>= grup [<сп.инд.типов>] të<тип>

Këtu<имя типа>- identifikues i saktë;

Array, e - fjalë të rezervuara (array, from);

<сп.инд.типов>- një listë me një ose më shumë lloje të indekseve, të ndara me presje; kllapat katrore rreth listës janë një kërkesë sintaksore;

<тип>- çdo lloj Turbo Pascal.

Çdo lloj rendor mund të përdoret si tip indeksi në Turbo Pascal, përveç llojeve LongInt dhe diapazonit me llojin bazë LongInt.

Thellësia e foleve të llojeve të strukturuara në përgjithësi, dhe për rrjedhojë e vargjeve, është arbitrare, prandaj numri i elementeve në listën e indekseve të tipit (dimensioni i grupit) nuk është i kufizuar, por gjatësia totale e paraqitjes së brendshme të çdo grupi nuk mund të kalojë 65520 byte.

2. Regjistrimet

Një rekord është një strukturë e të dhënave e përbërë nga një numër fiks i komponentëve të quajtur fusha regjistrimi. Ndryshe nga një grup, komponentët (fushat) e një rekord mund të jenë të llojeve të ndryshme. Për të bërë të mundur referimin e një komponenti të veçantë të regjistrimit, emërtohen fushat.

Struktura e deklaratës së llojit të rekordit është si më poshtë:

< emrilloji> = REKORD< cn. fusha> FUND

Këtu<имя типа>- identifikues i saktë;

RECORD, FUND - fjalë të rezervuara (rekord, fund);

<сп.полей>- lista e fushave; është një sekuencë e seksioneve të një regjistrimi me një pikëpresje midis tyre.

3. Komplete

Kompletet janë një koleksion objektesh të të njëjtit lloj që lidhen me njëri-tjetrin. Natyra e lidhjeve ndërmjet objekteve nënkuptohet vetëm nga programuesi dhe nuk kontrollohet në asnjë mënyrë nga Turbo Pascal. numri i elementeve të përfshira në grup mund të variojë nga 0 në 256 (një grup që nuk përmban elementë quhet bosh) Është mospërputhja e numrit të elementeve të tyre që grupet ndryshojnë nga vargjet dhe rekordet.

Dy grupe konsiderohen ekuivalente nëse dhe vetëm nëse të gjithë elementët e tyre janë të njëjtë, dhe rendi i elementeve të grupit është indiferent. Nëse të gjithë elementët e një grupi përfshihen edhe në një tjetër, ato flasin për përfshirjen e grupit të parë në të dytin.

Përshkrimi i llojit të grupit është si më poshtë:

< emrilloji> = SET< bazat. një lloj>

Këtu<имя типа>- identifikues i saktë;

SET, OF - fjalë të rezervuara (bashkë, nga);

<баз.тип>- lloji bazë i elementeve të grupit, i cili mund të jetë çdo lloj rendor, përveç FJALËS, INTEGER dhe LONGINT.

Për të përcaktuar një grup, përdoret i ashtuquajturi konstruktor i grupit: një listë e specifikimeve të elementeve të grupit, të ndara nga njëri-tjetri me presje; lista është e rrethuar me kllapa katrore. Specifikimet e elementit mund të jenë konstante ose shprehje të një lloji bazë, si dhe një lloj vargu i të njëjtit lloj bazë.

4. Skedarët

Një skedar kuptohet ose si një zonë e emërtuar e kujtesës së jashtme të një PC, ose një pajisje logjike - një burim ose marrës i mundshëm informacioni.

Çdo skedar ka tre veçori karakteristike

    ai ka një emër që lejon programin të punojë me shumë skedarë në të njëjtën kohë.

    ai përmban përbërës të të njëjtit lloj. Lloji i komponentit mund të jetë çdo lloj Turbo Pascal, përveç skedarëve. Me fjalë të tjera, nuk mund të krijoni një "skedar skedari".

    gjatësia e skedarit të krijuar rishtazi nuk specifikohet në asnjë mënyrë kur deklarohet dhe kufizohet vetëm nga kapaciteti i pajisjeve të memories së jashtme.

Një lloj skedari ose një variabël i llojit të skedarit mund të vendoset në një nga tre mënyrat:

< emri> = DOSJE E< një lloj>;

< emri> = TEKST;

<имя>= FILE;

Këtu<имя>- emri i llojit të skedarit (identifikuesi i saktë);

FILE, OF - fjalë të rezervuara (skedar, nga);

TEXT - emri i llojit standard të skedarëve tekst;

<тип>- çdo lloj Turbo Pascal, përveç skedarëve.

Ekzistojnë tre lloje skedarësh, në varësi të mënyrës së reklamimit:

· Skedarët e shtypur (të specifikuar në klauzolën FILE OF ...);

· Skedarët e tekstit (të përcaktuara nga lloji TEXT);

· Skedarët e pashtypshëm (të përcaktuar nga lloji FILE).

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

Konvertimet e nënkuptuara (automatike) të llojeve të të dhënave numerike janë pothuajse të pamundura në Pascal. Përjashtimi i vetëm është bërë për tipin integer, i cili lejohet të përdoret në shprehjet e tipit real. Për shembull, nëse variablat përshkruhen si kjo:

Var X: numër i plotë; Y: real;

pastaj operatori

do të jetë sintaksisht e saktë, megjithëse ka një shprehje numër të plotë në të djathtë të shenjës së caktimit dhe një ndryshore reale në të majtë, përpiluesi do të konvertojë automatikisht llojet e të dhënave numerike. Shndërrimi i kundërt automatikisht nga tipi real në tip i plotë është i pamundur në Pascal. Le të kujtojmë se sa bajtë janë ndarë për variablat e tipit të plotë dhe real: 2 bajtë memorie ndahen për llojin e të dhënave të numrit të plotë dhe 6 bajtë për real. Ka dy funksione të integruara për konvertimin real në numër të plotë: rrumbullakos (x) rrumbullakos x real në numrin e plotë më të afërt, trunc (x) shkurton numrin real duke hedhur poshtë pjesën thyesore.

Çdo e dhënë - konstante, ndryshore, vlera e funksioneve karakterizohet në Pascal nga lloji i të dhënave.

Le të përcaktojmë konceptin lloji i të dhënave... Siç e dini tashmë, të gjitha objektet e programit (variablat, konstantet, etj.) duhet të përshkruhen.

Përshkrimet informojnë përkthyesin, së pari, për ekzistencën e variablave dhe objekteve të tjera të përdorura, dhe së dyti, tregojnë vetitë e këtyre objekteve. Për shembull, një përshkrim i një ndryshoreje vlera e së cilës është një numër tregon vetitë e numrave. Formalisht, numrat mund të jenë numra të plotë dhe real (thyesorë). Në Pascal, si në gjuhët e tjera të programimit, numrat ndahen në dy lloje: e tërë(fjalë e rezervuar numër i plotë) dhe reale(fjala e rezervuar e vërtetë).

Ndarja e numrave të plotë në një lloj të veçantë shpjegohet me faktin se numrat e plotë dhe numrat realë përfaqësohen ndryshe në një kompjuter: një numër i plotë mund të përfaqësohet absolutisht saktësisht, dhe një numër real në mënyrë të pashmangshme me ndonjë gabim të fundëm, i cili përcaktohet nga vetitë. të përkthyesit.

Për shembull, supozoni se ndryshorja x është e tipit real dhe vlera e saj është e barabartë me një: x = 1. Vlera përkatëse në memorien e kompjuterit mund të jetë 0,999999999, ose 1,000000001, ose 1,000000000. Por nëse ndryshorja x deklarohet si një ndryshore e një lloji të plotë, atëherë njësia në kompjuter do të përfaqësohet absolutisht saktësisht dhe ndryshorja x nuk do të jetë në gjendje të marrë vlera reale (të pjesshme) - në fund të fundit, u përshkrua si një ndryshore e një lloji të plotë.

Kështu, lloji i të dhënave përcakton:

  • paraqitje e brendshme e të dhënave në memorien e kompjuterit;
  • një grup vlerash që mund të marrin vlera të këtij lloji;
  • operacionet që mund të kryhen në vlera të këtij lloji.

Futja e llojeve të të dhënave është një nga konceptet bazë të gjuhës Pascal, që është se gjatë kryerjes së një operacioni të caktimit të një vlere në një shprehje, ndryshorja dhe shprehja duhet të jenë të të njëjtit lloj. Ky kontroll kryhet nga përpiluesi, i cili thjeshton shumë kërkimin e gabimeve dhe çon në rritjen e besueshmërisë së programit.

Grupi i llojeve të të dhënave të gjuhës Turbo Pascal mund të ndahet në dy grupe:

  • llojet standarde (të paracaktuara). ;
  • Llojet e përcaktuara nga përdoruesi (llojet e personalizuara) .

Llojet standarde të Turbo Pascal përfshijnë:

  • tip i plotë - numër i plotë;
  • tip real - real;
  • lloji i karakterit - char;
  • tip boolean - boolean;
  • lloji i vargut - varg;
  • lloji i treguesit është pointer;
  • lloji i tekstit është tekst.

Llojet e personalizuara të të dhënave janë kombinime të ndryshme të llojeve standarde.

Llojet e personalizuara përfshijnë:

  • lloji i numëruar;
  • lloji i intervalit;
  • lloji i treguesit;
  • lloje të strukturuara;
  • lloji procedural.

Komentoni... Një klasifikim tjetër i llojeve të të dhënave është i mundur, sipas të cilit llojet ndahen në të thjeshta dhe komplekse.

Llojet e thjeshta përfshijnë: llojin e numrit të plotë, llojin real, llojin e karakterit, tipin boolean, tipin e numëruar dhe llojin e intervalit.

Një lloj kompleks përfaqësohet nga kombinime të ndryshme të llojeve të thjeshta (vargje, regjistrime, grupe, skedarë, etj.)

Llojet standarde

Lloji standard i të dhënave përcaktohet nga vetë gjuha Pascal. Kur përdorni lloje standarde në program, mjafton të tregoni nënseksionet e llojeve të kërkuara (const, var) dhe më pas të përshkruani konstantat dhe variablat e përdorur në program. Nuk ka nevojë të përdoret nënseksioni Lloji.

Për shembull, nëse programi përdor vetëm variabla:

i, j - numër i plotë (numra të plotë);

x, y - real (real);

t, s - char (personazh);

a, b - boolean (logjike),

atëherë nevojitet vetëm një nënseksion i variablave - Var. Prandaj, në pjesën përshkruese të programit, deklaratat e variablave shkruhen si më poshtë:

Llojet e numrave të plotë

Të dhënat e këtij lloji mund të pranojnë vetëm vlera të plota. Në një kompjuter, vlerat e numrave të plotë përfaqësohen absolutisht saktësisht. Nëse ndryshorja është negative, atëherë duhet të paraprihet nga një shenjë "-", nëse ndryshorja është pozitive, atëherë shenja "+" mund të hiqet. Ky lloj është i nevojshëm në rastin kur një sasi nuk mund të përfaqësohet përafërsisht - me një numër real. Për shembull, numri i njerëzve, kafshëve, etj.

Shembuj të shkrimit të vlerave të numrave të plotë: 17, 0, 44789, -4, -127.

Gama e ndryshimit të të dhënave të një lloji të plotë përcaktohet nga pesë lloje standarde të numrave të plotë dhe paraqitet në tabelë:

Një lloj Gama Madhësia në bajt
Shkurt -128...+128 1
Numër i plotë -32768...32767 2
Longint -2147483648...2147483647 4
Bajt 0...255 1
fjalë 0...65535 2

Dy llojet e fundit shërbejnë për të përfaqësuar vetëm numra pozitivë, dhe tre të parët numra pozitivë dhe negativë.

Në tekstin e programit ose kur futni të dhëna të një lloji të plotë, vlerat shkruhen asnjë pikë dhjetore ... Vlerat aktuale të ndryshores nuk duhet të kalojë vlerat e lejuara të llojit (Shortint, Integer, Longint, Byte, Word) që është përdorur për të përshkruar variablin. Tejkalimet e mundshme gjatë llogaritjeve nuk kontrollohen në asnjë mënyrë, gjë që do të çojë në funksionimin e gabuar të programit.

Një shembull i përdorimit të një ndryshoreje numër të plotë

Var a: numër i plotë; b: fjalë; c: byte; Filloni një: = 300; (a i është caktuar vlera 300) b: = 300; (b është vendosur në 300) c: = 200; (c është vendosur në 200) a: = b + c; (a i është caktuar vlera 500) c: = b; (Gabim! Variabla c mund të marrë vlera jo më shumë se 255. Këtu, ndryshores c i caktohet vlera 500, e cila do të bëjë që rezultati të tejmbushet.) Fund.

Llojet reale

Vlerat e llojeve reale në kompjuter përfaqësohen afërsisht. Gama e ndryshimit të të dhënave të një lloji real përcaktohet nga pesë lloje standarde: real (Real), me saktësi të vetme (Single), saktësi të dyfishtë (Double), me saktësi të rritur (Extended), kompleks (Comp) dhe paraqitet në tavolina:

Një lloj Gama Shifra të rëndësishme Madhësia në bajt
Reale 2.9E-39 ... 1.7E + 38 11-12 6
Beqare 1.5E-45 ... 3.4E + 38 >7-8 4
Dyfishtë 5E-324 ... 1.7E + 308 15-16 8
Zgjeruar 3.4E-4951 ... 1.1E + 4932 19-20 10
Komp -2E + 63 + 1 ... + 2E + 63-1 19-20 8

Numrat real mund të përfaqësohen në dy formate: fikse dhe me pikë lundruese.

Formati për të shkruar një numër me pikë fikse është i njëjtë me shënimin e zakonshëm matematikor për një numër dhjetor me një pjesë thyesore. Pjesa e pjesshme ndahet nga e gjithë pjesa duke përdorur një pikë, për shembull

34.5, -4.0, 77.001, 100.56

Formati i pikës lundruese përdoret kur shkruani numra shumë të mëdhenj ose shumë të vegjël. Në këtë format, numri përpara karakterit "E" shumëzohet me numrin 10 në fuqinë e treguar pas karakterit "E".

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

Shembuj të numrave me pikë lundruese:

Numri Regjistrimi në Pascal
0,0001 1E-4
3457,4 34574E-1
45,1 451E-1
40000 4E + 4
124 0,124E + 3
124 1.24E + 2
124 12.4E + 1
124 1240E-1
124 12400E-2

Tabela nga 5 deri në 9 rreshta tregon rekordin e të njëjtit numër 124. Duke ndryshuar pozicionin e presjes dhjetore në mantisa (pika "lundron", prej këtej emri "rekord i numrit të pikës lundruese") dhe në të njëjtën kohë duke ndryshuar vlerën e porosisë, ju mund të zgjidhni numrat më të përshtatshëm të rekordeve.

Një shembull i përshkrimit të variablave të tipit real.

Lloji i personazhit

Vlerat e karaktereve janë karaktere që mund të shkruani në një tastierë kompjuteri. Kjo ju lejon të paraqisni tekstin në program dhe të kryeni veprime të ndryshme në të: futni, fshini shkronja dhe fjalë individuale, format, etj.

Lloji i karakterit shënohet me fjalën e rezervuar Char dhe është krijuar për të mbajtur një karakter. Të dhënat e karaktereve zënë një bajt në memorie.

Formati për deklarimin e një ndryshoreje simbolike është:

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

Kur përcaktoni vlerën e një ndryshoreje simbolike, karakteri shkruhet me apostrofë. Përveç kësaj, ju mund të specifikoni karakterin e kërkuar duke specifikuar drejtpërdrejt vlerën e tij numerike ASCII. Në këtë rast, është e nevojshme të vendosni një shenjë # përpara numrit që tregon kodin ASCII të karakterit të kërkuar.

Një shembull i përdorimit të variablave të tipit simbolik:

Var c: char; (c - variabla e tipit të karakterit) Fillimi c: = 'A'; (simboli 'A' i është caktuar ndryshores c) c: = # 65; (ndryshores c i caktohet edhe karakteri A. Kodi ASCII i saj është 65) c: = '5'; (ndryshores c i është caktuar karakteri 5, Fundi. Këtu 5 nuk është më numër)

Lloji Boolean

Lloji i të dhënave logjike quhet Boolean sipas matematikanit anglez George Boole, krijuesit të fushës së matematikës - logjikës matematikore.

Formati për deklarimin e një ndryshoreje të tipit boolean:

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

Të dhënat e këtij lloji mund të marrin vetëm dy vlera:

  • E vertete e vertete;
  • E rreme eshte e rreme.

Të dhënat Boolean përdoren gjerësisht për të vërtetuar disa kushte dhe për të krahasuar vlerat. Rezultati mund të jetë i vërtetë ose i rremë.

Për të krahasuar të dhënat, ofrohen operacionet e mëposhtme të marrëdhënieve:

Një shembull i përdorimit të operacioneve të marrëdhënieve:

relacioni 5> 3, rezultati është i vërtetë;

raporti 5 = 3, rezulton false.

Një shembull i përdorimit të variablave të një lloji boolean.

Var a, b: boolean; (a, b - variablat e tipit boolean) Filloni a: = E vërtetë; (ndryshores a i është caktuar vlera "true") b: = false; (b është vendosur në false) Fund.

Konstante

Si konstante mund të përdoren numra të plotë, numra realë, simbole, vargje karakteresh, konstante logjike.

Konstanta duhet të deklarohet në pjesën përshkruese duke përdorur fjalën e rezervuar konst.

Formati i vazhdueshëm i deklarimit

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

Nëse në program përdoren disa konstante, lejohet vetëm një fjalë kyçe Const, përshkrimi i secilës konstante përfundon me një pikëpresje. Një bllok konstantesh përfundon me një deklaratë të një seksioni tjetër ose një deklaratë të një blloku të deklaratave të ekzekutueshme.

Konst (deklarata e seksionit konstant) viti = 2003; (konstante e tipit integer, pasi nuk ka pikë dhjetore në regjistrim) koha = 14.05; (konstante e tipit real) N = 24; (konstante e tipit integer, pasi nuk ka pikë dhjetore në regjistrim) P = 3,14; (konstante e tipit real) A = e vërtetë; (konstante boolean) str1 = '7'; (konstante e tipit të karakterit) str2 = 'A'; (konstante e tipit të karakterit) str3 = 'Turbo'; (konstante e tipit të vargut) Var (deklarata e seksionit të ndryshueshme) X, y: numër i plotë; (ndryshoret e tipit integer)

Llojet e personalizuara

Nga grupi i llojeve të përcaktuara nga përdoruesi, merrni parasysh vetëm

  • lloji i numëruar;
  • lloji i intervalit.

Do të na duhen këto dy lloje kur studiojmë vargje.

Lloji i numëruar

Lloji i të dhënave të numëruara përshkruan lloje të reja të dhënash, vlerat e të cilave përcaktohen nga vetë programuesi. Një lloj i numëruar përcaktohet nga një numërim i vlerave që mund të marrë. Çdo vlerë emërtohet nga një identifikues dhe ndodhet në një listë të rrethuar me kllapa. Një lloj i numëruar është një lloj i të dhënave i përcaktuar nga përdoruesi, kështu që deklarimi i këtij lloji fillon me fjalën e rezervuar TYPE.

Formati i tipit të numëruar:

<имя типа>= (konstante1, konstante2, ..., konstanteN);

ku
konstanta1, konstanta2, ..., konstantjaN është një grup i renditur vlerash identifikuese, të trajtuara si konstante.

Një shembull i një përshkrimi të një lloji të numëruar:

Lloji top = (një, dy, tre, katër, pesë); var t: top;

Ku topi është emri i llojit të numëruar; një, dy, tre, katër, pesë - konstante; t është një variabël që mund të marrë çdo vlerë konstante.

Në një tip të numëruar, një konstante është një identifikues, kështu që nuk citohet dhe nuk mund të jetë një numër. Kështu, në një tip të numëruar, një konstante kuptohet si një lloj i veçantë konstantesh që nuk mund të jenë:

  • konstante numerike: 1, 2, 3, 4, etj.
  • konstante të tipit simbolik: "a", "s", "1", "3", etj .;
  • konstante të tipit të vargut: "i parë", "i dytë", etj.

Për më tepër, operacionet aritmetike dhe procedurat standarde të hyrjes dhe daljes Read, Write nuk janë të zbatueshme për vlerat e këtij lloji.

Një shembull i përdorimit të variablave të numëruar:

Lloji ditë = (e hënë, e martë, e mërkurë, e enjte, e premte, e shtunë, e diel); Var dita: ditë; filloni nëse dita = e diel atëherë shkruani ('Sot është e diel!'); fund.

Elementet e përfshira në përkufizimin e një lloji të numëruar konsiderohen të renditura sipas renditjes së tyre. Numërimi fillon me zero. Prandaj, në shembullin e dhënë, ditët e javës kanë numrat e mëposhtëm serial

Funksioni Ord () përdoret për të përcaktuar në mënyrë programore rendoren.

Në shembullin tonë, numrat e sekuencës janë:

Urdhri (e hënë) = 0;

Ord (e shtune) = 5;

Urdhri (e diel) = 6.

Lloji i intervalit

Nëse një variabël nuk pranon të gjitha vlerat e llojit të tij, por vetëm vlerat e përmbajtura në një gamë të caktuar, atëherë ky lloj i të dhënave quhet një lloj intervali. Një lloj intervali shpesh referohet si një lloj i kufizuar dhe një lloj diapazoni. Një lloj intervali specifikohet nga kufijtë e vlerave të tij:

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

  • dy karaktere ".." trajtohen si një karakter, kështu që nuk lejohen hapësira midis tyre;
  • kufiri i majtë i diapazonit nuk duhet të kalojë kufirin e tij të djathtë.

Një lloj intervali është një lloj i të dhënave i përcaktuar nga përdoruesi, kështu që deklarimi i këtij lloji fillon me fjalën e shërbimit TYPE.

Një shembull i përshkrimit të llojit të intervalit:

Shifra e tipit = 1..10; muaj = 1..31; lat = 'A' .. 'Z';

Llojet e të dhënave Pascal

Çdo e dhënë (konstante, variabla, vlera funksionesh ose shprehjesh) 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ë janë të zbatueshme për 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, për shkak të të cilit numri i përgjithshëm i llojeve të përdorura në program mund të jetë aq i madh sa dëshironi.

Lloji i plotë... Vlerat e plota janë elementet e 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ë

Variablat me numra të plotë përshkruhen duke përdorur fjalët e rezervuara të mësipërme:

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

Të dhënat e plota ruhen saktësisht në memorie. Për shembull, variablat e numrave të plotë zënë 2 bajt (16 bit) në memorie, të cilat ndahen si më poshtë: 1 bit ndahet për të ruajtur shenjën e numrit (0 nëse numri është pozitiv dhe 1 nëse numri është negativ) dhe 15 bit për të ruajtur numrin 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.

Për një lloj të plotë, përcaktohen pesë operacione bazë që gjithashtu rezultojnë në një numër të plotë: +, -, *, div, mod (mbledhja, zbritja, shumëzimi, pjesëtimi i numrit të plotë dhe mbetja nga ndarja e numrit të plotë). Në shprehjet aritmetike, operacionet *, div, mod kanë përparësi ndaj operacioneve +, -. 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ë llojeve të bajtit, shkurtit, fjalës, numrit të plotë dhe gjatësisë; 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) Bajt Rikthen bajtin e lartë të argumentit
Përshëndetje (i) Bajt Gjithashtu
Ja (i) Bajt Kthen bajtin më pak të rëndësishëm të argumentit
Ja (w) Bajt Gjithashtu
Tek (l) Bajt Rikthen true nëse argumenti është një numër tek
E rastësishme (w) Njësoj si parametri Jep një numër pseudo të rastësishëm të shpërndarë në mënyrë të barabartë në rangun 0 ... (w-1)
Sqr (x) x Kthen katrorin e argumentit
këmbe (i) Numër i plotë
Ndrysho (w) fjalë Ndërron bajtet me një fjalë
Succ (x) Njësoj si parametri Kthen vlerën e plotë të radhës, d.m.th. x + 1
Pred (x) Njësoj si parametri Kthen vlerën e mëparshme të numrit të plotë, d.m.th. x-1

Kur veprohet 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ë, lloji i operandit që ka gamën maksimale të vlerave. Rrjedha e mundshme e rezultateve nuk kontrollohet, gjë që mund të çojë në gabime të programit.

Lloji i vërtetë. Vlerat e llojeve reale përcaktojnë një numër arbitrar me njëfarë saktësie të fundme, 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ë përshkruhen 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 nënshkruar e një numri;

Pjesa eksponenciale;

Numrat Mantissa.

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 përpara pjesës së majtë (më domethënëse) të mantisës, por kur manipuloni një numër, pozicioni i tij 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ë 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 ... 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 mbi të, mund të përdoret si një argument i operacioneve matematikore, etj.



Numrat real janë të specifikuar me shënime dhjetore në njërën prej tyre dy forma.

V formë pikë fikse rekordi përbëhet nga pjesë të plota dhe të pjesshme, të ndara nga njëra-tjetra me një pikë, për shembull:

0.087 4.0 23.5 0.6

V pikë lundruese rekordi përmban shkronjën E, që do të thotë "shumohet me dhjetë në fuqi", dhe fuqia ë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: +, -, *, /.

Operacionet "*" dhe "/" kanë një përparësi më të lartë se operacionet "+" dhe "-".

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

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

Tabela 9

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

Ndalohet përdorimi i variablave dhe konstantave të tipit REAL:

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

- si indekse vargjesh;

- si etiketa në operatorët 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:

trunc (x) - pjesë e plotë e x (x është real);

rrumbullak (x) - rrumbullakos në numrin më të afërt të plotë (x është real).

Lloji i personazhit. Variablat simbolikë përshkruhen duke përdorur fjalën e rezervuar char:

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

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

'F '' 8 '' * '

Variablat simbolikë mund të krahasohen me njëri-tjetrin, ndërsa kodet e simboleve krahasohen.

Ekzistojnë funksione që krijojnë një korrespondencë midis një simboli dhe kodit të tij:

ord (с) - jep numrin e karakterit me;

chr (i) - prodhon karakterin me numrin i.

Këto funksione janë të kundërta me njëri-tjetrin.

Lloji Boolean... Variablat Boolean përshkruhen 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 të një lloji 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 e marrëdhënieve (<, <=, >, >=, =, <>) e aplikuar në variablat numër të plotë, real dhe simbolik japin një rezultat logjik.

Operacionet Boolean në operandët e një lloji Boolean japin gjithashtu një rezultat Boolean (operacionet janë renditur në rend zbritës të përparësisë) (për më shumë detaje, shihni tabelat 3 dhe 5):

jo - mohim (NOT operacion);

dhe - shumëzimi logjik (operacioni DHE);

ose - shtimi logjik (operacioni OSE);

xor - ekskluziv OSE.

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

Shprehja (a dhe b) vlerësohet si e vërtetë nëse të dyja a dhe b janë të vërteta, përndryshe kjo shprehje vlerësohet si e gabuar.

Shprehja (a ose b) vlerësohet si e gabuar nëse edhe a dhe b janë false, përndryshe rezultati është i vërtetë.

Lloji i numëruar... Një lloj i numëruar jo standard specifikohet nga një numërim në formën e emrave të vlerave që mund të marrë një ndryshore. Çdo vlerë emërtohet nga një identifikues dhe ndodhet në një listë të rrethuar me kllapa. Pamje e përgjithshme e përshkrimit të një lloji 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 argumentin e 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 e relacionit janë të zbatueshme për vlerat e tipit të numëruar: =,<>, <=, >=, <, >.

Lejohet të specifikohen konstante të tipit të numëruar drejtpërdrejt në seksion var pa përdorur një seksion 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, specifikohen vlerat fillestare dhe përfundimtare që mund të marrë një ndryshore e një lloji diapazoni. Vlerat ndahen me dy pika.

Përshkrimi i llojit 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ë tip 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 tipit të kufizuar mund të përshkruhen 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 min duhet të jetë gjithmonë më i vogël se kufiri maksimal.

Vargjeve... Një grup është një lloj kompleks që ë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 një grupi mund të renditen lehtësisht dhe çdonjëri prej tyre mund të arrihet duke specifikuar thjesht numrin e tij rendor. Përshkrimi i grupit në seksion var duket si:

a: varg e t2;

ku a është emri i grupit, varg, e- fjalët e shërbimit (nënkuptojnë "arresë nga ..."), t1 - lloji i indeksit; t2 - lloji i komponentit (lloji bazë).

Numri i indekseve përcakton dimensionin e grupit. Indekset mund të jenë numra të plotë (përveç longint), karaktere, boolean, të numëruara dhe lloje të diapazonit. Indekset ndahen me presje dhe mbyllen në kllapa katrore. Komponentët e grupit mund të jenë të çdo lloji përveç llojit të 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 të indeksit, 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 dy-dimensional 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. Për vlerat specifike të indekseve , mund të zgjidhni një komponent specifik të grupit (për shembull, b nënkupton një element tabele në rreshtin e parë dhe kolonën e tretë, d.m.th. numri -4).

Indekset mund të jenë shprehje arbitrare që korrespondojnë me llojin e indekseve nga përshkrimi i 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... Një lloj vargu është 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ë operator 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 llojit të vargut ndahet 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 bajt - për të ruajtur karakteret e vargut, n + 1 -të bajtë - për të ruajtur gjatësinë aktuale.

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

- është e mundur të aksesoni elementë individualë të një vargu në të njëjtën mënyrë si qasja në elementët e vargut: a, a. Kllapat katrore tregojnë numrin e elementit të linjës.

Procedurat dhe funksionet e orientuara nga vargu.

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

kopje (s, indeks, numërim)- funksioni i zgjedhjes së një rreshti nga rreshti origjinal s gjatësia numëroj karaktere që fillojnë me karakterin nën numër indeks.

fshij (s, indeks, numërim)- procedura për heqjen nga vargu i një nënvargu me gjatësi numëroj karaktere që fillojnë me karakterin me numër indeks.

fut (s1, s2, indeks)- procedura e futjes së rreshtit s1 ne rresht s2 duke filluar me karakterin me numrin indeks.

gjatësia (s)- funksioni për përcaktimin e gjatësisë së vargut aktual, kthen një numër të barabartë me gjatësinë aktuale të vargut.

pos (s1, s2)- funksioni i kërkimit të vargut s2 nënstrings s1... jep numrin e pozicionit të karakterit të parë të një nënvargu s1 ne rresht s2(ose 0 nëse kjo linjë nuk është e pranishme).

val (st, x, kodi)- procedura për konvertimin e një vargu 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ë linjës 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ë përputhshme.

Dy lloje konsiderohen të pajtueshme nëse:

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

- të dyja janë reale;

- të dyja janë të plota;

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

- të dyja janë tipe vargu të të njëjtit lloj bazë;

- 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 fjalën e mbushur para) me të njëjtën gjatësi maksimale;

- njëri është tip-string, dhe tjetri është tip-string 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ë operatorët e caktimit. Le të jetë t1 lloji i ndryshores dhe t2 lloji i shprehjes, pra kryhet caktimi 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 - lloji real dhe t2 - lloji i numrit të plotë;

- t1 është një varg dhe t2 është një karakter;

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

- t1 dhe t2 - 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. Ky konvertim mund të jetë i qartë ose i nënkuptuar.

Konvertimet e tipit eksplicit quhen funksione të veçanta konvertimi, argumentet e të cilëve janë të një lloji dhe vlerat e një tjetri. 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ë tip real dhe e gjithë shprehja bëhet tip real;

- e njëjta zonë memorie interpretohet në mënyrë alternative se përmban të dhëna të një ose një lloji tjetër (duke kombinuar të dhëna të llojeve të ndryshme në memorie).

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 e funksionit ose shprehjet 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ë janë të zbatueshme për 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, për shkak të të cilit numri i përgjithshëm i llojeve të përdorura në program mund të jetë aq i madh sa dëshironi.

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 marrin vlerat e tyre tashmë gjatë ekzekutimit të programit dhe këto vlera mund të ndryshohen. Konstantet dhe variablat mund të aksesohen me emër.

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

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.

Të gjitha llojet janë përshkruar në detaje në këtë dhe në katër kapitujt e ardhshëm.

1.1 Llojet e thjeshta

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

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 i datës dhe kohës të destinuara për ruajtjen e datës dhe orës. Në fakt, ai përdor një format real për këto qëllime.

1.1.1 Llojet rendore

Llojet rendore përfshijnë (shih Figurën 1.1) numrin e plotë, boolean, karakterin, të numëruar dhe llojin e diapazonit. Funksioni Ord (x) është i zbatueshëm për cilindo prej tyre, i cili kthen vlerën rendore të shprehjes X.


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

Për e tërë të llojeve, funksioni ord (x) kthen vlerën e x vetë, domethënë Ord (X) = x për x që i përket ndonjë e tërë lloji. Zbatimi i rendit (x) në logjike , simbolike dhe të numërueshme 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 i gamës ruan të gjitha vetitë e tipit rendor bazë, kështu që rezultati i aplikimit të funksionit ord (x) në të varet nga vetitë e këtij lloji.

Ju gjithashtu mund të aplikoni funksione për llojet rendore:

para (x)- kthen vlerën e mëparshme të tipit rendor (vlera që i përgjigjet numrit rendor ord (x) -1, pra ord (рred (х)) = оrd (х) - 1;

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

Për shembull, nëse programi përcakton variablin

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 numerik, atëherë funksioni pred (x) nuk përcaktohet për të majtën, dhe succ (x) - për fundi i djathtë i 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. Tabela 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
Kardinali 4 0. .. 2 147 483 647
Bajt 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 u prezantuan për herë të parë në versionin 4, dhe llojet Smallint dhe Kardinali nuk disponohet në Delphi 1. Lloji numër i plotë për këtë version merr 2 bajt dhe ka një gamë vlerash nga -32768 në +32767, domethënë është njësoj si Smallint .

Gjatë përdorimit të procedurave dhe funksioneve me parametra të plotë, duhet të udhëhiqet nga "foleja" e llojeve, dmth. kudo që mund të përdoret fjalë, lejohet përdorimi Bajt(por jo anasjelltas), në Longint"Përfshirë" 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 Bajt , 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ë zbatueshme 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 (w) Bajt Kthen harkun e rendit të lartë të argumentit
Përshëndetje (unë) Gjithashtu Kthen bajtin e tretë
Ja (i) Kthen bajtin më pak të rëndësishëm të argumentit
Ja (w) Gjithashtu
tek (l) Boolean Kthen True nëse argumenti është një numër tek
E rastësishme (w) Njësoj si parametri Jep një numër pseudo të rastësishëm të shpërndarë në mënyrë të barabartë në intervalin 0 ... (w-l)
sqr (x) X Kthen katrorin e argumentit
ndërroj (i) Numër i plotë Ndërron bajtet me një fjalë
shkëmbejmë (w) fjalë Gjithashtu

Për operacionet me 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ë, lloji i zakonshëm, i cili 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ë... Në cilësimin e paracaktuar, përpiluesi Delphi nuk gjeneron kod që kontrollon mundësinë e kontrollit nëse një vlerë është jashtë rrezes, gjë që mund të çojë në konfuzion.

Llojet Boolean ... Llojet Boolean përfshijnë Boolean, ByteBool, Bool, wordBool dhe LongBool... Në Pascal standard, përcaktohet vetëm lloji Boolean, pjesa tjetër e llojeve 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 secila, LongBool- 4 bajt. Vlerat Boolean mund të jenë një nga konstantet e deklaruara më parë False ose True.

Meqenëse tipi boolean është një tip rendor, ai mund të përdoret në një operator cikli të një lloji të numërueshëm. Në Delphi 32 për Boolean kuptimi

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

Ord (E vërtetë) = -1, kështu që ky lloj operatori duhet të përdoret me kujdes! Për shembull, për Delphi 6, deklarata e ekzekutueshme tregon Message ("---") në ciklin e mëposhtëm për nuk do të ekzekutohet as edhe një herë:

për L: = E gabuar në e vërtetë

ShowMessage ("-);

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

Lloji i personazhit ... Vlerat e tipit të karakterit janë grupi i të gjithë karaktereve të PC. 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ë simbolit dhe kthehet nga funksioni ord.

Windows përdor kodin ANSI për kodim (emërtuar sipas Institutit 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): "A" ... "Z" janë vlerat e koduara 192..223, "a" ... "i" - 224 ... 255. Simbolet "Ё" 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 N 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 Kanë
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 e karaktereve të programit, ato konsiderohen si hapësira.

Më e zakonshme në matematikë llojet numerike- atë 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

Nënbashkësi të ndryshme të grupit të numrave të plotë mund të zbatohen brenda së njëjtës gjuhë. 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 ose katër bajt. Për shembull, 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ë kryeni 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ë (<>);
    raporti eshte me i vogel (<);
    raporti është më i madh (>);
    raporti nuk është më i vogël (> =);
    raport jo më shumë (<=).

Kur vepron me Llojet e të dhënave numerike të plota lloji i rezultatit do të korrespondojë me llojin e operandeve, dhe nëse operandët janë të llojeve të ndryshme të numrave të plotë, lloji i operandit me 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 ndarjes së "/" nuk është një e tërë, 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ë pjesëtimi i numrave të plotë, d.m.th. lloji i rezultatit është numër i plotë.

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

Lloji real i të dhënave numerike është një nëngrup i numrave 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 numrash. Grupi i parë i numrave quhet mantisa, i dyti - rendi. Në përgjithësi, një tip i të dhënave numerike me pikë lundruese mund të përfaqësohet si më poshtë: X = (+ | -) MP (+ | -) r, ku M është mantisa e një numri; r është rendi i numrit (r është një numër i plotë); P është baza e sistemit të numrave. Për shembull, për bazën dhjetore, përfaqësimi 2E-1 (këtu E është baza e sistemit të numrave dhjetorë) do të duket si: 2 * 10 -1 = 0,2, dhe përfaqësimi 1,234E5 do të korrespondojë me: 1,234 * 10 5 = 123400.0.

Në Pascal, përdoren 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 byte. Në këtë rast, 3 bajt do të jepen për mantisa, dhe një për porosinë.

Ju mund të kryeni veprimet e mëposhtme në lloje të vlefshme të të dhënave numerike:

  • Aritmetika:
    shtimi (+);
    zbritja (-);
    shumëzimi (*);
    ndarje (/);
    fuqizim;
    plus unar (+);
    unary minus (-).
  • Operacionet e marrëdhënieve:
    relacioni i pabarazisë (<>);
    raporti eshte me i vogel (<);
    raporti është më i madh (>);
    raporti nuk është më i vogël (> =);
    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 me mënyra të veçanta përpilimi. Këto lloje të të dhënave numerike janë krijuar për mbështetje harduerike për aritmetikën 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 zë lloji 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 nënshkruar "i madh" 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 mbi të, mund të përdoret si argument i funksioneve matematikore, etj.

Rreth konvertimit të llojeve të të dhënave numerike të 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ë që lejohet të përdoret në shprehje si reale... Për shembull, nëse variablat përshkruhen si kjo:

Var X: numër i plotë; Y: real;

Pastaj operatori

do të jetë sintaksisht e saktë, megjithëse ka një shprehje numër të plotë në të djathtë të shenjës së caktimit dhe një ndryshore reale në të majtë, përpiluesi do të konvertojë automatikisht llojet e të dhënave numerike. Konvertimi i kundërt është automatikisht si reale në lloj numër i plotë në Pascal është e pamundur. Le të kujtojmë se sa bajt janë ndarë për variablat e tipit numër i plotë dhe reale: për llojin e të dhënave me numër të plotë numër i plotë Alokohen 2 bajtë memorie, dhe reale - 6 bajtë. Për të kthyer reale v numër i plotë ka dy funksione të integruara: rrumbullakët(x) rrumbullakos x real në numrin e plotë më të afërt, trungu(x) shkurton numrin real duke hedhur poshtë pjesën thyesore.

Artikujt kryesorë të lidhur