پژوهشگر و محقق

آرایه چیست؟

سلام.

آرایه چیه؟

واقعا خیلی سوال خوبی هست.

البته این رو هم بگم که از نظر خیلی ها مسخره میاد!

برای فهم این مورد نیازه که درک بیشتری از طرز عملکرد ماشین ها داشته باشیم!

اینکه دقیقا حافظه داره به چه صورتی پر و خالی میشه!

برای اینکه فرضا یک متغیر بنام 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

البته خودم این صفحه را اصلا نخوانده ام!

نظرات خودتان را در مورد تعریف و توضیح آرایه ارسال کنید.

۱۳ دی ۹۷ ، ۲۲:۳۸ ۱ نظر موافقین ۱ مخالفین ۰
بی اسم

میخواهم چکار کنم!؟

این دقیقا سوالی است که هر روز از خودم میپرسم...

چون باید بدانم که در زمان و فرصتی که اختیار دارم. توقع دارم دقیقا چه کاری را انجام دهم. و این خیلی مهم است که بدانیم میخواهیم چکاری انجام دهیم...

نکته مهم این است که حتی اگر ندانیم میخواهیم چکاری انجام دهیم...

باز هم زمان ما خواهد گذشت...

و بد تر از همه این است که متوجه نمیشویم زمان در حال گذر است...

با اینحال این حرف های به ظاهر اضافه را تمام میکنم...

۱۳ دی ۹۷ ، ۰۰:۵۶ ۰ نظر موافقین ۰ مخالفین ۰
بی اسم

سلام وبلاگ!

چند دقیقه هست که فرم مربوط به ساخت وبلاگ رو پر کردم و باعث شد که این وبلاگ ساخته بشه.

سوالات زیادی از خودم داشتم.

  • اول اینکه وبلاگ رو کجا بسازم؟
  • بهتر نیست که روی سرور اختصاصی قرار گرفته باشه؟
  • داخل وبلاگ به چه زبانی متن بنویسم؟! (فرانسه / انگلیسی / آلمانی / فارسی)
  • و اینکه چرا باید بنویسم؟

اینها سوالات جالب هستند اما اگه قرار باشه از ابتدا پاسخگوی همه سوالات بود.

و یک وبلاگ اختصاصی همراه با گرافیک و کد های منظم و عالی اماده وجود داشته باشه... که نمیشه! اینطوری حداقل حداقل چندین روز کار عقب میوفته!

گفتم بهتره که از همین بستر blog.ir استفاده کنم.

۱۳ دی ۹۷ ، ۰۰:۵۴ ۰ نظر موافقین ۰ مخالفین ۰
بی اسم