Masīvu datu tipi Delphi

Masīvs := Vērtību sērija

sieviete skatās uz klēpjdatoru blakus logiem birojā.

Stickney dizains / Moment Open / Getty Images





Masīvi ļauj atsaukties uz mainīgo lielumu sēriju ar tādu pašu nosaukumu un izmantot skaitli (indeksu), lai izsauktu atsevišķus šīs sērijas elementus. Masīviem ir gan augšējā, gan apakšējā robeža, un masīva elementi ir blakus šajās robežās.

Masīva elementi ir viena veida vērtības (virkne, vesels skaitlis, ieraksts, pielāgots objekts).



Programmā Delphi ir divu veidu masīvi: fiksēta izmēra masīvs, kas vienmēr paliek tāds pats izmērs — statisks masīvs — un dinamisks masīvs, kura lielums izpildes laikā var mainīties.

Statiskie masīvi

Pieņemsim, ka mēs rakstām programmu, kas ļauj lietotājam ievadīt dažas vērtības (piemēram, tikšanos skaitu) katras dienas sākumā. Mēs izvēlētos saglabāt informāciju sarakstā. Mēs varētu saukt šo sarakstu Tikšanās , un katrs numurs var tikt saglabāts kā Tikšanās[1], Tikšanās[2] un tā tālāk.



Lai izmantotu sarakstu, mums tas vispirms ir jādeklarē. Piemēram:

|_+_|

deklarē mainīgo ar nosaukumu Appointments, kas satur viendimensiju masīvu (vektoru) ar 7 veselu skaitļu vērtībām. Ņemot vērā šo deklarāciju, Appointments[3] apzīmē ceturto veselā skaitļa vērtību sadaļā Tikšanās. Skaitli iekavās sauc par indeksu.

Ja mēs izveidojam a statiskais masīvs bet nepiešķiriet vērtības visiem tā elementiem, neizmantotie elementi satur nejaušus datus; tie ir kā neinicializēti mainīgie. Šo kodu var izmantot, lai visus tikšanās masīva elementus iestatītu uz 0.

|_+_|

Dažreiz mums ir jāseko līdzi saistītajai informācijai masīvā. Piemēram, lai izsekotu katram pikselim datora ekrānā, jums ir jāatsaucas uz tā X un Y koordinātām, izmantojot daudzdimensionāls masīvs, lai saglabātu vērtības.



Izmantojot Delphi, mēs varam deklarēt vairāku izmēru masīvus. Piemēram, šāds paziņojums deklarē divdimensiju masīvu 7 x 24:

|_+_|

Lai aprēķinātu elementu skaitu daudzdimensiju masīvā, reiziniet elementu skaitu katrā indeksā. Mainīgais DayHour, kas deklarēts iepriekš, atstāj malā 168 (7*24) elementus 7 rindās un 24 kolonnās. Lai izgūtu vērtību no šūnas trešajā rindā un septītajā kolonnā, mēs izmantotu: DayHour[3,7] vai DayHour[3][7]. Šo kodu var izmantot, lai visus DayHour masīva elementus iestatītu uz 0.



|_+_|

Dinamiskie masīvi

Iespējams, jūs precīzi nezināt, cik lielu masīvu izveidot. Iespējams, vēlēsities iegūt spēju mainot masīva lielumu izpildes laikā . Dinamiskais masīvs norāda tā veidu, bet ne lielumu. Dinamiskā masīva faktisko lielumu izpildes laikā var mainīt, izmantojot Set Length procedūru.

|_+_|

izveido viendimensionālu virkņu dinamisku masīvu. Deklarācija nepiešķir atmiņu Studentiem. Lai izveidotu masīvu atmiņā, mēs izsaucam SetLength procedūru. Piemēram, ņemot vērā iepriekš minēto deklarāciju,



|_+_|

piešķir masīvu no 14 virknēm, kas indeksētas no 0 līdz 13. Dinamiskie masīvi vienmēr ir indeksēti ar veseliem skaitļiem, vienmēr sākot no 0 līdz par vienu mazāku par to lielumu elementos.

Lai izveidotu divdimensiju dinamisku masīvu, izmantojiet šādu kodu:



|_+_|

kas piešķir vietu divdimensiju 10 x 20 dubultā peldošā komata vērtību masīvam.

Lai noņemtu dinamiskā masīva atmiņas vietu, masīva mainīgajam piešķiriet nulli, piemēram:

|_+_|

Ļoti bieži jūsu programma kompilēšanas laikā nezina, cik elementu būs nepieciešams; šis numurs nebūs zināms līdz izpildlaikam. Izmantojot dinamiskos masīvus, varat piešķirt tikai tik daudz vietas, cik nepieciešams konkrētajā laikā. Citiem vārdiem sakot, dinamisko masīvu izmērus var mainīt izpildes laikā, kas ir viena no galvenajām dinamisko masīvu priekšrocībām.

Nākamajā piemērā tiek izveidots veselu skaitļu vērtību masīvs un pēc tam tiek izsaukta funkcija Kopēt, lai mainītu masīva izmēru.

|_+_|

Funkcija SetLength izveido lielāku (vai mazāku) masīvu un kopē esošās vērtības uz jauns masīvs . Funkcijas Low un High nodrošina piekļuvi katram masīva elementam, neatskatoties atpakaļ kodā, lai atrastu pareizās apakšējās un augšējās indeksa vērtības.