به چهارمین جلسه از آموزش برنامه نویسی ++C خوش آمدید. در این جلسه با انواع داده ها و عملگرها در زبان ++C آشنا خواهیم شد.
انواع داده ها در ++C
داده ها در زبان ++C به دو دسته انواع صحیح و انواع ممیز شناور (اعشاری) تقسیم می شوند. انواع صحیح چهار دسته زیر را شامل می شود:
- نوع عددی صحیح (short , int , long)
- نوع بولین (bool)
- نوع کاراکتری (char)
- نوع شمارشی (enum)
نوع ممیز شناور نیز خود به دو دسته float و double تقسیم می شود. در ادامه هر یک از این انواع را شرح خواهیم داد.
انواع داده ها در زبان ++C
نوع عددی صحیح (short , int , long)
این نوع متداول ترین و پرکاربردترین نوع صحیح است و تمامی اعداد صحیح ریاضی را در بر می گیرد (… , ۳ , ۲ , ۱ , ۰). نوع عددی صحیح به سه دسته short ، int ، long تقسیم می شود. تفاوت این سه نوع در میزان حافظه اشغالی و محدوده مقادیر قابل پذیرش است. به این معنی که هر چه از سمت نوع short به سمت نوع long می رویم، میزان مصرف حافظه افزایش یافته و به تبع آن محدوده مقادیر قابل پذیرش نیز افزایش می باید.
نوع بولین (bool)
متغیرهایی که از نوع بولین تعریف می شوند، تنها می توانند دو مقدار true (به معنی درست) و false (به معنی غلط) را بپذیرند. نوع بولین در موارد دو حالته استفاده می شود. دلیل اینکه نوع بولین با وجود تفاوت ظاهری، زیرمجموعه نوع صحیح قرار می گیرد، این است که کامپایلر دو مقدار true و false را به دید دو عدد صحیح در نظر می گیرد (true = 1 و false = 0).
نوع کاراکتری (char)
متغیرهایی که از نوع کاراکتری تعریف می شوند، می توانند هر یک از حروف الفبا (a – z) و یا ارقام عددی ۰ تا ۹ را بپذیرند. همچنین در متغیرهای نوع کاراکتری علائم چاپی (… , & , @ , [ , # , %) را نیز می توان ذخیره کرد. دلیل اینکه نوع کاراکتری زیرمجموعه نوع صحیح قرار می گیرد، این است که هر کاراکتر بر روی صفحه کلید، توسط یک کد عددی صحیح به نام کد اسکی (Ascii Code) شناسایی می شود. یعنی کامپیوتر از روی کد اسکی تولید شده در اثر فشردن یک کلید بر روی صفحه کلید متوجه می شود که کدام کلید (کاراکتر) فشرده شده است.
نوع شمارشی (enum)
کاربرد نوع شمارشی زمانی است که می خواهیم نوع جدیدی در زبان ++C تعریف کنیم. برای مثال چنانچه در یک برنامه ++C بخواهیم با اسامی روزهای هفته کار کنیم (saturday , sunday , … , friday)، نیاز به تعریف نوع جدیدی داریم. زیرا این اسامی جزو هیچکدام از انواع شناخته شده قبلی نیست (short , int , long , bool , char).
نوع ممیز شناور (اعداد اعشاری)
هرگاه در یک برنامه ++C بخواهیم با اعداد اعشاری (برای مثال ۲٫۳ و ۳٫۱۴) کار کنیم، از این نوع استفاده می کنیم. این نوع نیز خود به دو دسته float و double تقسیم می شود. تفاوت بین float و double دقیقا مشابه تفاوت بین short , int , long است (میزان حافظه مصرفی و محدوده مقادیر قابل پذیرش).
عملگرها در زبان ++C
در این بخش دو دسته از عملگرهای زبان ++C را بررسی خواهیم کرد:
- عملگرهای انتساب مرکب
- عملگرهای افزایشی و کاهشی
عملگرهای انتساب مرکب
عملگرهای انتساب مرکب جهت خلاصه نویسی و کوتاه تر کردن طول کد برنامه استفاده می شوند. عملگرهای انتساب مرکب عبارتند از =% , =/ , =* , =- , =+. کاربرد و معادل هر یک از این عملگرها در تصویر زیر آورده شده است. لازم به ذکر است که عملگر / خارج قسمت تقسیم و عملگر % باقیمانده تقسیم را برمی گرداند.
عملگرهای انتساب مرکب
عملگرهای افزایشی و کاهشی
عملگرهای افزایشی و کاهشی (++ و – -) هم جهت خلاصه نویسی و کوتاه تر کردن طول کد برنامه استفاده می شوند. ولی نکاتی در آنها وجود دارد که در ادامه به آنها خواهیم پرداخت. عملگر افزایشی به دو دسته پیش افزایشی و پس افزایشی تقسیم می شود (به همین صورت برای عملگر کاهشی). عملگر افزایشی جهت افزایش یک واحدی متغیر و عملگر کاهشی جهت کاهش یک واحدی متغیر استفاده می شود.
نکته ای که وجود دارد این است که تا زمانیکه پای یک متغیر در میان باشد، عملگرهای پیش افزایشی و پس افزایشی تفاوتی به لحاظ عملکرد ندارند (به همین صورت برای عملگر پیش کاهشی و پس کاهشی). m++ (پیش افزایشی) و ++m (پس افزایشی) هر دو به معنی افزایش یک واحدی متغیر m هستند. به طور مشابه m– (پیش کاهشی) و –m (پس کاهشی) هر دو به معنی کاهش یک واحدی متغیر m هستند.
عبارات پیش و پس (تقدم عملگر) در زمانی اهمیت پیدا می کنند که پای بیش از یک متغیر در میان باشد (محاسبات). اینجاست که m++ و ++m با هم برابر نبوده و عملکرد متفاوتی خواهند داشت. برای مثال به قطعه کد زیر توجه کنید:
1 2 3 4 5 |
// 1 n = ++m; // 2 n = m++; |
در حالت شماره ۱ (پیش افزایشی) ابتدا متغیر m یک واحد افزایش یافته و سپس نتیجه آن درون متغیر n ریخته می شود. در حالت شماره ۲ (پس افزایشی) ابتدا مقدار اولیه m درون متغیر n ریخته شده و سپس عمل افزایش مقدار بر روی m انجام می شود. کاملا واضح است که این تغییر تقدم عملگر در نتیجه نهایی (مقدار m و n) تاثیرگذار خواهد بود. در ادامه این عملکرد متفاوت را در یک برنامه ++C خواهیم دید.
عملگرهای افزایشی و کاهشی
عملگرهای افزایشی و کاهشی در برنامه ++C
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
#include<iostream> using namespace std; int main() { int m , n; m = 45; n = ++m; cout << "m = " << m << " , n = " << n << endl; //---------------- m = 45; n = m++; cout << "m = " << m << " , n = " << n << endl; return 0; } |
در برنامه بالا، ابتدا دو متغیر صحیح با نام های m و n تعریف شده و متغیر m با مقدار ۴۵ مقداردهی شده است. در خط ۱۱ از عملگر پیش افزایشی استفاده شده است. در این دستور ابتدا متغیر m یک واحد افزایش یافته و سپس نتیجه آن درون متغیر n ریخته می شود. در خط ۱۹ نیز از عملگر پس افزایشی استفاده شده است. در این دستور ابتدا مقدار اولیه m درون متغیر n ریخته شده و سپس عمل افزایش مقدار بر روی m انجام می شود.
خروجی برنامه فوق بدین صورت است :
1 2 |
m = 46 , n = 46 m = 46 , n = 45 |
این جلسه از آموزش برنامه نویسی به زبان ++C هم به پایان رسید. در آینده با بخش های دیگری از زبان ++C آشنا خواهیم شد. با ما همراه باشید…
9 دیدگاه. ارسال دیدگاه جدید
خوب بودین یعنی یه جورایی عالی بودین نمیدونم چرا هیچ استادی اینطور توضیح نمیده فقط زود میخوان رد کنن درکل نمیدونم سایتتون چطوری پیدا شد ولی عالی بودین
خواهش میکنم دوست عزیز، موفق باشید
واقعا عالیییییییه. خدا اجر معنوی بهتون بده. خدا خیرتون بده
سلام برای آزمون استخدامی می خواستم مطالب ++C مرور شود، با سایت شما آشنا شدم مطالب بسیار عالی توضیح داده شده اند.
ان شالله همیشه موفق باشید.
سلام خیلی خیلی ممنونم از آموزشهاتون
واقعا فوق العاده هستن. امیدوارم همینجوری پیشرفت کنید و موفق باشین.
ممنونم دوست عزیز. از اظهار لطفتون سپاسگزارم.
عالیه خدا خیرتون بده
استاد عزیز با عرض سلام، به واقع متشکرم انشالله اجر شما با خدا باشه، واقعا کم نظیر آموزش میدید، خیلی از اساتید توی انتقال اطلاعات مشکل دارند ولی شما بسیار با زبان ساده و قابل فهم آموزش می دید. انشاالله خدا به عمرتون برکت بده و رزق حلالتون زیاد باشه
خیلی متشکرم دوست عزیز، این لطف شما رو میرسونه