نحوه چاپ در c++ ؟؟؟
مدیران انجمن: Parsian، rosa_127، Moh3n II، مدیران
-
- کاربر ساده
- پست: 14
- تاریخ عضویت: چهارشنبه 14 فروردین 1387, 4:07 pm
نحوه چاپ در c++ ؟؟؟
سلام
ببخشید شاید این تایپیک اینجا نباید ایجاد بشه ولی خوب
ضروری بود ببخشید
در c++ از سمت راست محاسبات انجام و از سمت چپ نمایش میده
حالا تو مثال زیر جواب اخر چیه؟
Int x=10;
Cout<< i-- << ++i << i++ << --I ;
جواب اخر 4422 بود . لطفا توضیح بدید جواب درسته ؟ چرا؟
اگر نیست جواب درست چیه و چطوری محاسبه میشه؟
خود c++ بدتر از printf یک عالمه فرمت چاپ داره!!!
مثل hex , setw, setfill و...
منتظر جوابتون هستم
با تشکر
ببخشید شاید این تایپیک اینجا نباید ایجاد بشه ولی خوب
ضروری بود ببخشید
در c++ از سمت راست محاسبات انجام و از سمت چپ نمایش میده
حالا تو مثال زیر جواب اخر چیه؟
Int x=10;
Cout<< i-- << ++i << i++ << --I ;
جواب اخر 4422 بود . لطفا توضیح بدید جواب درسته ؟ چرا؟
اگر نیست جواب درست چیه و چطوری محاسبه میشه؟
خود c++ بدتر از printf یک عالمه فرمت چاپ داره!!!
مثل hex , setw, setfill و...
منتظر جوابتون هستم
با تشکر
-
- کاربر ساده
- پست: 14
- تاریخ عضویت: چهارشنبه 14 فروردین 1387, 4:07 pm
Re: نحوه چاپ در c++ ؟؟؟
احمد طراح سوال
البته ببخشید مقداراولیه i برابر با 3 هستش نه 10
البته ببخشید مقداراولیه i برابر با 3 هستش نه 10
-
- کاربر ساده
- پست: 14
- تاریخ عضویت: چهارشنبه 14 فروردین 1387, 4:07 pm
Re: نحوه چاپ در c++ ؟؟؟
پیش فرض i برابر 3 هستش و منظور از x همون i هستش
ببخشید تندتند تایپ می کنم اشتباه زیاد دارم
ببخشید تندتند تایپ می کنم اشتباه زیاد دارم
Re: نحوه چاپ در c++ ؟؟؟
جوابش که درسته ولی راه حلشو نمی دونم! دوستان راهنمای کنید!
Re: نحوه چاپ در c++ ؟؟؟
Int i=3;
Cout<< i-- << ++i << i++ << --i;
بنطر من مرحله اول i چاپ می شود و یک واحد از i کم میشه مرحله بعد اول یه واحد به i اضافه و بعد چاپ میشه مرحله سه i چاپ و دوباره یک واحد اضافه میشه و مرحله اخر اول یک واحد از i کم و سپس چاپ میشه یعنی مقدار باید
3 3 3 3 (++و -- اگر قبل از متغییر قرار بگیرند اول بر متغییر اعمال و بعد دستور اجرا میشود ولی اگر بعد از متغییر قرار گیرند اول دستور اجرا و بعد اعمال)
شاید من اشتباه میکنم بزرگان عزیز راهنمایی کنید
Cout<< i-- << ++i << i++ << --i;
بنطر من مرحله اول i چاپ می شود و یک واحد از i کم میشه مرحله بعد اول یه واحد به i اضافه و بعد چاپ میشه مرحله سه i چاپ و دوباره یک واحد اضافه میشه و مرحله اخر اول یک واحد از i کم و سپس چاپ میشه یعنی مقدار باید
3 3 3 3 (++و -- اگر قبل از متغییر قرار بگیرند اول بر متغییر اعمال و بعد دستور اجرا میشود ولی اگر بعد از متغییر قرار گیرند اول دستور اجرا و بعد اعمال)
شاید من اشتباه میکنم بزرگان عزیز راهنمایی کنید
یه روز بیادماندنی 1/6/88 ساعت : 18 ؟ ؟
- پیر کاردانی
- كاربر عالي
- پست: 856
- تاریخ عضویت: سهشنبه 14 آبان 1387, 12:18 pm
- محل اقامت: قطعه ای از بهشت
Re: نحوه چاپ در c++ ؟؟؟
سلامahmad_2008 نوشته شده:سلام
ببخشید شاید این تایپیک اینجا نباید ایجاد بشه ولی خوب
ضروری بود ببخشید
در c++ از سمت راست محاسبات انجام و از سمت چپ نمایش میده
حالا تو مثال زیر جواب اخر چیه؟
Int x=10;
Cout<< i-- << ++i << i++ << --I ;
جواب اخر 4422 بود . لطفا توضیح بدید جواب درسته ؟ چرا؟
اگر نیست جواب درست چیه و چطوری محاسبه میشه؟
خود c++ بدتر از printf یک عالمه فرمت چاپ داره!!!
مثل hex , setw, setfill و...
منتظر جوابتون هستم
با تشکر
خوب دوست عزیز ویرایش می کردی پستت رو.
اما جواب:
از سمت راست شروع می کنیم به محاسبه:
اول:I-- : اول یک واحد از I کم می کنه و مقدار اون قسمت برای چاپ میشه 2
دوم:++ I : دوم اول مقدار I یعنی 2 برای اون منطقه برای چاپ انتخاب میشه بعد یکی از I کم می کنه.
سوم:I++ : سوم اول مقدار I که در دستور قبل شده 3 یکی اضافه میشه و میشه 4 بعد مقدار 4 برای چاپ اون مکان انتخاب میشه.
چهارم: --I: ابتدا مقدار I برای چاپ این منطقه انتخاب میشه یعنی 4 که در دستور قبلی هم بود بعد یکی ازش کم میشه که دیگه تاثیری در چاپ نداره.
حالا مقادیری رو که برای هر منطقه از دستور cout بدست آوردیم رو از اول دستور چاپ یعنی از سمت چپ چاپ می کنی.
که اول 4 بعد 4 بعد 2 بعد 2 چاپ میشه.
4422
نکته این سوال یک در اولویت عملگر های پیشوندی پسوندی هست و دوم در مورد نکته دستور cout که محاسبات برای بدست آوردن مقادیر چاپ از راست و خود چاپ مقادیر از سمت چپ هست.
یا علی
تلاش نکن تا شکست نخوری
تا تلاشی دیگر
یا علی
تا تلاشی دیگر
یا علی
Re: نحوه چاپ در c++ ؟؟؟
واقعا خاک بر سرم من اینقدر اشاره گرها کلاسها وراثت و.............. خوندم اونوفت سوال به این سادگی رو اشتباه کردم و فکر کردم مثل عملگرها اولویت از چپ به راسته از خودم نامید شدم البته برم جزییاتو بیشتر بخونم
یه روز بیادماندنی 1/6/88 ساعت : 18 ؟ ؟
- پیر کاردانی
- كاربر عالي
- پست: 856
- تاریخ عضویت: سهشنبه 14 آبان 1387, 12:18 pm
- محل اقامت: قطعه ای از بهشت
Re: نحوه چاپ در c++ ؟؟؟
سلامrwww نوشته شده:واقعا خاک بر سرم من اینقدر اشاره گرها کلاسها وراثت و.............. خوندم اونوفت سوال به این سادگی رو اشتباه کردم و فکر کردم مثل عملگرها اولویت از چپ به راسته از خودم نامید شدم البته برم جزییاتو بیشتر بخونم
هیچوقت اشتباه نکنید و سوال رو کامل بررسی کنید.
چون امکان داره یه نکته کوچیک یه جایی باشه.
همین اشتباه رو من چند روز پیش تو امتحان اسمبلی انجام دادم و حالا هی میزنم تو سرم.
دقت در خوندن سوال اولین چیزه.
یا علی
تلاش نکن تا شکست نخوری
تا تلاشی دیگر
یا علی
تا تلاشی دیگر
یا علی
Re: نحوه چاپ در c++ ؟؟؟
پیر کاردانی عزیز من امروز 2 تا کتاب جعفر نژاد و مقسمی رو زیر و رو کردم ولی چیزی پیدا نکردم که بگه اولویت cout از راست به چپه؟؟!!!!! و همه پرینتاشون از چپ به راست نمایش دادن!! یعنی تو عملیات ++ و -- به این صورته یا چی؟
یه روز بیادماندنی 1/6/88 ساعت : 18 ؟ ؟
- پیر کاردانی
- كاربر عالي
- پست: 856
- تاریخ عضویت: سهشنبه 14 آبان 1387, 12:18 pm
- محل اقامت: قطعه ای از بهشت
Re: نحوه چاپ در c++ ؟؟؟
سلام د.وست عزیزrwww نوشته شده:پیر کاردانی عزیز من امروز 2 تا کتاب جعفر نژاد و مقسمی رو زیر و رو کردم ولی چیزی پیدا نکردم که بگه اولویت cout از راست به چپه؟؟!!!!! و همه پرینتاشون از چپ به راست نمایش دادن!! یعنی تو عملیات ++ و -- به این صورته یا چی؟
در دستور cout اگر شما در هر بخش اون عملیات محاسباتی داشته باشید یا هر دستوری.
ابتدا دستورات در این بخش ها از راست به چپ محاسبه میشه مقادیر چاپی که در حافظه واسه هر بخش مشخص شد بعد به ترتیب مقادیر از چپ به راست چاپ میشه.
یه مثال ساده می نویسم.
که از سمت راست اجرا میشه اول تابع با آدرس I صدا زده میشه و در واقع X به آدرس I اشاره می کنه و یکی بهش اضافه می کنه که I میشه 11 و بعد مقدار 11 رو هم تابع بر می گردونه.
یعنی هم مقدار I تغییر کرده هم خروجی تابع میشه 11
پس بخش آخر دستور cout باید 11 چاپ بشه.
حالا دستور بعدی که میشه فراحوانی بعدی تابع و این بار هم به آدرس اشاره می کنه مقدار i که 11 هست رو یکی اضافه می کنه و هم مقدار I میشه 12 و هم مقداری که تابع بر می گردونه میشه 12
حالا این بخش هم شد عدد 12 برای چاپ.
بخش بعدی هم که خود I هست که الان مقدارش 12 هست و این مقدار باید در این بخش چاپ بشه.
حالا از سمت چپ اعداد رو که برای هر بخش بدست آوردیم چاپ می کنیم.
اول عدد 12 حاصل از مقدار I
بعد مقدار خروجی تابع به ازای I برابر 11
و در آخر هم اولین دستور داخل cout که اجرا شد مقدارش چاپ میشه که 11 هست.
پس خروجی : 11 12 12
بازم مشکلی بود بگید.
یا علی
تلاش نکن تا شکست نخوری
تا تلاشی دیگر
یا علی
تا تلاشی دیگر
یا علی
-
- پست: 1
- تاریخ عضویت: پنجشنبه 29 مهر 1389, 9:35 pm
Re: نحوه چاپ در c++ ؟؟؟
سلام
كلا دستورت مشكل داره
شما يه متغير عديي با نام ايكس ساختيد
خوب بعد بهش مقدار 10 رو دايد
بعد اومديد داريد از يه متغيريي كه تعريف نكريد (i) خروجي مي گيريد
در سي لاس اگه يه متغيرر تعريف نشه error مي ده اصلا خروجي ندره
ولي اگه تعريف بشه ولاي مقدا اوليه نداشته باشه يه مقدار به اصطلاح آشغال مي ده
اين مقدار توسط خود كامپيوتر و يه عدد تصادفيه
شما نام متغير رو كه ايكس گذاشتي رو به I تغيرر بده
در مورد سوالت هم پردازش ها در سي از سمت راسته ولي در ستور coutكه كارشو از هون اول اجرا مي كهنه
Re: نحوه چاپ در c++ ؟؟؟
سلام دوست عزیز فقط در این حد بدون که توابعی مثل printf و cout از سمت راست محاسباتشان انجام میشود و در پشته قرار میگیرد و وقتی دستورات تمام شد از پشته برای چاپ خارج میشود (پاپ میشود)rwww نوشته شده:پیر کاردانی عزیز من امروز 2 تا کتاب جعفر نژاد و مقسمی رو زیر و رو کردم ولی چیزی پیدا نکردم که بگه اولویت cout از راست به چپه؟؟!!!!! و همه پرینتاشون از چپ به راست نمایش دادن!! یعنی تو عملیات ++ و -- به این صورته یا چی؟
اگه شکل پشته رو واسه ی اینکه مطمئن بشی بکشی و از راست دستورات رو اجرا کن و جوابشو بریز تو پشته و......... فک کنم گرفتید چی شد بیشتر از این فقط حضوری میتونم بگم