تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




صفحه 1 از 2 12 آخرآخر
نمايش نتايج 1 به 10 از 14

نام تاپيک: عبارت محاسباتی

  1. #1
    داره خودمونی میشه
    تاريخ عضويت
    Aug 2008
    پست ها
    86

    پيش فرض عبارت محاسباتی

    سلام
    میشه برای من توضیح بدین چرا جواب عبارت زیر وقتی کامپایل میکنم 5 میشه از نظر من جواب باید 9 باشه .
    من با tcc کامپایل کردم



    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

  2. این کاربر از star462 بخاطر این مطلب مفید تشکر کرده است


  3. #2
    آخر فروم باز Mehran NZ's Avatar
    تاريخ عضويت
    Sep 2006
    پست ها
    2,208

    پيش فرض

    سلام
    میشه برای من توضیح بدین چرا جواب عبارت زیر وقتی کامپایل میکنم 5 میشه از نظر من جواب باید 9 باشه .
    من با tcc کامپایل کردم



    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    چه سوالی پرسیدید بسیار بسیار عجیب هست!!! بنظر من هم باید 9 بیاد
    و اگر در بورلند و VS عبارت به همان صورتی که دوستمون نوشته, نوشته بشه جواب 5 و اگر بصورت زیر نوشته بشه 9 میاد!!!!
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    و اگه خودمون هم بخوایم مقدار عددی بصورت پایین بدیم جواب 9 می شه!!
    d=6*2/2*2-3;
    Last edited by Mehran NZ; 11-01-2009 at 22:58.

  4. #3
    داره خودمونی میشه
    تاريخ عضويت
    Aug 2008
    پست ها
    86

    پيش فرض

    دقیقا دوستمون درست میگه
    تمام مشکل سر c ++ آخریست یعنی اگه به جا ++c , c بزاریم جواب میشه 11
    ولی ++c میزارم باز میشه 9
    جدا هم بنویسیم درست میشه
    حالا چرا این جوری میشه!!!!!!!

  5. #4
    داره خودمونی میشه humphry's Avatar
    تاريخ عضويت
    Jan 2009
    محل سكونت
    تهران
    پست ها
    81

    پيش فرض

    جواب این موضوع رو با معرفی اپراتور تک اپرتندی پلاس پلاس شروع میکنم.
    این دستور شامل دو بخش می شه
    preincrement: ++x
    این دستور قبل از آغاز عملیات در سطر متغیر را یک واحد اضافه کرده و سپس عملیات رو انجام می ده و حاصل رو اساین می کنه
    در واقع در سوال شما در خط سوم ابتدا مقدار سی برابر 3 قرار داده می شه و بعد حاصل عبارت حساب میشه. اگر شما در یک خط از یک متغیر چند بار استفاده کنید و یکی از انها را به این شکل پلاس پلاس کنید در نهایت تغییر در همه جا اعمال می شه.
    ++postincrement: x
    این عملگر پس از انجام محاسبات و پایان سطر بازگشته و مقدار متغیر رو یکی زیاد می کنه. و به خط بعد می ره.

  6. #5
    داره خودمونی میشه humphry's Avatar
    تاريخ عضويت
    Jan 2009
    محل سكونت
    تهران
    پست ها
    81

    پيش فرض

    دلیل تفاوت بین دو کدی که مهران عزیز هم کامپایل کرده مشخص شد...

  7. #6
    آخر فروم باز Mehran NZ's Avatar
    تاريخ عضويت
    Sep 2006
    پست ها
    2,208

    پيش فرض

    عجب چیز مسخره ای مگر همچین چیزی ممکن هست؟ دو کدی که در c# و c++ نوشته شدند - c# عبارت 9 و c++ عبارت 5 رو نتیجه می ده!!!
    (if رو برداشتم که در c# هم کامپایل شه ولی در اصل موضوع هیچ فرقی نداره)
    کد در c#
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    کد در c++

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

  8. #7
    پروفشنال mahdi7s's Avatar
    تاريخ عضويت
    Sep 2007
    محل سكونت
    هر جایی می تونه باشه
    پست ها
    757

    پيش فرض

    كامپايلر من مقدار 9 رو چاپ مي كنه(microsoft visual c++6)

    اون 2 تا كامپايلر(سي شارپ و خودم) مال يه شركت معتبر هستن(مايكروسافت) ولي اون نه!
    Last edited by mahdi7s; 12-01-2009 at 00:01.

  9. #8
    آخر فروم باز Mehran NZ's Avatar
    تاريخ عضويت
    Sep 2006
    پست ها
    2,208

    پيش فرض

    كامپايلر من مقدار 9 رو چاپ مي كنه(microsoft visual c++6)

    اون 2 تا كامپايلر(سي شارپ و خودم) مال يه شركت معتبر هستن(مايكروسافت) ولي اون نه!

    اصلا هم عجيب نيست.
    Microsoft Visual Studio 2008 هم مقدار 5 رو چاپ می کنه
    به هر حال باگی هستش که پیدا شده و کاریش هم نمی شه کرد
    فعلا

  10. #9
    داره خودمونی میشه
    تاريخ عضويت
    Aug 2008
    پست ها
    86

    پيش فرض

    میشه بیشتر توضیح بدین؟!
    من دقیق نگرفتم چی شد
    عبارت ما به خاطر اینکه c++ آخرش داره از سمت راست محاسبه میشه؟
    اگه c خالی بود یا ++c از چپ شروع میشد
    مرسی

  11. #10
    داره خودمونی میشه humphry's Avatar
    تاريخ عضويت
    Jan 2009
    محل سكونت
    تهران
    پست ها
    81

    پيش فرض

    اما به نظر من هنوز هم این موضوع باگ و مشکل نیست اگه توضیحی که دادم بخونی متوجه می شی. در خطی که عبارات نوشته شده قبل از انجام هر محاسبه ای مقدار سی برابر 3 قرار داده می شه و بعد سایر محاسبات انجام می شه.توی کامپایلر های غیرمعتبر هر جا ++ باشه با +1 عوض می شه و دلیل این اشکال هم همینه ...

  12. این کاربر از humphry بخاطر این مطلب مفید تشکر کرده است


صفحه 1 از 2 12 آخرآخر

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •