PDA

View Full Version : سوال: ارسال آرایه دینامیکی به تابع



MohsenB
شنبه 25 تیر 1390, 17:36 عصر
با سلام

من یک روال به شکل زیر نوشتم :


procedure ArrayDelete(var arr :array of Integer ; index :Integer);
var i :Integer;
begin
for i:= index to High(arr)-1 do
arr[i]:= arr[i+1];
SetLength(arr, Length(arr)-1);
end;
ولی موقع اجرا خطای ناهماهنگی نوع رو میده . میدونم از اینه که تو تابع SetLength فقط تابع دینامیکی قبول میکنه ولی من چطور باید آرایه رو بصورت دینامیکی ارسال کنم ؟

Felony
شنبه 25 تیر 1390, 19:28 عصر
برای ارسال آرایه به تابع باید آرایه رو به صورت یک نوع داده ای تعریف کنید و بعد پارامتر ورودی تابع رو از اون نوع داده ای که تعریف کردید در نظر بگیرید :

type
IntArr= array of Integer;

procedure ArrayDelete(var arr: IntArr ; index :Integer);
var i :Integer;
begin
for i:= index to High(arr)-1 do
arr[i]:= arr[i+1];
SetLength(arr, Length(arr)-1);
end;

Mahmood_M
شنبه 25 تیر 1390, 19:59 عصر
لطفا قبل از ارسال تاپیک جستجو کنید : استفاده از آرایه به عنوان ورودی و خروجی تابع (http://barnamenevis.org/showthread.php?209414-استفاده-از-آرايه-به-عنوان-ورودي-و-خروجي-تابع)

MohsenB
یک شنبه 26 تیر 1390, 10:05 صبح
سلام دوباره

حالا یه سوال دیگه:

من میخوام یه سری کارهای عمومی مثل بالا روی آرایه انجام بدم . چطور می تونم این تابع رو بنویسم که هر نوع آرایه ای رو قبول کنه ؟

Felony
یک شنبه 26 تیر 1390, 10:30 صبح
در مورد Generic ها تحقیق کنید .