آموزش انواع داده در برنامه نویسی

یکی از اجزای اصلی هر برنامه، داده‌هایی است که در آن استفاده می‌شود. آشنایی با انواع داده در برنامه نویسی به ما کمک می‌کند از آن‌ها در جای درست استفاده کنیم. این کار باعث بهبود عملکرد و سرعت برنامه‌نویسی ما خواهد شد. در این آموزش نوع‌های داده‌ای اصلی در برنامه‌نویسی را بدون وابستگی به زبان خاص با هم بررسی می‌کنیم.

شاید در یک نگاه کلی بتوان کار اصلی که یک برنامه انجام می‌دهد را پردازش در نظر گرفت. پردازش از دو بخش اصلی تشکیل شده است:

  • عملیات‌هایی که انجام می‌شود.
  • داده‌هایی که پردازش می‌شوند.

فرقی ندارد داده‌هایمان به چه صورت وارد برنامه شده است. ممکن است آن‌ها را از کاربر گرفته باشیم، از قبل ذخیره داشته باشیم و یا توسط ما به عنوان برنامه‌نویس در کدهای برنامه قرار داده شده باشد.

اما واقعاً چرا شناخت انواع داده برنامه‌نویسی مهم است ؟

اول از همه برای نگهداری داده‌ها نیاز است نوع آن‌ها را تشخیص دهیم. در ثانی، برای پردازش مجبوریم عملیات‌هایی را روی این داده‌ها انجام دهیم. اینکه هر نوع داده چه عملگرهایی را قبول می‌کند بسیار مهم است.

برای مثال در صحبت‌های روزمره می‌دانیم که می‌توان اعداد را با هم جمع و تفریق کرد، اما همین عملیات‌ها برای جملاتی که به زبان می‌آوریم بی معنی خواهد بود!

اگر نتوانیم از داده ها در برنامه نویسی به درستی استفاده کنیم، احتمال اینکه یک برنامه خوب ایجاد کنیم کاهش پیدا می‌کند. در ادامه ابتدا با نوع‌های داده‌ای آشنا شده و سپس ۶ نوع اصلی را با هم بررسی می‌کنیم.

انواع داده در برنامه‌نویسی

نوع داده را می‌توان از ۲ دیدگاه بررسی کرد. هر دو دیدگاه در جای خود درست هستند و در اصل ماجرا تغییری ایجاد نمی‌شود.

اولین دسته‌بندی، دسته‌بندی بر این اساس است که آیا آن نوع داده‌ای به صورت پیش‌فرض در زبان برنامه‌نویسی وجود دارد یا باید ما آن را تعریف کنیم. در برخی منابع به این دو دسته، داده‌های ساده و پیچیده (یا استاندارد و قابل‌تعریف) هم می‌گویند.

داده‌های تعریف شده، نوع‌هایی هستند که در یک زبان برنامه نویسی وجود دارند. یک برنامه‌نویس می‌تواند بدون هیچ پیچیدگی خاصی، از آن داده و عملگرهای میان آن‌ها استفاده کند.

وقتی تبدیل به یک برنامه‌نویس حرفه‌ای‌تر می‌شویم، ممکن است به نوع‌های داده‌ای نیاز داشته باشیم که به صورت پیش‌فرض وجود ندارد یا ساختار آن‌ها دارای پیچیدگی‌های خاص است. در این‌گونه مواقع باید خودمان اقدام به ایجاد یک ساختار برای نوع داده مورد نظرمان کنیم.

دومین دسته‌بندی که برای داده‌ها در برنامه‌نویسی استفاده می‌شود، تقسیم‌بندی بر اساس نوع داده و عملگرهای میان آن‌هاست. در اکثر زبان‌های برنامه‌نویسی ۵ نوع داده زیر وجود دارند:

  • داده عددی
  • داده متنی
  • داده منطقی
  • داده مجموعه‌ای (آرایه‌ای)
  • داده ساختاریافته
انواع داده‌های برنامه‌نویسی
انواع داده‌های برنامه‌نویسی

سه نوع اول را در ادامه با هم بررسی می‌کنیم. ساختار این داده‌ها نسبت به هم متفاوت بوده و عملگرهایی که برای آن‌ها تعریف می‌شود نیز متفاوت است.

داده‌های مجموعه‌ای به صورت مجموعه‌ای از سه نوع اول تعریف می‌شوند. مثلاً ما مجموعه‌ای از ۱۰ داده عددی را ایجاد می‌کنیم. درباره مجموعه‌ها در آموزش متغیر برنامه‌نویسی صحبت می‌کنیم.

داده‌های ساختاریافته داده‌هایی هستند که پیچیدگی بیشتری نسبت به یک نوع دارند. معمولاً هر داده ساختاریافته از چندین نوع داده مختلف تشکیل شده و ویژگی‌های منحصر به فردی دارد.

شش نوع داده برنامه نویسی

سه نوع اولی که در بخش قبلی اشاره کردم، به حالات مختلفی در زبان‌های مختلف برنامه‌نویسی ظاهر می‌شوند. مستقل از زبان برنامه‌نویسی، این داده‌ها را به ۵ زیر دسته تقسیم می‌کنیم:

  • داده‌های عددی به داده صحیح و داده اعشاری
  • داده‌های متنی به داده کاراکتری و رشته متنی
  • داده منطقی

علاوه‌بر این پنج مورد، با یک نوع داده‌ای کمی عجیب تا انتهای این بخش آشنا خواهیم شد.

همه انواع داده برنامه نویسی در حافظه کامپیوتر و پردازنده به صورت دودویی (یا 0 و 1) ذخیره می‌شوند. بنابراین حافظه‌ای که هر نوع داده‌ای اشغال می‌کند بسته به حجم آن متفاوت است.

عدد صحیح در برنامه‌نویسی

عدد صحیح (Integer یا به طور مختصر int) همان اعداد صحیح هستند که در ریاضیات با آن‌ها آشنا شدیم. اعداد منفی، صفر و مثبت همگی در دسته‌بندی اعداد صحیح در برنامه‌نویسی قرار می‌گیرند. اعدادی مثل -419 ، 14 یا 25478 عددی صحیح هستند.

در بعضی زبان‌های برنامه‌نویسی مثل C یا جاوا، اعداد اینتیجر (integer) یک محدوده مشخص را شامل می‌شود. برای محدوده‌های کوچک‌تر یا بزرگ‌تر نیز نوع‌های داده‌ای متفاوتی داریم که بسته به نیاز و میزان فضای اشغال شده می‌توانیم از آن‌ها استفاده کنیم.

اما در زبان‌های دیگری که معمولاً نیاز به تعریف نوع داده نداریم، نظیر پایتون یا حتی PHP معمولاً تصمیم استفاده از نوع دقیق‌تر ذخیره‌سازی بر عهده مفسر زبان خواهد بود. البته در بعضی از این زبان‌ها، امکان تعریف دقیق نوع داده‌ای یک متغیر نیز وجود دارد.

برخی از نوع‌های داده‌ای در مجموعه اعداد صحیح در برنامه نویسی در جدول زیر آورده شده است:

نوعمحدوده عددیحافظه
int8 (byte)128- تا 128+1 بایت
short (int16)32,768- تا 32,767+2 بایت
long2,147,483,648- تا 2,147,483,6474 بایت
چند نمونه نوع عددی integer

نوع عدد اعشاری

اعداد ممیز شناور یا اعشاری در برنامه نویسی را معمولاً با نام float می‌شناسیم. اعداد float به ما اجازه می‌دهد تا داده‌های عددی با قسمت اعشاری داشته باشیم. شیوه ذخیره‌سازی عدد اعشاری با عدد صحیح در حافظه و نحوه انجام عملیات بین آن‌ها متفاوت است. به همین دلیل اعداد اعشاری در برنامه‌نویسی را متفاوت از integerها می‌گیریم.

در بعضی از زبان‌های برنامه‌نویسی برای نمایش اعدادی که مقدار اعشارشان بسیار زیاد است، از نوع داده‌ای دابل (Double) به جای Float استفاده می‌شود.

مشابه اعداد صحیح، اعداد اعشاری float نیز در برخی زبان‌های برنامه‌نویسی به زیربازه‌های مختلفی تقسیم می‌شوند. نوع‌هایی نظیر Real، Single یا extended.

انواع خطا در برنامه‌نویسی (بررسی ۶ نوع ارور اصلی)

انواع خطا در برنامه‌نویسی (بررسی ۶ نوع ارور اصلی)

نوع داده منطقی در برنامه نویسی

داده منطقی که به آن داده بولین (Boolean) هم گفته می‌شود، فقط می‌تواند دو مقدار را درون خود نگه دارد. این مقادیر با نام‌های True (درست) و False (غلط) تعریف می‌شوند. این دو مورد را معادل 1 (درست) و 0 (نادرست) هم در نظر می‌گیرند.

به همین دلیل که فقط دو مقدار درست یا غلط در داده بولین قرار می‌گیرد به آن داده منطقی (Logical Data) هم گفته می‌شود. چون می‌توانیم روی این مقادیر عملیات‌های جبری (جبر بول نظیر AND و OR و NOT و…) را اعمال کنیم.

در دستورات شرطی اکثراً از این نوع داده‌ها و عبارات برای بررسی وضعیت استفاده می‌شود. مثلاً می‌خواهیم بدانیم تنظیمات X در نرم افزار روی روشن قرار دارد یا خاموش.

نوع داده کاراکتری

داده کاراکتری که با Character یا char شناخته می‌شود، حاوی یک کاراکتر از میان کاراکترهای اسکی (ASCII) است. نوع داده کاراکتر در برنامه نویسی می‌تواند یک کاراکتر یک بایتی را در خود نگه دارد.

چند نمونه کاراکتر عبارت‌اند از: a s R # -   (کاراکتر فاصله)

توجه کنید که این کاراکترها نام یک متغیر نیستند بلکه یک مقدار هستند. برای اینکه کاراکتر با نام متغیر اشتباه نشود، برای نمایش هر کاراکتر، آن را درون علامت کوتیشن (' ') قرار می‌دهیم. در نتیجه مقادیر 'a' و 'P' یا '!' یک کاراکتر به حساب می‌آیند.

فرض کنید یک کاراکتر را به صورت '9' تعریف کرده‌ایم. آیا می‌توان روی این مقدار عملیات ریاضی انجام داد ؟

جواب خیر است! این داده به صورت یک کاراکتر تعریف شده و نه یک داده عددی! در نتیجه نمی‌توان با آن مثل اعداد رفتار کرد، بلکه رفتاری مشابه سایر کاراکترها خواهد داشت.

دقت کنید که نوع داده char در برنامه نویسی فقط می‌تواند یک کاراکتر در خود ذخیره کند. در نتیجه مقدار 'sa' یک داده کاراکتری نیست؛ بلکه از نوع رشته است که در ادامه بررسی می‌کنیم.

داده رشته متنی

تقریباً یکی از پر کاربردترین نوع داده در برنامه نویسی، نوع داده متنی به شکل رشته است. رشته (String) مجموعه‌ای از کاراکترهاست که به ترتیب قرار گرفته‌اند. مثلاً "SabzDanesh" یک رشته متنی است و از 10 کاراکتر انگلیسی تشکیل شده است.

برای ذخیره نام افراد، متن‌ها، و هر چیزی که از مجموعه‌ای از حروف (کاراکترها) تشکیل شده باشد از نوع داده string استفاده می‌کنیم.

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

در اکثر زبان‌های مدرن، نوع داده رشته (String) به صورت مستقل وجود دارد. اما در برخی زبان‌ها (مثلاً C) برای تعریف رشته، باید مجموعه‌ای از کاراکترها را در نظر بگریم. یعنی داده string به صورت مستقل وجود ندارد و باید خودمان تعریف کنیم.

نوع داده پوچ یا void در برنامه‌نویسی

آخرین نوع داده پر استفاده، داده پوچ یا void است! این داده پوچ است! 😐 در حقیقت وقتی یک متغیر یا یک تابع هیچ مقدار خاصی ندارد، به آن مقدار void گفته می‌شود.

اجازه دهید با یک مثال، درک این نوع داده در برنامه نویسی را راحت‌تر کنم. فرض کنید از دوست خود می‌خواهید یک کار را انجام دهد. در مورد نتیجه، دو حالت را می‌توان در نظر گرفت:

  1. از دوستمان می‌خواهیم نتیجه انجام کارش را در قالب یک نوع داده (عدد، رشته یا بولین) به ما گزارش دهد.
  2. برای ما انجام شدن کار مهم است و هیچ گزارشی از او نمی‌خواهیم.

در حالت دوم می‌گوییم جواب دوستمان از نوع void است. چون هیچ جوابی نداده است و ما هم نیازی نداشتیم.

گاهی برای اعلام اینکه هیچ چیزی در یک متغیر وجود ندارد هم از این کلمه کلیدی استفاده می‌شود.

از این نوع داده برای نمایش «هیچ» در برنامه‌نویسی استفاده می‌شود.