سلام به همه بچههای علاقمند به کامپیوتر و برنامهنویسی و هوش مصنوعی. همانطور که میدونین روز به روز دنیای هوش مصنوعی داره وسیعتر میشه و به حوزه مختلف از علوم راه یافته است. ما تصمیم داریم هر هفته با یک مقاله در این حوزه، شمارو با رویداد های دنیای هوش مصنوعی آشنا کنیم و مهمتر اینکه ریاضیات این حوزه رو با ساده سازی به شما دانش آموزان عزیز کانونی توضیح بدیم. در نهایت بتونیم قدم به قدم به کد نویسی در محیط پایتون برای مسئله های جذاب هوش مصنوعی برسیم. پیشنهاد میکنم هر هفته مارو با یک مقاله در این حوزه دنبال کنید.
هفته گذشته مبحث متغیرها رو تموم کردیم. ما یاد گرفتیم که متغیرها چی هستند و چه کارکردی در حوزه برنامهنویسی دارند. این هفته خدمت شما دوستان هستیم با جملات شرطی. با ما باشید.
جملات شرطی چیا هستن؟
جملاتی هستند که مسیر کدمون رو بر اساس شرایط معینی تغییر میدن. برای اینکه این مبحث براتون جا بیفته ما دو خط کد انتخاب کردیم. خط قرمز اشاره به این داره که کد ما مسیر خاصی رو طی نخواهد کرد. اما خط سبز به این معناست که کد این مسیر خاص رو طی میکنه.
اصلیترین نوع جملهی شرطی که برنامهنویسها استفاده میکنن جملات اگری (if statement) هستند. مثلاً اگر یک شرط درست باشه، که معمولاً اون شرایط رو درون ابرو (Brace) قرار میدیم، پس دستوراتی رو که در داخلِ آکولاد (Bracket) جملات شرطی قرار دارند رو انجام بده.
اما اگر درست نباشه، پس کار دیگهای انجام بده.
آکولادها در اکثر زبانهای برنامهنویسی حاکی از یه تیکه کده که اجرا خواهد شد. اگه شرطِ داخل پرانتز درست باشه پس همه محتویات آکولاد ما اجرا میشه. ولی اگه شرط داخل پرانتز کاذب باشه برنامه از همه محتویات داخل آکولاد عبور میکنه یعنی اجراشون نمیکه.
شرط درون پرانتز میتونه هزاران شکل به خودش بگیره. مثلاً اگر ارزش متغیر رشتهای نام برابر با Steven باشه یا اگه امتیاز یک پلیر که در متغیر Int ذخیره شده بالای 5 باشه، دستور داخل آکولادها اجرا میشه.
هر یک از این جملات یک بولی (Boolean) به حساب میان که همونطور که به یاد دارین درباره صدق یا کذب، درستی یا نادرستی، یک جمله هستند. اگه بولی درست باشه، دستور داخل آکولاد رو اجرا میکنیم، اگر نه، جوری تظاهر میکنیم که انگار داخل آکولاد هیچ دستوری وجود ندارد.
جملات شرطی اگری (If statements) شامل سه گونه دیگه هم هستند که عبارت است از else-if، else و switch statement.
Else-if جملهای شرطی است که مستقیماً بعد از یک if statement دیگری استفاده میشن. و عمدتاً همون نقشی رو دارن که یک جمله شرطی ساده. اما جمله else-if زمانی کاربرد داره که if statement قبل اون به خاطر کاذب بودنش کنار گذاشته میشه. یعنی اگر چیزی درست باشه ما همون دستور داخل پرانتز رو اجرا میکنیم اما اگه اون چیز درست نباشه اما جملهی دیگه درون پرانتز صادق و درست باشه، ما اون تیکه از کد رو اجرا میکنیم. به زبون خودمون else-if یه ifه زاپاسه. هر وقت if اولمون درست نبود از if بعدی استفاده میکنیم. اگه هیچ کدومشون درست نباشن قید هر دو جمله رو میزنیم و برمیگردیم سراغ برنامهمون.
خب بریم سراغ یه مثال خوب. اگه ما یه برنامه داشتیم که میخواست یه جمله شرطی رو ارزیابی کنه، مثلاً این جمله: اگر سن مساوی با 10 بود، و یه جمله شرطی زیر اون بود که میگفت: اگر سن مساوی 12 بود.
خب اگه متغیر سن 10 باشه، که از روی تصویر (رنگ صورتی) میبینیم که هست، کد همین خط شرطی اول رو دنبال میکنه و جمله داخل آکولاد رو اجرا میکنه. جمله شرطی جایگزین (قرمز رنگ) دیگه حتی تست هم نمیشه چون میدونیم که جمله کاذبیه. برا همین جمله داخل آکولادش هم نادیده گرفته خواهد شد و کد راهش رو بدون اجرای اون ادامه میده. بیایید فرض کنیم که ما متغیر سن رو به 12 تغییر دادیم. حالا به جای اینکه جمله شرطی اول درست باشه و اجرا بشه، اینبار else if که اشاره به سن درست داره به اجرا گذاشته میشه.
خب حالا وقتشه بریم سراغ Else statement. Else statement هم بعد از جمله if یا else-if میاد. ما دستورات محتوای این نوع شرطی رو هم بدون توجه به هیچ چیز دیگری اجرا خواهیم کرد اگر جملات شرطی قبل از اون کاذب ارزیابی بشن. اجازه بدید برگردیم سراغ مثال قبلی مون. میتونیم یه else statement اضافه کنیم برا وقتی که سن مورد نظرمون نه 10 و نه 12.
این جمله else شامل همه موارد نامناسب یا نادرست در برنامهمون میشه. یعنی شما همیشه باید ته جملات شرطیتون یه else قرار بدین تا اگر برنامه به چیز نامتعارفی برخورد بتونه از else استفاده بکنه.
ما میتونیم هزاران هزار else statement به جملات شرطیمون اضافه کنیم اما این فرایند میتونه گیج کننده باشه. اینجاست که باید از نوع چهارم شرطیها رونمایی بکنیم. Switch statement به لحاظ کارکرد شبیه if و else statement است. شما جمله Switch رو در قالب متغیر Switch مینویسید. زیر این متغیر مینویسید که این متغیر چندتا میتونه باشه.
فرض کنید یک Switch (Var) یعنی یک متغیر Switch بخواییم بنویسیم. زیر این متغیر 5 کیس (Case) تعریف میکنیم که میتونه هر یک از اینها باشه. هر یک از دستورات جلوی کیسها میتونه اجرا بشه به شرطی که متغیر ما با اون کیس خاص برابر باشه.
فقط اینکه Switch statementها نظم خاص خودشون رو دارند. یعنی به جای استفاده از آکولاد از ستونهایی استفاده میشه که نشاندهنده شروع یک سلسله دستورات خاصی است. این کارکرد متغیر مورد نظرمون خیلی به درد بخوره. چون به شما اجازه میده هر اندازه if و else-if که نیاز دارید ایجاد کنید بدون اینکه زیادهنویسی کنید. در Switch statement فقط باید حواستون باشه که در آخر عبارت یه کیس پیشفرض (Default case) ایجاد کنید تا به واسطه اون هر کیسی رو که الزامات گفته شده رو نداره مشخص کنه. این کیس هر آنچه رو که داخل کیسهامون است و با برنامه سازگار نیست بیرون میکشه.
خب در آخر یه کوچولو درباره مزایای جملات شرطی هم حرف بزنیم به مطلب این هفتهمون پایان بدیم.
چرا جملات شرطی انقد پرفایدهاند؟
خیلی از مواقع برنامهنویسها میخوان برنامهشون در شرایط متفاوت یه جور متفاوتی عمل کنه. برای مثال یک برنامه، بسته به اطلاعاتی که یوزر وارد میکنه، میتونه به طور متفاوتی عمل کنه. درست مثل اینکه بسته به اینکه یوزر ما بالا یا پایین 18 سال باشه برنامه بهش اجازه دسترسی به خودش رو میده. یا مثل اینکه تو یه بازی یه یوزر خیلی حرفهای بازی میکنه و شما یه رقیب سرسختری بهش میدید. خلاصه اینکه یه برنامه بدون جملات شرطی فقط میتونه یه کار واحد رو انجام بده.
واژگان کلیدی:
منابع:
- Introduction to Programming and Computer Science - Full Course - YouTube
- https://introprogramming.info/wpcontent/uploads/2013/07/Books/CSharpEn/Fundamentals-of-Computer-Programming-with-CSharp-Nakov-eBook-v2013.pdf
- http://roochet.ir/articles/php-integers-floats-and-number-strings
دوستان عزیزم؛ برای ارتباط با برترها و رزرو پشتیبان ویژه پیج کانون برترها را دنبال کنید.
همچنین میتوانید با شماره 0218451 داخلی 3123 تماس بگیرید.