عملگر ورودی
در جلسه گذشته مطالب کلی در مورد انواع عدد صحیح، ممیز شناور و ... آموختیم و هم چنین دانستیم که برای این که بتوانیم هنگام اجرای برنامه مقادیری را وارد کنیم از عملگر ورودی استفاده میکنیم.
; نام متغیر << cin
برنامه ی زیر یک عدد از کاربر گرفته و همان عدد را دوباره در خروجی نمایش میدهد:
عملگر ورودی و عملگر خروجی به شکل جریانی رفتار میکنند. یعنی در عملگر خروجی میتوانیم چند عبارت را با استفاده از چند عملگر << به صورت پشت سر هم چاپ کنیم، در عملگر ورودی نیز میتوانیم با استفاده از چند عملگر >> چند مقدار را به صورت پشت سر هم دریافت کنیم. مثلا با استفاده از دستور:
cin >> x >> y >> z;
سه مقدار x و y و z به ترتیب از ورودی دریافت میشوند. برای این کار باید بین هر ورودی یک فضای خالی (space) بگذارید و پس از تایپ کردن همۀ ورودیها، کلید enter را بفشارید.
توضیح:
صفحه متنی (Text) از 25 سطر و 80 ستون تشکیل شده است که هر حرف یا عدد (کلا کاراکتر) در یک خانه صفحه جای می گیرد. این 80 ستون از لحاظ منطقی به 10 قسمت 8 ستونی تقسیم شده است که با چاپ \t دستور cout مکان نما را به ابتدای قسمت بعدی می برد (یا در صورت لزوم به ابتدای سطر بعد)
در C++ دو نوع اصلی داده وجود دارد: «نوع صحیح» و «نوع ممیز شناور». همۀ انواع دیگر از روی این دو ساخته میشوند (به شکل زیر دقت کنید).
نوع صحیح برای نگهداری اعداد صحیح (اعداد 0 و 1 و 2 و ...) استفاده میشود. این اعداد بیشتر برای شمارش به کار میروند و دامنه محدودی دارند.
نوع ممیز شناور برای نگهداری اعداد اعشاری استفاده میشود. اعداد اعشاری بیشتر برای اندازهگیری دقیق به کار میروند و دامنۀ بزرگتری دارند. یک عدد اعشاری مثل 187/352را میتوان به شکل 18/7352×10 یا 102×1/87352 یا
1873/52 ×10-1 یا 18735/2 ×10-2 و یا ... نوشت.
به این ترتیب با کم و زیاد کردن توان عدد 10 ممیز عدد نیز جابهجا میشود. به همین دلیل است که به اعداد اعشاری «اعداد ممیز شناور» میگویند.
C++ شش نوع متغیر عدد صحیح دارد تفاوت این شش نوع مربوط به میزان حافظه ی مورد استفاده و محدودۀ مقادیری است که هر کدام میتوانند داشته باشند.
این میزان حافظه ی مورد استفاده و محدوده ی مقادیر، بستگی زیادی به سختافزار و هم چنین سیستم عامل دارد.
در ادامه خواهیم دانست....
محدوده مجاز برای مقادیر متغیرها
char -> -128…127 (0x00…0xFF ASCII Characters)
int -> -32768…32767
float-> ±10-38…±10+38 (دقت 7 رقم اعشار)
double-> ±10-308…±10308 (دقت 15 رقم اعشار)
دستورات ++و --
عملگر می تواند قبل از نام متغیر بیاید
مثل m++ یا n— ابتدا متغیر، متناسب با عملگر، افزایش یا کاهش می یابد
ونیز می تواند عملگر بعد از نام متغیر بیاید
مثل. ++m یا --n . ابتدا مقدار متغیر در محاسبات به کار میرود و پس از آن مقدار متغیر یک واحد افزایش یا کاهش مییابد
درمرحله اول
عملگرهای دیگری نیز داریم. همانند زیرکه درمحاسبات استفاده می شود
m += 8; → m = m + 8;
m -= 8; → m = m - 8;
m *= 8; → m = m * 8;
m /= 8; → m = m / 8;
m %= 8; → m = m % 8;
نوع bool
اما این مقادیر در اصل به صورت 1 و 0 درون رایانه ذخیره میشوند: 1 برای true و 0 برای false.
نوع کاراکتر(char)
مثلا هر یک از حروف 'A' تا 'Z' و 'a' تا 'z' و هر یک از اعداد '0' تا '9' و یا نشانههای '~' تا '+' روی صفحهکلید را یک کاراکتر مینامند.
تبدیل نوع
«خطای زمان کامپایل»
«خطای زمان اجرا»
سرریزی عددی
وقتی یک عدد صحیح سرریز شود، عدد سرریز شده به یک مقدار منفی «گردانیده» میشود اما وقتی یک عدد ممیز شناور سرریز شود، نماد inf به معنای بینهایت را به دست میدهد.
هیچگاه از متغیر ممیز شناور برای مقایسه برابری استفاده نکنید. زیرا در متغیرهای ممیز شناور خطای گرد کردن سبب میشود که پاسخ با آن چه مورد نظر شماست متفاوت باشد. خطای گرد كردن نوع دیگری از خطاست كه اغلب وقتی رایانهها روی اعداد حقیقی محاسبه میكنند، رخ میدهد.
بخش پژوهش های دانش آموزی سایت تبیان