نحوه چاپ در c++ ؟؟؟

در این قسمت میتونید به بحث در مورد کنکور کاردانی به کارشناسی بپردازید

مدیران انجمن: Parsian، rosa_127، Moh3n II، مدیران

قفل شده
ahmad_2008
کاربر ساده
کاربر ساده
پست: 14
تاریخ عضویت: چهارشنبه 14 فروردین 1387, 4:07 pm

نحوه چاپ در c++ ؟؟؟

پست توسط ahmad_2008 » شنبه 27 تیر 1388, 2:59 pm

سلام
ببخشید شاید این تایپیک اینجا نباید ایجاد بشه ولی خوب
ضروری بود ببخشید

در c++ از سمت راست محاسبات انجام و از سمت چپ نمایش میده
حالا تو مثال زیر جواب اخر چیه؟
Int x=10;
Cout<< i-- << ++i << i++ << --I ;

جواب اخر 4422 بود . لطفا توضیح بدید جواب درسته ؟ چرا؟
اگر نیست جواب درست چیه و چطوری محاسبه میشه؟
خود c++ بدتر از printf یک عالمه فرمت چاپ داره!!!
مثل hex , setw, setfill و...
منتظر جوابتون هستم
با تشکر

ahmad_2008
کاربر ساده
کاربر ساده
پست: 14
تاریخ عضویت: چهارشنبه 14 فروردین 1387, 4:07 pm

Re: نحوه چاپ در c++ ؟؟؟

پست توسط ahmad_2008 » شنبه 27 تیر 1388, 3:02 pm

احمد طراح سوال

البته ببخشید مقداراولیه i برابر با 3 هستش نه 10

ahmad_2008
کاربر ساده
کاربر ساده
پست: 14
تاریخ عضویت: چهارشنبه 14 فروردین 1387, 4:07 pm

Re: نحوه چاپ در c++ ؟؟؟

پست توسط ahmad_2008 » شنبه 27 تیر 1388, 3:04 pm

پیش فرض i برابر 3 هستش و منظور از x همون i هستش
ببخشید تندتند تایپ می کنم اشتباه زیاد دارم

heidar
کاربر ساده
کاربر ساده
پست: 26
تاریخ عضویت: یک‌شنبه 27 مرداد 1387, 11:15 pm

Re: نحوه چاپ در c++ ؟؟؟

پست توسط heidar » شنبه 27 تیر 1388, 5:58 pm

جوابش که درسته ولی راه حلشو نمی دونم! دوستان راهنمای کنید!

آواتار کاربر
rwww
کاربر معمولي
کاربر معمولي
پست: 92
تاریخ عضویت: دوشنبه 7 بهمن 1387, 4:44 pm

Re: نحوه چاپ در c++ ؟؟؟

پست توسط rwww » شنبه 27 تیر 1388, 7:52 pm

Int i=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++ ؟؟؟

پست توسط پیر کاردانی » شنبه 27 تیر 1388, 8:30 pm

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 که محاسبات برای بدست آوردن مقادیر چاپ از راست و خود چاپ مقادیر از سمت چپ هست.

یا علی
تلاش نکن تا شکست نخوری

تا تلاشی دیگر
یا علی

آواتار کاربر
rwww
کاربر معمولي
کاربر معمولي
پست: 92
تاریخ عضویت: دوشنبه 7 بهمن 1387, 4:44 pm

Re: نحوه چاپ در c++ ؟؟؟

پست توسط rwww » دوشنبه 29 تیر 1388, 1:06 am

واقعا خاک بر سرم khk: من اینقدر اشاره گرها کلاسها وراثت و.............. خوندم اونوفت سوال به این سادگی رو اشتباه کردم و فکر کردم مثل عملگرها اولویت از چپ به راسته khk: از خودم نامید شدم khk: البته برم جزییاتو بیشتر بخونم nar:
یه روز بیادماندنی 1/6/88 ساعت : 18 :( ؟ :) ؟

آواتار کاربر
پیر کاردانی
كاربر عالي
كاربر عالي
پست: 856
تاریخ عضویت: سه‌شنبه 14 آبان 1387, 12:18 pm
محل اقامت: قطعه ای از بهشت

Re: نحوه چاپ در c++ ؟؟؟

پست توسط پیر کاردانی » دوشنبه 29 تیر 1388, 10:25 am

rwww نوشته شده:واقعا خاک بر سرم khk: من اینقدر اشاره گرها کلاسها وراثت و.............. خوندم اونوفت سوال به این سادگی رو اشتباه کردم و فکر کردم مثل عملگرها اولویت از چپ به راسته khk: از خودم نامید شدم khk: البته برم جزییاتو بیشتر بخونم nar:
سلام
هیچوقت اشتباه نکنید و سوال رو کامل بررسی کنید.
چون امکان داره یه نکته کوچیک یه جایی باشه.
همین اشتباه رو من چند روز پیش تو امتحان اسمبلی انجام دادم و حالا هی میزنم تو سرم.
دقت در خوندن سوال اولین چیزه.
یا علی
تلاش نکن تا شکست نخوری

تا تلاشی دیگر
یا علی

آواتار کاربر
rwww
کاربر معمولي
کاربر معمولي
پست: 92
تاریخ عضویت: دوشنبه 7 بهمن 1387, 4:44 pm

Re: نحوه چاپ در c++ ؟؟؟

پست توسط rwww » سه‌شنبه 30 تیر 1388, 12:27 am

پیر کاردانی عزیز من امروز 2 تا کتاب جعفر نژاد و مقسمی رو زیر و رو کردم ولی چیزی پیدا نکردم که بگه اولویت cout از راست به چپه؟؟!!!!! و همه پرینتاشون از چپ به راست نمایش دادن!! یعنی تو عملیات ++ و -- به این صورته یا چی؟ cuf:
یه روز بیادماندنی 1/6/88 ساعت : 18 :( ؟ :) ؟

آواتار کاربر
پیر کاردانی
كاربر عالي
كاربر عالي
پست: 856
تاریخ عضویت: سه‌شنبه 14 آبان 1387, 12:18 pm
محل اقامت: قطعه ای از بهشت

Re: نحوه چاپ در c++ ؟؟؟

پست توسط پیر کاردانی » سه‌شنبه 30 تیر 1388, 1:57 pm

rwww نوشته شده:پیر کاردانی عزیز من امروز 2 تا کتاب جعفر نژاد و مقسمی رو زیر و رو کردم ولی چیزی پیدا نکردم که بگه اولویت cout از راست به چپه؟؟!!!!! و همه پرینتاشون از چپ به راست نمایش دادن!! یعنی تو عملیات ++ و -- به این صورته یا چی؟ cuf:
سلام د.وست عزیز
در دستور 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

بازم مشکلی بود بگید.
یا علی
تلاش نکن تا شکست نخوری

تا تلاشی دیگر
یا علی

alializadeh2005
پست: 1
تاریخ عضویت: پنج‌شنبه 29 مهر 1389, 9:35 pm

Re: نحوه چاپ در c++ ؟؟؟

پست توسط alializadeh2005 » چهارشنبه 5 آبان 1389, 8:54 am

yes: yes:
سلام

كلا دستورت مشكل داره
شما يه متغير عديي با نام ايكس ساختيد
خوب بعد بهش مقدار 10 رو دايد
بعد اومديد داريد از يه متغيريي كه تعريف نكريد (i) خروجي مي گيريد
در سي لاس اگه يه متغيرر تعريف نشه error مي ده اصلا خروجي ندره
ولي اگه تعريف بشه ولاي مقدا اوليه نداشته باشه يه مقدار به اصطلاح آشغال مي ده
اين مقدار توسط خود كامپيوتر و يه عدد تصادفيه
شما نام متغير رو كه ايكس گذاشتي رو به I تغيرر بده
در مورد سوالت هم پردازش ها در سي از سمت راسته ولي در ستور coutكه كارشو از هون اول اجرا مي كهنه

omid_vv
پست: 4
تاریخ عضویت: چهارشنبه 3 شهریور 1389, 4:31 am

Re: نحوه چاپ در c++ ؟؟؟

پست توسط omid_vv » یک‌شنبه 7 آذر 1389, 5:58 pm

rwww نوشته شده:پیر کاردانی عزیز من امروز 2 تا کتاب جعفر نژاد و مقسمی رو زیر و رو کردم ولی چیزی پیدا نکردم که بگه اولویت cout از راست به چپه؟؟!!!!! و همه پرینتاشون از چپ به راست نمایش دادن!! یعنی تو عملیات ++ و -- به این صورته یا چی؟ cuf:
سلام دوست عزیز فقط در این حد بدون که توابعی مثل printf و cout از سمت راست محاسباتشان انجام میشود و در پشته قرار میگیرد و وقتی دستورات تمام شد از پشته برای چاپ خارج میشود (پاپ میشود)

اگه شکل پشته رو واسه ی اینکه مطمئن بشی بکشی و از راست دستورات رو اجرا کن و جوابشو بریز تو پشته و......... فک کنم گرفتید چی شد بیشتر از این فقط حضوری میتونم بگم

قفل شده