Çàî÷íîå äèñòàíöèîííîå îáðàçîâàíèå ñ ïîëó÷åíèåì ãîñóäàðñòâåííîãî äèïëîìà ÷åðåç 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;


 
     
   
 


Ïðèãëàøàåì ïðèíÿòü ó÷àñòèå â êðóãëîì ñòîëå!
ïîäðîáíåå   >>>
 

Èíñòèòóò Ìåíåäæìåíòà, Ýêîíîìèêè è Èííîâàöèé íà÷èíàåò íàáîð íà êóðñû ïîâûøåíèÿ êâàëèôèêàöèè!
ïîäðîáíåå   >>>
 

Óâàæåìûå ñòóäåíòû ÀÍÎ ÂÏÎ ÈÌÝèÈ!
ïîäðîáíåå   >>>
 

Íà÷èíàåòñÿ íàáîð íà êóðñû ïîâûøåíèÿ êâàëèôèêàöèè!
ïîäðîáíåå   >>>
 

Ïðèãëàøàåì ïðèíÿòü ó÷àñòèå â êîíôåðåíöèÿõ!
ïîäðîáíåå   >>>
 


âñå íîâîñòè...

 


Ðàññûëêè Subscribe.Ru
Ñîâðåìåííîå îáðàçîâàíèå
Ïîäïèñàòüñÿ ïèñüìîì