دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۲۵
  • اسفند

جلسه ۰۹ : عملگرها در c

  • دسته‌بندی‌ها :
جلسه ۰۹ : عملگرها در c
    • جزئیات
    • نوع محتواآموزشی

      مقدمه

      با سلام خدمت تمامی دوستان عزیز سایت پی وی لرن .و کاربرانی که دوره کامل آموزش زبان C را دنبال می کنند. در این مجموعه آموزشها قصد داریم آموزش برنامه نویسی به زبان C رو تقدیم حضورتون کنیم تاشما هم بتونید به راحتی برنامه بنویسید.به دلیل اهمیت عملگرها و اولویت عملگرها در c در این جلسه از آموزشهای زبان سی به عملگرها در c ، عملگرهای تخصیص یا انتصاب مرکب و کلاسها از جمله کلاس ذخیره استاتیک static در C و اولویت عملگرها در c می پردازیم .

      عملگرها در c

      حال وارد مبحث عملگرها در c و اولویت عملگرها در c می شویم. عملگر یک نماد است که کامپایلر را به انجام وظایف خاص ریاضی یا منطقی وا می دارد. زبان C غنی از عملگرهای تعبیه شده است.زبان C انواع مختلفی از عملگرها را فراهم می کند .
      Arithmetic Operators
      Relational Operators
      Logical Operators
      Bitwise Operators
      Assignment Operators
      Misc Operators
      ما در این فصل به بررسی نحوه کار هر عملگر خواهیم پرداخت.

      عملگر های ریاضی-Arithmetic Operators

      جدول زیر نشان می دهد تمام عملگر های محاسباتی توسط زبان C پشتیبانی می شوند. فرض کنید متغیر A دارای مقدار ۱۰ و متغیر B دارای مقدار ۲۰ باشند و سپس مثالها را ببینید.
      اپراتور/عملگرتوضیحاتمثال
      +دو متغیر را جمع می کندA + B = 30
      متغیر دوم را از اول کم می کند.A − B = -10
      *هر دو را در هم ضرب می کندA * B = 200
      /تقسیم متغیرهاB / A = 2
      %
      برای محاسبه باقیمانده تقسیم به کار میرود
      B % A = 0
      ++یک واحد به عملوندش اضافه می کندA++ = 11
      یک واحد از عملوندش کم می کندA– = 9

      عملگر های ارتباطی

      جدول زیر نشان می دهد تمام اپراتورهای رابطه ای توسط C پشتیبانی شده . فرض کنید متغیر A دارای مقدار ۱۰ و متغیر B دارای مقدار ۲۰ است .
      اپراتور/عملگرتوضیحاتمثال
      ==
      مقادیر دو متغیر می تواند برابر باشد یا نباشد. اگر برابر باشد، این وضعیت درست است.
      (A == B) is not true
      !=مقادیر دو متغیر می تواند برابر باشد یا نباشد. اگر برابر نباشد، این وضعیت درست است.(A != B) is true
      >بررسی اینکه مقدار عملگر سمت چپ بیشتر از مقدار عملگر راست باشد یا نباشد،شود. اگر بله، این وضعیت درست است.(A > B) is not true
      <بررسی اینکه مقدار عملگر سمت چپ کمتر از مقدار عملگر راست باشد یا نباشد،اگر بله، این وضعیت درست است.(A < B) is true
      >=
      بررسی اینکه مقدار عملگر سمت چپ بیشتر از مقدار مقادیر راست یا برابر آن باشد. اگر بله، این وضعیت درست است.
      (A >= B) is not true
      <=چک کردن اینکه آیا مقدار عملگر چپ کمتر از ارزش عملگر راست یا برابر آن است یا خیر. اگر بله، این وضعیت درست می شود.(A <= B) is true

      عملگر های منطقی

      جدول زیر نشان می دهد توسط زبان C تمام اپراتورهای منطقی  پشتیبانی شده است . فرض کنید متغیر A دارای ۱ و متغیر B دارای ۰ است.
      اپراتور/عملگرتوضیحاتمثال
      &&و یا(and) اگر هر دو عملوند غیر صفر باشند، این شرایط درست می شود.(A && B) is false
      ||اگر هر کدام از دو عملگرها غیر صفر باشد، این شرط درست می شود.(A || B) is true.
      !عملگر نقیض (not)  نامیده می شود.نتیجه عملگر ‘!’ وقتی درست است که عملوند آن دارای ارزش نادرستی باشد.!(A && B) is true

      اپراتورها یا عملگرهای بیتی

      اپراتور بیتی بر روی بیت ها کار می کند و عملیات را بیت به بیت انجام می دهد. جداول حقیقی برای &، |، و ^ به شرح زیر است.
      p ^ qp | qp & qqp
      ۰۰۰۰۰
      ۱۱۰۱۰
      ۰۱۱۱۱
      ۱۱۰۰۱

      فرض کنید A = 60 و B = 13 در قالب باینری باشندو آنها به صورت زیر هستند.

      A = 0011 1100

      B = 0000 1101

      —————–

      A & B = 0000 1100

      A | B = 0011 1101

      A ^ B = 0011 0001

      ~ A = 1100 0011

      جدول زیر لیست عملگرهای بیتی پشتیبانی شده توسط C را نشان می دهد.فرض کنید متغیر ‘A’ دارای ارزش ۶۰ و متغیر ‘B’ دارای ارزش ۱۳ می باشد.

       عملگرها در cتوضیحاتمثال
       &  عملگر Andباینری و نتیجه عملگر ‘&’ وقتی یک است که هردو بیت عملوندهایش یک باشند

      ۱۲=(A & B)

      ۱۱۰۰ ۰۰۰۰

       | عملگر OR و باینری و نتیجه عملگر ‘|’ وقتی صفر است که هر دو بیت صفر باشند.۶۱=(A | B)

      ۱۱۰۱ ۰۰۱۱

       ^  عملگر XOR باینری و نتیجه ‘^’ وقتی یک است که یکی از بیت ها صفر و دیگری یک باشد. ۴۹=(A ^ B)

      ۰۰۰۱ ۰۰۱۱

       ~ مکمل یک باینری(~A ) = ~(60)

      ۰۱۱۱۱۰۱-

      << عملگرهای شیفت بر روی یک عملوند عمل میکنند و بیتها را به سمت چپ شیفت می دهد.

      A << 2 = 240

      ۰۰۰۰ ۱۱۱۱

      >>  عملگرهای شیفت بر روی یک عملوند عمل میکنند و بیتها را به سمت راست شیفت می دهد.A >> 2 = 15

      ۱۱۱۱ ۰۰۰۰

      عملگرهای تخصیص یا انتصاب مرکب

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

      اپراتور/عملگرتوضیحاتمثال
      =عملگر تخصیص .مقدار عملوند سمت راست را به عملوند سمت چپ تخصیص می دهد.C = A + B مقدار A + B را به C اختصاص می دهد
      =+عملگر جمع و تخصیص .مقدار عملوند سمت راست را جمع کرده و به عملوند سمت چپ تخصیص می دهد.C + = A معادل C = C + A است
      =-عملگر تفریق و تخصیص .مقدار عملوند سمت چپ را تفریق کرده و به عملوند سمت چپ تخصیص می دهد.C – = A معادل C = C – A است
      =*عملگر ضرب و تخصیص .مقدار عملوند سمت راست را ضرب کرده و به عملوند سمت چپ تخصیص می دهد.C * = A با C = C * A معادل است
      =/عملگر تقسیم و تخصیص .مقدار عملوند سمت چپ را بر عملوند راست تقسیم کرده و به عملوند سمت چپ تخصیص می دهد.C / = A با C = C / A معادل است
      =%عملگر باقیمانده و تخصیص .مقدار باقیمانده عملوند سمت چپ بر راست را یافته و به عملوند سمت چپ تخصیص می دهد.C٪ = A با C = C٪ A معادل است
      =>>عملگر شیفت چپ و تخصیصC << = 2 مشابه C = C << 2 است
      =<<عملگر شیفت راست و تخصیصC >> = 2 مشابه C = C >> 2 است
      =&عملگر AND بیتی و تخصیصC = 2 همانند C = C و ۲ است
      =^عملگر XORبیتی و تخصیصC ^ = 2 مشابه C = C ^ 2 است
      =|عملگر ORبیتی و تخصیصC |= 2 مشابه است با C = C | 2

      عملگرهای خاص و متفرقهsizeof & ternary

      علاوه بر اپراتورهای مورد بحث در بالا، چند اپراتور مهم دیگری همچون sizeof و؟ : پشتیبانی شده توسط زبان C است.
      اپراتور/عملگرتوضیحاتمثال
      sizeof()مقدار یک متغیر را برمی گرداند.sizeof (a)،جایی که یک عدد صحیح است، ۴ رابرمی گرداند.
      &آدرس متغیر را برمی گرداند.آدرس واقعی متغیر را برمی گرداند.
      *اشاره گر به یک متغیر است.
      *a;
      ? :بیان شرطیاگر وضعیت درست باشد؟ مقدار X: در غیر این صورت مقدار Y

      اولویت عملگرها در c

      برخی عملگرها علاوه بر اولویت در همگروهی های خود بر کلیه عملگرها نیز دارای اولویت هستند؛ برای مثال، اپراتور ضرب دارای تقدمی بالاتر از عملگر جمع دارد.بنابراین رعایت اولویت عملگرها در c مهم است.
      به عنوان مثال، x = 7 + 3 * 2؛ در اینجا، به x عدد ۱۳ اختصاص داده شده است ، نه ۲۰ به این دلیل که عملگر * دارای اولویت بالاتری از + است، بنابراین برای اولین بار  ۳ * ۲ ضرب می شود و سپس به ۷ اضافه می شود.
      بنابراین
      ،اپراتورهای با بالاترین اولویت در بالای جدول ظاهر می شوند و عملگرهایی که اولویت پایین تری دارند در پایین جدول ظاهر می شود. اولویت عملگرها در c :

      دسته بندیاپراتور /اپراتوروابستگی
      Postfix– – ++ . < – []  ()چپ به راست
      Unarysizeof * & (type) – – ++ ~ ! – +چپ به راست
      Multiplicative % / *چپ به راست
      Additive– +چپ به راست
      Shift<< >>چپ به راست
      Relational=< <= > >چپ به راست
      Equality= ! ==چپ به راست
      Bitwise AND&چپ به راست
      Bitwise XOR^چپ به راست
      Bitwise OR|چپ به راست
      Logical AND&&چپ به راست
      Logical OR||چپ به راست
      Conditional 😕راست به چپ
      Assignment=|= ^= &= >>=<<= %= /= *= -= +=راست به چپ
      Comma,

      کلام پایانی

      خوشحالیم ازاینکه در این مجموعه آموزشها همراه ما هستید.با انواع عملگرها در c ، عملگرهای تخصیص یا انتصاب مرکب و اولویت عملگرها در c آشنا شدیم.در جلسات بعد با مباحث جالبی از برنامه نویسی شامل انواع جملات شرطی در c در خدمتتون هستیم. همراهمون باشید.
      QR:  جلسه ۰۹ : عملگرها در c
      به اشتراک بگذارید