آرایه تک بعدی در ساختمان داده ها

آرایه ها از اهمیت بالایی در ساختمان داده ها برخوردار هستند. هر آرایه به صورت A:Array[L1..U1] of TYPE تعریف می شود که TYPE بیانگر این است آرایه در حافظه چند بایت فضا اشغال می کند.

برای به دست آوردن تعداد عناصر آرایه کافی است U1-L1+1 شود. برای مثال A:Array[5..20] of real; دارای ۲۰-۵+۱ = ۱۶ خانه می باشد.

به شکل زیر توجه کنید. همانطور که ملاحظه می شود آرایه تعریف شده دارای ۱۶ خانه می باشد پس بدون دانستن فرمول U1-L1+  ۱ می توان تعداد خانه های یک آرایه را با رسم شکل محاسبه کرد. از طرفی نوع این آرایه real می باشد و هر خانه آرایه ۶ بایت فضا اشغال می کند . پس آرایه ۹۶ بایت از حافظه را اشغال نموده است. پس در بحث حافظه انتخاب نوع حافظه از اهمیت بالایی برخوردار است.(اگرچه امروزه زیاد اهمیتی ندارد)

همانطور که ملاحظه می شود آرایه تعریف شده از خانه ۱۰۰ تا ۱۱۵ را به خود اختصاص داده است. اگر بخواهیم به خانه ۱۲ آرایه مستقیم دسترسی داشته باشیم باید ابتدا بدانیم آرایه ما از کدام خانه حافظه شروع شده است . که در این مثال از خانه ۱۰۰ شروع شده است . پس برای دسترسی مستقیم به خانه ۱۲  آرایه ، کافی است تعداد خانه های آرایه تا خانه مورد نظر را به دست آوریم که ۱۲-۵=۷ تعداد خانه های آرایه تا خانه شماره ۱۲ را نشان می دهد. از آن جایی که هر خانه ۶ بایت اشغال کرده پس ۷×۶ = ۴۲ می شود و شروع حافظه از خانه ۱۰۰ بوده و ۴۲ با ۱۰۰ جمع می شود و خانه ۱۴۲ آدرس خانه شماره ۱۲ آرایه در حافظه می باشد . (فرمول : i-L1*6+a  : ۱۲-۵*۶+۱۰۰)

مثال : آرایه ای به صورت A:Array[1..16] of int تعریف شده است. تعداد خانه های آرایه چقدر می باشد ؟ آدرس حافظه شماره خانه ۱۵ آرایه چقدر است ؟ این آرایه چند بایت از حافظه را اشغال کرده است ؟

تعداد خانه های آرایه : ۱۶-۱+۱ = ۱۶

کل فضای اشغال شده : ۱۶*۲ = ۳۲ بایت.

دسترسی به خانه شماره ۱۵  آرایه : ۱۵-۱*۲+۲۵۰ = ۱۴*۲+۲۵۰ = ۲۸+۲۵۰ = ۲۷۸

 

One Comment on “آرایه تک بعدی در ساختمان داده ها”

دیدگاهتان را بنویسید

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