0

آموزش ++C | بخش دهم – enum یا داده های شمارشی c++

دسته بندی ها : ++C, برنامه‌نویسی ۲۳ آبان ۱۳۹۷ محمد نصر 341 بازدید
داده‌های شمارشی یا enum

با قسمتی دیگر از آموزش ++C در خدمتتون هستیم؛ در این مطلب میخواهیم اولین گام برنامه نویسی شیء گرا یا همان Object Oriented Programming (به اختصار OOP) را برداریم. موضوع اصلی این بخش، داده های شمارشی c++ است (enumeration) بوده که در تمام زبان‌های برنامه نویسی سطح بالا کاربرد دارد. قبل از مطالعه این قسمت، توصیه میکنم، بخش نهم از سری آموزش های ++C رو مطالعه کنید.

داده شمارشی چیست؟

فرض کنید در یک برنامه بخواهیم برای چهار فصل سال اعدادی را مشخص کنیم که هر کدام از این عددها بیانگر یک فصل باشد. در این صورت باید از داده های شمارشی c++ یا enum استفاده کرد که ساختار پیکربندی آن به شکل زیر است:

برای ساخت داده های شمارشی c++، ابتدا کلمه کلیدی enum و سپس نام داده شمارشی باید نوشته شود. در درون { } کلمه‌هایی که قرار است شماره گذاری شوند را می‌نویسیم. با فرض اینکه اولین کلمه x باشد، مقدار متناظر آن 0 است. دومین کلمه 1 سومین کلمه 2 و تا آخر به همین ترتیب اضافه می شود. هرکدام از کلمه‌ها با کاما از یکدیگر جدا می‌شوند. مثال:

خب همانطور که از نام “داده‌های شمارشی” پیداست، ما نوع دیگری از داده را معرفی کردیم. به عبارتی دیگر مانند نوع‌های داده‌ای پایه مثل int ، float ، double و … هم اکنون ما نوع داده‌ای به نام Fasl داریم که این نوع داده فقط چهار مقدار Paeez ،Tabestan ، Bahar و Zemestan را می‌پذیرد. به بیان ساده‌تر همانطور که int تنها اعداد صحیح قبول می کرد، نوع داده‌ای Fasl هم فقط چهار مقدار ذکر شده را قبول می کند.

ساخت شئ از داده شمارشی

با این توضیح، هرگاه بخواهیم یک متغیر از نوع Fasl داشته باشیم کافی است مانند تعریف دیگر متغیرها اول نوع آن که اینجا Fasl است را بنویسیم. سپس یک نام به آن بدهیم. حال می‌توانیم آن را مقداردهی اولیه کنیم یا در درون برنامه مقداری را انتساب دهیم. اینجا به اصطلاح به f متغیر گفته نمی‌شود. به آن شیء گفته می‌شود، یک شیء از نوع داده‌ای Fasl. مقدار دادن هم با نوشتن نوع داده و گذاشتن :: انجام می‌شود. به کد زیر دقت کنید:

در اول برنامه دو شیء از Fasl ایجاد کردیم. یکی با نام a و دیگری b. سپس به a مقدار Tabestan و به b مقدار Zemestan را دادیم. ماهیت داده شمارشی یک عدد است و چون اسم‌ها از 0 تا n مقداردهی می‌شوند، بنابراین با چاپ کردن a عدد 1 و با چاپ کردن b عدد 3 نشان داده می‌شود.

داده‌های شمارشی با اعداد دلخواه

اگر در ساختار تعریف enum، همراه با نوشتن کلمات آنها را مساوی یک عدد قرار دهیم، از قاعده 0 تا n مستثنا قائل می‌شویم.

از این پس ماهیت Bahar برابر عدد 2 است و بقیه فصل ها هم به همین ترتیب مقادیر مشخص شده را دارند. اما اگر فقط به نام اول مقدار داد و بقیه نام ها مقداری نگیرند، شروع عدد گزاری از مقدار نام اول است.

در این صورت Bahar برابر 5، Tabestan برابر 6، Paeez برابر 7 و Zemestan برابر 8 می‌شود. توصیه میکنم که مقداردهی انجام ندهید و اجازه دهید از 0 تا n مقداردهی شود.

کاربرد داده های شمارشی c++

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

داده شمارشی Day را تعریف کردیم که 7 عنصر دارد و چون اولین عنصر آن 1 مقدار گرفته است، بقیه عناصر نیز به ترتیب تا 7 علامت گزاری می‌شوند. در نهایت سه شی از Day ساختیم که چون روز انتشار این مطلب چهارشنبه است، یکی از شئ‌ها را today نامیدیم و مقدار Wednesday را به آن دادیم. دو شیء دیگر هم به دیروز و فردا اشاره می‌کنند.

امیدوارم که این مطلب برای شما کاربردی بوده باشه و مبحث داده های شمارشی c++ رو به خوبی فرا گرفته باشید. در جلسه بعدی، به مفاهیم مهم کلاس‌ها و کار با آنها پرداخته می‌شود.👋

محمد نصر
محمد نصر

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

راه آسان‌تری برای ارتباط با کاربران‌مان پیدا کرده‌ایم :) عضویت در کانال

مطالب زیر را حتما بخوانید:

قوانین ارسال دیدگاه در سایت

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

چنانچه دیدگاه شما جنبه ی تبلیغاتی داشته باشد تایید نخواهد شد.

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

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

چنانچه دیدگاهی بی ارتباط با موضوع آموزش مطرح شود تایید نخواهد شد.

نظرات کاربران

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

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

لینک کوتاه :