کاربرد آرایه در زبان دلفی

  • 1389/3/22
  • سپهر خيري
  • 0

به طور کلی تمامی زبان های سطح بالا دارای اختمان داده ای هستند که به صورت پشت سرهم چیده شده و میتوان داده را به صورت رشته ای در ان ذخیره کرد

مثلا گاهی شما نیاز دارید تا تعدادی اسم یا نمره را در یک ساختمان کلی ذخیره کنید در اینصورت نیاز به تعریف ارایه دارید که تقریبا در همه زبان های برنامه نویسی حتی اسمبلی این امکان وجود دارد

در واقع عملی که در ارایه انجام میشود این است که خانه های پشت سرهم حافظه برای مقدار دهی شما اماده میشود

نحوه تعریف ارایه در دلفی:
در قسمت private  فرم اصلی به صورت زیر تعریف میشود :
private

{ Private declarations }

a:array[1..10] of string

برای مثال ارایه بالا دارای 10 خانه بوده از نوع String  که میتواند 10 اسم یا حروف یا… را دریافت کند

عکس1:

البته تعریف ارایه نیز مانند تعریف متغیر دارای انواع متفاوت میباشد برای مثال ارایه ای از نوع اعداد که به صورت زیر تعریف میشود :

a:array[1..10] of Integer;

پس از تعریف ارایه نوبت به استفاده و نحوه پرکردن ان میرسد که بهترین راه استفاده از تابع Inputbox  میباشد که میتوان با استفاده  از ان در یک حلقه  تمامی خانه های ارایه را توسط کاربر پر کرد که نحوه ان به صورت زیر است :
ابتدا پس از ایجاد Button  در ان متغیر حلقه را تعریف میکنیم :
var i:integer;

سپس ایجاد حلقه:
for i:1 to 10 do

Begin

a[i]:=(inputbox(‘Name’,’Name’,’’));

end;

در روند بالا برای 10 بار Inputbox  برای کاربر اجرا میشود و درخواست نام را میکند و در هربار 1 بار حلقه جلو میرود و در ارایه به ترتیب ذخیره میکند ..توجه کنید در قسمت Name  در Inputbox میتوانید هر کلمه ای قرار دهید و بیشتر جنبه راهنمایی و اطلاع به کاربر میباشد که چه نوع داده ای مدنظر میباشد و در قسمت سوم پرانتز Inputbox  درواقع کلمه ای است که در Edit که داخل کادر Inputbox  میباشد نمایش داده میشود که بهتراست خالی باشد .

نماد کروشه بیان کننده هرخانه ارایه هست برای مثال زمانی که i  برابر 2 میشود به سراغ خانه 2 ارایه رفته و مقدار  کاربر را در ان خانه قرار میدهد که با استفاده از حلقه خانه های حلقه پشت سرهم جلو میروند …

عکس2:

پس از ذخیره کردن هناصر ارایه نحوه به کارگیری ارایه مطرح میشود … که البته رابطه مستقیم با هدف برنامه دارد که برای نمونه اینجا نمایش ان در یک Listbox  را مطرح میکنیم :
پس از اضافه کردن Listbox  به فرم خود با استفاده از دستور زیر که در حلقه به کار میرود مقادیر ارایه به صورت پشت سرهم در listbox  نمایش داده میشود

Listbox1.items.add(a[i]);

توجه کنید نماد [] همان نماد ارایه در دلفی است که در داخل ان شماره خانه ارایه نوشته میشود .

بسته به نوع ارایه شما از توابع تبدیل مانند inttostr استفاده میشود چون نوع داده در listbox باید به صورت String باشد

نکته:پاک کردن یک listbox  با دستور listbox1.items.clear امکان پذیر است

چگونه امکان Search  در ارایه ممکن است؟

گاهی شما نیاز دارید تا مقداری را در ارایه  خود جستجو کنید که میتوانید با حلقه و عمل مقایسه ان عنصر را پیدا کنید:
ابتدا Button  جستجو را ایجاد کنید و سپس نیاز به دریافت یک نام از کاربر دارید پس متغیری تعریف میکنیم تا نام کاربر در ان قرار بگیرد(در این مثال به دلیل نوع داده تعریف شده ارایه که از نوع String  میباشد   از نوع متغیر String  استفاده میکنیم )

Var d:string;

پس از تعریف متغیر از یک inputbox نام گرفته شده را در ان میریزیم :

D:=(inputbox(‘search’,’name’,’’));

حالا نام گرفته شده از کاربر را داریم کافیست مقایسه را با حلقه و دستور IF  انجام دهیم :

for i:=1 to 10 do;

begin

if d=a[i]then showmessage(‘found’);

end;

برای 10 بار نام گرفته شده از کاربر با عناصر ارایه مقایسه و سپس در صورت مساوی بودن با پیغامی به اطلاع کاربر میرساند

عکس3:

نحوه مرتب سازی عناصر در ارایه :
ممکن است شما نیاز به این داشته باشید که داده های مرتب شده داشته باشد مثلا بر حسب حروف الفبا یا اعداد برای این منظور 2 حلقه متوالی که به Bubble sort  معرفو هستند در این کار مورد نیاز هستند که حالت کلی ان به صورت زیر است :

For i:=1 to n-1;

For j:=i+1 to n;

N در واقع تعداد عناصر ارایه شما میباشد

برای مثال برای یک ارایه 10 عضوی پس از تعریف متغیرهای شمارنده از 2 حلقه زیر به همراه دستوارت مقایسه زیر استفاده میشود :
for i:=1 to 9 do

for j:=i+1 to 10 do

if a[i] > a[j] then

begin

d:=a[i];

a[i]:=a[j];

a[j]:=d

end;

در صورت اجرای کد بالا اعداد یا حروف از کوچک به بزرگ مرتب میشوند چون جای عدد کوچکتر با بزگتر تعویض میشود با تغییری کوچک در کد بالا میتوان از بزرگ به کوچک مرتب کرد به صورت زیر:
if a[i] < a[j] then

اd:=a[i];

A[i]:=a[j];

A[j]:=d;

همواره برای جا به جا کردن دو مقدار از یک متغیر میانی استفاده میکنیم تا مقدار ها را حفظ کنیم که در اینجا متغیر d  میباشد

عکس 4:

در مقاله بعدی انواع توابع کاربردی روی ارایه هارا توضیح میدهیم !

دیدگاه خود را وارد کنید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *