PDA

View Full Version : سوال: نوع و محدوده جدید در سی ++



parniyan2
دوشنبه 31 تیر 1387, 16:08 عصر
با عرض سلام
می خواستم بپرسم آیا در سی پلاس پلاس می توان یک نوع عددی جدید تعریف کرد که دارای یک محدوده خاص باشد مثلا نوعی با نام سال که اعداد بین 1 تا 366 را دارا می باشد. این کار در پاسکال به راحتی و به صورت زیر انجام میشود. آیا در سی ++ هم می توان این کار را انجام داد؟



type sal = 1..366
var x : sal

یک سوال دیگه این که در پاسکال ( اگه بلدید) چطور می توان عددی را به توان عدد دیگر رساند؟ آیا عملگر یا تابع خاصی دارد؟

deopen
دوشنبه 31 تیر 1387, 18:02 عصر
در مورد سوال اولت میخوام بدونم برای چی میخوای اینکارو بکنی فک میکنم نگران تخصیص حافظه ای نگران نباش کامپایلر خودش میدونه چیکار کنه البته لازمه بدونی من تازه کار و مبتدیم میتونی کلاس حافضه خاصی رو به متغیرت اعلان کنی کلاسهای حافظه خودکار و ایستا (register,auto,static,extern) بعضی از این کلاسهای زمانی مدت زمان کوتاهی در حافظه وجود دارن مثل متغیر های محلی یک تابع که فقط هنگام کار تابع موجود در حافظه هستند کلاسهای حافظه خاصی هم برای ایجاد متغیر های سراسری وجود داره که در همه ی عمر یک برنامه موجودند .
در مورد سوال دوومت که کاملا مطمعا هستم که عملگری وجود نداره اما تابع pow در فایل سرایند cmath به دردت میخوره برای رسوندن 2 به توان 3 باید این کارو بکنی :

pow(2,3)

Nima_NF
دوشنبه 31 تیر 1387, 18:42 عصر
خیر تعریف بازه به شکل پاسکال وجود ندارد و شما خودتان باید بازه را در برنامه با شرط ها کنترل و محدود کنید.

هر چند که جای سوال دوم اینجا نیست اما کتابخانه های مختلفی در پاسکال وجود داشت مثلا با math_p.h و یا cmath و تابع pow.
حتی در اینترنت نیز کتابخانه های مختلفی برای کامپایلرهای قدیمی پاسکال وجود دارد.

++Hichkas
دوشنبه 07 مرداد 1387, 11:38 صبح
با عرض سلام
می خواستم بپرسم آیا در سی پلاس پلاس می توان یک نوع عددی جدید تعریف کرد که دارای یک محدوده خاص باشد مثلا نوعی با نام سال که اعداد بین 1 تا 366 را دارا می باشد. این کار در پاسکال به راحتی و به صورت زیر انجام میشود. آیا در سی ++ هم می توان این کار را انجام داد؟



type sal = 1..366
var x : sal

یک سوال دیگه این که در پاسکال ( اگه بلدید) چطور می توان عددی را به توان عدد دیگر رساند؟ آیا عملگر یا تابع خاصی دارد؟
چرا در ++c چنین امکانی هست با استفاده از کلمه کلیدی enum برای مثال :
{ enum day{sat , sun , mon , tue , wed , thu , fri
یا به طور کلی :
{enum typename {enumerator-list

MOHSEN8000
دوشنبه 07 مرداد 1387, 12:50 عصر
همون طوری که varzaneh35 در بالا گفتن این کار با استفاده از enum امکان پذیره. فقط باید توجه داشته باشی که enum شمارش رو به طور پیش فرض از 0 شروع می کنه . مگه این که بهش مقدار دهی کنی تا دیگه از 0 نشمره. مثلا در مثال بالایی varzaneh35 باید به sat مقدار 1 رو بدی تا خود enum به ترتیب یکی یکی ، اسم های بعدی رو ارزش گذاری کنه.