
سلام به همه بچههای علاقمند به کامپیوتر و برنامهنویسی و هوش مصنوعی. همانطور که میدونین روز به روز دنیای هوش مصنوعی داره وسیعتر میشه و به حوزه مختلف از علوم راه یافته است. ما تصمیم داریم هر هفته با یک مقاله در این حوزه، شمارو با رویداد های دنیای هوش مصنوعی آشنا کنیم و مهمتر اینکه ریاضیات این حوزه رو با ساده سازی به شما دانش آموزان عزیز کانونی توضیح بدیم. در نهایت بتونیم قدم به قدم به کد نویسی در محیط پایتون برای مسئله های جذاب هوش مصنوعی برسیم. پیشنهاد میکنم هر هفته مارو با یک مقاله در این حوزه دنبال کنید.
هفته گذشته مطلبمون رو به رشتهها رسوندیم. ما یاد گرفتیم که کامپیوترها با تمام پیچیدگی ظاهریشون فقط قادرن دو کار انجام بدن. یکی محاسباتی مثل جمع و منها و ضرب و تقسیم. و یکی رشتهها. امروز میخواییم ادامه همون مطلب رو بریم اما با مثالهای بیشتر و عملیتر.
فرض کنید میخواییم یه بازی بنویسیم و قصد داریم در اون بازی این جمله رو بنویسیم:
Game over, 4 was your final score. (سوختید! امتیاز نهایی شما 4 بود)
با اینکه ما میتونیم یه رشته تشکیل بدیم که دقیقاً گویای همین جمله است و اونرو در پیشخوان نمایش بدیم،

در بعضی مواقع اگر از عدد صحیح برای رسوندن همین منظورمون استفاده بکنیم مفیدتر خواهد بود. بالاخص این کار در نوشتن یک بازی بسیار مفیده چرا که تو یه بازی هر بار که بازی میکنید یه امتیاز جدید به دست میارید. همچنین ما میتونیم یه سری رشته و عدد رو با هم بنویسیم. به این عمل در برنامهنویسی الحاق (Concatenation) میگن. خب برگردیم به مثالمون. اگه ما بخواییم همین رشته رو بنویسیم اما 4 رو نه به عنوان رشته بلکه به عنوان عدد پیاده کنیم، میتونیم رشته بالا رو به دو رشته و یک عدد صحیح تبدیل کنیم. مثل تصویر زیر:

در این مثال از استایل پایتون استفاده کردیم. ما دوباره رشتهمون رو با print شروع کردیم که میتونه تو زبانهای دیگه متفاوت باشه. داخل پرانتز اول رشتهی game over رو مینویسیم. بعد میرسیم به بخش مهم. ما اول یه علامت بعلاوه میذاریم و سپس عدد 4 رو اضافه میکنیم. سپس همین فرایند رو تکرار میکنیم. یعنی یه بعلاوه میذاریم و یه رشته دیگه بعدش میاریم. بعد از این عملیات ما به راحتی میتونیم کل جملهمون رو در پیشخوان مشاهده کنیم.

با این کار ما میتونیم رشتهها و اعداد مختلف رو در یک جمله بنویسیم. همچنین میتونیم آموختههای قبلیمون رو به این نوع رشتهنویسی اضافه کرده و داشته باشیم:

تو این مورد فرض کنید شما مشغول یه بازیای هستید که یک 4 امتیاز پایهای به شما داده شده و 4 امتیاز دیگه رو به خاطر بازی خوبتون در یه بخش دیگه گرفتید. این مثال یه بخش مهم دیگه از برنامهنویسی رو هم نشون میده. اینکه اغلب اوقات برای اینکه برنامهتون پرکاربردترین برنامه باشه، باید انواع کدها رو با هم ترکیب کنید.
بنابراین نکته اول اینه که خیلی مهمه که حواسمون باشه کامپیوتر هر آنچه رو که تو پرانتز بهش میدید میگیره و تبدیل میکنه به یک رشته ساده. اگر حتی یه فاصله (space) یادمون بره، منجر به یه اشتباه کوچیک میشه. اینجوری که رشتهمون در مثال قبلی به این صورت درمیاد.

این اشتباه باعث میشه که چیزی که به استفاده کننده از برنامهمون نمایش داده میشه خوشآیند نباشه. از این رو خیلی خوبه که همیشه حواسمون به فاصله باشه و اونارو رعایت کنیم.
نکته بعدی در این مثال تفاوت بین 4 درون علامت نقلقول (quotation mark) و 4 بدون علامت نقلقول است. 4 اگه درون علامت نقلقول باشه یک رشته به حساب میاد در حالی که 4 خالی صرفاً یه عدد محسوب میشه. شاید این نکته براتون خیلی مهم نباشه ولی باز تکرار میکنیم که کامپیوترها احمقن و اگه بخوایین با عددی که درون علامت نقلقول است عملیات ریاضی انجام بدید با علامت error مواجه میشید. چون کامپیوتر نمیدونه که شما میخوایید عملیاتی رو بر روی یک عدد انجام بدید. بلکه فکر میکنه که صرفاً میخوایید یه عدد به رشتهتون اضافه کنید. بنابراین در جریان برنامهنویسی بدونید که میخوایید یه رشته بسازین یا عدد.
خب تا اینجا فهمیدیم که اساساً کامپیوترها بدون اینکه ما کمکشون کنیم چه تواناییهایی دارن. یه نفسی تازه کنید تا بریم سراغ بخش بعدی یعنی متغیرها.
متغیرها (Variables) چیا هستند؟
بچههای عزیز تو این بخش حواستون رو بیشتر جمع کنید که بخش مهمی تو حوزه برنامهنویسی است. متغیر چیزیه که میتونه اطلاعات رو ذخیره بکنه که متونیم بهشون ارجاع بدیم و حتی تغییرشون بدیم. فرض کنید متغیرها جعبههای مقوایی هستند. ما جعبههای مقوایی رو به این منظور استفاده میکنیم که اقلاممون رو توش نگهداری کنیم. همچنین ما میتونیم محتویات این جعبه رو تغییر بدیم یا جایگزین بکنیم. حالا متغیرها جعبههای مقوایی برنامهنویسها هستن که اطلاعاتشون رو تو اون نگهداری میکنن تا بتونن بعدا از اون اطلاعات استفاده کنن.

هر متغیر یک نوع (Type) و یک اسم (Name) و یه مشت اطلاعات توش داره. اسم که مشخصه چیه. بریم سراغ نوع. انواع مختلفی از متغیرها وجود داره که برنامهنویس میتونه ازشون استفاده کنه. تو این مطلب ما میخواییم درباره متغیرهای نوع اولیه (Primitive type variables) صحبت کنیم. مثل اعداد صحیح (Integers)، بولیها (Booleans)، ممیزهای شناور (Floats)، دابلها (Doubles)، رشتهها (Strings)، کاراکترها (Char’s).

خب ما کارمون رو با اعداد صحیح آغاز میکنیم. یک عدد صحیح یا int خیلی چیز سادهایه. یعنی متغیری که میتونه یک عدد صحیح رو ذخیره بکنه. این متغیر شامل همه اعدادِ بینِ منفیِ 2,147,483,648 تا 2,147,483,648 میشود. یادتون باشه intها شامل هیچ عدد اعشاری نمیشن.
بولیها به چیا میگیم؟ بولیها ارزشهای درست (True) و غلط (False) رو شامل میشن. این متغیرها در حوزهی جملات شرطی بسیار پرکاربرد هستن. فعلاً به همین اکتفا کنید تا بعداً به طور مفصل راجع بهشون بحث کنیم.
ممیزهای شناور و دابلها. هر دو این متغیرها به اعداد ممیزی اشاره دارن. به این معنی که این متغیرها قابلیت این رو دارن که اعداد رو به صورت اعشار ذخیره کنن. در حالی که متغیر intها یا اعداد صحیح نمیتونن اعداد اعشاری رو ذخیره کنن. تفاوت اصلی شناورها و دابلها اینه که شناورها میتونن اعداد اعشاری رو تا دقت 32 Bit (4،294،967،296)ذخیره کنن. در حالی که دابلها میتونن تا دقت 64 Bit (18،446،744،073،709،551،616)ذخیره کنن. یه عبارت دیگه دابلها اعداد اعشاری بیشتری از شناورها ذخیره میکنن و دقیقتر از اونا هستن.
حالا میرسیم به متغیرهای رشته که قبلاً بهتون توضیح دادیم که چیا هستن. فقط اینکه رشتهها هم متغیرهایی هستن که جملات رو ذخیره میکنن. رشتهها میتونن زنجیرهای از حروفات رو ذخیره کنن. برای همین فقط شامل کلمات و جملات هستن. فرض کنید که ما رشتهای داریم که اسم نامیده شده. کد از ما یه ورودی میخواد مثلاً یک اسم و یک مجموعه از رشتهها رو به نامِ اسم ذخیره میکنه تا بتونه اون اسم رو نمایش بده. به جای اینکه فقط اسمتون نمایش داده بشه، میتونید your name is sth رو وارد کنید.

و در نهایت کاراکترها. همونطور که از اسمش پیداست charها فقط میتونن یک کاراکتر رو ذخیره کنن. این متغیر جایی به درد میخوره که برنامهنویس بخواد فقط از یک کاراکتر استفاده کنه بدون اینکه مجبور بشه به جعبه (متغیر) رشتهها رجوع کنه.

برای مثال بازیای رو در نظر بگیرید که با کیبورد کنترل میشه. برنامه بیاد متوجه کاراکتری بشه که رو کیبورد فشارش میدید و اون رو به یک کارکرد تبدیل بکنه. درسته که متغیر رشته میتونه یک کاراکتر رو ذخیره کنه ولی charها میتونن بیش از یک کاراکتر رو ذخیره کنن.
خب دوستان همین قدر مطلب برای معرفی متغیرها کافیه. اینارو به خاطر داشته باشید تا هفته بعد بیشتر درباره کارکردها و فایدههاشون بحث بکنیم. تا هفته دیگه و مطلب دیگه بدرود.
منابع:
- 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 تماس بگیرید.

