
سلام به همه بچههای علاقمند به کامپیوتر و برنامهنویسی و هوش مصنوعی. همانطور که میدونین روز به روز دنیای هوش مصنوعی داره وسیعتر میشه و به حوزه مختلف از علوم راه یافته است. ما تصمیم داریم هر هفته با یک مقاله در این حوزه، شمارو با رویداد های دنیای هوش مصنوعی آشنا کنیم و مهمتر اینکه ریاضیات این حوزه رو با ساده سازی به شما دانش آموزان عزیز کانونی توضیح بدیم. در نهایت بتونیم قدم به قدم به کد نویسی در محیط پایتون برای مسئله های جذاب هوش مصنوعی برسیم. پیشنهاد میکنم هر هفته مارو با یک مقاله در این حوزه دنبال کنید.
سلام بر دوستان کانونی. امیدوارم حالتون خوب باشه. با ادامه مطالبمون در حوزه برنامهنویسی در خدمت شما هستیم. ما در این سلسله مطالب سعی داریم یه مرور کلی داشته باشیم بر مفاهیم بنیادین برنامهنویسی. این مرور برای شروع حرفهای کد نویسی یک ضرورته اما کافی نیست. پس ما بعد از معرفی کلیاتی از این دست در چندین مطلب سراغ کدنویسی عملی در زمینه پایتون خواهیم رفت. پس فعلاً مفاهیمی رو که مطرح میکنیم خوب یاد بگیرید تا به موقعش ازشون استفاده کنیم. مطلب این هفتهمون رو اختصاص میدیم به حلقه (Loop).
حلقهها چی هستن؟
حلقه در برنامهنویسی دستوریه که یه کاری رو مکرراً اجرا میکنه. حلقه در برنامهنویسی دستوریه که یه کاری رو مکرراً اجرا میکنه. حلقه در برنامهنویسی دستوریه که یه کاری رو مکرراً اجرا میکنه. دقیقاً مثل جمله آغازین ما که سه بار تکرار شد. حلقهها به دلایل مختلفی بسیار به درد بخور هستن. فرض کنید میخوایید یه چیزی رو 15بار پرینت کنید. البته که میتونید یه جمله رو 15 بار کپی و پیست (Copy and paste) کنید اما این کار برای یه برنامهنویس خستهکننده است. بالاخص اینکه بخوایید 100 بار تکرار کنید.

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

حلقهها سه گونه هستند.
For loop
اولین نوع حلقه for loop ها هستند. for loop برای موقعیتی مشابه موقعیت بالا مفیده. یعنی وقتی میخوایید یه سری دستورات رو چندین بار تکرار کنید. نحو (syntax) for loopها بسته به این که در چه زبان برنامهنویسی ازشون استفاده بشه متفاوته. با این حال معمولاً از سه بخش تشکیل میشه: ارزش عددی صحیح (integer value)، شرطی که ارزش عددیمون باید داشته باشه تا به وسیله اون یه حلقه ایجاد شه و در آخر یه عملیات (operation) که ارزش عددیِ یک دستور رو تغییر بده. هر سری که for loop اجرا میشه، عملگر منتخب شما روی عدد صحیحتون کار میکنه تا وقتی که عدد صحیح به شرطی که دلخواه شماست برسه، که معمولاً این شرط بیشتر یا کمتر بودن از یه عدده. این کار تا جایی ادامه پیدا میکنه که عدد صحیح اصلاح بشه و در این نقطه کار for loop به پایان میرسه.
فرض کنید ارزش عددیای داریم به نام i و اون رو مساوی با صفر میگیریم. سپس یک دستور شرطی بهش اضافه میکنیم. مثلاً i کمتر از 3 باشه. حالا میگیم تا وقتی که i کمتر از 3 است، دستورات داخل حلقه رو اجرا کن. در آخر یه عملگر یعنی i++ ایجاد میکنیم. با ایجاد این عملگر منظورمون اینه که هر دفعه که حلقه اجرا میشه، عددمون رو تا یک واحد افزایش بده.

درون این حلقهمون یه print statement قرار میدیم به نام Hello World. خب حالا اجازه بدید با for loop این حلقمون رو اجرا بکنیم. با I = 0 شروع میکنیم. صفر کمتر از 3 است. ما حلقه رو وارد میکنیم و Hello world رو در اون مینویسیم.

خب حالا که دستوراتمون تموم شده یک واحد به i اضافه میکنیم و اون رو برابر با 1 میکنیم. در ادامه دوباره یک از سه کمتره و ما میخواییم بریم داخل حلقه و Hello World رو print out کنیم. دوباره یه واحد دیگه به i اضافه میکنیم و اون رو برابر با 2 میکنیم. 2 هم کمتر از 3 است بنابراین داخل حلقه میریم و باز Hello world رو print out میکنیم. در آخر یه واحد دیگه اضافه میکنیم که میشه 3. 3 از 3 کمتر نیست بنابراین داخل حلقهمون نمیریم و در اینجا حلقه تموم میشه.

نکته مهم اینه که وقتی از for loop استفاده میکنیم باید از شرطی استفاده کنیم، که با توجه به عدد صحیحمون و همچنین عملگرمون، در یک نقطه نتونه برآورده بشه. این کار برای جلوگیری از ایجاد یه حلقه نامتناهی انجام میشه که میتونه برنامهتون رو مختل کنه. حلقه نامتنهای زمانی پیش میاد که به یه for loop شرطی داده بشه که همیشه براساس پارامترهای برنامه بتونه برآورده بشه. برای مثال for loop ی رو در نظر بگیرید که با 10 شروع میشه. به شرطی که i بیشتر از صفر باشه. با اضافه کردن 1 به i تا هر چند تا، حلقهمون به پایان نمیرسه.
For each loop
نوع دوم حلقهها for each loop است. ما این حلقه رو برای ایجاد کردن تکرار درون یک لیست یا آرایه به کار میبریم. این حلقه تک تک اجزای یه آرایه رو مرور میکنه و یه سری دستورات رو برای هر ارزش (value) اجرا میکنه. اگه بخوایید هر یک از اجزای یک آرایه رو بخونید و اونها رو با ارزشی مقایسه کنید یا عملگری رو روی اونا اجرا کنید، اینجاست که for each loop به کمکتون میاد.

برای مثال ما میتونیم یک for each loop استفاده کنیم تا در یک آرایه تکرار پیش بیاره و به سادگی ارزش مکان(location) هر آرایه رو print out کنه.
While loop
بالاخره رسیدیم به آخرین نوع حلقه یعنی While loop. این حلقه به طور پیوسته دستوراتی رو اجرا میکنه که طبق یه سری جملات شرطی درست هستند. این وضعیت تا زمانی ادامه پیدا میکنه که متغیر مشخصی درست باشه یا اعدادی که با اعداد دیگری میان یا ارزشی برابر با ارزش دیگهای باشه. while loopها متفاوت هستن با for loop، در این که while loop در یک جمله محدود نمیشه بلکه گسترش پیدا میکنه و تا جایی ادامه پیدا میکنه که شرطمون درست از آب دربیاد. همچنین در while loop مانند for loop شما میتونید شرطی رو بسازید که در آخر نقض بشه و حلقه رو به وجود بیاره. اما while loopها برنامه شما رو به خاطر یه حلقه نامتناهی مختل نمیکنن. در واقع اجرای نامتناهی برای while loopها یه چیز عادیه. در بعضی برنامهها شما میخوایید یه برنامه به جای یک بار، به طور پیوسته تکرار بشه. مثلاً وقتی یه بازی مینویسید، یه while loop برای تکرار در کدهای شما استفاده میشه و در حین بازی مکرارً صفحه (screen) رو refresh میکنه.

به وسیله این حلقه میتونید عملگرهایی ایجاد کنید که بازی رو به پیش ببره.
While loop رو میتونید با استفاده از سنتکسِ while (true) ایجاد کنید. اگه شرطتون درست باشه حلقه همیشه درست ارزیابی میشه.

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

منابع
- 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 تماس بگیرید.
