Aina za data za kawaida. Aina rahisi. Aina za data zilizoundwa

Aina za kawaida ni pamoja na (ona Mchoro 4.1) nambari kamili, mantiki, tabia, aina zilizoorodheshwa na anuwai. Kazi ya ORD(X) inaweza kutumika kwa yeyote kati yao, ambayo inarudi nambari ya serial thamani ya usemi X. Kwa aina kamili, chaguo za kukokotoa za ORD(X) hurejesha thamani ya X yenyewe, i.e. ORD(X) = X kwa X inayomilikiwa na aina yoyote ya ganda. Utumiaji wa ORD(X) kwa aina za boolean, herufi na hesabu hutoa nambari kamili chanya katika safu 0 hadi 1 (boolean), 0 hadi 155 (herufi), 0 hadi 65535 (hesabu). Aina mbalimbali huhifadhi sifa zote za aina ya msingi, kwa hivyo matokeo ya kutumia ORD(X) kitendakazi kwake inategemea sifa za aina hiyo.

Unaweza pia kutumia utendakazi kwa aina za ordinal:

PRED (X) - inarudi thamani ya awali ya aina ya ordinal (thamani inayofanana na nambari ya ordinal ORD (X) - 1), i.e.

ORD(PRED(X)) = ORD(X) - 1;

SUCC (X) - inarudi thamani inayofuata aina ya ordinal, ambayo inalingana na nambari ya ordinal ORD (X) +1, i.e.

ORD(SUCC(X)) = ORD(X) + 1.

Kwa mfano, ikiwa mpango unafafanua kutofautiana

basi kazi ya PRED(C) itarudisha thamani "4", na kazi ya SUCC(C) itarudisha thamani "6".

Ikiwa tunafikiria aina yoyote ya mpangilio kama seti iliyoamriwa ya maadili, ikiongezeka kutoka kushoto kwenda kulia na kuchukua sehemu fulani kwenye mhimili wa nambari, basi kazi ya PRED(X) haijafafanuliwa kwa kushoto, na SUCC(X) kwa kulia. mwisho wa sehemu hii.

Aina nzima. Anuwai ya maadili yanayowezekana ya aina kamili inategemea uwakilishi wao wa ndani, ambao unaweza kuwa baiti moja, mbili au nne. Katika meza 4.1 inaonyesha jina la aina kamili, urefu wa uwakilishi wao wa ndani katika baiti na anuwai ya thamani zinazowezekana.

Jedwali 4.1

Unapotumia taratibu na kazi na vigezo kamili, unapaswa kuongozwa na "kiota" cha aina, i.e. popote WORD inaweza kutumika, BYTE inaweza kutumika (lakini si kinyume chake), LONGINT "inajumuisha" INTEGER, ambayo, kwa upande wake, inajumuisha SHORTINT.

Orodha ya taratibu na kazi zinazotumika kwa aina kamili imetolewa katika Jedwali 4.2. Barua b, s, w, i, l maneno ya aina ya BYTE, SHORTINT, WORD, INTEGER na LONGINT yameteuliwa, mtawalia, x ni kielelezo cha aina yoyote kati ya hizi; barua vb, vs, vw, vi, vl, vx kuashiria vigezo vya aina zinazolingana. Kigezo cha hiari kinaonyeshwa kwenye mabano ya mraba.

Jedwali 4.2

Taratibu za Kawaida na kazi zinazotumika kwa aina nzima
Rufaa Aina ya matokeo Kitendo
abs(x) x Hurejesha moduli x
chr(b) Char Hurejesha herufi kwa msimbo wake
dec(vx[,i]) - Hupunguza thamani ya vx kwa i, na kwa kukosekana kwa i - kwa 1
inc(vx[,i]) - Huongeza thamani ya vx kwa i, na kwa kukosekana kwa i - kwa 1
Hi(i) Byte Hurejesha baiti ya juu ya hoja
Hi(w) Sawa Sawa
Lo(i) " Hurejesha baiti ya chini ya hoja
Chini) " Sawa
isiyo ya kawaida(l) Boolean Hurejesha Kweli ikiwa hoja ni nambari isiyo ya kawaida
Nasibu (w) Sawa na parameter Hurejesha nambari ya uwongo iliyosambazwa kwa usawa katika safu 0...(w-l)
sgr(x) X Hurejesha mraba wa hoja
kubadilishana (i) Nambari kamili Hubadilisha baiti kwa neno moja
kubadilishana (w) Neno

Wakati wa kufanya kazi na nambari kamili, aina ya matokeo itafanana na aina ya operesheni, na ikiwa operesheni ni za aina tofauti kamili, aina ya operesheni ambayo ina nguvu ya juu (kiwango cha juu cha maadili). Kufurika kwa matokeo kunawezekana sio kudhibitiwa kwa njia yoyote, ambayo inaweza kusababisha kutokuelewana, kwa mfano:

a:= 32767; (Thamani ya juu iwezekanavyo INTEGER)

x:= a + 2; (Furika wakati wa kutathmini usemi huu !}

y:= LongInt(a)+2; (Hakuna kufurika baada ya kutuma kutofautisha kwa aina yenye nguvu zaidi)

AndikaLn(x:10:0, y:10:0)

Kama matokeo ya kuendesha programu tunapata

Aina ya Boolean . Thamani za Boolean zinaweza kuwa mojawapo ya viambajengo vilivyotangazwa awali FALSE au TRUE. Sheria zinatumika kwao:

Uongo< True;

succ(Uongo)= Kweli;

pred(Kweli) = Si kweli.

Kwa kuwa aina ya Boolean ni aina ya ordinal, inaweza kutumika kwa opereta wa aina inayoweza kuhesabika, kwa mfano:

kwa 1:= Uongo kwa Kweli fanya ....

Aina ya tabia. Thamani ya aina ya mhusika ni seti ya wahusika wote wa Kompyuta. Kila mhusika amepewa nambari kamili katika safu 0...255. Nambari hii hutumika kama msimbo wa uwakilishi wa ndani wa ishara; inarudishwa na chaguo la kukokotoa la ORD.

Nambari ya ASCII inatumika kwa usimbaji ( Kiwango cha Marekani Kanuni kwa Maingiliano ya Habari - Marekani kanuni ya kawaida kwa kubadilishana habari). Hii ni msimbo wa 7-bit, i.e. inaweza kutumika kusimba herufi 128 pekee katika safu kutoka 0 hadi 127. Wakati huo huo, katika baiti 8 iliyotengwa kwa ajili ya kuhifadhi herufi katika Turbo Pascal, unaweza kusimba mara mbili. wahusika zaidi katika safu kutoka 0 hadi 255. Nusu ya kwanza ya wahusika wa PC na kanuni 0 ... 127 inafanana na kiwango cha ASCII (Jedwali 4.3). Nusu ya pili ya herufi zilizo na nambari 128...255 hazizuiliwi na mfumo mgumu wa kiwango na zinaweza kubadilishwa kwenye PC. aina tofauti(Kiambatisho cha 2 kinaonyesha chaguzi za kawaida za usimbaji kwa herufi hizi).

Jedwali 4.3

Usimbaji wa herufi kulingana na kiwango cha ASCII
Kanuni Alama Kanuni Alama Kanuni Alama Kanuni Alama
NUL B.L. ® "
ZON ! A a
STX " KATIKA b
ETX # NA Na
EOT $ D d
ENQ % E e
ULIZA & F f
BEL " G g
B.S. ( H h
NT ) I i
LF * J j
VT + k k
FF , L i
CR - M m
HIVYO . N n
S.I. / KUHUSU
DEL uk P
DC1 Q q
DC2 R r
DC3 S s
DC4 T t
N.A.K. U u
SYN V V
ETB w w
INAWEZA X X
E.M. U U
SUB : z z
ESC / [ {
FS < \ l
G.S. = ] }
R.S. > ^ ~
Marekani ? - n

Wahusika wenye misimbo 0...31 wanarejelea kanuni za huduma. Ikiwa misimbo hii itatumika katika maandishi ya herufi ya programu, inachukuliwa kuwa nafasi nyeupe. Zinapotumiwa katika shughuli za I/O, zinaweza kuwa na maana huru ifuatayo:

Alama Kanuni Maana
BEL Wito; Maonyesho ya ishara hii yanaambatana na ishara ya sauti
NT Tabulation ya usawa; inapoonyeshwa kwenye skrini, husogeza kielekezi hadi mahali ambapo ni kizidishio cha 8 pamoja na 1 (9, 17, 25, n.k.)
LF Tafsiri ya mstari; wakati wa kuionyesha kwenye skrini, wahusika wote wanaofuata wataonyeshwa kuanzia nafasi sawa, lakini saa mstari unaofuata
VT kichupo cha wima; inapoonyeshwa kwenye skrini inabadilishwa ishara maalum
FF Kukimbia kwa ukurasa; inapotoka kwa printa, huunda ukurasa; inapotoka kwa skrini, inabadilishwa na herufi maalum
CR Kurudi kwa gari; aliingia kwa kubonyeza Ingiza ufunguo(inapoingizwa kwa kutumia READ au READN, inamaanisha amri ya "Ingiza" na haiingii kwenye bafa ya ingizo; inapotoka, inamaanisha amri ya "Endelea kutoa kutoka mwanzo" mstari wa sasa»)
SUB Mwisho wa faili; imeingia kutoka kwa kibodi kwa kushinikiza Ctrl-Z; wakati pato inabadilishwa na ishara maalum
SSC Mwisho wa kazi; aliingia kutoka kwa kibodi kwa kubonyeza Ufunguo wa ESC; wakati pato inabadilishwa na ishara maalum

Shughuli za uhusiano, pamoja na kazi zilizojengwa, zinatumika kwa aina ya CHAR: СНR (В) - kazi ya aina ya CHAR; hubadilisha usemi B wa aina ya BYTE kuwa herufi na kuirejesha ikiwa na thamani yake;

UPCASE (CH) - kazi ya aina ya CHAR; anarudi herufi kubwa, ikiwa CH ni herufi ndogo barua ya Kilatini, vinginevyo inarudisha herufi ya CH yenyewe, kwa mfano:

cl:= UpCase("s") ;

c2:= UpCase ("Ф") ;

AndikaLn(cl," ",c2)

Kwa kuwa chaguo la kukokotoa la UPCASE halichakati Kisirili, matokeo ya kuendesha hii

programu itaonyeshwa kwenye skrini

Aina ya Enum. Aina iliyoorodheshwa imebainishwa na hesabu ya maadili ambayo inaweza kupokea. Kila thamani imepewa jina na kitambulisho fulani na iko katika orodha iliyozungukwa na mabano, kwa mfano:

rangi =(nyekundu, nyeupe, bluu);

Matumizi ya aina zilizoorodheshwa hufanya programu zionekane zaidi. Ikiwa, kwa mfano, programu hutumia data inayohusishwa na miezi ya mwaka, basi kipande kifuatacho cha programu:

TypeMonth=(Jan,Feb,Mar,Apr,Mei,Jun,Jul,Agosti,Sep,Okt,Nov,Desemba);

mwezi: TypeMonth;

ikiwa mwezi = Aug basi WriteLn("Itakuwa nzuri kwenda baharini!");

Ingekuwa, unaona, wazi sana. Ole! Katika Turbo Pascal huwezi kutumia Cyrillic katika vitambulisho, kwa hivyo tunalazimishwa kuandika kama hii:

TypeMonth=(jan,feb,mar,mey,jun,jul,aug,sep,oct,nov,des);

mwezi: TypeMonth;

ikiwa mwezi = aug basi WriteLn("Itakuwa nzuri kwenda baharini!");

Mawasiliano kati ya maadili ya aina iliyoorodheshwa na nambari za ordinal za maadili haya huanzishwa na utaratibu wa hesabu: thamani ya kwanza katika orodha inapokea nambari ya ordinal 0, ya pili - 1, nk. Uwezo wa juu wa aina iliyoorodheshwa ni maadili 65536, kwa hivyo kwa kweli aina iliyoorodheshwa inafafanua sehemu ndogo ya aina nzima ya WORD na inaweza kuzingatiwa kama tamko la kompakt la kikundi cha nambari kamili na maadili 0, 1, nk.

Kutumia aina zilizoorodheshwa huongeza kuegemea kwa programu kwa kukuruhusu kudhibiti maadili ambayo anuwai zinazolingana hupokea. Kwa mfano, acha aina zifuatazo zilizoorodheshwa zipewe:

rangi = (nyeusi, nyekundu, nyeupe);

ordenal= (moja, mbili, tatu);

siku = (jumatatu, jumanne, Jumatano);

Kwa upande wa mamlaka na uwakilishi wa ndani, aina zote tatu ni sawa:

ord(nyeusi)=0, ..., ord(nyeupe)=2,

amri(moja)=0, ...ord(tatu)=2,

ord(jumatatu)=0, ...ord(Jumatano)=2.

Walakini, ikiwa vigezo vinafafanuliwa

col: rangi; nambari:ya kawaida;

basi waendeshaji wanaruhusiwa

namba:= succ(mbili);

siku:= kabla (jumanne);

lakini haikubaliki

Kama ilivyoelezwa tayari, kuna mawasiliano ya moja kwa moja kati ya maadili ya aina iliyoorodheshwa na seti ya nambari, iliyoainishwa na kazi ya ORD (X). Katika Turbo Pascal pia inawezekana ubadilishaji kinyume: Usemi wowote wa aina ya WORD unaweza kubadilishwa kuwa thamani ya aina ya hesabu, mradi tu thamani ya usemi kamili haizidi power1™ ya aina ya kuhesabiwa. Ugeuzaji huu unapatikana kwa kutumia chaguo za kukokotoa zilizotangazwa kiotomatiki zenye jina la aina iliyoorodheshwa (ona sehemu ya 4.4). Kwa mfano, kwa aina ya tamko lililojadiliwa hapo juu, kazi zifuatazo ni sawa:

col:= rangi(0);

Bila shaka, kazi

itakuwa haikubaliki.

Vigezo vya aina yoyote vilivyoorodheshwa vinaweza kutangazwa bila kwanza kutangaza aina hiyo, kwa mfano:

col: (nyeusi, nyeupe, kijani);

Aina mbalimbali. Aina ya masafa ni seti ndogo ya aina yake ya msingi, ambayo inaweza kuwa aina yoyote ya masafa isipokuwa aina mbalimbali. Aina mbalimbali hufafanuliwa na mipaka ya maadili yake ndani ya aina ya msingi:

<мин.знач.>..<макс.знач.>

Hapa<мин.знач. > - thamani ya chini aina mbalimbali;

<макс.знач.>- thamani yake ya juu.

Kwa mfano:

tarakimu = "0".."9";

Aina ya masafa si lazima ifafanuliwe katika sehemu ya TYPE, lakini inaweza kubainishwa moja kwa moja wakati wa kutangaza kigezo, kwa mfano:

Ichr: "A".."Z";.

Wakati wa kuamua aina ya aina, mtu lazima aongozwe na sheria zifuatazo:

  • wahusika wawili ".." huchukuliwa kama mhusika mmoja, kwa hivyo nafasi kati yao hairuhusiwi;
  • mpaka wa kushoto wa safu haipaswi kuzidi mpaka wake wa kulia. Aina mbalimbali hurithi mali zote za aina yake ya msingi, lakini kwa mapungufu ya nguvu zake za chini. Hasa, ikiwa kutofautisha kunafafanuliwa

siku = (mo,tu,we,th,fr,sa,su);

WeekEnd = sa .. su;

kisha ORD(W) itarudisha thamani 5 huku PRED(W) itasababisha hitilafu.

KATIKA maktaba ya kawaida Turbo Pascal inajumuisha kazi mbili zinazosaidia kufanya kazi na aina mbalimbali:

HIGH (X) - inarudi thamani ya juu aina ya anuwai ambayo kigezo cha X kinamilikiwa;

LOW(X) - hurejesha thamani ya chini zaidi ya aina ya masafa.

Inayofuata programu fupi itaonyesha mstari

AndikaLn(Chini(k),"..",Juu(k))

Seti ya nambari haina kikomo, lakini tunaweza kuchagua idadi ya biti kila wakati kuwakilisha nambari yoyote inayojitokeza wakati wa kusuluhisha. kazi maalum. Seti ya nambari halisi sio tu isiyo na kikomo, lakini pia inaendelea, kwa hivyo haijalishi ni bits ngapi tunachukua, bila shaka tutakutana na nambari ambazo hazina uwakilishi kamili. Nambari za hatua zinazoelea ni moja wapo njia zinazowezekana uwakilishi wa nambari halisi, ambayo ni biashara kati ya usahihi na anuwai ya maadili yanayokubalika.

Nambari ya sehemu inayoelea ina seti ya tarakimu za kibinafsi, zilizogawanywa kwa kawaida katika ishara, kipeo na mantissa. Kielelezo na mantissa ni nambari kamili ambazo, pamoja na ishara, hutoa uwakilishi ufuatao wa nambari ya sehemu inayoelea:

Kimahesabu imeandikwa hivi:

(-1) s × M × B E, ambapo s ni ishara, B ni radix, E ni kielezi, na M ni mantissa.

Msingi huamua mfumo wa nambari ya tarakimu. Imethibitishwa kihisabati kwamba nambari za nukta zinazoelea zenye msingi B=2 (uwakilishi wa jozi) hustahimili makosa ya kuzungusha, kwa hivyo katika mazoezi ni misingi 2 tu na, mara chache sana, 10 hupatikana. Kwa uwasilishaji zaidi, tutachukulia B= kila wakati. 2, na formula ya nambari iliyo na sehemu ya kuelea itaonekana kama:

(-1) s × M × 2 E

Mantissa ni nini na utaratibu? Mantissa ni nambari kamili ya urefu usiobadilika ambayo inawakilisha biti muhimu zaidi za nambari halisi. Tuseme mantissa yetu ina biti tatu (|M|=3). Chukua, kwa mfano, nambari "5", ambayo mfumo wa binary itakuwa sawa na 101 2. Kitu muhimu zaidi kinalingana na 2 2 = 4, kidogo ya kati (ambayo tunayo sawa na sifuri) 2 1 =2, na mdogo 2 0 =1. Agizo- hii ni nguvu ya msingi (mbili) ya tarakimu ya juu zaidi. Kwa upande wetu E=2. Ni rahisi kuandika nambari kama hizo katika kinachojulikana kama "kisayansi" fomu ya kawaida, kwa mfano "1.01e+2". Ni wazi mara moja kwamba mantissa ina ishara tatu, na utaratibu ni mbili.

Wacha tuseme tunataka kupata nambari ya sehemu, kwa kutumia vipande 3 sawa vya mantissa. Tunaweza kufanya hivi ikiwa tutachukua, kusema, E=1. Kisha idadi yetu itakuwa sawa

1.01e+1 = 1×2 1 +0×2 0 +1×2 -1 =2+0.5=2.5

Kwa wazi, kwa njia hii idadi sawa inaweza kuwakilishwa kwa njia tofauti. Hebu tuangalie mfano na urefu wa mantissa |M|=4. Nambari "2" inaweza kuwakilishwa kama ifuatavyo:

2 = 10 (katika binary) = 1.000e+1 = 0.100e+2 = 0.010e+3.

Kwa hiyo, tayari katika mashine za kwanza kabisa, nambari ziliwakilishwa katika kinachojulikana fomu ya kawaida, wakati sehemu ya kwanza ya mantissa mara zote ilichukuliwa kuwa sawa na moja.

Hii huokoa kidogo (kwani ile iliyofichwa haihitaji kuhifadhiwa kwenye kumbukumbu) na inahakikisha kwamba nambari inawakilishwa kipekee. Katika mfano wetu, "2" ina uwakilishi mmoja ("1.000e+1"), na mantissa huhifadhiwa kwenye kumbukumbu kama "000", kwa sababu kitengo kinachoongoza kinaonyeshwa kwa ukamilifu. Lakini katika uwakilishi wa kawaida wa nambari kunatokea tatizo jipya- haiwezekani kuwakilisha sifuri katika fomu hii.

  • Uchambuzi wa data kwa kutumia amri za Uteuzi wa Parameta na Utafutaji wa Suluhisho
  • Uchambuzi na tafsiri ya data ya majaribio ya utafiti wa kisaikolojia.
  • Uchambuzi wa data ya chanzo. Viwango vya kiufundi vya barabara za jiji.
  • UCHAMBUZI WA DATA ILIYOPATIKANA. KUFANYA UAMUZI KUHUSU UTOSHELEVU AU UPUNGUFU WA SIFA ZA UGAVI WA MAJI KWA MAHITAJI YA MFUMO WA UMWAGILIAJI.
  • Vifaa vya mstari wa mawasiliano: vifaa vya maambukizi ya data, vifaa vya terminal, vifaa vya kati.

  • Aina ya data hufafanua seti ya thamani halali na seti ya utendakazi halali.

    Aina rahisi.

    Aina rahisi zimegawanywa katika ORDINAL na REAL.

    1. AINA ZA AMRI , kwa upande wake, kuna:

    nzima

    Pascal anafafanua aina 5 kamili, ambazo hufafanuliwa kulingana na ishara na thamani ambayo kigezo kitachukua.

    Andika jina

    Urefu (katika baiti)

    Msururu wa maadili

    32 768...+32 767

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

    b) kimantiki

    Jina la aina hii ni BOOLEAN. Thamani za Boolean zinaweza kuwa mojawapo ya viambajengo vya Boolean: TRUE (kweli) au FALSE (sivyo).

    c) ishara

    Jina la aina hii ni CHAR - inachukua 1 byte. Thamani ya aina ya mhusika ni seti ya wahusika wote wa Kompyuta. Kila herufi imepewa nambari kamili katika safu 0…255. Nambari hii hutumika kama msimbo wa uwakilishi wa ndani wa ishara.

    2. AINA HALISI .

    Tofauti na aina za ordinal, ambazo maadili yao yanaonyeshwa kila wakati kwa safu ya nambari na kwa hivyo inawakilishwa kwa usahihi kabisa kwenye PC, maadili ya aina halisi hufafanua. nambari ya kiholela kwa usahihi fulani tu kulingana na umbizo la ndani la nambari halisi.

    Urefu wa aina ya data ya nambari, baiti

    Nambari ya aina ya jina la data

    Kiasi takwimu muhimu aina ya data ya nambari

    Mpangilio wa nambari ya aina ya data ya nambari

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

    AINA ZILIZOJULIWA

    Aina za data zilizopangwa hufafanua mkusanyiko uliopangwa wa vigezo vya scalar na vinajulikana na aina ya vipengele vyao.

    Aina za data zilizoundwa, tofauti na rahisi, hufafanua maadili mengi magumu na jina moja la kawaida. Tunaweza kusema kwamba aina za miundo huamua njia fulani ya kuunda aina mpya kutoka kwa zilizopo.

    Kuna mbinu kadhaa za muundo. Kwa mujibu wa njia ya shirika na aina ya vipengele katika aina za data ngumu, aina zifuatazo zinajulikana: aina ya kawaida (safu); aina ya pamoja (rekodi); aina ya faili (faili); aina nyingi; aina ya kamba (kamba); katika toleo la lugha ya Turbo Pascal 6.0 na zaidi, aina ya kitu (vitu) ilianzishwa.

    Tofauti na aina za data rahisi, data ya aina iliyopangwa ina sifa ya wingi wa vipengele vinavyounda aina hii, i.e. kutofautiana au mara kwa mara ya aina iliyopangwa daima ina vipengele vingi. Kila sehemu, kwa upande wake, inaweza kuwa ya aina iliyopangwa, i.e. kuota kwa aina kunawezekana.

    1. Safu

    Mkusanyiko katika Turbo Pascal kwa njia nyingi ni sawa na aina sawa za data katika lugha zingine za programu. Kipengele tofauti cha safu ni kwamba vifaa vyake vyote ni data ya aina moja (ikiwezekana muundo). Vipengele hivi vinaweza kupangwa kwa urahisi na yoyote kati yao inaweza kupatikana kwa kutaja nambari ya serial.

    Maelezo ya safu yameainishwa kama ifuatavyo:

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

    Hapa<имя типа>- kitambulisho sahihi;

    safu, ya - maneno yaliyohifadhiwa(safu, kutoka);

    <сп.инд.типов>- orodha ya aina moja au zaidi ya index, kutengwa na koma; mabano ya mraba yanayounda orodha ni hitaji la kisintaksia;

    <тип>- aina yoyote ya Turbo Pascal.

    Aina zozote za kawaida zinaweza kutumika kama aina za faharasa katika Turbo Pascal, isipokuwa LongInt na aina za masafa nazo aina ya msingi LongInt.

    Kina cha kuota kwa aina zilizoundwa kwa ujumla, na kwa hivyo ya safu, ni ya kiholela, kwa hivyo idadi ya vipengee katika orodha ya faharisi za aina (sawio la ukubwa) sio mdogo, hata hivyo, urefu wa jumla wa uwakilishi wa ndani wa safu yoyote haiwezi. kuwa zaidi ya ka 65520.

    2. Rekodi

    Rekodi ni muundo wa data unaojumuisha idadi isiyobadilika ya vipengele vinavyoitwa sehemu za rekodi. Tofauti na safu, vipengele (mashamba) vya rekodi vinaweza kuwa aina mbalimbali. Ili kufanya iwezekanavyo kutaja sehemu moja au nyingine ya rekodi, mashamba yanaitwa.

    Muundo wa tamko la aina ya chapisho ni:

    < Jinaaina>=REKODI< ushirikiano. mashamba>MWISHO

    Hapa<имя типа>- kitambulisho sahihi;

    REKODI, MWISHO - maneno yaliyohifadhiwa (rekodi, mwisho);

    <сп.полей>- orodha ya mashamba; ni mfuatano wa sehemu za rekodi zilizotenganishwa na nusu koloni.

    3. Seti

    Seti ni seti ya vitu vya aina moja ambavyo vinaunganishwa kimantiki kwa kila mmoja. Asili ya miunganisho kati ya vitu inaonyeshwa tu na kipanga programu na haidhibitiwi kwa njia yoyote na Turbo Pascal. idadi ya vipengele vilivyojumuishwa katika seti vinaweza kutofautiana kutoka 0 hadi 256 (seti ambayo haina vipengele inaitwa tupu) Ni kutofautiana kwa idadi ya vipengele vyake ambavyo huweka tofauti na safu na rekodi.

    Seti mbili zinachukuliwa kuwa sawa ikiwa na tu ikiwa vipengele vyao vyote ni sawa, na utaratibu wa vipengele vya seti haujali. Ikiwa vipengele vyote vya seti moja pia vimejumuishwa katika nyingine, seti ya kwanza inasemekana kujumuishwa katika pili.

    Maelezo ya aina ya seti ni:

    < Jinaaina>=SETI YA< misingi. aina>

    Hapa<имя типа>- kitambulisho sahihi;

    SET, OF - maneno yaliyohifadhiwa (kuweka, kutoka);

    <баз.тип>- aina ya msingi ya vipengele vya kuweka, ambayo inaweza kuwa aina yoyote ya ordinal isipokuwa WORD, INTEGER na LONGINT.

    Ili kufafanua seti, kinachojulikana kama mjenzi wa kuweka hutumiwa: orodha ya vipimo vya vipengele vya kuweka, vinavyotenganishwa na koma; orodha imezungukwa na mabano ya mraba. Vipimo vya kipengele vinaweza kuwa vibadilishi au vielezi vya aina ya msingi, pamoja na aina mbalimbali za aina ya msingi sawa.

    4. Faili

    Faili inarejelea ama eneo lenye jina kumbukumbu ya nje Kompyuta au kifaa cha kimantiki ni chanzo au kipokezi kinachowezekana cha habari.

    Faili yoyote ina sifa tatu

      ina jina, ambayo inaruhusu programu kufanya kazi na faili kadhaa wakati huo huo.

      ina vipengele vya aina moja. Aina ya sehemu inaweza kuwa aina yoyote ya Turbo Pascal, isipokuwa faili. Kwa maneno mengine, huwezi kuunda "faili ya faili."

      urefu tena faili iliyoundwa haijabainishwa kwa njia yoyote inapotangazwa na imepunguzwa tu na uwezo wa vifaa vya kumbukumbu ya nje.

    Aina ya faili au tofauti aina ya faili inaweza kuwekwa katika moja ya njia tatu:

    < Jina>= FAILI LA< aina>;

    < Jina>=MAANDIKO;

    <имя>= FILE;

    Hapa<имя>- jina la aina ya faili (kitambulisho sahihi);

    FILE, YA - maneno yaliyohifadhiwa (faili, kutoka);

    TEXT - jina la aina ya faili ya maandishi ya kawaida;

    <тип>- aina yoyote ya Turbo Pascal, isipokuwa faili.

    Kulingana na njia ya tamko, aina tatu za faili zinaweza kutofautishwa:

    · faili zilizochapwa (zilizowekwa na FILE YA... kifungu);

    · faili za maandishi(inafafanuliwa na aina ya TEXT);

    · faili ambazo hazijachapishwa (zilizofafanuliwa na aina ya FILE).

    Kuhusu uongofu aina za nambari Takwimu za Pascal

    Katika Pascal, ubadilishaji kamili (otomatiki) wa aina za data za nambari karibu hauwezekani. Isipokuwa tu kwa aina kamili, ambayo inaruhusiwa kutumika katika usemi wa aina halisi. Kwa mfano, ikiwa vigezo vinatangazwa kama hii:

    Var X: nambari kamili; Y: halisi;

    kisha mwendeshaji

    itakuwa sahihi kisintaksia, ingawa kuna usemi kamili upande wa kulia wa ishara ya mgao na tofauti halisi upande wa kushoto, mkusanyaji atabadilisha aina za data za nambari kiotomatiki. Ugeuzaji wa kinyume ni kiotomatiki kutoka kwa aina halisi hadi aina kamili haiwezekani katika Pascal. Wacha tukumbuke ni ka ngapi zimetengwa kwa anuwai ya nambari kamili na halisi: kwa aina kamili Baiti 2 za kumbukumbu zimetengwa kwa data kamili, na ka 6 kwa data halisi. Kuna vitendaji viwili vilivyojumuishwa vya kubadilisha halisi hadi nambari kamili: duru(x) huzungusha x halisi hadi nambari kamili iliyo karibu zaidi, trunc(x) hupunguza halisi kwa kutupa sehemu ya sehemu.

    Aina ya data

    Utangamano wa Aina

    Aina za data zilizoundwa

    Aina za data halisi

    Aina za kawaida data

    Aina ya data

    Mpango

    Hotuba ya 8

    Mada: Aina ya Data

    Wakusanyaji Lugha ya Pascal zinahitaji kwamba taarifa kuhusu kiasi cha kumbukumbu kinachohitajika ili kuendesha programu itolewe kabla ya kuanza kufanya kazi. Ili kufanya hivyo, katika sehemu ya maelezo ya kutofautiana (var), unahitaji kuorodhesha vigezo vyote vinavyotumiwa katika programu. Kwa kuongezea, unahitaji pia kumwambia mkusanyaji ni kumbukumbu ngapi kila moja ya anuwai hizi itachukua. Pia itakuwa nzuri kukubaliana mapema kuhusu shughuli mbalimbali, inatumika kwa anuwai fulani...

    Yote hii inaweza kuwasilishwa kwa programu kwa kuonyesha tu aina ya kutofautisha kwa siku zijazo. Kuwa na habari juu ya aina ya kutofautisha, mkusanyaji "anaelewa" ni ka ngapi zinahitaji kutengwa kwa ajili yake, ni hatua gani zinaweza kufanywa nayo, na katika ujenzi gani inaweza kushiriki.

    Aina inafafanua kuweka maadili yanayokubalika, ambayo hii au kitu hicho kinaweza kuwa nacho, pamoja na seti ya shughuli halali zinazotumika kwake. Kwa kuongeza, aina pia huamua muundo wa uwakilishi wa ndani wa data katika kumbukumbu ya PC.

    Aina za data za msingi ni za kawaida, kwa hivyo hakuna haja ya kuzielezea katika sehemu ya aina. Walakini, ikiwa inataka, hii inaweza pia kufanywa, kwa mfano, kwa kutoa ufafanuzi mrefu majina mafupi. Wacha tuseme kwa kuingia aina mpya data

    Aina Int = Nambari kamili;

    Unaweza kufupisha maandishi ya programu kidogo.

    Mgawanyiko katika aina za data za kimsingi na iliyoundwa katika Pascal unaonyeshwa kwenye jedwali:

    Miongoni mwa aina za data za msingi, aina za kawaida zinajitokeza. Jina hili linaweza kuhesabiwa haki kwa njia mbili:

    1. Kila kipengele cha aina ya ordinal kinaweza kuhusishwa na nambari ya kipekee (ya kawaida). Idadi ya maadili huanza kutoka sifuri. Isipokuwa ni aina za data za ShortInt, Integer na LongInt. Nambari zao zinalingana na maadili ya vitu.



    2. Kwa kuongeza, juu ya vipengele vya aina yoyote ya ordinal kuna utaratibu ulioelezwa (kwa maana ya hisabati ya neno), ambayo inategemea moja kwa moja na hesabu. Kwa hivyo, kwa vipengele viwili vya aina ya ordinal, mtu anaweza kusema hasa ni ipi ndogo na ipi ni kubwa kuliko 2.

    D Pascal huongeza kwa kiasi kikubwa CF Pascal kwa kuongeza aina mpya za data kwenye alama na faili. Aina za data za kawaida huelezea vitu rahisi, visivyogawanyika. Aina ya hesabu ina seti isiyobadilika ya vitu vilivyopewa jina. Aina ya Boolean ina vitu viwili tu - TRUE na FALSE. Aina kamili hutumia nambari chanya na hasi. Hatimaye, sehemu ya aina inaweza pia kuwa aina, aina mbalimbali. Bila shaka, aina ni pamoja na shughuli zinazofafanua kile kinachoweza kufanywa na vitu. Kwa mantiki, nambari kamili, nk. Operesheni hizi zinaeleweka vyema kwa intuitively.

    Aina za data zinaelezea seti za maadili na shughuli zinazoweza kutumika kwao. Aina za data zilizoletwa na CF Pascal ni CHAR na TEXT. Maadili ya aina ya CHAR ni seti ya alama halali za Pascal, na shughuli kwenye maadili haya ni waendeshaji kulinganisha:

    = < > <= >= <>

    ambao maadili yao yanalingana shughuli za hisabati, inayoakisi nafasi tofauti za wahusika katika mfuatano wa kialfabeti. Thamani za aina ya data ya TEXT ni mfuatano wa mifuatano, kila mstari ukiwa mfuatano wa herufi. Operesheni kwenye data kama hii:

    WEKA UPYA ANDIKA UPYA SOMA ANDIKA WRITELN OEF EOLN

    Aina za data hutoa manufaa uondoaji, urudufishaji Na uthibitisho.

    Aina za data ni muhtasari wa sifa muhimu za data. Kwa mfano, kuelewa kulinganisha

    'A'< ‘B’

    hakuna haja ya kujua jinsi alama hizi zinawakilishwa kwenye mashine ya Pascal. Mlolongo wa kupanga huamua maana ya shughuli hizi. Mtumiaji hahitaji kujua idadi ya biti zinazowakilisha thamani ya herufi, nini kinatokea kwa biti zisizohitajika, au ikiwa thamani ya kibambo ni halali. B zaidi ya kwa A na kadhalika.

    Moduli hutoa aina ya uondoaji wa data, lakini aina za data hutoa zaidi ya hiyo. Kutangaza vigeu vya aina ya data hukuruhusu kuhifadhi na kudhibiti idadi yoyote ya maadili ya aina kupitia anuwai hizi. Kila matumizi ya kibadilishaji katika programu hutupatia hakikisho kwamba ni shughuli halali pekee ndizo zitatumika kwake.

    Muktadha wa oparesheni katika mpango unamaanisha aina ya operesheni, aina hii iliyoonyeshwa ni habari isiyohitajika ambayo inaweza kuangaliwa dhidi ya aina iliyotangazwa ya operesheni ili kuzuia utendakazi kwa maadili ya aina isiyo sahihi. Fikiria kipande cha programu kifuatacho:

    PROGRAM Typex(PEMBEJEO, PATO);

    Kwa kuwa = opereta imefafanuliwa katika CF Pascal kwa watendaji wa herufi pekee, mwonekano wa Ch na F kama uendeshaji unamaanisha kuwa zote mbili ni aina za CHAR. Ch imechapishwa kwa usahihi, lakini F inatangazwa kama TEXT, kwa hivyo kutolingana kutatambuliwa.


    Kuna aina mbili za aina za data katika D Pascal: aina rahisi za data na aina za data zilizojumlishwa. Maadili ya aina rahisi hayawezi kujumuisha sehemu ndogo ambazo zinaweza kubadilishwa kibinafsi. CHAR ni aina rahisi. Maadili ya aina ngumu za data huundwa kwa kuchanganya maadili ya aina rahisi. TEXT - aina ya mchanganyiko, kwa sababu mistari ya faili ina wahusika.

    Maadili ya aina rahisi yameagizwa, yaani, kwa kila jozi ya maadili ya aina hii x, y, chaguo moja tu linawezekana: x.< y, x = y, x >y. Kwa hiyo, aina hizi huitwa ordinal.

    Pascal ina aina tatu za ordinal zilizobainishwa awali, ambazo zimebainishwa na vitambulisho CHAR, INTEGER na BOOLEAN. Kwa kuongezea aina zilizofafanuliwa awali, Pascal hutoa njia mbili kwa programu kufafanua aina mpya za ordinal, ambazo ni:

    1. Aina zilizoorodheshwa ambazo thamani zake ni vitambulishi vya kipekee.
    2. Aina anuwai ambazo maadili yake ni maadili ya mpangilio wa aina nyingine ya ordinal.

    Hiyo ni, aina mpya za data za kawaida zinaweza kufafanuliwa kwa kuorodhesha viunga vya aina au kwa kubainisha kuwa maadili ya aina ni aina ndogo ya maadili. aina iliyopo. Syntax ya kuashiria aina kama hizi za ordinal ni kama ifuatavyo.

    <обозначение типа> ::= <идентификатор типа> | <новый тип>

    <идентификатор типа> ::= <идентификатор>

    <новый тип> ::= <перечислимый тип> | <тип диапазон>

    Mbinu za maelezo kwa<перечислимый тип>Na<тип диапазон>itatolewa katika sehemu zinazohusika hapa chini.

    Wakati aina mpya imefafanuliwa, inaweza kupewa jina katika tamko la aina. Tamko hili lazima litangulie tamko la vigezo vya kuzuia.

    <блок> ::= <раздел объявлений типов> <раздел объявлений переменных>

    <раздел объявлений процедур> <раздел операторов>

    <раздел объявлений типов>::= AINA<объявления типов> |

    Sheria hii inaonyesha hivyo<раздел объявлений типов>inaweza kuwa tupu (kama ilivyokuwa katika programu zote hapo awali hapa)

    <объявления типов> ::= <объявления типов> <объявление типа> | <объявление типа>

    <объявление типа> ::=<идентификатор > = <обозначение типа>

    Kanuni ya muktadha inayoambatana na sheria hizi za sintaksia inasema kwamba ni vitambulishi vingine tu<объявлением типа>:

    CR Ili kutumika kama<идентификатор типа>, <идентификатор>lazima ilionekana hapo awali<объявлениях типов>.

    Hivyo kwa

    T1 na T2 zote ni vitambulishi vya aina na vinaweza kutumika katika kizuizi cha sasa kutangaza vigeuzo na vigezo rasmi, kama CHAR ilitumika hapo awali.

    Kwa lugha ya Pascal vigezo ni sifa kwa wao aina. Aina ni sifa ya kigezo ambacho kigeu kinaweza kuchukua thamani nyingi zinazoruhusiwa na aina hiyo na kushiriki katika shughuli nyingi zinazoruhusiwa kwenye aina hiyo.

    Aina hufafanua seti ya thamani halali ambazo kigezo kinaweza kuchukua. wa aina hii. Pia inafafanua seti ya utendakazi halali kwenye kigezo cha aina fulani na inafafanua uwakilishi wa data ndani kumbukumbu ya ufikiaji bila mpangilio kompyuta.

    Kwa mfano:

    n: nambari kamili;

    Pascal ni lugha tuli, ambayo ina maana kwamba aina ya kutofautiana hutambuliwa wakati inatangazwa na haiwezi kubadilishwa. Lugha ya Pascal ina mfumo wa aina iliyotengenezwa - data zote lazima zimilikiwe mapema aina inayojulikana data (ama aina ya kawaida iliyoundwa wakati wa ukuzaji wa lugha au aina maalum ambayo inafafanuliwa na mtayarishaji programu). Msanidi programu anaweza kuunda aina zake mwenyewe na muundo wa utata wa kiholela kulingana na aina za kawaida, au tayari mtumiaji amefafanuliwa aina. Kiasi aina zilizoundwa isiyo na kikomo. Aina maalum katika programu zinatangazwa katika sehemu ya TYPE kwa kutumia umbizo:

    [jina] = [aina]

    Mfumo wa aina za kawaida una muundo wa matawi, wa kihierarkia.

    Msingi katika uongozi ni aina rahisi. Aina kama hizo zipo katika lugha nyingi za programu na huitwa rahisi, lakini kwa Pascal zina muundo ngumu zaidi.

    Aina za muundo hujengwa kulingana na sheria fulani kutoka kwa aina rahisi.

    Vibandiko huundwa kutoka aina rahisi na hutumiwa katika programu za kuweka anwani.

    Aina za utaratibu ni uvumbuzi katika lugha ya Turbo Pascal, na huruhusu subroutines kufikiwa kana kwamba ni vigeuzo.

    Vitu pia ni uvumbuzi, na zinakusudiwa kutumia lugha kama lugha inayolenga kitu.

    Katika lugha ya Pascal, kuna aina 5 za aina kamili. Kila mmoja wao ana sifa ya anuwai ya maadili yanayokubalika na nafasi wanayochukua kwenye kumbukumbu.

    Unapotumia nambari kamili, unapaswa kuongozwa na nesting ya aina, i.e. aina zilizo na masafa madogo zaidi zinaweza kuwekwa ndani ya aina zilizo na masafa makubwa zaidi. Aina ya Byte inaweza kuwekwa katika aina zote zinazochukua baiti 2 na 4. Wakati huo huo Aina fupi Int ambayo inachukua baiti 1 haiwezi kuwekwa ndani Aina ya neno, kwa kuwa haina maadili hasi.

    Kuna aina 5 halisi:

    Aina kamili zinawakilishwa kwa usahihi kabisa kwenye kompyuta. Tofauti na aina kamili, thamani ya aina halisi hufafanua nambari ya kiholela tu kwa usahihi fulani, kulingana na umbizo la nambari. Nambari halisi zinawakilishwa kwenye kompyuta kama sehemu isiyobadilika au inayoelea.

    2358.8395

    0.23588395*10 4

    0.23588395*E 4

    Aina ya Comp inachukua nafasi maalum katika Pascal; kwa kweli, ni nambari kubwa iliyotiwa saini. Aina hii inaoana na aina zote halisi na inaweza kutumika kwa nambari kamili. Baada ya kuwasilisha nambari za kweli hatua ya kuelea uhakika wa desimali, daima hudokezwa kabla ya mantissa ya kushoto au ya juu, lakini inapoendeshwa kwa nambari huhamishiwa kushoto au kulia.

    Aina za kawaida

    Aina za kawaida huchanganya aina kadhaa rahisi. Hizi ni pamoja na:

    • aina zote kamili;
    • aina ya tabia;
    • aina ya boolean;
    • aina mbalimbali;
    • aina iliyoorodheshwa.

    Vipengele vya kawaida vya aina za ordinal ni: kila aina ina idadi ya mwisho ya maadili iwezekanavyo; thamani ya aina hizi inaweza kuamuru kwa njia fulani na idadi fulani, ambayo ni nambari ya serial, inaweza kuhusishwa na kila nambari; maadili ya karibu ya aina ya ordinal hutofautiana na moja.

    Kwa thamani za aina ya ordinal, chaguo za kukokotoa ODD(x) zinaweza kutumika, ambazo hurejesha nambari ya mpangilio wa hoja x.

    Kazi PRED(x) - hurejesha thamani ya awali ya aina ya ordinal. PRED(A) = 5.

    Chaguo za kukokotoa za SUCC(x) - hurejesha thamani inayofuata ya mpangilio. SUCC(A) = 5.

    Aina ya tabia

    Maadili ya aina ya mhusika ni herufi 256 kati ya seti halali jedwali la kanuni kompyuta unayotumia. Sehemu ya awali ya seti hii, ambayo ni, safu kutoka 0 hadi 127 inalingana na seti ya nambari za ASCII, ambapo herufi za alfabeti, nambari za Kiarabu na herufi maalum hupakiwa. Herufi za eneo la kuanzia zipo kwenye kibodi ya Kompyuta kila wakati. Eneo la juu linaitwa mbadala, lina alama za alfabeti za kitaifa na mbalimbali Alama maalum, na herufi za bandia zisizo za ASCII.

    Thamani ya aina ya herufi inachukua hadi baiti moja katika RAM. Katika mpango, maana zimefungwa katika apostrophes. Maadili yanaweza pia kubainishwa katika mfumo wa nambari zao za ASCII. Katika kesi hii, unahitaji kuweka ishara # mbele ya nambari na nambari ya ishara.

    C:= 'A'

    Aina ya mantiki (Boolean).

    Kuna maadili mawili ya Boolean: Kweli na Si kweli. Vigezo vya aina hii vimebainishwa kwa kutumia neno la kukokotoa la BOOLEAN. Thamani za Boolean huchukua byte moja kwenye RAM. Thamani za Kweli na Uongo zinalingana maadili ya nambari 1 na 0.

    Aina mbalimbali

    Kuna sehemu ndogo ya aina yake ya msingi, ambayo inaweza kuwa aina yoyote ya ordinal. Aina mbalimbali hufafanuliwa na mipaka ndani ya aina ya msingi.

    [thamani ya chini]…[thamani-ya juu]

    Aina ya safu inaweza kubainishwa katika sehemu ya Aina kama aina fulani, au unaweza moja kwa moja katika sehemu ya Var.

    Wakati wa kuamua aina mbalimbali, lazima uongozwe na:

    • mpaka wa kushoto haupaswi kuzidi mpaka wa kulia;
    • aina mbalimbali hurithi mali yote ya aina ya msingi, lakini kwa mapungufu yanayohusiana na nguvu zake za chini.

    Aina ya Enum

    Aina hii ni ya aina za ordinal na imebainishwa kwa kuorodhesha maadili ambayo inaweza kuhesabu. Kila thamani inaitwa kitambulisho fulani na iko katika orodha, iliyowekwa kwenye mabano. Aina iliyoorodheshwa imeainishwa katika Aina:

    Watu = (wanaume, wanawake);

    Thamani ya kwanza ni 0, thamani ya pili ni 1, nk.

    Kiwango cha juu cha nguvu 65535 maadili.

    Aina ya kamba

    Aina ya kamba ni ya kundi la aina zilizopangwa na lina aina ya msingi ya Char. Aina ya kamba sio aina ya kawaida. Inafafanua mifuatano mingi ya herufi za urefu usio na mpangilio hadi vibambo 255.

    Katika mpango, aina ya kamba inatangazwa na neno Kamba. Kwa kuwa Kamba ni aina ya msingi, inafafanuliwa katika lugha na kutangazwa aina ya kutofautiana Kamba inatekelezwa katika Var. Wakati wa kutangaza kutofautiana aina ya kamba Inashauriwa kuonyesha urefu wa kamba nyuma ya Kamba katika mabano ya mraba. Nambari kamili kutoka 0 hadi 255 hutumiwa kuashiria.

    Familia: Kamba;

    Kubainisha urefu wa kamba huruhusu mkusanyaji kutenga idadi maalum ya baiti katika RAM kwa kigezo hiki. Ikiwa urefu wa kamba haujainishwa, basi mkusanyaji atatoa idadi ya juu inayowezekana ya ka (255) kwa thamani ya tofauti hii.