مقدمه
در یادگیری برنامه نویسی داشتن علاقه به آن بسیار مهم است، زیرا با توجه به پیشرفت روز افزون علم رایانه و تغییراتی که در زمینههای مختلف آن به وجود میآید، باید به دنبال یادگیری روش های مختلف و جدید باشید و این کار بدون وجود علاقه امکان پذیر نیست؛ همچنین ما در این آموزش شرایطی را در نظر گرفتهایم که خواننده هیچ گونه آشنایی و پیش زمینه ای درباره برنامه نویسی ندارد، به همین دلیل سعی کردهایم تا به صورت ساده به بیان مفاهیم آن بپردازیم.
این مقدمه را با این جمله به پایان میبرم:
«برنامه نویسی هنر است، هنر استفاده از ابزار محدود در خلق موجودیتی نامحدود.»
طراحی یک برنامه
قبل از شروع یادگیری برنامه نویسی به زبان سی پلاس پلاس (++C) نیازمند یادگیری طراحی و کدنویسی برنامههایمان هستیم.
به نظر شما تفاوت یک برنامه نویسی با کدنویس چیست؟ آیا اصلا تفاوتی با هم دارند؟ بله، با هم متفاوت هستند؛ کسی که خود را برنامه نویس میداند، ابتدا توانایی طراحی برنامه اش را به دست آورده است و سپس به کدنویسی برنامهاش میپردازد؛ ولی یک کدنویسی فقط روش کدنویسی به یک زبان خاص (که در اینجا سی پلاس پلاس است) را فرا گرفته است و هنوز نیازمند یادگیری و به دست آوردن تجربه در زمینهی طراحی میباشد.
حال که کمی با تفاوت های طراحی یک برنامه با کد نویسی آن آشنا شدیم، به توضیح طراحی و کدنویسی برنامه، میپردازیم.
طراحی
ما برای نوشتن موفق یک برنامه باید مراحلی را طی کنیم، که اولین مرحلهی آن طراحی برنامهمان است، ما در طراحی سعی میکنیم به این پرسشها، پاسخ دهیم: برنامهی ما قرار است چه کاری انجام دهد؟ ما باید با چه الگوریتمی (در ادامه به آن پرداخته میشود) تولید برنامه را پیش ببریم تا برنامه به بهترین صورت اجرا شود؟ اگر کد برنامه برای تکمیل قرار باشد، به شخص دیگری سپرده شود، آیا او قادر به خواندن کدها هست؟ اگر برنامه دچار مشکل شود، چگونه آن را برطرف کنیم؟
کدنویسی
پس از اینکه طراحی یک برنامه را انجام دادیم، به کدنویسی آن میپردازیم، که خود مهارتی جداگانه است، زیرا برای طراحی یک برنامه لازم نیست که حتما روش کد نویسی به زبان خاصی را بدانیم، ولی برای کدنویسی باید روش کد نویسی به زبان خاصی را بدانیم.
ما در این آموزش سعی داریم که هر دو مقوله طراحی و کد نویسی را همپای هم پیش ببریم، تا برنامه نویسی را به طور کامل فرا گرفته باشید.
خب پس از این مقدمه خسته کننده! به سراغ شروع طراحی یک برنامه ساده میرویم، و در بین آن به آموزش نکتههای مختلف میپردازیم.
الگوریتم
به راه و روش حل یک مساله یا مشکل، که ما هم هر روز از آن برای انجام کارهای روزانه از آن استفاده میکنیم، الگوریتم گویند. (چه تعریف گویایی!)
به عنوان مثال فرض کنید، ما میخواهیم الگوریتم بازگشتن از مدرسه را بنویسیم، پس به این صورت عمل میکنیم:
1. صدای زنگ به گوش ما میرسد.
2. وسایل خود را جمع میکنیم.
3. آنها را در کیفمان میگذاریم.
4. بلند میشویم.
5. به سمت درب کلاس میرویم.
6. از آن خارج میشویم.
7. به سمت درب خروجی مدرسه میرویم.
8. از آن خارج میشویم.
9. به سمت خانه می رویم.
این یک الگوریتم ساده برای انجام کار بازگشتن از مدرسه بود که اگر دقت کنید، ما بدون توجه به مراحل بالا، این کار را انجام میدهیم، صد در صد ما به تمام کارهای روزمرهمان به صورت مثال بالا توجه ریزبینانه نمیکنیم، ولی در طراحی یک برنامه باید این توجه ریزبینانه وجود داشته باشد، چرا؟ زیرا ما برای نوشتن برنامههایمان از رایانه استفاده میکنیم که دارای مغزی مصنوعی است و نمیتواند خود در شرایط مختلف تصمیم گیری کند، به بیان دیگر رایانه برای انجام دستورات ما همانند کودکی است که ما میخواهیم به او راه رفتن را بیاموزیم! به همین دلیل باید به صورت دقیق و ریز تمام شرایط برنامه را معین کنیم.
حال الگوریتم برنامهای را مینویسیم که دو عدد را که از کاربر برنامه دریافت میکند و آنها را با یکدیگر جمع میکند:
1. شروع.
2. عدد اول را از کاربر بگیر.
3. عدد دوم را از کاربر بگیر.
4. عدد اول را با عدد دوم جمع کن.
5. حاصل جمع را به کاربر نمایش بده.
6. پایان.
البته این الگوریتم به صورت دیگری بیان میشود، ولی با توجه به اینکه ما در حال آموزش مفاهیم اولیه هستیم، در مقالههای بعد به جزئیات نوشتن یک الگوریتم درست میپردازیم.
با توجه به اینکه این مطلب اول و به عنوان شروع این آموزش بود، دیدگاهها و پیشنهادهای شما را درباره این مطلب پذیرا هستم و امیدوارم با دیدگاههای خود مرا در ادامه این آموزش یاری کنید.