Safu katika "Pascal". Programu za safu katika Pascal

Orodha ya maudhui:

Safu katika "Pascal". Programu za safu katika Pascal
Safu katika "Pascal". Programu za safu katika Pascal
Anonim

Kila mwaka hamu ya kutayarisha programu huongezeka. Na ikiwa katika taasisi zinazohusika na uandishi wa programu hutegemea lugha ya programu kama C ++, basi katika shule na shule za ufundi wanafunzi hufahamiana na "Pascal". Na tayari kwa misingi ya lugha hii, wanaanza kuelewa programu kupitia matumizi ya programu ya Delphi. Ikumbukwe mara moja kwamba lugha hizi za programu hutoa nafasi kubwa kwa udhihirisho wa mawazo yao. Na ikiwa kwa msaada wa lugha ya Pascal unaweza kufahamiana na dhana za kimsingi za programu, basi huko Delphi unaweza tayari kuandika programu kamili. Na mahali muhimu sana katika uandishi wa programu wakati mwingine huchukuliwa na kutatua safu katika "Pascal".

Kuwepo kwa idadi kubwa ya vigeu tofauti

safu katika Pascal
safu katika Pascal

Kuna anuwai nyingi tofauti katika lugha ya programu, ambazo zina sifa ya uwepo wa thamani moja pekee. Wana uwezo wa kuhifadhi thamani moja ambayo ina aina fulani. Vigezo vya kamba ni ubaguzi. Wao nini mkusanyiko wa data hizo ambazo aina ya wahusika ni tabia. Lakini hata vigeu hivyo kwa kawaida huzingatiwa kutoka kwa nafasi ya thamani tofauti.

Sio siri kwamba kwa msaada wa kompyuta unaweza kupunguza kwa kiasi kikubwa muda wa kufanya kazi fulani inayohusiana na kiasi kikubwa cha data. Lakini jinsi gani, wakati wa kutumia vigezo tu ambavyo vina aina zinazojulikana kwa wanadamu, inawezekana kuhifadhi matokeo ya kazi katika kumbukumbu, na pia kusindika data hizo ambazo zina idadi kubwa ya safu? Majukumu kama haya ni ya kawaida katika nyanja yoyote ya shughuli.

Bila shaka, unaweza kuweka vigezo vingi kadri unavyohitaji ili kufikia malengo yako. Unaweza pia kufafanua maadili fulani kwao. Lakini msimbo wa programu utaongezeka tu kutoka kwa hili. Ni vigumu kusoma kanuni ambayo ina idadi kubwa ya mistari. Hasa inapohitajika kupata hitilafu.

Kwa hiyo, watayarishaji programu walifikiria kuhusu swali hili. Ndio maana lugha ambazo zimetengenezwa hadi sasa zina anuwai kama hiyo ambayo inafanya uwezekano wa kuhifadhi idadi kubwa ya data ndani yao. Safu katika "Pascal" imebadilika sana katika mbinu ya programu. Kwa hivyo, inachukuliwa kuwa kigezo muhimu katika lugha ya programu.

Kutumia mkusanyiko kunaweza kupunguza kwa kiasi kikubwa saizi ya msimbo

Chini ya neno hili mpangilio wa data uliopangwa umefichwa, ambao una sifa ya aina moja. Kwa kuongeza, data hizi zote hupata jina moja. Inapaswa piaIkumbukwe kwamba vitu vingi vya ulimwengu wa kweli vinaweza kufaa ufafanuzi huu: kamusi, katuni, na mengi zaidi. Walakini, njia rahisi zaidi ya kuwasilisha safu katika "Pascal" iko katika mfumo wa aina ya meza. Kila seli ya mtu binafsi ina kigezo kimoja. Kwa kutumia viwianishi, unaweza kubainisha nafasi ya kigeu ambacho kitachukua katika jedwali la jumla.

Safu yenye sura moja inamaanisha nini?

safu katika pascal
safu katika pascal

Jedwali rahisi zaidi ni lile lililo na mstari. Katika safu hii, ili kuamua eneo la parameter, inatosha kutaja nambari moja tu. Mikusanyiko changamano zaidi huundwa kwa misingi yake.

Ili kuelezea safu zenye mwelekeo mmoja katika "Pascal", weka tu msimbo ufuatao: Andika Mkusanyiko wa.

Nambari ni zile tofauti zinazoweza kuwa na aina ya ordinal. Wakati wa kutaja masafa, inafaa kuelewa kuwa nambari ya kwanza haiwezi kuwa kubwa kuliko ile ya mwisho. Aina ambayo vipengee vya safu vinaweza kuwa chochote - ama kawaida au tayari ilivyoelezwa hapo awali. Chaguo litategemea hitaji la kutatua tatizo fulani.

Safu ya mstari inaelezewa vipi?

Inawezekana kuelezea mara moja safu zenye mwelekeo mmoja katika "Pascal". Hii lazima ifanyike katika sehemu maalum, ambayo ni muhimu kwa utaratibu huu maalum. Utahitaji kuingiza msimbo ufuatao: Var: Array Kati ya.

Ili kuelewa jinsi unavyoweza kuelezea safu katika "Pascal", unapaswa kuingiza msimbo ufuatao:

- Var

- S, VV: Array[5..50] Ya Halisi;

- K: Array[‘C’.. ‘R’] Ya Nambari kamili;

- Z: Safu [-10..10] Ya Neno;

- E: Safu [3..30] Ya Halisi.

Katika mfano huu, viambajengo S, VV na T ni safu ya nambari hizo ambazo ni halisi. Tofauti K huficha aina ya mhusika na vipengele hivyo. Ambazo ni nambari kamili. Mpangilio wa Z huhifadhi nambari ambazo aina yake ni Word.

Kati ya vitendo vyote vinavyoweza kutumika wakati wa kufanya kazi na safu, ugawaji unaweza kutofautishwa. Jedwali lote linaweza kuwekwa chini yake. Kwa mfano, S:=VV. Lakini inapaswa kueleweka kuwa utendakazi wa mgawo unaweza tu kuwekewa safu katika "Pascal" ambayo ina aina fulani.

Hakuna shughuli zaidi zinazoweza kufanywa kwenye safu nzima mara moja. Walakini, unaweza kufanya kazi na vitu kwa njia sawa na nambari zingine kuu ambazo zina aina fulani. Ili kutaja parameter ya mtu binafsi, lazima ueleze jina la safu. Kwa kutumia mabano ya mraba, lazima uamua faharisi ambayo ni tabia ya kitu unachotaka. Kwa mfano: K[12].

Tofauti kuu kati ya safu na vigeu vingine

kazi safu za pascal
kazi safu za pascal

Tofauti ya kimsingi kati ya vipengele vya jedwali na vigeuzo rahisi ni kwamba inawezekana kuweka kwenye mabano sio tu thamani ya faharasa, lakini pia usemi kama huo ambao unaweza kusababisha thamani inayotakiwa. Mfano wa anwani zisizo za moja kwa moja unaweza kuwa: V[K]. Katika kesi hii, tofauti ya K inachukua thamani fulani. Kutokana na hiliKwa hivyo unaweza kutumia kitanzi wakati wa kujaza, kuchakata na kuchapisha safu.

Aina hii ya mpangilio inaweza kutokea katika hali ya viambatisho vya mifuatano ambavyo vinakaribiana vya kutosha katika sifa zake hadi safu za aina ya Char. Lakini pia kuna tofauti. Wao ni kama ifuatavyo:

  1. Vigezo vya mifuatano vinaweza kuandikwa kila wakati kutoka kwa kibodi na kuchapishwa kwenye skrini.
  2. Vigezo vya mifuatano vina urefu mdogo. Unaweza kuingiza herufi zisizozidi 255. Ukubwa muhimu wa safu ni kb 64.

Ni mbinu gani zinaweza kutumika kuonyesha data ya mkusanyiko kwenye skrini?

Unapaswa kuzingatia jinsi yaliyomo kwenye safu yanavyoonyeshwa. Kuna kadhaa.

  1. Andika (A[1], A[2], A[3]). Mfano kama huo, ingawa ni wa zamani, unaweza kuonyesha jinsi unavyoweza kufikia moja kwa moja kila kipengele kilicho katika jedwali. Hata hivyo, baadhi ya faida ambazo safu za Pascal zinazo zaidi ya vigeu rahisi hazionekani hapa.
  2. Program A1;

    Var B: Array [1..10] Of Integer;

    K: Integer;

    Anza

    Kwa K:=1 hadi 10 Fanya {Amri hii inazunguka kwa kigezo }

    Readln(A[K]); {A[I] inaingizwa kwa kutumia kibodi }

    For K:=10 Downto 1 Do {Jedwali linachapishwa kwa mpangilio wa kinyume}

    Andika(A[K], 'VVV') Mwisho.

Msimbo sawa wa programu wa safu katika "Pascal" unaonyesha jinsi unavyoweza kuweka nambari 10 ukitumia kibodi, uzichapishe, upange upya thamani kwa mpangilio wa kinyume. Ikiwa mpango huo huo umeandikwa tena kutokakwa kutumia idadi kubwa ya vigezo badala ya safu, basi msimbo utaongezeka kwa kiasi kikubwa. Na hii inatatiza sana mchakato wa kusoma programu.

Ongeza uwezekano kupitia matumizi ya mkusanyiko

mpango wa safu katika pascal
mpango wa safu katika pascal

Pia inawezekana kujaza majedwali na thamani ambazo ni sawa na mraba wa fahirisi za vipengele. Pia inawezekana kuunda safu hiyo ya masharti katika "Pascal", ambayo itawawezesha namba zote kuingizwa moja kwa moja. Kama unavyoona, kutumia safu huongeza sana uwezo wa lugha ya programu ya Pascal.

Uchakataji wa safu za mstari ni kawaida sana katika kazi mbalimbali. Kwa hiyo, hakuna kitu cha ajabu kwa ukweli kwamba wanasoma katika taasisi na shule. Kwa kuongeza, uwezekano ambao safu hubeba ni pana sana.

Ni nini kimefichwa chini ya safu zenye pande mbili?

Unaweza kufikiria jedwali ambalo lina safu mlalo kadhaa kwa wakati mmoja. Kila safu mlalo ina seli kadhaa. Katika hali kama hiyo, ili kuamua kwa usahihi nafasi ya seli, ni muhimu kuweka alama sio index moja, kama ilivyokuwa kwa safu za mstari, lakini nambari mbili ambazo ni tabia ya safu na safu. Safu zenye sura mbili katika "Pascal" zina sifa ya uwakilishi sawa.

Jinsi ya kuelezea majedwali ya aina hii?

kazi safu za pascal
kazi safu za pascal

Muundo wa data unaopatikana katika lugha ya Pascal ili kuhifadhi thamani za jedwali kama hilo nijina la safu mbili-dimensional. Maelezo ya safu kama hii yanawezekana mara moja kwa kutumia mbinu mbili.

  1. Var B: Array[1..15] Of Array [1..30] Of Integer;
  2. Var B: Array [1..15, 1..30] Of Integer.

Katika visa hivi vyote, safu ya pande mbili imefafanuliwa, ambayo ina safu 15 na safu wima 30. Maelezo hayo yaliyotolewa hapo juu ni sawa kabisa. Kuanza kufanya kazi na moja ya vipengele, ni muhimu kutenga fahirisi mbili. Kwa mfano, A[6][5] au A[6, 5].

Toleo kwa skrini litakuwa karibu sawa na katika kesi ya safu ya mwelekeo mmoja. Unahitaji tu kutaja faharisi mbili. Katika mambo mengine yote, hakuna tofauti kama hizo, kwa hivyo hakuna haja ya kuizungumzia kwa muda mrefu.

Njia ya kwanza ya kupanga

safu za mwelekeo mmoja katika pascal
safu za mwelekeo mmoja katika pascal

Wakati mwingine inakuwa muhimu kupanga data. Kwa hili, lugha ina amri zinazofanana. Kuna algoriti mbili ambazo kwazo safu inaweza kupangwa katika Pascal. Maana ya njia ya uteuzi wa moja kwa moja iko katika ukweli kwamba kwa kuweka kitanzi, kila tofauti ya meza italinganishwa na maadili mengine. Kwa maneno mengine, ikiwa kuna safu ya nambari 15, basi nambari ya kwanza 1 italinganishwa na nambari zingine. Hii itatokea mpaka, kwa mfano, kipengele ambacho ni kikubwa zaidi kuliko nambari ya kwanza kinapatikana. Baadaye, kulinganisha kutafanyika haswa takwimu hii. Hii itarudiwa hadi kubwa zaidi itapatikana.kipengele kutoka kwa yote yaliyopendekezwa. Njia hii ni rahisi sana kwa wale watayarishaji programu ambao wameanza kufanya kazi katika lugha.

Njia ya upangaji ya safu ya pili

Njia ya pili ni mapovu. Kiini cha mbinu hii iko katika ukweli kwamba vipengele vya jirani vinalinganishwa kwa jozi. Kwa mfano, 1 na 2, 2 na 3, 3 na 4, nk. Katika tukio ambalo thamani iliyopatikana inatii kikamilifu masharti ya upangaji, itahamishwa hadi mwisho wa safu nzima, i.e. itatokea kama safu. "Bubble". Algorithm hii ndio ngumu zaidi kukumbuka. Walakini, hauitaji kusaga. Jambo kuu ni kuelewa muundo mzima wa kanuni. Na ni katika kesi hii pekee ambapo mtu anaweza kudai kufikia viwango vya juu katika upangaji programu.

Hitimisho

kutatua safu katika pascal
kutatua safu katika pascal

Tunatumai unaelewa ni nini mkusanyiko na jinsi unavyoweza kupanga ili kupata thamani mahususi au kufikia lengo mahususi. Ikiwa umechagua "Pascal" kwa ajili ya kutatua tatizo fulani, ambalo safu zinachukua nafasi muhimu, basi utahitaji kukabiliana na utafiti wao vizuri. Hii inathiriwa na sababu kama vile uwepo katika lugha ya idadi kubwa ya vigeu vya kutosha ambavyo hutumiwa katika hali fulani kurahisisha msimbo mzima kwa ujumla. Safu huzingatiwa kwa usahihi idadi kuu, ambayo uchunguzi wake lazima ufanyike bila kukosa.

Ilipendekeza: