لینک دانلود و خرید پایین توضیحات
فرمت فایل word و قابل ویرایش و پرینت
تعداد صفحات: 21
آرایه های چند بعدی در دلفی
یک آرایه مجموعه ای از متغیر های هم نام است که در آن هر متغیر با یک شماره مشخص می شود. آرایه های با طول ثابت (Static Arrays)
مثلا در برنامه ای می خواهیم معدل بیست درس را محاسبه کنیم. یک راه این است که از بیست متغیر با نام های متفاوت استفاده کنیم! اما راه بهتری نیز وجود دارد. از یک آرایه که شامل بیست متغیر است استفاده می کنیم. در متغیرهای آرایه ای، یک نام برای کل مجموعه انتخاب می کنند و هر متغیر را با یک شماره مشخص می کنند. در این مثال متغیر های آرایه با اعداد صفر تا نوزده شماره گذاری می شوند، توسط یک حلقه for می توان اعداد صفر تا نوزده را تولید کرد. به همین سادگی.
برای تعریف کردن یک آرایه باید از الگوی زیر پیروی کنیم:
var x : array[index1, ..., indexN] of baseType;
که در الگوی فوق، x نام متغیر آرایه ای، index1 شماره اولین خانه، indexN شماره آخرین خانه و baseType نوع متغیر آرایه ای می باشد.مثلا:
var nomre : array[0..19] of integer;
دستور فوق بیست متغیر از نوع integer می سازد که اولین متغیر nomre[0] و آخرین متغیر nomre[19] می باشد. برای دسترسی یافتن به هر کدام از متغیر ها، شماره آن متغیر را داخل یک جفت کروشه در مقابل آن می نویسیم. در مثال زیر معدل بیست عدد را با استفاده از آرایه محاسبه می کنیم: procedure DoIt;
var nomre : array[0..19] of integer; i : integer; m : real; begin nomre[0] := 15; nomre[1] := 20; . . . nomre[19] := 19; m := 0; for i := 0 to 19 do m := m + nomre[i]; m := m / 20; Edit1.Text := FloatToStr(m); end;
می توانید در صورت نیاز، متغیر های آرایه را با شماره های دیگری شماره گذاری کنید. مثلا:
var x : array[12..46] of string;
دستور فوق، 35 متغیر با نام x ایجاد می کند که با شماره های 12، 13، ... 46 مشخص می شوند.
آرایه های دو بعدی: یک صفحه شطرنجی را در نظر بگیرید که هر خانه آن را می توان با دو عدد طول و عرض شماره گذاری کرد. به همین ترتیب می توان در دلفی نیز یک جدول دو بعدی داشت. برای در مثال زیر یک آرایه دو بعدی تعریف می شود که 10 در 50 می باشد. یعنی به تعدد یک جدول 10 در 50 متغیر دارد.
var s : array[1..10, 1..50] of integer;
در مثال زیر یک آرایه دو بعدی 10 در 10 تعریف می کنیم و هر کدام از خانه های آرایه را با عدد مربوطه جدول ضرب پر می کنیم:
var jadval : array[1..10, 1..10] of integer; var i, j : integer; begin for i := 1 to 10 do for j := 1 to 10 do jadval[i, j] := i * j; for i := 1 to 10 do for j := 1 to 10 do form1.Canvas.TextOut(i*20, j*20, inttostr(jadval[i, j])); end;
آرایه های دو بعدی را به صورت دیگری نیز می توان تعریف نمود، مثلا دستور زیر آرایه دو بعدی آرایه jadval در مثال بالا تعریف می کند:
var jadval : array[1..10] of array[1..10] of integer;
با کمی دقت می توان منطق ساده این دستور را درک کرد!
چند نکته در مورد آرایه های با طول ثابت:
• اگر آرایه های a و b از یک نوع باشند، دستور b := a متغیر های متناظر a را در b کپی می کند. • طول آرایه های استاتیک را نمی توان تغییر داد.
• می توان خانه های آرایه را با کاراکتر نیز مشخص نمود! مثال:
var x : array['a'..'e'] of integer; begin x['a'] := 1; x['b'] := 2; x['c'] := x['a'] + x['b']; end;
آرایه های با طوی متغیر (Dynamic Arrays)
آرایه های دینامیک اندازه ثابتی ندارند و در طول اجرای برنامه می توان اندازه آن ها را به میزان مورد نیاز تعیین کرد و در حافظه صرفه جویی نمود. در مثال زیر یک آرایه دینامیک یک بعدی از اعداد صحیح به نام dyna تعریف شده است.
var dyna : array of integer;
برای تعیین اندازه آرایه دینامیک باید از دستور SetLength استفاده کرد. مثلا دستور SetLength(dyna, 10); تعداد 10 متغیر در آرایه dyna تعریف می کند. این متغیر ها از 0 تا 9 شماره گذاری می شوند. در آرایه های متغیر شماره خانه اول همواره 0 می باشد.
برای از بین بردن آرایه و آزاد کردن حافظه اشغال شده، از دستور dyna := nil; استفاده کنید.
آرایه های دینامیک از نوع اشاره گر ها هستند. در مثال زیر اگرx و y دو آرایه دینامیک از یک نوع باشند، دستور x := y; باعث می شود که x به حافظه اشغال شده توسط y اشاره کند. یعنی x برای خودش حافظه جداگانه اشغال نمی کند.
برنامه زیر را در نظر بگیرید: