نوع داده ای enum

   enum يک نوع داده ای تعريف شده توسط برنامه نويس را که به آن نوع داده شمارش می گويند، ايجاد می کند. نحوه ايجاد يک نوع داده شمارش به صورت زير می باشد.

enum {ثابت n و ... و ثابت 2 و ثابت 1} نام نوع داده

   اين دستور به ترتيب در ثابت 1 ، ثابت 2 و ... و ثابتn اعداد صحيح متوالی 0 تا n را قرار می دهد . به صورت پيش فرض مقداردهی متغيرها در اين دستور از صفر شروع می شود.

enum TrueFalse {FALSE , TRUE}

   دستور فوق به ثابت FALSE ، عدد صفر و به ثابت TRUE عدد 1 را تخصيص می دهد. حال اگر بخواهيم مقداردهی از عددی غير از صفر شروع شود بايد عدد مورد نظر را مشخص کنيم :

enum Days {SAT = 1, SUN, MON, TUE, WED, THU, FRI}

   دستور فوق به روزهای هفته به ترتيب اعداد 1 تا 7 را نسبت می دهد. توصيه می شود که نام ثابت های شمارشی را با حروف بزرگ بنويسيد ، بدين صورت اين ثابتها با متغيرهای برنامه ، اشتباه نمی شوند. ضمناً enum را در ابتدای برنامه به کار ببريد.

   در حقيقت اين نوع داده به هر يک از موارد ليستی از اعداد نامی را نسبت می دهد. به عنوان نمونه در مثال روزهای هفته هر يک از اعداد 1 تا 7 را با يکی از روزهای هفته نام گذاری کرديم.

مقدار دهی موارد ليست به صورت های مختلف امکان پذير می باشد.

enum Days { MON, TUE, WED, THU, FRI, SAT , SUN = 0}

   دستور فوق SUN را با عدد صفر و SAT را با عدد 1- و ... و MON را با عدد   -6 مقدار دهی می کند.

enum Colors {BLACK = 2, GREEN = 4, RED = 3,
             BLUE = 5, GRAY,WHITE = 0}

   در دستور فوق هر يک از موارد با عدد نسبت داده شده مقدار دهی می شوند و GRAY با عدد 6 مقدار دهی می شود چون بعد از BLUE = 5 آمده است.

  به محض ساخته شدن ليست ، نوع داده نوشته شده توسط برنامه نويس قابل استفاده می گردد و می توان متغيرهايی را از نوع داده نوشته شده توسط برنامه نويس به همان شيوه ای که ساير متغيرها را تعريف می کرديم، تعريف کرد. به عنوان مثال :

TrueFalse  tf1,tf2;
Days       day1, day2 = SUN;
Colors     color1 = BLACK , color2 = GRAY;

   همچنين متغيرها را می توان هنگام ايجاد نوع داده، تعريف کرد. به عنوان مثال :

TrueFalse {FALSE, TRUE} tf1 ,tf2;

   نکته : تبديل داده ای از نوع enum به عدد صحيح مجاز می باشد ولی بر عکس اين عمل غير مجاز است. به عنوان مثال :

enum MyEnum {ALPHA, BETA, GAMMA};
int   i = BETA;
int   j = 3+GAMMA;

   دستورات فوق مجاز می باشند، و اين دستورات عدد 1 را در i و 5 را در j قرار می دهند.

enum MyEnum {ALPHA, BETA, GAMMA};
MyEnum  x = 2;
MyEnum  y = 123;

   ولی دستورات فوق غير مجاز می باشند. البته بعضی از کامپايلرها اين موضوع را ناديده می گيرند و تنها يک پيغام اخطار می دهند ولی توصيه می شود که برای پيشگيری از وقوع خطاهای منطقی در برنامه از به کار بردن دستوراتی مانند کدهای فوق خودداری کنيد.

   برنامه زير نحوه کاربرد نوع داده enum را نشان می دهد.

#include <iostream.h> 
int main()
{
  enum PizzaSize{SMALL,MEDIUM,LARGE,EXTRALARGE};
  PizzaSize size;
  size=LARGE;
 
  cout<<"The small pizza has a value of "<<SMALL;
  cout<<"\nThe medium pizza has a value of "<<MEDIUM;
  cout<<"\nThe large pizza has a value of "<<size;
 
  return 0;
}

   خروجی برنامه به صورت زير می باشد:

The small pizza has a value of 0
The medium pizza has a value of 1
The large pizza has a value of 2

 


 

 

 

   معرفی کامپيوتروبرنامه نويسی

   ساختارهای کنترلی

   توابع

   آرايه ها

   اشاره گر ها و رشته ها

   کلاسها

   گرانبار کردن عملگر ها

 
 
 
   
 
 
 

حق کپی رایت محفوظ می باشد