Hebu tujifunze zaidi kuhusu aina za data za lugha ya Pascal: Integer, Real, Char, String, Boolean. Aina za data za Pascal

Aina za data za lugha ya Pascal: uainishaji na maelezo. Aina za data za hesabu na za kawaida, vitendo nao. Maneno ya hesabu: kazi, shughuli na mpangilio wa vitendo. Utangamano wa aina ya data na ubadilishaji.

Wakusanyaji wa Pascal wanahitaji kwamba taarifa kuhusu kiasi cha kumbukumbu kinachohitajika ili kuendesha programu itolewe kabla ya kuendeshwa. Ili kufanya hivyo, katika sehemu ya maelezo tofauti ( var) unahitaji kuorodhesha anuwai zote zinazotumiwa kwenye programu. Kwa kuongezea, unahitaji pia kumwambia mkusanyaji ni kumbukumbu ngapi kila moja ya anuwai hizi itachukua. Itakuwa nzuri pia kukubaliana mapema juu ya shughuli mbali mbali zinazotumika 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.

Kwa urahisi wa waandaaji wa programu, Pascal ana aina nyingi za data za kawaida, pamoja na uwezo wa kuunda aina mpya.

Wakati wa kujenga aina mpya za data kulingana na zilizopo (kawaida au tena hufafanuliwa na programu mwenyewe), lazima tukumbuke kwamba jengo lolote lazima lijengwe kwa msingi mzuri. Kwa hivyo, sasa tutazungumza juu ya "msingi" huu.

Kulingana aina za data za msingi aina zingine zote za lugha ya Pascal zimejengwa, ambazo huitwa: imejengwa.

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

Aina za data zilizoundwa na programu zimeelezewa katika sehemu aina kulingana na template ifuatayo:

aina<имя_типа> = <описание_типа>;

Kwa mfano:

chapa Lat_Bukvy = "a" .. "z", "A" .. "Z";

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

aina Int = Nambari kamili;

Unaweza kufupisha maandishi ya programu kidogo.

Aina zilizojengwa za kawaida pia hazihitaji kuelezewa katika sehemu aina. Walakini, katika hali zingine hii bado inapaswa kufanywa kwa sababu ya mahitaji ya sintaksia. Kwa mfano, katika orodha ya vigezo taratibu au kazi Waundaji wa aina hawawezi kutumika (tazama hotuba 8).

Aina za data za kawaida

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

Taratibu za kawaida ambazo mchakato huo aina za data za kawaida

Kwa idadi tu aina za kawaida Kazi na taratibu zifuatazo zinafafanuliwa:

  1. Kazi Amri(x) hurejesha nambari ya mpangilio ya thamani ya kigezo cha x (kinachohusiana na aina ambayo kigezo cha x kinahusika).
  2. Kazi Pred(x) inarejesha thamani iliyotangulia x (haitumiki kwa kipengele cha kwanza cha aina).
  3. Kazi Succ(x) inarudisha thamani ifuatayo x (haitumiki kwa kipengele cha mwisho cha aina).
  4. Utaratibu Inc(x) inarudisha thamani ifuatayo x (kwa aina za data za hesabu hii ni sawa na opereta x:= x + 1).
  5. Utaratibu Inc(x, k) inarudisha thamani ya kth ifuatayo x (kwa aina za data za hesabu hii ni sawa na opereta x:= x + k).
  6. Utaratibu Des(x) inarudisha thamani iliyotangulia x (kwa aina za data za hesabu hii ni sawa na opereta x:= x - 1).
  7. Utaratibu Des(x, k) inarudisha thamani ya k-e iliyotangulia x (kwa aina za data za hesabu hii ni sawa na opereta x:= x - k).

Kwa mtazamo wa kwanza, inaonekana kama matokeo ya kutumia utaratibu Inc(x) inafanana kabisa na matokeo ya kutumia kazi Succ(x). Walakini, tofauti kati yao inaonekana kwenye mipaka ya safu inayoruhusiwa. Kazi Succ(x) haitumiki kwa kipengele cha juu cha aina, lakini hapa kuna utaratibu Inc(x) haitatoa kosa lolote, lakini, kutenda kulingana na sheria za kuongeza mashine, itaongeza kitengo kinachofuata kwa nambari ya kipengele. Nambari, kwa kweli, itapita zaidi ya safu na, kwa sababu ya upunguzaji, itageuka kuwa nambari ya thamani ya chini ya safu. Inageuka kuwa taratibu Inc() Na Des() wanaona aina yoyote ya ordinal kana kwamba "imefungwa kwa pete": mara tu baada ya ya mwisho, thamani ya kwanza inakuja tena.

Hebu tueleze kila kitu ambacho kimesemwa kwa mfano. Kwa aina ya data

aina ya kumi na sita = 0 .. 15;

kujaribu kuongeza 1 kwa nambari 15 itasababisha matokeo yafuatayo:

1 1 1 1 1 1 0 0 0 0

Kitengo cha awali kitakatwa, na kwa hiyo inageuka kuwa Inc(15)=0 .

Hali kama hiyo katika kikomo cha chini cha anuwai inayoruhusiwa ya aina ya data ya kawaida huzingatiwa kwa utaratibu. Des(x) na kazi Pred(x):

Aina za data zinazohusiana na kawaida

Hebu sasa tueleze aina za data za kawaida kwa maelezo.

  1. Aina ya Boolean Boolean ina maadili mawili: Uongo na Kweli, na usawa ufuatao unashikilia kwao:
  2. Kwa aina ya mhusika Char inajumuisha herufi 256 Jedwali la ASCII lililopanuliwa(kwa mfano, "a", "b", "i", "7", "#"). Nambari ya herufi iliyorejeshwa na chaguo la kukokotoa Amri() , inalingana na nambari ya alama hii ndani Jedwali la ASCII.
  3. Aina za data kamili Wacha tuiweke kwenye meza:
  4. Inayoorodheshwa aina za data zimeainishwa katika sehemu hiyo aina kwa kuorodhesha vipengele vyao kwa uwazi. Kwa mfano:

    aina Wiki = (jua, mon, tue, wed, thu, fri, sat); 0 1 2 3 4 5 6

    Kumbuka kwamba kwa aina hii ya data:

  5. Aina za data za muda zimeainishwa tu na mipaka ya masafa yao. Kwa mfano:

    aina Mwezi = 1 .. 12;
    Budni = Mon .. Fri;

  6. Msanidi programu anaweza kuunda aina zake za data, ambazo ni mchanganyiko wa aina kadhaa za kawaida. Kwa mfano:

    aina Valid_For_Identifiers = "a" .. "z" , "A" .. "Z" , "_" , "0" .. "9" ;

Aina hii inajumuisha kuchanganya vipindi kadhaa, na katika kesi hii mpangilio wa herufi za Kilatini hubadilishwa: ikiwa katika aina ya kawaida.

Ya kawaida zaidi katika hisabati aina za nambari-Hii mzima nambari zinazowakilisha idadi isiyo na kikomo ya maadili tofauti, na halali nambari zinazowakilisha mwendelezo usio na kikomo wa maadili.

Maelezo ya aina za data za Pascal (integers)

Ndani ya lugha moja, vikundi vidogo tofauti vya seti kamili vinaweza kutekelezwa. Anuwai ya thamani zinazowezekana za aina kamili za nambari hutegemea uwakilishi wao wa ndani, ambao unaweza kuwa baiti moja, mbili au nne. Kwa hivyo, katika Pascal 7.0 aina zifuatazo za data za nambari zinatumika:

Na nzima aina za data za nambari Pascal anaweza kufanya shughuli zifuatazo:

  • Hesabu:
    nyongeza(+);
    kutoa(-);
    kuzidisha (*);
    salio la mgawanyiko (mod);
    ufafanuzi;
    unary plus (+);
    unary minus (-).
  • Shughuli za uhusiano:
    uhusiano wa usawa (=);
    uhusiano usio na usawa (<>);
    uwiano ni mdogo (<);
    uwiano mkubwa kuliko (>);
    uhusiano usiopungua (>=);
    sio tabia tena (<=).

Wakati wa kuigiza na aina kamili za data za nambari aina ya matokeo itafanana na aina ya uendeshaji, na ikiwa uendeshaji ni wa aina tofauti kamili, kwa aina ya uendeshaji ambayo ina nguvu ya juu (kiwango cha juu cha maadili). Uwezekano wa kufurika kwa matokeo haudhibitiwi kwa njia yoyote (ni muhimu!) , ambayo inaweza kusababisha makosa.

Uangalifu hasa unapaswa kulipwa kwa uendeshaji wa mgawanyiko wa aina kamili za data za nambari. Pascal inaruhusu shughuli mbili za mgawanyiko, ambazo zinaonyeshwa ipasavyo "/" Na div. Unahitaji kujua kuwa matokeo ya mgawanyiko "/" sio nambari, lakini nambari halisi(hii ni kweli hata ukigawanya 8 kwa 2, yaani 8/2=4.0). Mgawanyiko wa mgawanyiko ni mgawanyiko kamili, i.e. aina ya matokeo ni integer.

Maelezo ya aina za data za Pascal (halisi)

Aina halisi ya data ya nambari inarejelea kikundi kidogo cha nambari halisi ambacho kinaweza kuwakilishwa katika kinachojulikana kama umbizo la sehemu inayoelea na nambari isiyobadilika ya nambari. Na sehemu inayoelea, kila aina ya data ya nambari inawakilishwa kama vikundi viwili vya nambari. Kundi la kwanza la nambari linaitwa mantissa, la pili ni kielelezo. Kwa ujumla, aina ya data ya nambari katika fomu ya uhakika inayoelea inaweza kuwakilishwa kama ifuatavyo: X= (+|-)MP (+ | -) r, ambapo M ni mantissa ya nambari; r - utaratibu wa nambari (r - integer); P - msingi wa mfumo wa nambari. Kwa mfano, kwa msingi wa decimal, uwakilishi 2E-1 (hapa E ni msingi wa mfumo wa nambari ya decimal) utaonekana kama: 2*10 -1 =0.2, na uwakilishi 1.234E5 utafanana na: 1.234*10 5 =123400.0.

Pascal hutumia aina zifuatazo za nambari halisi, ambazo hufafanua nambari ya kiholela tu kwa usahihi fulani kulingana na umbizo la ndani la nambari halisi:

Wakati wa kuelezea utofauti halisi wa aina halisi, tofauti ya ka 4 itaundwa kwenye kumbukumbu ya kompyuta. Katika kesi hii, byte 3 zitatolewa kwa mantissa, na byte moja kwa utaratibu.

Shughuli zifuatazo zinaweza kufanywa kwa aina halisi za data za nambari:

  • Hesabu:
    nyongeza (+);
    kutoa(-);
    kuzidisha (*);
    mgawanyiko (/);
    ufafanuzi;
    unary plus (+);
    unary minus (-).
  • Shughuli za uhusiano:
    uhusiano usio na usawa (<>);
    uwiano ni mdogo (<);
    uwiano mkubwa kuliko (>);
    uhusiano usiopungua (>=);
    sio tabia tena (<=).

Kama unaweza kuona, Pascal ina sifa ya anuwai ya aina halisi, lakini ufikiaji wa aina za data za nambari single, mara mbili Na kupanuliwa inawezekana tu chini ya njia maalum za mkusanyiko. Aina hizi za data za nambari zimeundwa kwa ajili ya usaidizi wa maunzi kwa hesabu ya sehemu zinazoelea, na ili kuzitumia vyema, Kompyuta yako lazima iwe na kichakataji hesabu.

Aina ya data ya nambari inachukua nafasi maalum katika Pascal. comp, ambayo inachukuliwa kama nambari halisi bila sehemu za kielelezo na za sehemu. Kweli, comp ni nambari kamili iliyotiwa saini "kubwa" ambayo hubakiza tarakimu 19..20 muhimu za desimali. Wakati huo huo, aina ya data ya nambari comp katika misemo inaendana kikamilifu na aina zingine halisi: shughuli zote halisi zimefafanuliwa juu yake, inaweza kutumika kama hoja ya kazi za hisabati, nk.

Kuhusu kubadilisha aina za data za Pascal

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

Var X: nambari kamili; Y: halisi;

Huyo ndiye 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 aina ya kiotomatiki halisi katika aina nambari kamili haiwezekani katika Pascal. Wacha tukumbuke ni ka ngapi zimetengwa kwa anuwai ya aina nambari kamili Na halisi: kwa aina kamili ya data nambari kamili 2 byte za kumbukumbu zimetengwa, na kwa kweli - 6 byte. Ili kubadilisha halisi V nambari kamili Kuna kazi mbili zilizojumuishwa: pande zote(x) huzungusha x halisi hadi nambari kamili iliyo karibu zaidi, shina(x) hupunguza nambari halisi kwa kutupa sehemu ya sehemu.

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 kawaida, ambazo maadili yao yanaonyeshwa kila wakati kwa safu ya nambari na kwa hivyo huwakilishwa kwa usahihi kabisa kwenye PC, maadili ya aina halisi hufafanua nambari ya kiholela tu kwa usahihi fulani kulingana na muundo wa ndani wa nambari halisi. .

Urefu wa aina ya data ya nambari, baiti

Nambari ya aina ya jina la data

Idadi ya tarakimu muhimu za 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 changamano 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 mbalimbali zilizo na aina ya msingi ya 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) ya rekodi inaweza kuwa ya aina tofauti. 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 inaeleweka kama eneo lililopewa jina la kumbukumbu ya nje ya Kompyuta, au kifaa cha kimantiki - chanzo kinachowezekana au mpokeaji wa 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 wa faili mpya iliyoundwa haijainishwa kwa njia yoyote inapotangazwa na imepunguzwa tu na uwezo wa vifaa vya kumbukumbu ya nje.

Aina ya faili au utofauti wa aina ya faili unaweza kubainishwa katika mojawapo 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 (zinazofafanuliwa kama aina ya TEXT);

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

Kuhusu kubadilisha aina za data 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 kiotomatiki kutoka kwa aina halisi hadi aina kamili hauwezekani katika Pascal. Hebu tukumbuke ni baiti ngapi zimetengwa kwa vigezo vya aina kamili na halisi: baiti 2 za kumbukumbu zimetengwa kwa nambari kamili ya aina ya data, na ka 6 kwa kweli. 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.

Wazo la aina ni moja wapo ya dhana za kimsingi za lugha yoyote ya programu. Vitu (mara kwa mara, vigezo, kazi, misemo) ambayo programu inafanya kazi ni ya aina maalum.

Aina ni seti ya maadili ambayo vitu vya programu vinaweza kuchukua, na seti ya shughuli zinazoruhusiwa kwenye maadili haya.

Kwa mfano, thamani 1 na 2 ni za aina kamili na zinaweza kuongezwa, kuzidishwa, na shughuli zingine za hesabu. Maana "kufuatilia" na "Pascal" ni asili ya lugha; zina seti zao za operesheni halali. Katika lugha zinazotumiwa mara nyingi, aina zilizofafanuliwa kwa ukali tu zinaweza kutumika. Pascal, pamoja na aina za kawaida zinazopatikana katika lugha nyingine za kiwango cha juu, inaruhusu programu kuunda aina zake mwenyewe.

Aina zote zinazoruhusiwa katika lugha ya Pascal zimegawanywa katika vikundi viwili vikubwa: rahisi na ngumu (iliyoundwa).

Aina Masafa Mantissa, ishara Kumbukumbu inayohitajika (baiti)
HALISI 2.9*10E-39..1.7*10E38 11-12
MMOJA 1.5*10E-45..3.4*10E38 7-8
MARA mbili 5.0*10E-324..1.7*10E308 15-16
IMEPELEKWA 1.9*10E-4951..1.1*10E4932 19-20
COMP -2E+63+1..2E+63-1 10-20

Utumiaji mzuri wa aina za SINGLE, DOUBLE, EXTEND, COMP inawezekana tu wakati maagizo ya ($N+) yamewashwa. Kwa chaguo-msingi imezimwa. Ili kutatua shida za uhandisi na kiuchumi, maadili ya aina ya REAL yanatosha.

Mfano

Var Res, Summa, Itog: halisi;

Boolean aina ya data inaelezewa na kitambulisho BOOLEAN. Vigeu na vibadilishio vya aina hii vinaweza kuchukua tu thamani moja kati ya mbili: TRUE (kweli) au FALSE (sivyo).

Mfano

Var Sel1, Sel2: boolean;

A,B,C,D: boolean;

Vielezi vya Boolean huchukua baiti 1 ya kumbukumbu na hutumiwa katika misemo ya kimantiki na ya uhusiano na kudhibiti mpangilio ambao taarifa za programu zinatekelezwa.

Halisi (tabia) aina inaelezewa na kitambulisho cha kawaida cha CHAR. Mara kwa mara na vigezo vya aina hii vinaweza kuchukua moja ya maadili ya jedwali la msimbo wa ASCII. Maana ya mara kwa mara au kutofautiana ya aina hii imefungwa katika apostrophes.

Kwa mfano, Var Bukva, Znak, Alama: char;

Bukva:=’A’; Znak:=’+’; Alama:=’!’

Vigezo vya aina ya wahusika huchukua baiti 1 kwenye kumbukumbu. Matumizi ya data char katika usemi wa hesabu ni marufuku. Shughuli za kulinganisha zinaweza kutumika kwa maadili halisi, matokeo kulingana na idadi ya kutofautiana halisi au mara kwa mara katika jedwali la kanuni.

Mbali na aina za data za kawaida, Pascal inasaidia aina za scalar, mtumiaji amefafanuliwa. Hizi ni pamoja na kuhesabika Na muda aina. Aina hizi za data huchukua baiti 1 kwenye kumbukumbu, kwa hivyo aina yoyote maalum haiwezi kuwa na zaidi ya vipengee 255. Matumizi yao kwa kiasi kikubwa inaboresha mwonekano wa programu, inafanya iwe rahisi kupata makosa na kuokoa kumbukumbu.

Aina ya Enum inabainishwa moja kwa moja kwa kuorodhesha maadili yote ambayo aina fulani inaweza kuchukua. Thamani za mtu binafsi hutenganishwa na koma, na orodha nzima imefungwa kwenye mabano.

Umbizo

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

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

Mfano

Aina ya Msimu =(Masika, Majira ya joto, Vuli, Majira ya baridi);

Var S1, S2: Msimu;

Vuli: (Septemba, Oktoba, Novemba);

Mfano huu unaonyesha aina ya data ya mtumiaji wa Msimu iliyobainishwa kwa uwazi. Maana zao zimedhamiriwa - majina ya misimu. Vigezo S1 na S2 vinaweza kuchukua thamani moja tu kati ya zilizoorodheshwa. Jaribio la kuwapa thamani nyingine yoyote litasababisha kukatizwa kwa programu. Aina ya tatu ya hesabu haijulikani (haina jina) na imeainishwa kwa kuorodhesha maadili katika sehemu ya Var. Autumn ni tofauti ya aina hii na inaweza kuchukua maadili Septemba, Oktoba, Novemba. Kwa hivyo, aina yoyote inaweza kutajwa, lakini hii haikubaliki kila wakati. Njia ya kwanza hakika inaeleweka zaidi na inalingana zaidi na asili ya lugha ya Pascal.

Aina ya muda hukuruhusu kutaja viunga viwili ambavyo vinafafanua mipaka ya anuwai ya maadili kwa anuwai fulani. Kwa kila operesheni kwenye kigezo cha muda, mkusanyaji hutengeneza utaratibu wa kuangalia ili kubaini kama thamani ya kigezo inasalia ndani ya masafa yake maalum. Viunga vyote viwili lazima viwe vya aina moja ya kawaida isipokuwa halisi. Thamani ya mara kwa mara ya kwanza lazima lazima iwe chini ya thamani ya pili.

Umbizo

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

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

Mfano

Aina Siku = 1.. 31;

Var Work_d, Free_d: Siku;

Katika mfano huu vigezo Work_d, Free_d kuwa na aina Siku na inaweza kuchukua thamani yoyote kutoka masafa 1. . 31.

Kuondoka kwa safu husababisha kukatizwa kwa programu.

Unaweza kufafanua aina ya muda kwa kufafanua mipaka ya safu sio kwa maadili ya viunga, lakini kwa majina yao:

Const Min = 1; Upeo = 31;

Aina Siku = Min .. Max;

Var Work_d, Free_d: Siku;

Aina za muundo aina za data zinatokana na aina za scalar na zinaweza kuwa na michanganyiko mbalimbali. Wanafafanua mkusanyiko ulioagizwa wa vipengele vya scalar na vina sifa ya aina ya vipengele vyao. Lugha ya Pascal hutoa aina zifuatazo za data zilizopangwa:

mstari - mlolongo wa herufi iliyoambatanishwa katika apostrofi;

safu - aina ya data iliyopangwa inayojumuisha idadi isiyobadilika ya vipengele vya aina moja, iliyofikiwa na index ;

kundi la - seti ya vitu vilivyochaguliwa kulingana na tabia fulani au kikundi cha sifa ambazo zinaweza kuzingatiwa kwa ujumla;

rekodi - seti ya idadi maalum ya vipengele vya aina tofauti;

faili- mlolongo wa vipengele vya aina moja na urefu sawa.

Aina mbili zaidi za muundo-utaratibu na kitu-ni vigumu kuweka ramani kwa data katika uwakilishi wa kawaida.

Picha 1- Seti ya aina za kimsingi za lugha ya Pascal

3.2. Aina rahisi za data katika Turbo Pascal 7

Aina rahisi hufafanua seti iliyoamuru ya maadili ya parameta. Turbo Pascal ina vikundi vifuatavyo vya aina rahisi:

  • aina kamili;
  • aina ya boolean;
  • aina ya tabia;
  • aina iliyohesabiwa;
  • aina ya aina;
  • aina halisi.

Aina zote rahisi, isipokuwa aina halisi, huitwa aina za ordinal. Kwa idadi ya aina za kawaida, taratibu na utendaji wa kawaida hufafanuliwa: Dec, Inc, Ord, Pred, Succ (ona sehemu ya 13.1).

3.2.1. Aina kamili

Tofauti na Pascal, ambayo inafafanua aina moja ya integer, Integer, Turbo Pascal ina aina tano za kawaida za integer: Shortint, Integer, Longint, Byte, Word. Tabia za aina hizi zinaonyeshwa kwenye jedwali. 2.

Jedwali 2. Aina za data kamili

Aina Masafa Umbizo Ukubwa katika baiti
Shortint -128 .. 127 Alama 1
Nambari kamili -32768 .. 32767 Alama 2
Muda mrefu -2147483648 .. 2147483647 Alama 4
Byte 0 .. 255 Haijatiwa saini 1
Neno 0 .. 65535 Haijatiwa saini 2

3.2.2. Aina ya Boolean

Aina ya kawaida ya Boolean (ukubwa - 1 byte) ni aina ya data, kipengele chochote ambacho kinaweza kuchukua maadili mawili tu: Kweli na Uongo. Katika kesi hii, hali zifuatazo ni halali:
Agizo la Uongo (Uongo) = 0
Amri (Kweli) = 1
Succ (Uongo) = Kweli
Pred (Kweli) = Uongo

Turbo Pascal 7.0 aliongeza aina tatu zaidi za kimantiki ByteBool (ukubwa - 1 byte), WordBool (ukubwa - 2 ka) na LongBool (ukubwa - 4 byte). Zilianzishwa kwa kuunganishwa na lugha zingine za programu na mazingira ya Windows. Tofauti yao kutoka kwa aina ya kawaida ya Boolean ni thamani halisi ya parameter ya aina hii, inayofanana na thamani Kweli. Kwa aina zote za kimantiki, thamani ya Uongo inalingana na nambari 0, iliyoandikwa kwa idadi inayolingana ya ka. Thamani ya Kweli kwa aina ya Boolean inalingana na nambari 1 iliyoandikwa kwa baiti yake, na kwa aina zingine thamani ya Kweli inalingana na nambari yoyote isipokuwa sifuri (ingawa chaguo la kukokotoa la Ord katika kesi hii linatoa thamani 1).

3.2.3. Aina ya tabia

Aina ya herufi ya kawaida ya Char inafafanua seti kamili ya herufi za ASCII. Chaguo za kukokotoa za Ord kutoka kwa thamani ya aina ya Char hutoa msimbo wa herufi inayolingana. Maadili ya aina ya wahusika hulinganishwa kulingana na nambari zao.

3.2.4. Aina ya Enum

Aina iliyoorodheshwa si ya kawaida na inafafanuliwa na seti ya vitambulishi ambavyo thamani za vigezo zinaweza kuendana. Orodha ya vitambulisho imeonyeshwa kwenye mabano, vitambulishi vinatenganishwa na koma:

aina
= ();)

Ni muhimu kwa utaratibu gani vitambulisho vimeorodheshwa wakati wa kufafanua aina, kwa sababu kitambulisho cha kwanza kinapewa nambari ya serial 0, ya pili - 1, nk Kitambulisho sawa kinaweza kutumika katika ufafanuzi wa aina moja tu iliyoorodheshwa. Chaguo za kukokotoa za Ord kutoka kwa thamani ya aina iliyoorodheshwa hutoa nambari ya ordinal ya thamani yake.

Mfano. Aina iliyohesabiwa.

aina Operesheni = (Plus, Minus, Mult, Gawanya);

Aina ya boolean ni kesi maalum ya aina iliyoorodheshwa:

aina Boolean = (Uongo, Kweli);

3.2.5. Aina mbalimbali

Katika aina yoyote ya ordinal, unaweza kuchagua seti ndogo ya maadili, iliyofafanuliwa na maadili ya chini na ya juu, ambayo yanajumuisha maadili yote ya aina ya awali ambayo ni ndani ya mipaka hii, ikiwa ni pamoja na mipaka yenyewe. Seti ndogo hii inafafanua aina ya masafa. Aina ya safu imebainishwa kwa kubainisha thamani za chini kabisa na za juu zaidi, zikitenganishwa na nukta mbili:

aina =. . ;

Thamani ya chini wakati wa kufafanua aina hii haipaswi kuwa kubwa kuliko kiwango cha juu.

Mfano. Ufafanuzi wa aina mbalimbali.

aina
Dazeni = 1..12; (nambari kutoka 1 hadi 12)
AddSub = Plus..Minus; (operesheni za kuongeza na kutoa)

3.2.6. Aina halisi

Tofauti na kiwango cha lugha ya Pascal, ambapo aina moja tu halisi hufafanuliwa, Turbo Pascal ina aina tano halisi za kawaida: Real, Single, Double, Extended, Comp. Kwa sifa za aina hizi, angalia jedwali. 3. Jedwali 3. Aina za data halisi

Aina Masafa Idadi ya takwimu muhimu Ukubwa katika baiti
Kweli 2.9*10-39..1.7*1038 11-12 6
Mtu mmoja 1.5*10-45..3.4*1038 7-8 4
Mara mbili 5.0*10-324.-1.7*10308 15-16 8
Imepanuliwa 3.4*10-4932..1.1*104932 19-20 10
Comp -263+1..263-1 19-20 8

Aina ya Comp kwa kweli ni aina kamili ya masafa iliyopanuliwa, lakini haichukuliwi kama aina ya kawaida.

Aina za Moja, Mbili, Zilizopanuliwa na Comp zinaweza kutumika katika programu tu ikiwa kuna kichakataji cha hesabu au ikiwa kiigaji kichakataji kimewashwa (ona aya 17.5.8 na 17.7.1).