یادگیری برنامه نویسی، آشنایی با رابط کاربری و متغیرها

در پست قبلی کمی در مورد چیستی دستورات و سینتکس( و گرامر) صحبت کردیم، در این بخش میخواهیم خیلی خلاصه در مورد چگونگی ارتباط برقرار کردن کاربر با برنامه صحبت کنیم(رابط کاربری) و سپس با مثالهایی مفهوم متغیر و ثابتها را کمی دقیقتر شرح خواهیم داد.رابط کاربری چیست؟خب، شما که الان این مطلب رو میخونید دارید با رابط کاربری وبسایت virgool.io ارتباط برقرار میکنید، وقتی گوشی خود رو باز میکنید دارید با رابط کاربری اندروید کار میکنید، وقتی play store رو باز میکنید هم رابط کاربری play store رو میبینید، پس با این اوصاف رابط کاربری یک نرم افزار درواقع بخشی از نرم افزار است که به شما امکان میدهید به نرم افزار دستور بدهید کاری برایتان انجام دهد یا نرم افزار از طریق آن پیغامهایش را برای شما نشان میدهد.اکثر نرم افزارهای موجود در بازار دارای رابط کاربری گرافیکی هستند، یعنی رابط خود رو با المانهای بصری و گرافیکی ارائه میدهند، اما همه نرم‏افزارها اینگونه نیستند، برخی نرم‏افزارها رابط کاربری گرافیکی ارائه نمیدهند بلکه تنها در محیط متنی امکان ارتباط برقرار کردن با آن وجود دارد، شما اگر لینوکس استفاده کرده باشید مطمئنا خیلی پیش آمده که اینطور نرم‏افزارها رو دیده باشید، مثلاً برنامه apt که در لینوکس امکان نصب نرم‏افزار رو ارائه میدهد، یک محیط کاملاً متنی رو ارائه میدهد. یا دستورات ویندوز برای محیط متنی آن (همان cmd یا command prompt) مثل path یا dir و... همگی در واقع برنامه های کوچکی هستند که کارهای کوچکی هم انجام میدهند.اما این پایان کار نیست، ممکن است شما نرم‏افزاری بنویسید که فقط به پیامهای صوتی جواب دهد یا ممکن است نرم‏افزاری بسازید که دستورات شما رو از دوربین بگیره. و حتی ممکنه نرم‏افزار شما ترکیبی از این رابط کاربریها رو ارائه دهد. حتی ما نوعی نرم‏افزار داریم که رابط کاربری خاصی به آنصورتی که در بالا ذکر شد ندارد، بلکه برای استفاده از آنها باید نرم افزار دیگری نوشت تا درخواستهای ما رو به آن ارسال کرده و جوابش رو برای ما بگیره.نکته: تقریباً همه آموزشهای مبتدی برنامه نویسی ابتدا از محیط متنی آموزش داده میشود.در رابطهای کاربری مبتنی بر متن، معمولاً برنامه منتظر میماند تا کاربر دستوری صادر کند یا مقداری را وارد کند تا بسته به آن عملیاتی انجام دهد، در رابطهای گرافیکی معمولاً دکمه ها و کادرهای مختلفی برای صدور دستورات یا وارد کردن مقادیر وجود دارد.متغیر(variable)ها و ثابت(const)هافرض کنید قرار هست برنامه‏ای بنویسیم که 3 عدد را پشت سرهم گرفته و میانگین آنها را چاپ کند، خب در این برنامه ما نیاز داریم تا اعدادی که کاربر وارد میکند رو در مکانهای خاصی ذخیره کنیم تا بعداً آنها رو برای محاسبه میانگین استفاده کنیم، درواقع به مفسر/کامپایلر زبان برنامه نویسیمون دستور میدیم که برای مکانی از حافظه کامپیوتر اسمی گذاشته و آنرا برای نگهداری مقادیر مورد نظر ما رزرو کند، که اصطلاحاً به اون متغیر میگوییم. پس با این اوصاف، به صورت ساده متغیر مکانی از حافظه است که اطلاعات مد نظر مار رو به صورت موقت نگهداری میکند، برای راحتی دستیابی به آن قسمت از حافظه اسمی هم برای اون در نظر میگیریم. مثلا برنامه ساده زیر رو در نظر بگیرید:x=3 y=7 z=x*yدرست حدس زدید، مقدار 21 در z ذخیره خواهد شد، در اینجا x,y و z هرکدام اسمی هستند که توسط زبان برنامه نویسی و به دستور ما روی قسمتی از حافظه داده میشود تا بتوانیم به راحتی اطلاعاتی در آنها ذخیره یا واکشی کنیم.خب نمونه کد میانگین سه عدد در پایتون به شکل زیر هست:a=int(input()) b=int(input()) c=int(input()) print((a+b+c)/3)در این برنامه سه بار int(input()) استفاده شده، در اینجا فعلاً همینقدر یاد میگیریم که این دستور(در یک محیط کاربری متنی) عددی از کاربر گرفته و آنرا درجایی استفاده میکند. پس دستور a=int(input()) درواقع عددی از کاربر گرفته و آنرا در متغیر a قرار میدهد. این برنامه سه عدد از کاربر گرفته و آنها را در a,b,c ذخیره کرده و در نهایت مقادیر آنها رو باهم جمع کرده و بر سه تقسیم میکند تا بتواند میانگین آنها رو چاپ کند، دستور: print((a+b+c)/3).معمولا، هنگام برنامه نویسی برای اینکه بتوانیم از متغیرهای استفاده کنیم ابتدا باید اونها رو معرفی کنیم و سپس استفاده کنیم، یعنی به برنامه بگوییم مکانی از حافظه رو مثلاً به اسم myNum رزرو کن، که در ادامه مقداری در آن ریخته شود.زبانهای مختلف استراتژی و دستورات متفاوتی برای معرفی متغیرها بکار میبرند، مثلاً در پایتون کافی است به شکل زیر عمل کنیم:name_of_variable = value در اینجا name_of_variable یعنی نام متغیر و value همان مقداری است که در متغیر ذخیره میشود. مثلا اگر بخواهیم متغیری به اسم n ذخیره کنیم که در ابتدا عدد 24 رو در خود نگهداری کند به شکل زیر عمل میکنیم:n = 24یا برای اینکه متغیری به اسم name بسازیم که مقدار "hassan" رو در خود ذخیره کند به شکل زیر عمل میکنیم:name = &quothassan&quotاما زبانهای دیگر ممکن است روشهای دیگری برای معرفی متغیر داشته باشند، مثلا در زبانهای خانواده سی (یا آنهایی که گرامر آنها خیلی شبیه به سی هست) مثل c، سی پلاس پلاس، جاوا، سی شارپ و ... به شکل زیر عمل میشود:data_type variable_name;که در اینجا data_type نوع داده ای است که باید در متغیر ذخیره شود( عدد، متن یا ...) و variable_name نام متغیر است. پس تفاوت جالبی بین پایتون و زبانهای خانواده سی وجود دارد، در پایتون اولین مقداردهی به متغیر به منزله تعریف اون هست اما در زبانهای خانواده سی حتماً ابتدا باید متغیر را برای کامپایلر تعریف کرده و سپس امکان مقداردهی به اون وجود خواهد داشت.حالا دو مثال بالا رو که به زبان پایتون نوشتیم رو بار دیگر با زبان سی شارپ مینویسیم:int n; n=24;متغیری به اسم n با نوع داده ای int(همان عدد صحیح) تعریف کرده و در خط بعدی عدد 24 رو در اون ذخیره میکنیم.این برنامه رو به شکل زیر هم میتوان نوشت:int n = 24;یا تعریف متغیری به اسم name که مقدار "hassan" رو در خود ذخیره کند در سی شارپ به شکل زیر است:string name; name = &quothassan&quotنکته: در بخش بعدی با مفهوم نوع داده آشنا خواهیم شد، در همانجا با مفهوم کلمات int و string که هرکدام یک نوع داده‏ای خاص هستند آشنا خواهیم شد.نکته: در این مجموعه آموزشی، زبان پایتون به دلیل سادگی ذاتی که دارد به عنوان زبان اصلی اموزشی انتخاب شده است اما گاه شاید برای نشان دادن تفاوتها و درک بیشتر مطلب از مثالهایی در زبانهای دیگر استفاده شود.ثابتها:متغیرها قسمتی از حافظه هستند که مقداری در آن ریخته میشود و به کمک یک اسم برای برنامه قابل دسترسی هستند، و در داخل برنامه هروقت که لازم باشد(یا دلمان بخواد) میتوانیم مقدار جدیدی در آن قرار دهیم، بالواقع امکان تغییر مقادیر ذخیره شده در متغیرها هرزمان وجود دارد. مثلا در پایتون داریم:a = int(input()) b=24 c= a+b a=0 b=0مثلا در تکه کد بالا، متغیری به اسم a ساخته شده و عددی که کاربر وارد میکند در آن ذخیره میشود، سپس متغیری با مقدار 24 به اسم b ساخته شده و به دنبال آن متغیری به اسم c ساخته میشود که حاصلجمع a+b در آن ریخته میشود، در نهایت مقدار متغیرهای a,b هر دو به 0 تغییر میابند. چنانچه میبینید امکان تغییر مقادیر متغیرها در آینده وجود دارد.ثابتها شبیه به متغیرها هستند، با این تفاوت که دیگر امکان تغییر آنها در آینده وجود ندارد، یعنی یک بار با یک مقدار ساخته میشوند و تا انتهای اجرای برنامه همان مقدار را خواهند داشت، و اگر بخواهید مقدار آنرا تغییر دهید هنگام کامپایل برنامه با خطا روبرو خواهید شد. ثابتها رو میشه به دو صورت در نظر گرفت، 1- متغیرهایی که قفل میشوند تا هیچوقت امکان تغییر آنها وجود نداشته باشد. 2- اسم گذاشتن بر روی یک داده خاص. به این صورت، فرض کنید در برنامه ای قرار است مکررا در محاسباتمون از عدد پی (3.14) استفاده کنیم مثل برنامه زیر:r=4 c= 3.14 * r + (3.14 / 2) k=c +r f = k * 3.14حالا فرض کنید در نسخه بعدی برنامه کارفرما بخواهد دقت عدد پی رو دو رقم بیشتر کنیم، اونوقت باید همه 3.14 ها رو در کد برنامه پیدا کرده و به 3.1415 تغییر بدیم، که اگر در برنامه اصلی مثلا 30 بار از اون استفاده شود کار دشوار و وقت گیری خواهد بود، حال همون برنامه رو به شکل زیر مینویسیم:PI=3.14 r=4 c= PI*r+(PI/2) k=c+r f=k*PIدر اینجا PI رو به عنوان یک ثابت معرفی کردیم که مقدار 3.14 رو در خودش نگه میداره، اگر در نسخه بعدی برنامه قرار باشد عدد پی رو با دو رقم دقت بیشتر استفاده کنیم کافیست در تعریف ثابت مقدار اون رو 3.1415 تعیین کنیم، و دیگر نیازی به پیدا کردن همه 3.14 ها و تغییر دادنشون وجود ندارد. در پایتون تعریف ثابت و متغیر به یک شکل است با این تفاوت که اسامی ثابتها کلاً با حروف بزرگ نوشته میشود.خلاصه این بخش:در این بخش ابتدا با مفهوم رابط کاربری و انواع آنها به صورت مختصر آشنا شدیم، در ادامه خواندیم که برای اینکه بتوانیم مکررا از مقادیر استفاده کنیم باید اونها رو در مکانهایی حافظه ذخیره کنیم به این مکانهای حافظه اسامی ای داده میشود که بتوان به راحتی بهشون دسترسی داشت که اصطلاحاً به اونها متغیر گفته میشود، در انتها نیز فهمیدیم نوع خاصی از متغیر وجود دارد که فقط امکان مقداردهی در زمان تعریف رو دارند و دیگر در طول برنامه نمیشود اونها رو تغییر داد که اصطلاحاً به اونها هم ثابت میگویند.