متغیرها در برنامهنویسی به ما امکان ذخیرهسازی موقت دادههای مختلف را میدهند. هر متغیر یا variable یک نام منحصر به فرد در برنامه دارد. درون variable دادهای که نیاز داریم را ذخیره کرده تا بعداً به آن دسترسی داشته باشیم. در این آموزش فارغ از زبان برنامه نویسی به معرفی متغیر میپردازیم.
به زبان خیلی ساده، متغیر یک ظرف است که یک مقدار را برای ما در طول برنامه نگهداری میکند.
چون ممکن است در طول برنامه نویسی خود چندین متغیر داشته باشیم، این ظرفها را نامگذاری (label) میکنیم. این برچسبها همان نام متغیر هستند. هر زمان که به مقدار ذخیره شده نیاز داشته باشیم، با صدا زدن نام متغیر، میتوانیم از آن استفاده کنیم.
در این آموزش با نحوه تعریف متغیر در زبانهای برنامه نویسی آشنا شده و نحوه ذخیرهسازی و فراخوانی variable ها در کامپیوتر را بررسی میکنیم.
فهرست محتوای آموزش
متغیر در برنامهنویسی (variable)
فرض کنید میخواهید یک برنامه بنویسید که دو عدد را از کاربر گرفته و روی آن دو عمل ریاضی انجام دهد. پس از گرفتن اولین عدد نمیتوانید محاسبات را انجام دهید و باید منتظر دریافت دومین عدد بمانید. بنابراین باید عدد اولی را در جایی ذخیره کنیم تا بعداً از آن استفاده کنیم.
این یک مثال خیلی ساده از کاربرد متغیرها در برنامه نویسی است. تقریباً تمام برنامههایی که بیشتر چند ده خط کد هستند، حتماً دارای یک یا چند متغیر هستند.
در ابتدای آموزش گفتم که متغیر را میتوانیم یک ظرف در نظر بگیریم. برای اینکه یک ظرف برای نگهداری داشته باشیم، باید ابتدا آن را ایجاد کرده، درون آن چیزی بریزیم و در نهایت در زمان نیاز از آن استفاده کنیم.
مراحل کار با متغیر
پس تعریف و استفاده از متغیر در برنامهنویسی سه مرحله کلی دارد:
- تعریف متغیر
- مقداردهی متغیر
- فراخوانی متغیر برنامهنویسی
وقتی میخواهیم یک متغیر را تعریف کنیم، حتماً باید یک نام برای آن در نظر بگیریم. این نام باید در طول یک برنامه یا در محدوده برنامه (scope) یکتا باشد.
منظور از محدوده یا اسکوپ همان محدودهای است که متغیر در آن معتبر است. این محدوده میتواند سراسر کد (متغیر سراسری یا global variable) یا مثلاً درون یک تابع برنامهنویسی (متغیر محلی یا local variable) باشد. (توضیحات بیشتر: اسکوپ پایتون / اسکوپ PHP)
در بعضی از زبانهای برنامهنویسی لازم است نوع متغیر را هم مشخص کنیم. مثلاً باید مشخص کنیم این متغیر برای نگهداری یک عدد استفاده میشود یا یک رشته متنی. در بخش انتهایی در مورد این مسئله بیشتر صحبت میکنم.
بعد از تعریف متغیر، میتوانیم مقدار مورد نظر خود را درون آن قرار دهیم. این کار میتواند در لحظه تعریف متغیر یا پس از آن انجام شود.
به عملیات مقداردهی متغیر اصطلاحاً انتساب متغیر گفته میشود. در اکثر زبانها به وسیله عملگر مساوی (=
) عملیات انتساب را انجام میدهند. (بیشتر یاد بگیرید: انواع عملگرهای برنامه نویسی)
هر زمان که بخواهیم به مقدار ذخیره شده در متغیر دسترسی داشته باشیم، فقط کافی است نام متغیر را در برنامه بنویسیم. در شبهِ کد زیر دو متغیر x و y تعریف کردهام. y همزمان با تعریف مقداردهی شده ولی x در خط سوم مقداردهی شده است. در نهایت این دو را با هم جمع کرده و در متغیر res قرار داده شده است.
x y = 11 x = 27 res = x + y
نامگذاری متغیر در زبانهای برنامه نویسی شبیه به هم هستند. اکثراً از حروف انگلیسی، اعداد و علامت _
پشتیبانی میکنند. برای اینکه با قوانین زبان مورد علاقه خود آشنا شوید، به قواعد syntax و معرفی آن مراجعه کنید. همچنین پیشنهاد میکنم استانداردهای نامگذاری متغیر (در این صفحه ویکیپدیا) را هم مطالعه کنید.
تعریف متغیر برنامه نویسی در عمل
تعریف متغیر با توجه به نحو در هر زبان برنامه نویسی (syntax یا سینتکس) متفاوت است. اما شیوه کلی تعریف variable در اکثر زبانهای سطح بالا به صورت زیر است:
<type> <name> = <value>
- اگر نخواهیم مقداردهی اولیه برای متغیر داشته باشیم، قسمت
= <value>
از کد بالا حذف میشود. - در بعضی از زبانهای برنامهنویسی نیازی به تعیین نوع متغیر نداریم. نوع متغیر توسط کامپایلر یا مفسر زبان شناسایی خواهد شد. در این زبانها بخش
<type>
نوشته میشود. - در برخی زبانهای مثل زبان برنامهنویسی پایتون، در انتهای هر خط دستور نیازی به قرار دادن
;
نداریم. - اما در برخی زبانها مثل زبان برنامهنویسی PHP ، جاوا یا C باید در انتهای هر دستور یک
;
قرار دهیم. در این صورت به انتهای دستور تعریف متغیر این علامت اضافه میشود.
نحوه تعریف متغیر در حافظه کامپیوتر
همانطور که همه ما میدانیم، اطلاعات در کامپیوتر در دو حالت نگهداری میشوند؛ حافظه موقتی و حافظه طولانی مدت و ماندگار. متغیرهایی که در هنگام برنامه نویسی استفاده میکنیم به صورت موقت و در حافظه اصلی کامپیوتر ذخیره میشوند.
مقدار فضایی که هر نوع متغیر اشغال میکند با هم متفاوت است. کامپایلر یا مفسر زبان برنامه نویسی مشخص میکند که این متغیر نیاز به چند بایت فضا در حافظه دارد. سپس این فضا را از سیستم عامل تقاضا میکند. (یکی از وظایف سیستم عامل مدیریت حافظه است.)
سیستم عامل یک یا چند خانه از حافظه را برای متغیری که تعریف کردیم در اختیار برنامه قرار میدهد.
در حقیقت مقداری که در نام متغیر در برنامه در حال اجرا ذخیره میشود، آدرس اولین خانه از محلی است که حافظه به آن تخصیص داده شده است. این مقدار میتواند در هر بار اجرای برنامه متفاوت باشد.
انواع متغیر در برنامه نویسی
در آموزش دیگری به طور مفصل در مورد انواع داده در برنامهنویسی صحبت شده است. لازم است با انواع دادهای پایه که در اکثر زبانهای سطح بالا قابل تعریف هستند آشنا باشید.
این دادهها به طور مختصر عبارتاند از:
- دادههای عددی (صحیح و اعشاری)
- دادههای متنی (کاراکتری و رشته)
- داده منطقی
- نوع داده مجموعهای
- داده ساختاریافته
دادههای مجموعهای در برنامه نویسی که در حالت کلی به نام collection شناخته میشوند، مجموعهای از چند داده در یک متغیر هستند.
برای مثال فرض کنید مجموعهای از اعداد دارید که نمرات یک دانشجو در یک درس را نشان میدهد.
متغیر scores یک متغیر است اما 5 عدد مختلف درو ن آن قرار گرفته است.
scores = [17.5, 15, 16.25, 19, 18.75]
متغیر کالکشن در زبانهای برنامهنویسی مختلف میتواند فقط دارای یک نوع دادهای (فقط عدد، فقط متن و …) یا متشکل از چند نوع در کنار هم باشد.
ساختمان دادههای collection به نامهای مختلف و با پیادهسازیهای مختلف شناخته میشوند. برخی از پر کاربردترینها آرایه (array) و لیست (list) هستند.
دادههای ساختاریافته دادههایی هستند که معمولاً توسط برنامهنویس و با هدف نگهداری اطلاعات یک موجودیت خاص استفاده میشود. مثلاً یک متغیر را در نظر بگیرید که اطلاعات یک شخص را در خود نگهداری میکند. این ساختار دارای ویژگیهای «نام»، «تاریخ تولد»، «کد ملی» و … است.
متغیرهای ساختاریافته، بیشتر در بحث برنامهنویسی شئ گرا مورد استفاده قرار میگیرند.
این آموزش بخشی از یک آموزش جامع و قدم به قدم در سبز دانش است: دوره رایگان آموزش برنامه نویسی
این آموزش برای همیشه رایگانه! میتونید با اشتراکگذاری لینک این صفحه از ما حمایت کنید یا با خرید یه فنجون نوشیدنی بهمون انرژی بدید!
میخوام یه نوشیدنی مهمونتون کنم
سلام. سپاس فراوان از آموزشهای خوبتون
در قسمت “نحوه تعریف متغیر در حافظه کامپیوتر” منظور از حافظه اصلی و فرعی کامپیوتر چیست؟
سلام
در همون قسمت یک لینک به آموزشی برای توضیح انواع حافظههای اصلی در کامپیوتر ارائه شده. پیشنهاد میکنیم برای درک بهتر این مفاهیم و انواعش به همون آموزش مراجعه کنید. باز هم اگر نیاز به جزئیات بیشتری بود بپرسید تا دقیقتر راهنمایی کنیم.