دادهها به دو دسته تقسیم میشوند: 1. نوع صحیح. 2. نوع ممیز شناور.
از دادههای صحیح برای نگهداری اعداد صحیح ( 1 ،2 ،3 و….) استفاده میشود، از این داده بیشتر برای شمارش استفاده میشود و دامنهی محدودی دارند.
از دادههای ممیز شناور برای نگهداری اعداد اعشاری (1.45 ، 20.056 و……) استفاده میشود، از این داده برای محاسبات دقیق استفاده میشود و دامنهی بزرگتری دارند.
1. انواع دادههای صحیح:
نوع عددی صحیح: short – int – long – unsigned short – unsigned int – unsigned long
نوع کاراکتری: char – unsigned char – wchar_t
نوع شمارشی: enum
نوع boolean :bool
2. انواع دادههای ممیز شناور: float – double – long double
در ++C شش نوع متغیر عدد صحیح وجود دارد که تفاوت آنها در مقدار قابل پذیرش و میزان حافظه مورد استفاده است، این میزان حافظه به نوع سخت افزار سیستم و همچنین سیستم عامل آن بستگی دارد، مثلا ممکن است در یک سیستم دو بایت به نوع int تعلق گیرد ولی در سیستمی دیگر چهار بایت حافظه مورد استفاده آن قرار گیرد، به همین دلیل در هنگام نوشتن برنامه باید از نوع صحیح مناسب استفاده کنیم تا هم برنامه دچار خطا نشود و هم حافظه سیستم را هدر ندهیم:
البته در نوع دادهای long باید دست کم از 32 بیت حافظه استفاده شود که مقدار عددی آن برابر 2 به توان 32 خواهد شد که با توجه به سیستم مورد نظر متفاوت خواهد بود، به همین دلیل مقدار آن را برابر با نوع دادهای int قرار دادهام، ولی در اصل مقدار دادهای long در حالت کمینه برابر با نوع دادهای int خواهد بود.
دستورهای کنترلی:
در ++C کدها از بالا تا پایین برنامه اجرا میشوند و و تمام دستورها نیز در برنامه به صورت متوالی و به ترتیب اجرا شده و نتیجهی آنها نمایان میشود؛ اما در ++C دستورهایی وجود دارد که ما میتوانیم با استفاده از آنها در برنامه کدها را کنترل کنیم و با توجه به شرایطی که ما برای برنامه در نظر میگیریم، تصمیم گیری کنیم که آن دسته از کدها اجرا بشوند یا خیر، یا حتی با استفاده از دستورهای کنترلی، با توجه به آن شرایط، به برنامه این قابلیت را بدهیم که کدهای خود را تغییر بدهد و به نوعی به برنامه یک هوش مصنوعی بدهیم.
دستورهای کنترلی عبارتند از: if ،if…else ،switch (دستورهای انتخابی)، while ،do…while ،for (دستورهای تکرار)
دستور if: با استفاده از دستور if میتوانیم تعیین کنیم که اگر شرط این دستور برقرار باشد، چه کار(ها) در برنامه انجام بشود یا اینکه چه کار(ها) در برنامه انجام نشود؛ دستور if در حالت کلی به صورت زیر تعریف میشود:
if (شرط) {دستور(ها)}
در برنامه زیر استفاده از دستور if را توضیح میدهم؛ این برنامه عددی را از ورودی دریافت کرده و با استفاده از دستور if، کنترل میکند که عدد زوج باشد، در غیر این صورت کاری انجام نمیدهد. (البته در ادامه این برنامه را با استفاده از دستوری دیگر کامل میکنیم)
در برنامهی بالا به توضیح خطوط 14 به بعد میپردازم زیرا بقیه خطوط آشنا هستند و در قسمتهای قبل دربارهی آنها توضیح داده شده است.
خط 14، در این خط برنامه عدد گرفته شده از ورودی را بر عدد 2 تقسیم میکند و باقیمانده آن را در متغیر b میریزد. (درباره علامت % (باقیمانده) در قسمت قبل توضیح داده شد)
خطوط 16 تا 19 دستور if را شامل میشود؛ همان طور که میبینید این دستور دارای یک بدنه است، در داخل پرانتز، شرط نوشته میشود، که در اینجا شرط ما زوج بودن عدد است، نوشته میشود، یعنی شرط ما این است که برنامه کنترل کند، باقیمانده تقسیم عدد بر 2، برابر صفر باشد (به عبارت دیگر باقیمانده بر عدد 2 بخش پذیر باشد)، حال اگر این شرط درست باشد، برنامه دستورات داخل بدنه را اجرا میکند و اگر این شرط درست نباشد برنامه دستورات داخل بدنه را نادیده گرفته و به اجرای خطوط بعد از بدنهی دستور if میپردازد، که در اینجا بعد از بدنه دستوری وجود ندارد، پس وقتی هر دکمهای زده شود برنامه خاتمه مییابد.
دستور if…else: این دستور همانند دستور if عمل میکند، ولی از آن کاملتر است و با آن میتوانیم تعیین کنیم که اگر شرط مورد نظر ما برقرار بود، یک سری دستورات اجرا شود و اگر شرط ما برقرار نبود، یک سری دستورات دیگر اجرا شود؛ در اصل این دستور تکامل یافتهی دستور if است که از نوشتن دوباره آن دستور جلوگیری میکند؛ برنامهی قبل را با استفاده از این دستور کاملتر میکنیم:
در خطوط 16 تا 23 دستور if…else نوشته شده است؛ در این برنامه همانند برنامه قبل شرط ما بخش پذیر بودن باقیمانده تقسیم عدد بر 2 است، که همانند برنامه قبل نوشته شده است، در بدنه دستور if نیز دستورات برنامه قبل نوشته شده است؛ تنها قسمت اضافه شده، دستور else و بدنهاش است، که به توضیح آن میپردازم: در بدنهی دستور else (که حتما باید بعد از یک دستور if نوشته شود) دستوراتی نوشته میشود که اگر شرط درست نباشد اجرا میشود. (برای فهم بهتر برنامه را اجرا کنید تا نتیجهی آن را ببینید)، در حقیقت ما با نوشتن این دستور، از به وجود آمدن خطاهای حتمالی جلوگیری کرده و برنامه را دقیقتر میکنیم، همچنین این نکته را نیز یادآوری میکنم که میتوان چندین دستور را در بدنه های این دستورها نوشت.
نکات تکمیلی
1. میتوان دستور شرطی را به این صورت نوشت:
(دستور دوم: دستور اول ؟ شرط)
به عنون مثال میتوان از شرط بالا این گونه استفاده کرد:
(max = (x>y ? x:y
یعنی در این دستور ابتدا کنترل میشود که اگر x بزرگتر از y باشد، x در متغیر max قرار گیرد، در غیر این صورت، y در متغیر max قرار گیرد.( در حقیقت این دستور کوتاه شدهی دستور if…else است)
2. میتوان دستورهای جایگزینی مانند خط زیر را به صورتی دیگر نوشت، این حالت صورت مخفف این عبارت جایگزینی است:
m = m+8 »»» m=+8
3. با قرار دادن دستور const قبل از معرفی یک متغیر، میتوان مقدار آن متغیر را ثابت کرد، یعنی مقدار در طول برنامه ثابت میماند و اگر در ادامه برنامه دستوری بنویسیم که مقدار آن متغیر را تغییر دهد، مقدار متغیر تغییر نمیکند و ثابت میماند، که به صورت زیر معرفی میشود:
const a= 8;
دستور بالا اعلام میکند که متغیر a در طول برنامه دارای مقدار 8 خواهد بود و به هیچ وجه تغییر نمیکند.
4. با استفاده از علامتهای || و && میتوانیم چند شرط را با یکدیگر ترکیب کنیم، که علامت || به معنی “یا” و علامت && به معنی “و” است، که به عنوان مثال به صورت زیر معرفی میشود، که میتوان به صورت نوشته شده در سمت راست نیز آن را نوشت: (یادآوری میکنم که علامت ! به معنی نقض شرط است)، یعنی میتوانیم، دستورهای ترکیبی را در شرط if به این صورت نیز قرار داد.
!(x>5 && x<6) »»»» !(x>5) || !(x<6)
5. جداول درستی، مربوط به شرط های مرکب به صورت زیر است، که p و q، عبارتهای منطقی هستند: (F = false و T = true)