Разумевање и примена врста типова података у Делфима

Низ нам омогућава да се обратимо низу променљивих истог имена и да користимо број (индекс) да бисмо позвали поједине елементе у тој серији. Низови имају и горњи и доњи руб, а елементи низа су у тим границама.

Елементи матрице су вредности које су све исте врсте (низ, цели број, запис, прилагођени објект).

У Делфима постоје две врсте низова: низ фиксне величине који увек остаје исте величине - статички низ - и динамички низ чија се величина може мењати током извођења.

Статиц Арраис

Претпоставимо да пишемо програм који кориснику омогућава да унесе неке вредности (нпр. Број обавеза) на почетку сваког дана. Одлучили бисмо да податке чувамо на листи. Могли бисмо назвати ову листу Састанци, а сваки број може се сачувати као састанци [1], састанци [2], и тако даље.

Да бисмо користили листу, прво је морамо прогласити. На пример:

 вар именовања: низ [0..6] од Интегер; 

декларише променљиву звану Аппоинтментс која садржи једнодимензионални низ (вектор) од 7 целих вредности. С обзиром на ову декларацију, Именовања [3] означава четврту вредност од целог броја у Аппоинтментс. Број у заградама назива се индексом.

instagram viewer

Ако створимо статички низ али не доделите вредности свим њеним елементима, неискориштени елементи садрже случајне податке; они су као неиницијализоване варијабле. Следећи код се може користити за постављање свих елемената у низу именовања на 0.

 за к: = 0 до 6 обавити састанке [к]: = 0; 

Понекад морамо пратити сродне информације у низу. На пример, да бисте пратили сваки пиксел на екрану рачунара, морате да се обратите његовим Кс и И координатама користећи а вишедимензионално Низ за чување вредности.

Помоћу Делпхија можемо објавити низ више димензија. На пример, следећа изјава проглашава дводимензионални низ 7 по 24:

 вар ДаиХоур: низ [1..7, 1..24] од Реала; 

Да бисте израчунали број елемената у вишедимензионалном низу, помножите број елемената у сваком индексу. ДаиХоур варијабла, декларисана горе, одлаже 168 (7 * 24) елемената, у 7 редова и 24 колоне. Да би добили вредност из ћелије у трећем реду и седмом колону користили бисмо: ДаиХоур [3,7] или ДаиХоур [3] [7]. Следећи код се може користити за постављање свих елемената у ДаиХоур низу на 0.

 за и: = 1 до 7 учинити
за ј: = 1 до 24
ДаиХоур [и, ј]: = 0;

Динамиц Арраис

Можда не знате тачно колико желите направити низ. Можда желите да имате способност промена величине матрице током извођења. Динамички низ означава свој тип, али не и величину. Стварна величина динамичког низа може се променити током извођења коришћењем СетЛенгтх процедура.

 вар Студенти: низ стрингова; 

ствара једнодимензионални динамички низ струна. Декларација не даје меморију за студенте. Да креирамо низ у меморији, зовемо СетЛенгтх поступак. На пример, с обзиром на горњу декларацију,

 СетЛенгтх (Студенти, 14); 

додељује низ од 14 низова, индексираних од 0 до 13. Динамички низи су увек индексирани бројевима, увек почевши од 0 до један мањи од њихове величине у елементима.

Да бисте креирали дводимензионални динамички низ, користите следећи код:

 вар Матрик: низ матричних поља;
започети
СетЛенгтх (Матрик, 10, 20)
крај;

који распоређује простор за дводимензионални низ 10 са 20 дуплих вредности с помичним зарезом.

Да бисте уклонили меморијски простор динамичког низа, доделите нулу променљивој матрици, на пример:

 Матрица: = нула; 

Врло често ваш програм не зна у компајлирању колико ће елемената бити потребно; тај број неће бити познат док се изврши. Помоћу динамичких низова можете доделити само онолико простора за складиштење колико вам је потребно у датом тренутку. Другим речима, величина динамичких низова може се мењати током извођења, што је једна од кључних предности динамичких низова.

Следећи пример креира низ целих вредности и затим позива функцију Копирај да промијени величину поља.

 вар
Вектор: низ Интегер-а;
к: цели број;
започети
СетЛенгтх (Вектор, 10);
за к: = Низак (вектор) до висок (вектор)
Вектор [к]: = и * 10;
...
// сада нам треба више простора
СетЛенгтх (Вектор, 20);
// овде, Вецтор арраи може да садржи до 20 елемената // (већ их има 10) крај;

Функција СетЛенгтх ствара већи (или мањи) низ и копира постојеће вредности у нови низ. Функције Лов и Хигх осигуравају приступ сваком елементу поља без гледања у код за исправне вриједности доњег и горњег индекса.

instagram story viewer