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



  • ۲۶
  • اردیبهشت

جلسه ۰۷ : اپراتورها در #F

  • دسته‌بندی‌ها :
جلسه ۰۷ : اپراتورها در #F
    • جزئیات
    • نوع محتواآمورشی

      مقدمه

      سلام درود خدمت همراهان همیشگی سایت پی وی لرن . با آموزش زبان برنامه نویسی #F همراهتون هستیم. در هر نوع زبان برنامه نویسی منظور از operation، عملیاتی است که به منظور اصلاح مقدار متغیر موجود یا ایجاد مقداری جدید با ترکیب مقدارهای جاری، روی مقدار معینی انجام می شود. بنابراین، operation با استفاده از حداقل یک نشانه که در عملیات اپراتور یا عملگر نامیده می شود و یک مقدار که در عملیات operand یا عملوند گفته می شود امکان پذیر است. با این توضیحات در این بخش از آموزش به سراغ اپراتورها در #F رفته و در پایان اولویت اپراتورها در #F رو خواهیم داشت.

      اپراتورها در #F

      اپراتور یک نماد است که کامپایلر را به انجام اصلاحات ریاضی یا منطقی خاص ترغیب می کند. #F غنی از اپراتورهای تعبیه شده است و انواع مختلفی از اپراتورها را فراهم می کند .

      Unary operator (عملگر یگانی)، عملگری است که عملیات خود را روی تنها یک عملوند انجام می دهد. چنانچه، عملگری عملیات مورد نیاز را روی دو عملوند انجام دهد، binary operand (عملگر دوگانی) اطلاق می گردد.

      اپراتورهای ریاضی
      اپراتورهای مقایسه
      اپراتورهای بولین
      اپراتورهای بیتی
      اپراتورهای ریاضی
      جدول زیر تمام اپراتورهای محاسباتی که توسط زبان F # پشتیبانی می شوند را نشان می دهد. فرض کنید متغیر A دارای ۱۰ و در متغیر B 20 نگه داشته شود .

      اپراتورتوضیحاتمثال
      +دو عملگر را به هم اضافه می کندA + Bخواهد شد ۳۰
      عملگر دوم را از اول کم می کندA – B خواهد شد -۱۰
      *دو عملگر را در هم ضرب می کندA * B خواهد شد ۲۰۰
      /تقسیم در عملگرB / A خواهد شد ۲
      %برای محاسبه باقیمانده تقسیم به کار می رودB % A خواهد شد ۰
      **برای انجام عملیات به توان رساندن (Exponentiation) استفاده می‌شودB**A خواهد شد ۲۰۱۰

      در ادامه مبحث اپراتورها در #F به عملگرهای مقایسه ای می پردازیم.

      اپراتورهای مقایسه ای یا Comparison

      تمام اپراتورهای مقایسه ای پشتیبانی شده توسط زبان #F را جدول زیر نشان می دهد. این اپراتورهای مقایسه ای دوگانی برای انواع integral و نقطه شناور در دسترس هستند. این اپراتورها مقدار type bool را باز می گرداند.

      فرض کنید متغیر A دارای مقدار ۱۰ و متغیر B دارای مقدار ۲۰ است.

      اپراتورتوضیحاتمثال
      =چک کنید اگر مقادیر دو عملگر برابر یا نباشد .اگر بله، وضعیت true می شود.(A == B)درست نیست.
      <>چک کنید اگر مقادیر دو operands برابر یا نباشد، اگر مقادیر برابر نیستند، وضعیت true می شود.(A <> B) درست است.
      >اگر مقدار operand چپ بیشتر از مقدار عملگر راست باشد، بررسی می شود، اگر بله، وضعیت true می شود.(A > B)درست نیست.
      <اگر مقدار operand چپ کمتر از مقدار عملگر سمت راست باشد، بررسی می شود، اگر بله، وضعیت true می شود.(A < B) درست است.
      >=اگر مقدار عملگر سمت چپ بیش تر از مقدار عملگر سمت راست یا برابر آن باشد،بررسی می کند. اگر بله، وضعیت true می شود،(A >= B)درست نیست.
      <=چک کنید که آیا مقدار operand چپ کمتر از مقدار مقادیر سمت راست یا برابر آن است یا خیر، اگر بله، وضعیت true می شود.(A <= B)درست است.

      اپراتورهای بولین

      جدول زیر تمام اپراتورهای بولین را که توسط زبان F # پشتیبانی می شوند نشان می دهد. فرض کنید متغیر A درست است و متغیر B دارای اشتباه است.

      اپراتورهاتوضیحاتمثال
      &&اپراتور Boolean AND نامیده می شود.اگر هر دو عملگر غیر صفر باشند، شرط درست می شود.(A && B) است false.
      ||Boolean OR Operator نامیده می شود. اگر هر یک از دو operands غیر صفر باشد، شرط درست می شود.(A || B) است true.
      notBoolean NOT اپراتور نامیده می شود. استفاده از حالت منطقی عامل آن را تغییر می دهد.نتیجه عملگر وقتی درست است که عملوند آن دارای ارزش نادرستی باشد.درست است(A && B) .

      اپراتورهای بیتی یا bitwise

      اپراتورهای bitwise بر روی بیت ها کار می کنند و عملیات را بیت بیت انجام می دهند. جداول حقیقی برای &&& (bitwise AND)، ||| (bitwise OR) و ^^^ (bitwise exclusive OR) به شرح زیر هستند.

      pqp &&& qp ||| qp ^^^ q
      ۰۰۰۰۰
      ۰۱۰۱۱
      ۱۱۱۱۰
      ۱۰۰۱۱

      فرض کنید اگر 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

      Operators Bitwise پشتیبانی شده توسط زبان F # در جدول زیر ذکر شده است. فرض کنید متغیر A دارای ۶۰ و متغیر B دارای ۱۳ است.

      اپراتورتوضیحاتمثال
      &&&اپراتور دوگانی and یک بیت را در نتیجه کپی می کند اگر در هر دو اپراتور وجود داشته باشد.(A &&& B)خواهد شد ۱۲, که هست ۱۱۰۰  ۰۰۰۰
      |||اپراتور دوگانی or یک بیت را کپی می کند اگر در هر یک از اپراتور ها وجود داشته باشد.(A ||| B) خواهد شد ۶۱, که هست ۰۰۱۱۱۱۰۱
      ^^^اپراتور XOR باینری اگر آن را در یکی از operand ها اما نه در هر دو وجود داشته باشد، بیت را کپی می کند.(A ^^^ B) خواهد شد ۴۹, که هست ۰۰۰۱ ۰۰۱۱
      ~~~ Binary Ones Complement Operator – اپراتور دو گانی مکمل یک باینری(A~~~) خواهد شد ۶۱- , که هست ۱۱۰۰۰۰۱۱ در ۲’s complement form.
      <<<عملگر شیفت به چپ دوگانی. مقدار عملوندهای چپ توسط تعداد بیت های مشخص شده توسط عملگر راست به سمت چپ منتقل می شود.A <<< 2 خواهد شد ۲۴۰ که هست ۰۰۰۰ ۱۱۱۱
      >>>اپراتور شیفت به راست دوگانی . مقدار عملوندهای چپ توسط تعداد بیت های مشخص شده توسط عملوند راست به سمت راست حرکت می کند.A >>> 2 خواهد شد ۱۵ که هست ۱۱۱۱ ۰۰۰۰

      در ادامه اولویت اپراتورها در #F رو بررسی می نماییم.

      اولویت اپراتورها در #F

      جدول زیر، ترتیب اولویت اپراتورها و سایر کلمات کلیدی را در زبان اف شارپ ، از پایین ترین اولویت به بالاترین اولویت نشان می دهد.

      اپراتوروابستگی
      asRight
      whenRight
      (pipe)|Left
      ;Right
      letغیر وابسته
      function, fun, match, tryغیر وابسته
      ifغیر وابسته
      Right
      =:Right
      ,غیر وابسته
      ||، orLeft
      &&، &Left
       op, >op, =, |op, &op>Left
       <<<, >>>,~~~,^^^,|||,&&&Left
       op ^Right
      ::Right
      ?: ,< ? :غیر وابسته
      (op, +op, (binary-Left
       op, /op, %op*Left
       op **Right
      (f x (function applicationLeft
       (pattern match) |Right
      (prefix operators (+op, -op, %, %%, &, &&, !op, ~opLeft
      .Left
      (f(xLeft
      <f<typesLeft

      خب اینم از مبحث عملگرها و اولویت اپراتورها در #F

      کلام پایانی

      #F غنی از اپراتورهای تعبیه شده است و انواع مختلفی از اپراتورها را فراهم می کند که در این قسمت به بررسی آن ها پرداختیم.

      QR:  جلسه ۰۷ : اپراتورها در #F
      به اشتراک بگذارید