کانال بله, جهت پشتیبانی و اطلاع رسانی کانال بله, جهت پشتیبانی و اطلاع رسانی
عضویت

آموزش Constants و Literals در C++

آموزش ثوابت (Constants) و مقادیر ثابت (Literals) در ++C

ثوابت یا به انگلیسی Constants به مقادیر ثابتی اشاره دارد که ممکن است مقدارشان در طول برنامه به هیچ وجه تغییر نکند. به مقادیر ثابت در برنامه نویسی Literals نیز گفته می شود.

مقادیر ثابت یا constant ها می توانند از هر نوع داده ای اولیه ای باشند. این مقادیر به چند دسته ی زیر تقسیم می شوند:

  1. مقادیر عدد صحیح ثابت یا Integer numerals
  2. مقادیر عددی ثابت از نوع ممیز شناور (Floating-point)
  3. character ها
  4. Strings/مقادیر رشته ای ثابت که از مجموعه ای از کاراکترها تشکیل شده
  5. مقادیر بولی/Boolean

Constant ها کاربردی مشابه متغیرها دارند با این تفاوت که انتظار می رود پس از تعریف، مقدارشان تغییر نکند.


مقادیر ثابت از نوع عدد صحیح (Integer literals)

مقادیر عددی ثابت می توانند از نوع decimal (اعشاری)، octal (مبنای هشت) یا hexadecimal (مبنای 16) باشند. گاهی اعداد به این صورت نوشته می شوند: 0x یا 0X، 0 .

0x یا 0X نشانگر اعداد مبنای 16 و 0 نشانگر اعداد مبنای 8 می باشد.

مقادیر عددی می توانند پسوند نیز به این صورت داشته باشند: U و L. اعدادی که علامت ندارند با پسوند U و اعداد صحیح طولانی و بزرگ با پسوند L نوشته می شوند. پسوند می تواند با حروف کوچک یا بزرگ نوشته شده باشد.

در زیر نمونه ای از مقادیر ثابت از نوع عدد صحیح را مشاهده می کنید:

212         // Legal
215u        // Legal
0xFeeL      // Legal
078         // Illegal: 8 is not an octal digit
032UU       // Illegal: cannot repeat a suffix

در زیر نمونه هایی دیگر از مقادیر ثابت از نوع عدد صحیح (integer literal) را مشاهده می کنید:


85         // decimal
0213       // octal
0x4b       // hexadecimal
30         // int
30u        // unsigned int
30l        // long
30ul       // unsigned long

مقادیر ثابت از نوع ممیز شناور (floating-point literals)

یک مقدار عددی ثابت که از نوع ممیز شناور باشد، قطعا دارای یک بخش عدد صحیح، نقطه ی اعشار، بخش اعشاری یا کسری و نیز یک بخش توان (exponent) می باشد. شما می توانید مقادیر ثابت از نوع عددی صحیح را به صورت اعشاری با نقطه ی اعشار و یا به صورت نمایی و با توان نگارش نمایید.

اگر با روش اول مقدار عددی اعشاری ثابت را نمایش می دهید، در آن صورت می بایست نقطه ی اعشار را درج کنید. چنانچه مایلید به روش دوم مقدار ثابت را نمایش دهید، لازم است بخش عدد صحیح، بخش کسری و یا هر دو را درج نمایید. جهت نمایش توان از علامت eیا E استفاده می شود.

در زیر نمونه هایی از مقادیر ثابت عددی از نوع ممیز شناور را مشاهده می کنید:

3.14159       // Legal
314159E-5L    // Legal
510E          // Illegal: incomplete exponent
210f          // Illegal: no decimal or exponent
.e55          // Illegal: missing integer or fraction

مقادیر ثابت از نوع بولی (Boolean Literal)

در کل دو نوع مقدار ثابت بولی وجود دارد که با کلیدواژگان استاندارد ++C نمایش داده می شوند:

  • یک مقدار true که نمایشگر مقدار صحیح یا true می باشد.
  • یک مقدار false که نمایشگر غلط یا false می باشد.
  • لازم به توضیح است که شما نبایست مقدار true را برابر 1 و مقدار false را معادل 0 درنظربگیرید.

مقادیر ثابت از نوع character

مقادیر ثابت از نوع داده ای Character داخل یک تک کوتیشن محصور می شوند. چنانچه مقدار ثابت یا literal مورد نظر با L (حرف بزرگ) شروع شود، در آن صورت از نوع wide character literal یا یک مقدار ثابت از نوع Wider character محسوب می شود (مثال L'x'). در غیر این صورت، مقدار مورد نظر یک literal از نوع narrow character درنظر گرفته شده که می توان آن را در یک متغیر ساده از نوع charذخیره کرد (مثال 'x').
یک character literal می تواند یک کاراکتر ساده (برای مثال 'x') باشد و هم می تواند یک کاراکتر گریز نظیر '\t' و یا کاراکتر سراسری همچون '\u02C0' باشد.
در ++C تعدادی کاراکتر وجود دارد که قبل از آن ها یک علامت "/" مشاهده شده و دارای معنای خاصی هستند. به طور مثال کاراکتر \n نشانگر یک خط جدید و \t نمایشگر 8 خط فاصله یا همان tab می باشد. ذیل تعدادی از کدهای مربوط به کاراکترهای گریز را مشاهده می کنید:


معنی
کاراکتر مربوطه
\ کاراکتر
\\
' کاراکتر
\'
" کاراکتر
\"
? کاراکتر
\?
Alert / bell
\a
Backspace
\b
Form feed
\f
Newline
ایجاد خط جدید
\n
Carriage return
بازگشت به ابتدای سطر
\r
Horizontal tab
ایجاد هشت فاصله به صورت افقی
\t
Vertical tab
ایجاد هشت فاصله به صورت عمودی
\v
عدد مبنای 8 به طول 1 تا 3
\ooo
عدد مبانی 16 با 1 یا بیشتر عدد
\xhh . . .

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


#include 
using namespace std;
int main() {
   cout << "Hello\tWorld\n\n";
   return 0;
}

زمانی که کد فوق کامپایل و اجرا می شود، کاربر خروجی زیر را مشاهده می کند:


Hello   World 

مقادیر ثابت از نوع رشته (String literal)

مقادیر ثابت از نوع رشته ای (string literal) داخل دابل کوتیشن محصور می شوند. یک رشته یا String حاوی تعدادی کاراکتر مشابه مقادیر ثابت از نوع character می باشد و در واقع متشکل از چندین character: کاراکترهای ساده، escape sequence ها و کاراکترهای سراسری می باشد.
شما می توانید یک خط واحد را با استفاده از مقادیر ثابت رشته ای (string literal) همزمان به چندین خط تقسیم نموده و سپس به واسطه ی کاراکتر whitespace آن ها را از هم جدا نمایید.
در زیر تعدادی مثال یا نمونه از string literal ها را مشاهده می کنید. هر سه نمونه ی زیر رشته ای یکسان هستند که به شکل های مختلف نگارش شده اند.


"hello, dear"
"hello, \
dear"
"hello, " "d" "ear"

تعریف ثوابت در ++C / Constants

دو روش کلی برای تعریف ثوابت در ++C وجود دارد که به شرح زیر می باشد:

  • استفاده از دستور پیش پردازنده ی #define جهت تعریف ثابت.
  • استفاده از کلیدواژه ی const جهت تعریف ثابت مورد نظر.

دستور پیش پردازنده ی #define

در زیر دستور و نحوه ی تعریف مقدار ثابت با #define را مشاهده می کنید:


#define identifier value

مثال زیر به تفصیل دستور را شرح و آن را به طور عملی بکار می برد:


#include 
using namespace std;
#define LENGTH 10   
#define WIDTH  5
#define NEWLINE '\n'
int main() {
   int area;  
   area = LENGTH * WIDTH;
   cout << area;
   cout << NEWLINE;
   return 0;
}

با خروجی گرفتن از کد جاری، خروجی زیر را مشاهده می کنید:

50

کلیدواژه ی const

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


const type variable = value;

در زیر مثالی را می بینید که به صورت کاربردی ساختار نگارشی فوق را بکار برده و آن را به تفصیل شرح می دهد:


#include 
using namespace std;
int main() {
   const int  LENGTH = 10;
   const int  WIDTH  = 5;
   const char NEWLINE = '\n';
   int area;  
   area = LENGTH * WIDTH;
   cout << area;
   cout << NEWLINE;
   return 0;
}

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


50

توصیه می شود که (اسم) ثوابت را با حروف بزرگ تعریف نمایید.


1396/04/08 4286 1223
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...