PDA

View Full Version : مقاله: استفاده از آرايه به عنوان ورودي و خروجي تابع



Mahmood_M
سه شنبه 18 اسفند 1388, 23:02 عصر
با سلام ...
در اين مقاله ي كوتاه ياد مي گيريم كه چطور يك آرايه رو به عنوان ورودي يا خروجي يك تابع قرار بديم ...
سطح مقاله : مبتدي - متوسط
مطلب طولاني اي نيست و شايد نشه اسمش رو " مقاله " گذاشت ، ولي به هر حال در خيلي از جاها ممكنه به درد بخوره ...
بدون مقدمه ميريم سر اصل مطلب ...

فرض كنيد آرايه اي داريم به صورت زير :
A : array[0..9] of Integer;

استفاده به عنوان ورودي :
مي خوايم اين آرايه رو به عنوان ورودي به يك تابع ارسال كنيم ، آيا مي تونيم به صورت زير عمل كنيم :
function DoIt(A : array[0..9] of Integer):Integer;
begin

end;
با اجراي كد بالا مشاهده مي كنيد كه كامپايلر مقدار ورودي رو قبول نمي كنه !
اما راه حل ...
مي تونيم آرايه رو به عنوان يك Type تعريف كنيم :
type
TMyArray = array[0..9] of Integer;
حالا مي تونيم تابع رو به صورت زير تعريف كنيم :
function DoIt(A : TMyArray):Integer;
begin

end;
براي يك Procedure هم ميشه به همين صورت عمل كرد :
procedure DoIt(A : TMyArray);
begin

end;

استفاده به عنوان خروجي :

براي استفاده به عنوان خروجي هم به صورت زير ميشه استفاده كرد :
function DoIt(I : Integer) : TMyArray;
begin

end;
براي اينكه موضوع بهتر جا بيفته يك مثال رو بررسي مي كنيم :
مي خواهيم دو گروه ده تايي از اعداد رو به تابعي بفرستيم و درون تابع اعداد هم Index رو ( مثلا اولي با اولي و ... ) با هم جمع كنيم و در نهايت حاصل رو به عنوان يك گروه ده تايي عدد بدست بياريم !
ابتدا يك آرايه ي 10 عضوي مانند بالا به عنوان يك Type تعريف مي كنيم :
type
TNums = array[0..9] of Integer;
سه متغير از نوع TNums و تابعي كه بايد اين كار رو انجام بده رو هم تعريف مي كنيم :
var
...
N1, N2, Sum : TNums;

implementation

{$R *.dfm}

function SUMIT(Num1, Num2 : TNums) : TNums;
var
I : Integer;
begin
for I := 0 to 9 do
begin
Result[I] := Num1[I] + Num2[I];
end;
end;
نحوه ي كار تابع هم ساده هست و فكر نمي كنم نياز به توضيح داشته باشه ...
به عنوان يك مثال به صورت زير مي تونيم به N1 و N2 مقدار بديم و از تابع استفاده كنيم :
var
I : Integer;
begin
for I := 0 to 9 do
begin
N1[I] := I;
N2[I] := 10 - I;
end;
Sum := SumIt(N1, N2);
end;
در كد بالا N1 از 0 تا 9 و N2 از 10 تا 1 مقدار دهي مي شن ، اين مقادير رو به تايع ارسال مي كنيم و آرايه ي حاصل كه از نوع TNums هست در متغير Sum قرار مي گيره كه مقدار تمام عناصرش هم 10 هست !

اميدوارم مفيد بوده باشه ...

موفق باشيد ...