یادگیری برنامه نویسی، شروع

با سلام و تبریک سال نو؛ در پست های قبلی در مورد برنامه نویسی و شروع یادگیری برنامه نویسی مطالبی گفته شد. در این پست و مطالب بعدی سعی میکنم خواننده رو با مفاهیمی که هنگام نوشتن یک برنامه مورد نیاز است آشنا کنم به امید اینکه دیدگاه مناسبی از برنامه نویسی در ذهن شما خواننده محترم شکل بگیرد.

همانظور که در پستهای قبلی اشاره شده بود، برای یادگیری هرچه بهتر برنامه نویسی باید الگوریتم نویسی رو یاد گرفته و مدام تمرین کنید، بهترین تمرین برای تازه کارها شروع به نوشتن یا تصور یک الگوریتم برای اتفاقات مجاور خود هست، میتوانید راه حلهای انواع مختلف مسايلی که باهاشون روبرو میشوید رو به صورت الگوریتم بنویسید و سعی کنید تصور کنید اگر قرار بود مجموعه ای از مراحل رو به ترتیب بنویسید تا یک ربات(این هم یک سیستم کامپیوتری هست) با انجام آن مراحل، یک مسأله رو براتون حل کند. مثلا تصور کنید اگر مراحلی رو برای ربات بنویسید که یک لیوان چای برایتان بیاورد چه کارهایی را باید به ترتیب انجام دهد؟ تصور کنید میخواهید دستور العملهایی پشت سر هم بنویسید که کامپیوترتون عددی از شما گرفته و توان دوم اون رو محاسبه کند و بهتون نمایش دهد، آنوقت چه مراحل و دستورالعملهایی می نویسید؟

هرچند در مثالهای آتی سعی خواهم کرد با ارائه دادن الگوریتم برای حل مسأله مورد نظرمون به صورت ضمنی در مورد الگوریتمها هم صحبت کنم با اینحال در این مطلب و مطالب مرتبط بعدی هدف اصلی من توضیح مفاهیم مرتبط با کدنویسی هست. (باز موکداً به مطالعه الگوریتم و حل تمرینات مختلف مربوطه توصیه میشود، خوشبختانه در بستر اینترنت مطالب بسیاری در این مورد وجود دارد.)

هر شخصی که توانایی برنامه نویسی به صورت مقدماتی را دارد با مفاهیم زیر آشنا هست و دیدگاه مناسبی نسبت به آنها دارد، بیشتر این مفاهیم در الگوریتم نویسی هم وجود دارند، در این مجموعه مطالب با مبنا قرار دادن زبان برنامه نویسی پایتون تلاش خواهم کرد مفاهیم ذیل رو توضیح دهم، ممکن است مثالهایی از دیگر زبانها نیز مثالهایی آورده شود:

۱- مفهوم دستور یا Statement

۲- مفهوم گرامر، قوانین، امکانات و محدودیتهای زبانی که قرار است با آن کد بنویسیم

۳- مقادیر داده ای، انواع آنها و مفهوم متغیر و ثابت و تبدیلگرها

۴- پکیج(package) یا کتابخانه(library) و فضای نام

۵- دستورات ورودی و خروجی و سایر اواع دستورات

۷- عملگرها و عملوندها

۶- شرط و دستورات شرطی یا کنترلی

۷- حلقه های تکرار

۸- توابع

۹- کلاسها و اشیا

۱۰- نواع خطاها و خطایابی

در ادامه و مطالب آینده به توضیح مفاهیم ذکر شده پرداخته میشود، اگر اشکالی در مطالب بود و یا پیشنهادی در جهت بهتر شدن مطالب دارید از بیان اون بسیار خوشحال میشم.

۱- دستورات در برنامه نویسی

اگر در مورد الگوریتم مطالعه کرده باشید بخاطر خواهید آورد که الگوریتمها مجموعه دستورالعملهایی هستند که پشت سر هم نوشته و اجرا می شوند تا یک هدف خاصی دنبال شود، همچنین به یاد خواهید داشت که این دستورالعملها باید با قوانین خاصی نوشته شوند، ترتیب و توالی در آن مهم است و هر دستورالعملی باید بدون ابهام باشد، دقیقا همین مفهوم در زبانهای برنامه نویسی ولی با قوانین دقیقتر و مستحکمتری نیز وجود دارد، یعنی شما اگر بخواهید برنامه ساده ای بنویسید که عددی از کاربر بگیرد و توان دوم آن را چاپ کند باید مثل زمانیکه الگوریتمی برای آن مینویسید دستورالعملهایی بنویسید که کامپیوتر با اجرای پشت سر هم اون دستورالعملها بتواند مقداری از کاربر بگیرد و سپس توان دوم اون رو محاسبه کرده و بعد آنرا چاپ کند. درواقع به هریک از این دستورالعملها اختصارا دستور یا statement میگوییم. حال الگوریتمی برای مسأله ذکر شده مینویسم و معادل اون رو در زبان پایتون مینویسیم:

الگوریتمی که عددی از کاربر بگیرد و توان دوم آن را چاپ کند:

۱- شروع

۲- عدد a را از کاربر بگیر (میشد نوشت: عددی از کاربر بگیر و در a قرار بده)

۳- در b قرار بده a*a را (بهتره بنویسیم: b <- a*a)

۴- چاپ کن b را

۵- پایان

حالا همین الگوریتم رو به زبان پایتون مینویسیم:

a= int(input())
b=a*a
print(b)

هریک از خطوطی که در این برنامه ساده نوشته شده شامل یک یا چند دستور (statement) هستند، توضیح هریک از خطوط به شرح زیر است:

خط ۱: شامل دستور ورود اطلاعات( input )، دستور تبدیل ورودی به عدد ( int ) و دستور و عملگر ساخت متغیر a و قراردادن عدد وارد شده توسط کاربر در آن هست( =a ). در واقع در این خط ما به کامپیوتر میگیم مقداری از کاربر بگیر اون رو به عدد تبدیل کن و سپس متغیری به نام a بساز و در آن قرار بده.

خط ۲: ساده هست، متغیری به نام b ساخته ( =b) و توان دوم a رو (a*a) در آن قرار بده

خط ۳: مقدار موجود در b رو در خروجی چاپ کن. (خروجی پیشفرض مانیتور میباشد)

همانطور که متوجه هستید، در واقع یک دستور، درخواستی از کامپیوتر برای انجام کاری است، دستورات میتوانند باهم ترکیب شوند تا دستورات مرکب ساخته شود.

نکته: دستورات نقطه آغاز و پایان دارند. در همه زبانها یک دستور یا اولین دستور است یا بعد از پایان دستور قبلی نوشته و آغاز میشود، اما نقطه پایان دستورات ممکن است در زبانهای مختلف با هم فرق کند، مثلا در زبانهای خانواده c همه دستورات با ; (سمی کلون) خاتمه می یابند ولی در پایتون هم کلید enter یعنی زدن دکمه انتر و رفتن به سطر جدید نشانه پایان دستور نوشته شده هست و هم میتوان از ; استفاده کرد.

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

همانطورکه دقت میکنید انواع مختلفی از دستورات در برنامه نویسی وجود دارد. در این سری آموزشی بعضی از آنها به صورت بخشهای مجزایی (مانند دستورات شرطی و یا کنترلی و ...) توضیح داده خواهند شد و برخی نیز ضمن سایر بخشها موقع نیاز مفصلا توضیح داده خواهند شد.

لیست انواع دستوراتی که ممکن است در یک برنامه بکار برده شوند میتواند به شرح زیر باشد:

۱- دستورات معرفی و ساخت متغیرها و انواع داده ها

۲- دستورات ورودی و خروجی

۳- انواع عبارتهای ریاضی و منطقی و ... (مثل این عبارت ریاضی: a=48*25، که حاصلضربی را محاسبه کرده و در متغیری قرار میدهد). باید دقت کرد ممکن است در بعضی کتب و منابع به عبارتهای این چنینی اسم دستور اطلاق نشود.

۴- دستورات شرطی و کنترلی

۵- دستورات ساخت حلقه های تکرار

۶- دستورات کنترل و مدیریت خطا ها

و....

۲- مفهوم گرامر یا سینتکس (syntax) در زبانهای برنامه نویسی

در بخش قبلی با مفهوم دستورات در برنامه نویسی آشنا شدیم اما باید به یاد داشته باشیم که طرز نوشتن این دستورات ممکن است در زبانهای مختلف باهم فرق داشته باشند و هرکدام از زبانها قواعدی برای استفاده از این دستورات وضع کرده باشند حتی ممکن است اسم دستورات در زبانهای مختلف باهم فرق کند، ممکن است در یک زبانی برای دستور چاپ از کلمه print و در زبانی دیگر از echo و در زبانی دیگر از کلمه ای دیگر استفاده شود، ممکن است در زبانی انتهای هر دستور با کلید enter یا کلید ; و در زبانی دیگر از یک کاراکتر دیگر استفاده شود. به مجموعه این قوانین که توسط زبانهای برنامه نویسی وضع میشود اصطلاحاْ سینتکس یا گرامر آن زبان برنامه نویسی میگوییم. مثل زبانهای محاوره ای که ممکن است در یکی فعل آخر جمله بیاید و در یکی اول جمله. باید دقت کنیم که اگر میخواهیم با هرزبانی برنامه نویسی کنیم باید قواعد آنرو مطالعه کرده و یاد بگیریم و برای برنامه نویس شدن باید نسبت به مفاهیم اصلی مسلط شویم تا بتوانیم به راحتی هر زبانی رو یاد بگیریم.

خلاصه این بخش:

در این بخش با اسم برخی از مفاهیم مقدماتی برنامه نویسی آشنا شدیم، و یاد گرفتیم که هر برنامه ای هم مثل الگوریتمها مجموعه ای متوالی از دستورالعملها هست که به ترتیب از بالا به پایین اجرا میشوند تا یک هدف خاصی اتفاق بیافتد، در هریک از این دستورالعملها ممکن است از کامپیوتر بخواهیم یک یا چند کار را انجام دهد که به این درخواستها اصطلاحا دستور یا statement میگوییم. یاد گرفتیم که به مجموعه قوانینی که یک زبان برای برنامه نوشتن به آن زبان ارائه میده اصطلاحا سینتکس یا گرامر آن زبان میگوییم.

ادامه دارد...