متغیرها و انواع داده — مفاهیم مقدماتی برنامهنویسی رایانه
قبلاً در مورد مفاهیم برنامهنویسی شیءگرا در فرادرس با شما صحبت کردیم. اینک زمان آن رسیده است که برخی اصول مقدماتی برنامهنویسی رایانه را صرف نظر از نوع زبان خاص بررسی کنیم. این مفاهیم جزو اصول ابتدایی علوم رایانه هستند و مخاطبین این نوشته نیز افرادی هستند که تجربه بسیار کمی در زمینه برنامهنویسی رایانه دارند. در این نوشته اساسیترین بخش از هر زبان برنامهنویسی که متغیرها و انواع داده هستند بررسی میکنیم.
متغیرها و انواع دادهها
متغیرها جزئی اساسی از هر برنامه محسوب میشوند: متغیرها مکانی هستند که اطلاعات دینامیک (در حال تغییر) در آنها ذخیره میشوند. زمانی که نام خود را در یک صفحه وب وارد کرده و آن را ارسال میکنید، نام شما به صورت یک متغیر در رایانه ذخیره میشود.
همه متغیرها به یک شکل نیستند. در واقع انواع بسیار مختلفی از متغیرها وجود دارند که هر زبان برنامهنویسی انواع خاص خود را مورد استفاده قرار میدهد. در ادامه به برخی از این متغیرها و همچنین نام کوتاه آنها (در صورت وجود) میپردازیم.
-
نوع کاراکتر (Character- Char)
این متغیر به صورت کاراکتر منفرد است مثلاً X، £، 4 و یا *. برنامهنویسها معمولاً از کاراکترهای منفرد استفاده نمیکنند؛ اما این متغیرها جزئی اساسی از هر زبان برنامهنویسی هستند و از این رو لازم است که آنها را بشناسید.
-
نوع رشته (String)
در واقع منظور از رشته، رشتهای از کاراکترها است. این رشته میتواند هر طولی داشته باشد. در مثال قبلی از متغیر گفتیم نام شما در صفحه وب یک متغیر است، این متغیر میتواند در رایانه به صورت متغیری از نوع رشتهای ذخیره شود.
-
نوع عدد صحیح (Integer-int)
این متغیر یک عدد کامل را تعریف میکند. منظور از عدد کامل این است که این عدد جزء اعشاری ندارد. بنابراین 65 یک عدد صحیح است ولی 65.78 عدد صحیح نیست.
-
نوع عدد اعشاری (float)
عددی که پس از ممیز، جزء اعشاری نیز دارد. بدین ترتیب 65.00 از لحاظ فنی یک عدد اعشاری است، هر چند میتوان آن را به صوت 65 نیز نوشت. ذخیرهسازی یک عدد اعشاری به حافظه بیشتری نیاز دارد و به همین دلیل است که تنها یک نوع داده کلی به صورت عدد نداریم.
-
نوع بولی (Boolean - bool)
متغیری است که مقادیر درست یا نادرست را نمایش میدهد. همچنین میتواند نماینده 0 یا 1 و یا روشن/خاموش باشد. این سادهترین نوع دادهای است و مسلماً وقتی امتحان کنید به استفاده از آن عادت خواهید کرد.
-
نوع آرایه (Array)
این نوع داده در واقع فهرستی از متغیرهای دیگر است. انواع مختلفی از آرایهها وجود دارند که در هر زبان متفاوت هستند؛ اما آنها اساساً مجموعهای از متغیرها هستند که به صورت یک فهرست ترتیبی مرتب شدهاند. برای مثال، 1، 2، 3، 4، 5 را میتوان به صورت آرایهای به طول 5 که شامل متغیرهای عدد صحیح است ذخیره کرد هر متغیر در آرایه میتواند به وسیله اندیس مربوط به خود مورد دسترسی قرار گیرد؛ اما باید بدانید که نخستین آیتم در آرایه اندیس 0 دارد که البته این موضوع برخی اوقات باعث سردرگمی میشود.
با ذخیره کردن متغیرها در یک آرایه امکان ارسال مجموعهای از متغیرها به نقاط مختلف برنامه و انجام کارهای یکسان بر روی همه آنها مانند شمارش تعداد آیتمهای درون آرایه و یا اجرای یک کار واحد روی هر یک از عناصر آسانتر میشود. همچنین باید بدانید که متغیر رشتهای خود در واقع یک نوع آرایه از نوع کاراکترها است.
امیدواریم تا اینجای کار توضیحات انواع دادهها زیاد پیچیده نبوده باشد. اگر لازم میدانید یک بار دیگر آنها را مطالعه کنید و این کار را آن قدر ادامه بدهید که به طور کامل متوجه تفاوتهای انواع دادهها بشوید. چون تسلط بر این موضوع در ادامه مراحل برنامهنویسی بسیار حائز اهمیت است.
زبانهای با وابستگی زیاد یا کم به نوع داده
زبانهای برنامهنویسی را بر اساس میزان وابستگیشان به نوع دادهها میتوان به دو دسته وابستگی زیاد و کم تقسیمبندی کرد. در یک زبان با وابستگی بالا (مانند جاوا)، اعلان نوع متغیری که ایجاد میشود، الزامی است و اگر بخواهید با متغیری که نوع آن اعلان نشده کار کنید، دچار مشکل خواهید شد. برای نمونه در یک زبان با وابستگی بالا به نوع داده، اگر بخواهید یک متغیر از نوع integer را به یک string اضافه کنید، با خطا مواجه میشوید.
چنین زبانی نمیداند که چگونه از نظر ریاضی میتواند یک کلمه را به یک عدد اضافه کند. هر چند ما به عنوان انسان به طور کامل درک میکنیم که متغیر رشتهای «5» در حقیقت همان عدد صحیح دارای مقدار 5 است.
از سوی دیگر یک زبان با وابستگی کم به نوع داده در مورد مثال بالا شکایتی نخواهد داشت و محاسبه را انجام خواهد داد، اما نمیتوانید مطمئن باشید که پاسخی که ارائه میکند به صورت 10 = «5+5» خواهد بود و یا «55». این محاسبه به نوع زبان و سازوکار درونی آن مرتبط است. بدین ترتیب شاهد هستید که گرچه شاید به نظر برسد برنامهنویسی در زبانهای با وابستگی کم ممکن است سادهتر باشد؛ اما این زبانها ممکن است خطاهای عجیب و رفتارهای غیرمنتظرهای از خود بروز دهند که رفع آنها به زمان زیادی نیاز خواهید داشت.
انتساب و برابری
البته عنوان فوق هیچ ربطی به سوسیالیسم و برابری اجتماعی ندارد؛ بلکه مفهومی است که ذهن بسیاری از افراد مبتدی در زمینه برنامهنویسی را به خود مشغول میکند و لازم است در اینجا آن را مطرح کنیم. در برنامهنویسی بین انتساب و سنجش برابری تفاوتهایی وجود دارد. برای توضیح بیشتر دو دستور زیر را با هم مقایسه کنید. فرد مبتدی ممکن است تصور کند که هر دو این دستورها به صورت «A با B برابر است» خوانده میشوند:
A = 5;
A == 5;
اما واقعیت چنین نیست. دستور اول یک دستور انتساب است. یعنی مقدار 5 به متغیر A انتساب مییابد. بدین ترتیب مقدار متغیر تعیین میشود. دستور دوم یک دستور آزمون برابری است. در واقع معنی آن است که «آیا مقدار A برابر با 5 است؟». پاسخ این سؤال به صورت یک متغیر بولی صحیح یا ناصحیح داده میشود. بسیار مهم است که تفاوت این دو دستور را بدانید و آنها را به جای هم استفاده نکنید.
جمع بندی
در این نوشته تلاش کردیم برخی مفاهیم مقدماتی برنامهنویسی را در ارتباط با متغیرها و نوع داده توضیح دهیم. لطفاً هر گونه سؤال یا پیشنهادی داشتید در بخش نظرات در ادامه با ما و دیگر خوانندگان فرادرس در میان بگذارید. سعی خواهیم کرد در نخستین فرصت به سؤالات شما در این خصوص پاسخ دهیم.
اگر این نوشته مورد توجه شما قرار گرفته است، موارد زیر نیز ممکن است برای شما مفید باشند:
- آموزش اصول و مبانی برنامه نویسی
- ۱۰ فیلمی که با دیدنشان شروع به برنامه نویسی میکنید!
- مجموعه آموزشهای برنامهنویسی
- برنامهنویسی سی شارپ (C#)
- گنجینه آموزش های برنامه نویسی
==