سلام.
آرایه چیه؟
واقعا خیلی سوال خوبی هست.
البته این رو هم بگم که از نظر خیلی ها مسخره میاد!
برای فهم این مورد نیازه که درک بیشتری از طرز عملکرد ماشین ها داشته باشیم!
اینکه دقیقا حافظه داره به چه صورتی پر و خالی میشه!
برای اینکه فرضا یک متغیر بنام age داشته باشیم که مقدار 72 درون اون باشه... دقیقا داره چه اتفاقی میوفته؟
موضوع مهم اول اینه که اصلا اسم های متغیر ها ظاهری هست و در باطن خبری از این اوضاع نیست!
و همه چی آدرسی دهی میشه.
اینکه دقیقا در چه موقعیتی از حافظه... چند بیت فضا با چه مقادیر بیتی پر بشه.
یک مقدار عددی میتونه 16 بیت یا 32 بیت یا مقدار دیگه ای فضا اشغال کنه. این بستگی به موارد خیلی زیادی داره.
اگر حوصله کردید میتونید مستندات تولید کنندگان CPU رو بیشتر مطالعه کنید.
نسخه فیزیکی چاپ شده هم گیر میاد...
البته خیلی تعجب نکنید.. شاید تعداد صفحاتش به 2-3 هزار تا هم برسه!
خلاصه! در مورد آرایه داشتیم بحث میکردیم...
همانطور که در مورد طرز کارکرد یک متغیر در برنامه گفتم... شما فرض کنید.. میخواهید لیستی از کد های فردی کارمندان شرکتی رو داشته باشید.
در این صورت شما نیاز دارید که بابت هر فردی یک متغیری تعریف کنید.
person1 = 16423
person2 = 24561
....
...
person56412 = 314567
برای این مورد نیازه که ما 56412 تا متغیر تعریف کنیم! یکم تعدادش زیاد هست و واقعا انجام اینکار سخته!
پس نیاز شدید حس میشه که ما بتونیم داخل یک متغیر تعداد زیادی مقدار رو قرار بدیم.
فرض کنید بتونیم داخل متغیری به نام persons مقادیر زیادی رو قرار بدیم.
و در این صورت نیاز نیست که تعداد زیادی متغیر تعریف کنیم... و این کار دقیقا داره توسط سیستم های زیربنایی انجام میشه...
بدون اینکه ما دخالت خاصی رو در این مورد داشته باشیم.
گمان کنم توانسته باشم... نیاز و دلیل وجود مبحث آرایه رو به خوبی توضیح داده باشم.
با اینحال شما میدونید چرا و به چه دلیل باید مبحثی بنام آرایه وجود داشته باشه.
مفهوم آرایه مقداری مربوط میشه به رشته های ساختمان داده / ساختار داده / پایگاه داده...
با اینحال اگه بخواهیم یک تعریف مناسب از آرایه بگوییم...
آرایه چیست؟ تعدادی متغیر (هم نوع) تحت یک اسم / متغیر
اصولا هر یک از مقادیر درون آرایه توسط یک اندیس مشخص و ذکر میشه... که تمام مقادیر اون در واقع بصورت آدرس هایی از حافظه در حال ثبت و دریافت هستند.
شاید این کار به نظر ساده برسد.
اما اینکار در مقیاس های بزرگ تر... درون پروژه ها بسیار گسترده / طولانی هست و مدیریت کردن دستی / ذهنی آونها واقعا میتونه غیر ممکن بنظر بیاد.
در واقع حتی میشه ماتریس هایی که فقط سطری یا ستونی هستند رو یک آرایه در نظر بگیریم.
اینکه گفتم فقط سطری باشه یا فقط ستونی... دلیلش اینه که تعداد سطر ها یا ستون ها یکدام باید 1 باشد.
زیرا اگر تعداد یکی از آنها 1 نباشد.. در آن صورت... باید درون آرایه از آرایه های دیگری استفاده کنیم.
در واقع این مبحث هم جالب است... میتوانیم آنرا آرایه های چندی بعدی ذکر کنیم.
توضیحات مربوط به ماتریس : https://en.wikipedia.org/wiki/Matrix_(mathematics)
------------
یک لینک مفید : https://en.wikipedia.org/wiki/Array_data_structure
البته خودم این صفحه را اصلا نخوانده ام!
نظرات خودتان را در مورد تعریف و توضیح آرایه ارسال کنید.