نمایش نتایج: از شماره 1 تا 6 , از مجموع 6

موضوع: آموزش مقدماتي برنامه‌نويسي با ++Borland C

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #5
    مدیر انجمن کامپیوتر
    همديگر را دوست داشته باشيم و بهم احترام بگذاريم
    تاریخ عضویت
    Mar 2012
    محل سکونت
    زیر سایه شما
    نوشته ها
    801
    تشکر تشکر کرده 
    3,495
    تشکر تشکر شده 
    3,460
    تشکر شده در
    796 پست
    حالت من : ShadOsarhal
    قدرت امتیاز دهی
    13720
    Array

    پیش فرض

    سلام به دوستان خوبم

    "سري چهارم"


    * عبارات محاسباتی و تقدم عملگرها در برنامه نویسی (C++ (Precedence of operators :

    همانطور که قبلا اشاره شد عبارات محاسباتی شامل عملیات یک یا چند عملگر بر روی یک یا چند عملوند هستند. لذا به مبحث تقدم عملگرها در برنامه نویسی C++ می پردازیم تا بدانیم که در برخورد با یک عبارت محاسباتی طولانی به چه صورت باید رفتار کنیم.

    a = b+10*(9%4);
    a = b+10*9%4;
    در بالا دو عبارت محاسباتی شبیه به هم اما با ساختاری متفاوت را مشاهده می کنیم. این دو عبارت جوابی متفاوت نسبت به یکدیگر دارند و تنها دلیل این تفاوت وجود یا عدم وجود پرانتز در هر کدام از این دو می باشد.بطور کلی در عبارات محاسباتی قوانینی وجود دارد که اولویت عملگری را بر سایر عملگرها مشخص می کند. یعنی در برخورد با یک عبارت محاسباتی، عملگرهای با تقدم بالاتر، زودتر محاسبه شده تا به آخرین عملگر در عبارت برسیم.* جدول زیر تقدم عملگرها را با اولویت از بالا به پایین به ما نمایش میدهد.


    1 ()
    2 ! ~ ++ -- sizeof
    3 * / %
    4 + -
    5 << >>
    6 < <= > >=
    7 == !=
    8 &
    9 ^
    10 |
    11 &&
    12 ||
    13 ?
    14 = += -= *= /= %=
    15 ,


    همینطور که در جدول بالا مشخص شد بالاترین تقدم عملگرها را پرانتز و پایین ترین تقدم را کاما دارا می باشند.

    همینطور که در جدول بالا مشخص شد بالاترین تقدم عملگرها را پرانتز و پایین ترین تقدم را کاما دارا می باشند.
    در جدول بالا ردیف هایی با چند عملگر وجود دارند. این بدین معنی است که از تقدم یکسانی برابر هستند، بنابر این اگر در عبارات محاسباتی به چند عملگر با تقدم یکسان برخورد کردیم تقدم بالاتر به عملگری میرسد که در سمت چپ دیگر عملگرها قرار دارد.
    برای درک مطلب به بررسی مثالی می پردازيم:


    ;((a = 20-3*4+19%(3*(2+1



    20-3*4+19%(3*3)

    ابتدا عبارت داخل پرانتز به دلیل بالاترین تقدم بررسی می شود. اینجا ما دو پرانتز تودرتو داریم پس از پرانتز داخلی شروع می کنیم.


    20-3*4+19%9

    با محاسبه مقدار اولین پرانتز، دوباره عبارت داخل آنرا بدلیل وجود پرانتز دوم و تقدم آن نسبت به دیگر عملگرها محاسبه می کنیم.


    20-12+19%9

    حالا از بین عملگرهای موجود * و % از تقدم بالاتری برخوردارند. بدلیل یکسان بودن تقدم این دو از چپ شروع کرده و با رسیدن به هر کدام از این دو عملگر مقدار عبارت را محاسبه میکنیم که در این مثال ابتدا * محاسبه می شود.


    20-12+1

    سپس نوبت به % میرسد.


    8+1

    اکنون عملگرهای + و – در عبارت باقی می مانند که بدلیل یکسانی تقدم اولین عملگر از چپ یعنی – ابتدا محاسبه می گردد.


    9
    و در پایان عملگر + محاسبه شده که در نهایت به جواب 9 می رسیم.


    ادامه دارد....

    سپاس
    ویرایش توسط eDvArDo : 06-01-2012 در ساعت 04:09 PM
    دوستدار هميشگي شما "eDvArDo"

    7n1wj1mlvxoxejezfhye

    دلِ هر ايراني كه براي ايران نمي‌تپد، بهتراست نتپد! (پروفسور حسابي)

    آيا پاسخ سوالي را بدانم بهتر است، يا اينكه ندانسته از دنيا بروم؟! (ابوريحان بيروني)

    پس از سالها جهد و تلاش در كسب علم و معرفت، دانستم كه هيچ ندانستم! (علامه حسن زاده آملي)

  2. 6 کاربر مقابل از eDvArDo عزیز به خاطر این پست مفید تشکر کرده اند.


علاقه مندی ها (بوک مارک ها)

علاقه مندی ها (بوک مارک ها)

مجوز های ارسال و ویرایش

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

http://www.worldup.ir/