خوش آمدید دوباره.
در این ویدیو، می‌خواهیم به **عملگرها** و **ترتیب ارزیابی** بپردازیم.
ترتیب ارزیابی (Order of Evaluation) مفهومی است که هنگام انجام **تفریق‌ها** به کار می‌آید.
اما بیایید ابتدا محاسبات به طور کلی را بررسی کنیم.
پس به سراغ عملگرها برویم.
ما قبلاً دیده‌ایم که علامت جمع (+) چگونه کار می‌کند.
این علامت به ما اجازه می‌دهد دو مقدار را با هم جمع کنیم، همانطور که در **ماشین حساب جمع** انجام دادیم.
اما وقتی بخواهیم **تفریق** انجام دهیم، باید یک نکته را در نظر بگیریم.
و آن نکته همان **ترتیب ارزیابی** است.
زیرا به صورت داخلی، محاسبه از **چپ به راست** انجام می‌شود.
به طور داخلی، چیزی شبیه این اتفاق می‌افتد.
این تبدیل به یک رشته جدید می‌شود که رشته شامل `"subtraction numOne - numTwo است و
numOne سپس مقدار را داخل
در numOne عدد ۵ داریم.
حال این عدد به عنوان یک **رشته (string)** در نظر گرفته می‌شود و سپس تلاش می‌شود از آن مقدار numTwo کم شود.
یعنی تلاش می‌شود یک عدد صحیح (int) از یک رشته کم شود.
به همین دلیل خطا دریافت می‌کنیم.
ترتیب ارزیابی همیشه از چپ به راست انجام می‌شود، همانطور که در اینجا .
مشاهده می‌کنید
حالا چگونه می‌توان از این مشکل عبور کرد؟
زیرا ما از علامت `+` استفاده کرده‌ایم که در اینجا صرفاً برای **چسباندن رشته‌ها ** است و .
(concatenation) نه محاسبه ریاضی
این عملگر برای محاسبه نیست، بلکه برای ترکیب رشته‌ها به کار می‌رود.
همانطور که قبلاً الحاق را دیده‌ایم، برای مثال گفتیم خط راست را کنترل کنید و گفتیم h برابر است با و`
بعد به علاوه و مثلاً عدد یک.
سپس خروجی می‌دهد، برای مثال: "age is 5".
این یک نمونه از **concatenation** یا الحاق رشته‌ها است، همانطور که قبلاً استفاده کرده‌ایم.
در اینجا ما تا این نقطه همه چیز را با هم الحاق کرده‌ایم.
بنابراین کل عبارت به یک رشته تبدیل می‌شود.
حالا اگر بخواهیم از این رشته کم کنیم، خطا رخ می‌دهد.
بنابراین بیایید فقط از آن به عنوان مثال در اینجا استفاده کنیم.
بیایید در واقع این را بگیریم و یک دستور خط فرمان دیگر بنویسیم که در آن تفریق را بیان می‌کنیم.
و بعد منفی عدد دو.
بنابراین این دو جمله از نظر فنی یکسان هستند.
بنابراین برای اینکه بتوانیم آن را دور بزنیم، باید براکت اضافه کنیم.
مثل کاربردهای ریاضی یا محاسبات است که هر چه داخل پرانتز باشد، انجام می‌شود.
ابتدا قبل از اینکه برای موارد دیگر در نظر گرفته شود.
پس ناگهان، از این عبارت قبلی یک عبارت جدید ایجاد می‌شود.
یعنی اکنون آنچه بررسی می‌شود، نتیجه محاسبه داخل پرانتز است.
حالا داریم: `numOne - numTwo` که برابر است با `5 - 13`، و نتیجه می‌شود `-8`.
درونی، این مثل `+(-8)` یا همان `-8` است.
پس نتیجه نهایی این عبارت می‌شود: `-8`.
حالا می‌توانیم دوباره از **concatenation** استفاده کنیم، اما این‌بار منظور ما عبارت `"string + -8"` است، نه `"string - 8"`.
یعنی ابتدا مقدار `-8` را به رشته تبدیل می‌کنیم و سپس به رشته اصلی اضافه می‌کنیم. نتیجه نهایی همان `"-8"` خواهد بود که با رشته اصلی ترکیب می‌شود.
حالا بیایید این کد را اجرا کنیم و خروجی `print line` را ببینیم. ممکن است چندین خط چاپ اضافی داشته باشیم.
اول، خطوطی که مربوط به سگ کوچولوی من، دیزی (Daisy) و پودل کوچک‌ام، اشمادل (Schmoodle) است را حذف می‌کنم.
بعد کد را دوباره اجرا می‌کنم و می‌بینیم که برای جمع، نتیجه نشان می‌دهد: `num one + num two = 513`.
این یعنی جمع درست انجام نشده، چون نوع داده‌ها اشتباه بود، ولی خطایی دریافت نکردیم.
سپس نوبت به عمل تفریق می‌رسد؛ دو بار تفریق را چاپ می‌کنیم و نتیجه `num one - num two = -8` است،
و بعد نوبت به ضرب می‌رسد..
پس ۵ ضربدر ۱۳ برابر با ۶۵ می‌شود. این درست است و هیچ مشکلی ندارد.
مشکلی وجود ندارد.
حالا به تقسیم نگاه می‌کنیم: `num one - num two` تقسیم می‌شود و نتیجه صفر می‌شود.
بیایید کمی دقیق‌تر به این موضوع بپردازیم.
بنابراین، ابتدا باید یک مشکل را در یک زمان حل کنیم.
همانطور که می‌بینید، جمع هم مثل قبل مشکل داشت.
در اصل، برنامه گفت: «خب، من این را به عنوان یک رشته در نظر می‌گیرم.»
و بعد من این رو به عنوان یک رشته در نظر می‌گیرم.
پس در نهایت چیزی که هست اینه که گفته پنج به علاوه سیزده میشه پانصد و سیزده.
و من یک ویدیوی خیلی خنده‌دار دیدم درباره اینکه دو به علاوه دو میشه بیست و دو به جای چهار.
و یک معلم ریاضی واقعاً گفت که نه، این درست نیست.
و آره، همه اون بیدارگرایی‌ها خیلی خنده‌دار بود.
خب، چطور این رو درست کنیم؟
درباره‌ش فکر کن.
آره، ما فقط از کروشه‌ها دورش استفاده می‌کنیم.
خب، بیایم دوباره اجرا کنیم و می‌بینیم که جمع عدد اول به علاوه عدد دوم میشه هجده.
پس پنج به علاوه سیزده در واقع میشه هجده.
خب، حالا بیایم نکته بعدی رو بررسی کنیم.
اون ضرب هست.
خب، اینجا ضرب درست کار کرد.
پس ما مقدار شصت و پنج رو به دست آوردیم که پنج ضرب در سیزده هست.
ولی این به دلایلی عجیب بود
فقط به ما صفر داد.
چرا صفره؟
خب، چون پنج تقسیم بر سیزده میشه صفر ممیز.
چی میشه، چیزی مثل صفر ممیز سی و هشت یا همچین چیزی.
پس ما داریم سعی می‌کنیم یک عدد صحیح ذخیره کنیم که فقط می‌تونه اعداد کامل رو نگه داره.
و داریم سعی می‌کنیم یک عدد اعشاری توش بذاریم.
و این منجر به یک راه‌حل خیلی ساده میشه.
همون‌طور که اینجا دیدیم که فقط صفر گفت.
پس دوازده تقسیم بر سیزده همچنان صفره.
پس قرار نیست بره و گرد کردن به بالا انجام بده.
بیایم ببینیم دوازده تقسیم بر سیزده.
بیایم ببینیم چی میگه.
و می‌بینید که اینجا همچنان صفر می‌گیریم.
این به این دلیله که ما یه صفر ممیز چیزی چیزی داریم.
پس نه به بالا گرد می‌کنه و نه به پایین.
فقط عدد رو قطع می‌کنه.
پس به طور داخلی، اگه با اعداد صحیح کار می‌کنید، ۵.۳ به عنوان یه عدد صحیح همچنان پنج می‌مونه.
خب، اگه حالا بریم و بگیم ۱۴ تقسیم بر ۱۳، بیایم دوباره اجرا کنیم.
ما ۱۴ رو می‌بینیم و بعد میگه یک.
این به این دلیله که ۱.۰۷ یا ۰۸ همچنان یه چیزی تو مایه‌های یک ممیزه.
ما هر چیزی که بعد از ممیز هست رو می‌گیریم و قطعش می‌کنیم، و این عددیه که
به دست میاریم.
پس ما یک رو به عنوان نتیجه تقسیم عدد اول بر عدد دوم می‌گیریم.
خب.
پس این درباره عملگرها و ترتیب ارزیابی بود.
اینجا می‌بینید هر وقت از جمع و تفریق استفاده می‌کنید، اساساً از چپ به راست پیش می‌ره یا مثل
این.
ولی وقتی از ضرب یا تقسیم استفاده می‌کنید، مثل ریاضیاته که ضرب و تقسیم اولویت دارن.
اولویت دارن.
پس اگه ما پنج به علاوه سه منهای هشت ضرب در دو رو بگیریم، این داخلش چی کار می‌کنه.
یه درس ریاضی سریع اینجا برای کسایی که نمی‌دونستن.
پس کاری که می‌کنید اینه که اول ضرب رو انجام می‌دید.
پس اینجا ۱۶ میشه.
پس ۱۶.
و قبل از ۱۶ چی داشتیم.
ما تفریق داشتیم. #***********************************************8
بعد سه داشتیم و پنج داشتیم.
حالا می‌تونیم به هر ترتیبی پیش بریم.
فرقی نمی‌کنه.
می‌تونیم بگیم هشت منهای ۱۶ یا می‌تونیم بگیم سه منهای.
خب، سه منهای ۱۶ میشه منفی ۱۳ به علاوه پنج.
همون نتیجه رو میده.
پس جمع و تفریق، در نهایت نتیجه یکسانی می‌دن، مهم نیست به چه جهتی انجامش بدید.
انجام بدید.
ولی هر وقت ضرب می‌کنید، ضرب اولویت داره.
پس اساساً بیایم یه مثال دیگه داشته باشیم.
پس بگیم این میشه منفی ۱۳ به علاوه پنج، باید بشه هشت، درسته.
و حالا اگه بریم و همین رو داشته باشیم ولی مثل این، که اینجا کروشه اضافه کنیم.
حالا یهو محاسبه میشه پنج به علاوه منهای پنج.
من ضرب در دو کردم که بعد میشه پنج به علاوه منهای ده که بعد میشه منهای پنج.
خب.
پس آره، این اساساً ترتیبیه که محاسبات کار می‌کنه.
همین برای تقسیم هم صدق می‌کنه، خب.
ولی شاید این براتون خیلی ساده بود.
و قبلاً این رو می‌دونستید.
ولی هر وقت این چالش‌های فیسبوک یا اینستاگرام رو می‌بینید که میگن ۹۹ درصد آدما نمی‌تونن این رو حل کنن
و یه همچین چیزیه، فقط اول ضرب رو انجام بدید یا هر چی تو کروشه‌ست اول، بعد ضرب/تقسیم.
و بعد جمع/تفریق رو انجام بدید.
خب.
باشه.
پس این برای این ویدیو تمومه، فکر کنم این طولانی‌ترینی بود که تا حالا داشتیم.
ولی من چندتا مفهوم رو اینجا گنجوندم.
پس تو ویدیوی بعدی می‌بینمتون.