مقدمه
در یادگیری برنامه نویسی داشتن علاقه به آن بسیار مهم است، زیرا با توجه به پیشرفت روز افزون علم رایانه و تغییراتی که در زمینههای مختلف آن به وجود میآید، باید به دنبال یادگیری روش های مختلف و جدید باشید و این کار بدون وجود علاقه امکان پذیر نیست؛ همچنین ما در این آموزش شرایطی را در نظر گرفتهایم که خواننده هیچ گونه آشنایی و پیش زمینه ای درباره برنامه نویسی ندارد، به همین دلیل سعی کردهایم تا به صورت ساده به بیان مفاهیم آن بپردازیم.
این مقدمه را با این جمله به پایان میبرم:
«برنامه نویسی هنر است، هنر استفاده از ابزار محدود در خلق موجودیتی نامحدود.»
مهندس پویا لعل بخش
طراحی یک برنامه
قبل از شروع یادگیری برنامه نویسی به زبان سی پلاس پلاس (++C) نیازمند یادگیری طراحی و کدنویسی برنامههایمان هستیم.
به نظر شما تفاوت یک برنامه نویسی با کدنویس چیست؟ آیا اصلا تفاوتی با هم دارند؟ بله، با هم متفاوت هستند؛ کسی که خود را برنامه نویس میداند، ابتدا توانایی طراحی برنامه اش را به دست آورده است و سپس به کدنویسی برنامهاش میپردازد؛ ولی یک کدنویسی فقط روش کدنویسی به یک زبان خاص (که در اینجا سی پلاس پلاس است) را فرا گرفته است و هنوز نیازمند یادگیری و به دست آوردن تجربه در زمینهی طراحی میباشد.
حال که کمی با تفاوت های طراحی یک برنامه با کد نویسی آن آشنا شدیم، به توضیح طراحی و کدنویسی برنامه، میپردازیم.
طراحی
ما برای نوشتن موفق یک برنامه باید مراحلی را طی کنیم، که اولین مرحلهی آن طراحی برنامهمان است، ما در طراحی سعی میکنیم به این پرسشها، پاسخ دهیم: برنامهی ما قرار است چه کاری انجام دهد؟ ما باید با چه الگوریتمی (در ادامه به آن پرداخته میشود) تولید برنامه را پیش ببریم تا برنامه به بهترین صورت اجرا شود؟ اگر کد برنامه برای تکمیل قرار باشد، به شخص دیگری سپرده شود، آیا او قادر به خواندن کدها هست؟ اگر برنامه دچار مشکل شود، چگونه آن را برطرف کنیم؟
کدنویسی
پس از اینکه طراحی یک برنامه را انجام دادیم، به کدنویسی آن میپردازیم، که خود مهارتی جداگانه است، زیرا برای طراحی یک برنامه لازم نیست که حتما روش کد نویسی به زبان خاصی را بدانیم، ولی برای کدنویسی باید روش کد نویسی به زبان خاصی را بدانیم.
ما در این آموزش سعی داریم که هر دو مقوله طراحی و کد نویسی را همپای هم پیش ببریم، تا برنامه نویسی را به طور کامل فرا گرفته باشید.
خب پس از این مقدمه خسته کننده! به سراغ شروع طراحی یک برنامه ساده میرویم، و در بین آن به آموزش نکتههای مختلف میپردازیم.
الگوریتم
به راه و روش حل یک مساله یا مشکل، که ما هم هر روز از آن برای انجام کارهای روزانه از آن استفاده میکنیم، الگوریتم گویند. (چه تعریف گویایی!)
به عنوان مثال فرض کنید، ما میخواهیم الگوریتم بازگشتن از مدرسه را بنویسیم، پس به این صورت عمل میکنیم:
1. صدای زنگ به گوش ما میرسد.
2. وسایل خود را جمع میکنیم.
3. آنها را در کیفمان میگذاریم.
4. بلند میشویم.
5. به سمت درب کلاس میرویم.
6. از آن خارج میشویم.
7. به سمت درب خروجی مدرسه میرویم.
8. از آن خارج میشویم.
9. به سمت خانه می رویم.
این یک الگوریتم ساده برای انجام کار بازگشتن از مدرسه بود که اگر دقت کنید، ما بدون توجه به مراحل بالا، این کار را انجام میدهیم، صد در صد ما به تمام کارهای روزمرهمان به صورت مثال بالا توجه ریزبینانه نمیکنیم، ولی در طراحی یک برنامه باید این توجه ریزبینانه وجود داشته باشد، چرا؟ زیرا ما برای نوشتن برنامههایمان از رایانه استفاده میکنیم که دارای مغزی مصنوعی است و نمیتواند خود در شرایط مختلف تصمیم گیری کند، به بیان دیگر رایانه برای انجام دستورات ما همانند کودکی است که ما میخواهیم به او راه رفتن را بیاموزیم! به همین دلیل باید به صورت دقیق و ریز تمام شرایط برنامه را معین کنیم.
حال الگوریتم برنامهای را مینویسیم که دو عدد را که از کاربر برنامه دریافت میکند و آنها را با یکدیگر جمع میکند:
1. شروع.
2. عدد اول را از کاربر بگیر.
3. عدد دوم را از کاربر بگیر.
4. عدد اول را با عدد دوم جمع کن.
5. حاصل جمع را به کاربر نمایش بده.
6. پایان.
البته این الگوریتم به صورت دیگری بیان میشود، ولی با توجه به اینکه ما در حال آموزش مفاهیم اولیه هستیم، در مقالههای بعد به جزئیات نوشتن یک الگوریتم درست میپردازیم.
با توجه به اینکه این مطلب اول و به عنوان شروع این آموزش بود، دیدگاهها و پیشنهادهای شما را درباره این مطلب پذیرا هستم و امیدوارم با دیدگاههای خود مرا در ادامه این آموزش یاری کنید.
موضوع آموزش بعدی: مفاهیم اولیه برنامه نویسی به زبان سی پلاس پلاس
عالی عالی عالی خیلی ممنون عالی
اگه تو نبودی چی بگم…
عالی بود
مرسی تشکر
سلام من میخام از صفر شروع کنم و با تاریخچه و کار برنامه نویسی و هدفی که دنبال میکنه اشنا هستم و زبان های لازم وکاربرد زبان ها در موقعیت مختلف رو هم اگاهی دارم میخاستم از زبان CوBASICشروع کنم شما میتونید کمکم کنید؟!!!!سی پلاس پلاس بیشتر برای نوشتن وپیاده سازی برنامه های افلاینه اما اگه بتونم Cرو یاد بگیرم فکر کنم بتونم از پس بقشون بهتر بر بیم ممنون میشم اگه کمک کنید دیگه این که من یه دانشجوم رشتمم با این موضوع کاملا فرق داره ولی علاقه دارم بهش ایا وقت زیادی نیاز داره ؟!
سلام به ایدی من بیا فایل پی دی اف کتاب سی پلاس پلاس رو بفرستم بهتون
@rasoul_18
سلام و خسته نباشید
چرا ادامه آموزش برنامه نویسی نیست،از کجا میتونم دنباله برنامه رو داشته باشم.
ممنون
برو بابا بچه نیستیم که نمیخوای یاد بدی بگو نمیخوام
اقا سلام به خدا که من لذت بردم از بس که واضح نوشته بودید متشکرم
لطفا شماره خودتون را اگر امکان داره ایمیل بفرمایید
توضیح تون عالی بود خیلی قابل فهم بود
به به واقعا بی نظیر بود مهندس ، من ترم 3 برنامه نویسی هستم ولی تا حالا نتونستم برنامه نویسیرو پاس کنم پون واقعا تا حالا کسی اینطور ساده روشنم نکرده بود شوق پیدا کردم خواهشمندم این مطالبو با همین شیوه ی خوبتون ادامه بدید
وای خدا.تو دانشگاه میان از همون جلسه اول برنامه بهت میگن.من که فقط حفظ کردم.
بسیار مفید و کاربردی
خیلی افتضاح بود اگه نمی خواید تجربیاتتون در اختیار دیگران بگذارید لازم نیست مارو مثل بچه ها گول بزنید
alam.khasteh nabashid.tahsilate man ta avale motevasete hast.vali besyar be elme pc & barnameh alagheh daram.khastam bedoonam & az shoma soal konam ke mitoonam barnameh nevisi ra yad begiram.makhsoosan az tarighe internet.lotfan mano yari konid.age shod az tarighe emailam.ba tashakor.hossein pour
مفید بود تشکر
عالی بود بخدا
خیلی خیلی متشکر
aliiiiiiiiiiiiiiii boood..vaghan khoob boood..makhsooosan tozihe visual stduio
توضیحتون خیلی خوب و قابل فهم بود
منتظر قسمت های بعدی هستیم
خسته نباشید
بسیار عالی بود. واقعاً از زحمات شما متشکرم.
من واقعا هیچ چیزی در مورد برنامه نویسی نمی دونم. اما با خوندن این توضیحات ساده و روان دارم یاد می گیرم. از لطفتون سپاسگزارم.
الهام جان شما به جای برنامه نویسی میتونی بری اشپزی یاد بگیری بچه داری یاد بگیری که پس فردا رفتی خونه شوهر کارت گیر نیفته شوهرت طلاقت نده.
این توصیه ها رو به مامان خودتم بکن
سلام خسته نباشید،
بسیار عالی خسته نباشید امیدوارم ادامه پیدا کنه وهیچ چیزی رو از قلم نیاندازید،آرزوم یادگیری این زبان و استفاده در زمینه ی طراحی بازیهای کامپیوتری است.
از شما خواهش میکنم برای آشنایی بیشتر در صورت امکان چند سورس از کارهای پیشرفته خودتون برام ارسال کنید.
نرم افزارهایی مثل blender اوپن سورس هستند آیا کسانی مثل شما توانایی ویرایش این برنامه ها رو دارند؟اگر با یک نمونه از ویرایش برنامه مارو آشنا کنید بسیار مفید خواهد بود…
با تشکر
درود بر شما، ممنون، سعی من در آموزش کدنویسی این زبان و همچنین اصول برنامه نویسی و روش طراحی الگوریتم برنامه بوده است، اگر هم کدهای برنامههای پیشرفته را خواستار بودید با ایمیل بنده در ارتباط باشید، البته بهتر است ادامهی آموزشها رو هم دنبال کنید تا امکان استفاده از کدها برایتان وجود داشته باشد.
در زمینه نرافزار blender هم باید بگم که، با این نرم افزار کار نکردهام و در حوضهی طراحی و برنامه نویسی بازی نیز فعالیت نداشتهام، اما میتوانید در حین یادیگری کدنویسی به این زبان، دربارهی بازیسازی نیز تحقیق کنید، همچنین برای برنامه نویسی بازیهای رایانهای نیازمند یادیگری کامل و مسلط بودن بر زبانهای برنامه نویسی باشید، همیچنین اگر گزارش بنده از نمایشگاه بازیهای رایانهای را مطالعه فرمایید، در گفتگو با بازیسازها اشاره کردند که زبان اصلی برنامه نویسی آن ها ++C بوده است که علت آن قدرتمند بودن آن است، من هم سعی میکنم در صورت امکان به صورت کامل تمام مباحث این زبان را آموزش بدهم.
از استقبال شما از این آموزش هم سپاسگذارم و همچنین دیدگاههای شما خوانندگان عزیز است که ما را در ادامه کارمان دلگرم میکند.
واقعا واقعا از آموزشها تشکر میکنم
بهترین کار دنیا آموزش و بالابردن سطح علمی دیگران است..
مرسیییییییییییییییییییییییییییییییییی
ممنون از شما، دیدگاهها و اشتیاق شما است که ما رو برای نوشتن قسمت های بعدی دلگرم میکنه.
واسه مقدمه واقعاً عالی بود. منکه حدودچند ماه تونت گشتم و اینجور چیزی از این پایه و ت این حد ابتدایی و قابل فهم پیدا نکردم.بی صبرانه منتظر قسمتهای بعدی هستم. به افتخار مدیریت سایت کف قشنگرو بزن.