«аочное дистанционное образование с получением государственного диплома через Internet










ѕолучить информацию о поступлении
 
√лавна€ Ќовости  арта сайта ‘отоальбом √остева€ книга  онтакты

 

ѕередача массивов в процедуры и функции

ѕри создании функции или процедуры работы с массивами в ее объ€вление нельз€ включать описание индексов. 
ѕример, объ€вление procedure MyProc(A: array[1..10] of Integer);
будет расценено как синтаксическа€ ошибка и вызовет соответствующее сообщение компил€тора. ѕравильным будет объ€вление
type ta = array[1..10] of Integer; procedure MyProc(A: ta);
‘ункции и процедуры могут воспринимать в качестве параметров не только массивы фиксированного размера, но и так называемые открытые массивы, размер которых неизвестен. ¬ этом случае в объ€влении функции или процедуры они описываютс€ как массивы базовых типов без указани€ их размерности. 
ѕример:
procedure SumArray(A:array of integer; var B: array of integer);
ѕри таком определении передаваемый в функцию первый массив будет копироватьс€ и с этой копией - массивом A, будет работать процедура. ¬торой открытый массив определен как var. Ётот массив передаетс€ по ссылке, т.е. он не копируетс€, и процедура будет работать непосредственно с исходным массивом.
ћассив, переданный как открытый, воспринимаетс€ в теле процедуры или функции как массив с целыми индексами, начинающимис€ с 0. –азмер массива может быть определен функци€ми Length - число элементов и High - наибольшее значение индекса.
ќчевидно, что всегда High = Length - 1.
ѕри вызове функции или процедуры с параметром в виде открытого массива можно использовать в качестве аргумента конструктор открытого массива, который формирует массив непосредственно в операторе вызова. —писок элементов такого конструктора массива заключаетс€ в квадратные скобки, а значени€ элементов раздел€ютс€ зап€тыми. Ќапример, функцию Sum, суммирующую элементы числового массива, можно вызвать следующим образом:
Sum([1.2,4.45,0.1]);
ѕример:
¬ качестве примера использовани€ открытых массивов рассмотрим процедуру, котора€ принимает два открытых одинакового размера массива целых чисел, суммирует их и заносит результат во второй из переданных массивов.
procedure SumArray(A:array of integer; var B: array of integer);
var i:word;
begin
for i:=0 to High(A) do B[i]:=A[i]+B[i];
end;
¬ызов этой процедуры может иметь вид:
var A1,A2: array [1..3] of integer;
begin
<операторы заполнени€ массивов>
SumArray(A1,A2);
end;

”знать как сэкономить в кризис моно на сайте ekonom-it.ru

ћеханизмы доступа к ƒЅ в Delphi ѕол€ набора данных в Delphi –абота с массивами в Delphi  омпонент StringGrid  омпонент Memo ќбзор палитры компонентов  омпоненты страницы Standard  омпоненты страницы Additional  омпоненты страницы Win32  омпоненты страницы System 


 
     
   
 


ѕриглашаем прин€ть участие в круглом столе!
подробнее   >>>
 

»нститут ћенеджмента, Ёкономики и »нноваций начинает набор на курсы повышени€ квалификации!
подробнее   >>>
 

”важемые студенты јЌќ ¬ѕќ »ћЁи»!
подробнее   >>>
 

Ќачинаетс€ набор на курсы повышени€ квалификации!
подробнее   >>>
 

ѕриглашаем прин€ть участие в конференци€х!
подробнее   >>>
 


все новости...

 


–ассылки Subscribe.Ru
—овременное образование
ѕодписатьс€ письмом