آموزش برنامه نویسی به زبان ++C (قسمت دوم)

در این قسمت به مفاهیم اولیه کدنویسی به زبان ++C می‌پردازیم.

ما برای کدنویسی برنامه‌هایمان، به نرم افزارهای دیگری نیاز داریم تا کدهای برنامه  را درون آن بنویسیم و نتایج آن‌ها را برایمان نمایش بدهد، به این برنامه‌ها مترجم (Compiler) گفته می‌شود، که عبارتند از:

Microsoft visual studio, Borland C++, Turbo C++, Notepad ++

که من استفاده از Microsoft visual studio 2010 را پیشنهاد میکنم، زیرا نوشتن و ویرایش کد در این محیط راحت‌تر است.

ابتدا به روش ساختن یک پروژه جدید در Visual Studio 2010 می‌پردازیم:

پس از باز کردن نرم افزار Visual Studio 2010 همانند شکل زیر بر روی گزینه File کلیک کرده، سپس با رفتن به روی دکمه‌ی New، گزینه‌ی Project را انتخاب می‌کنیم:

سپس در سمت چپ قسمت ++Visual C را انتخاب کرده و از قسمت سمت راست گزینه Empty Project را انتخاب می‌کنیم، همچنین در پایین در کادر name بک نام به پروژه‌ی خود اختصاص دهید و محل ذخیره پروژه را با استفاده از دکمه‌ی browse مشخص کنید:

پس از درست شدن پروژه جدید همانند شکل زیر بر روی Source Files کلیک راست کرده و گزینه New item  را انتخاب می‌کنیم:

سپس در پنجره‌‌ی باز شده در سمت راست همانند شکل زیر روی گزینه‌ی (C++ File(.cpp کلیک می‌کنیم و نام مناسب منبع کد را نیز در قسمت name (پایین صفحه) مشخص می‌کنیم:

در نهایت همانند شکل زیر محیط سفید رنگ کد نویسی باز می‌شود، که شما در اینجا کدهای خود را می‌نویسید:

در شکل زیر کد یک برنامه وجود دارد که پیغام !++welcome to c را برای ما در مانیتور، چاپ می‌کند:

حال به توضیح قسمت های مختلف کد بالا می‌پردازیم:

نتیجه اجرای این کد نمایش جملهی !++welcome to c  است.

خط 1 و 2 دستور های پیش پردازنده است، یعنی قبل از کامپایل (کار تبدیل کدهای برنامه به دستورهای قابل فهم کامپیوتر)  برنامه این خط اجرا می‌شود، به عبارت دیگر هر خطی که با # شروع می‌شود یک دستور پیش پردازنده است.

دستور خط 1 به پیش پردازنده می‌گوید که محتوای سرفایل جریان ورودی/ خروجی را در برنامه قرار دهد.(خودمم نفهمیدم چی گفتم! در نکات تکمیلی توضیح میدم)

عبارت سبز رنگی که با علامت // شروع می‌شود، توسط کامپایلر نادیده گرفته میشود، زیرا از این نوع خطوط برای وضوح بخشیدن به برنامه استفاده می‌شود، همان طور که مشاهده می‌کنید، روبروی خط 1 توضیحی برای علت استفاده از این خط نوشته شده است.(در این باره در نکات تکمیلی توضیح می‌دهم)

خط 3 یک خط خالی است که کامپایلر آن را نادیده می‌گیرد؛ در کل خطوط خالی در کامپایل برنامه خللی ایجاد نمی‌کند و همچینی به خوانایی کد کمک می‌کند.

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

از خط 6 تا 12، بدنه‌ی اصلی برنامه را تشکیل می‌دهد، که هر برنامه‌ی ما حداقل باید یک بدنه‌ی اصلی داشته باشد.

کلماتی که به رنگ آبی نمایش داده شده است، دستور های اصلی  ++C هستند، دستور int نوع متغیر است. (که در قسمت‌های بعد توضیح داده خواهد شد.)

دستور ()main یک تابع است که نمایانگر بدنه‌ی اصلی برنامه است، که گیومه خالی به این علت است که برنامه مقداری را برنمی‌گرداند، همین طور بدنه‌ی اصلی باید بین دو کروشه باز و بسته {} (خطوط 7 و 12) قرار گیرد. (البته در قسمت‌های بعد به توضیح این تابع می‌پردازیم.) در حالت کلی دستورهای شامل گیومه، تابع هستند.

خط 8، خطی است که جمله‌ی !++welcome to c را در مانیتور نمایش می‌دهد. (این همه خط کد برای نمایش همین چند یه جمله!) دستور cout همراه با علامت >> قسمت بعد از این علامت را در خروجی نمایش می‌دهد، که می‌تواند شامل متن (همانند این مثال)، یک متغیر و … باشد، همچنین دستور n\ باعث می‌شود، مکان نما به خط جدید برود. (درباره‌ی این نوع دستورها در نکات تکمیلی توضیح خواهم داد)

خط 10 به این دلیل به کار می‌رود تا پنجره‌ای که خروجی برنامه را نمایش می‌دهد تا زمانی که ما کاری برای بستن آن انجام ندهیم، بسته نشود، حتما الان این سوال را از خود پرسیده‌اید که مفهموم بسته نشدن برنامه یعنی چه؟ ببینید به علت اینکه حاصل نتایج کار شما بر روی یک صفحه سیاه! نمایش داده می‌شود و به عبارت دیگر خروجی برنامه به حالت dos است شما باید از پایه تمام کارهای برنامه را بنویسید (همون طور که در قسمت قبل به دقیق بودن کدهای برنامه اشاره کردم)، به همین دلیل باید این دستور هم برای بسته نشدن پنجره بنویسید. (برای درک بهتر می‌توانید این کد را یک بار حذف کرده و نتیجه را ببینید، البته میدونم که یه کم فهم این قسمت سخته به همین دلیل شما فقط برای بسته نشدن پنجره این دستور رو در هر حالت بنویسید!)

خط 11، دستوری است که نشان می‌دهد برنامه به پایان رسیده است، و عملیات ترجمه کد باید خاتمه یابد، البته این خط بیشتر زمانی به کار می‌رود که قرار است شما برنامه‌ی خود را بر روی فضایی اجرا کنید که دارای حافظه‌ی بسیار محدود است، ولی با توجه به اینکه فضای کامپیوتر شما بسیار زیاد است می‌توانید این کد را ننویسید. (از این خط بیشتر در برنامه‌هایی استفاده می‌شود که بر روی چیپ ها نوشته می‌شوند)

نکات تکمیلی

1. ++C به بزرگی و کوچکی حروف حساس است، یعنی main و Main دو معنی جدا از هم دارند، که تمام دستورهای ++C با حروف کوچک نوشته می‌شوند.

2. تمام دستورهای ++C با علامت ; (سِمی کالِن) به پایان می‌رسند، به جز دستورهای پیش پردازنده.

3. تفاوت ”  و  ‘ :  هرگاه متنی بین  ” ” (دابِل کوتِیشِن) بیاید به آن رشته یا لیتِرال گفته می‌شود، ولی بین ‘ ‘ (کوتِیشِن) یک متن نمی‌تواند بیاید، زیرا این علامت برای نمایش یک کاراکتر به کار می‌رود.

4. به کاراکتر \ کاراکتر کنترلی یا کاراکتر گریز گفته می‌شود، که نشان‌دهنده‌ی کاراکتر خاصی بر روی خروجی است (این کاراکترها در دستور cout استفاده می‌شوند)، که چند نمونه از این نوع کاراکترها عبارتند از:

n\  خط جدید: مکان نما را به ابتدای خط بعد منتقل می‌کند.

t\    جدول بندی افقی: مکان نما را به محل ستون بعدی (به اندازه‌ی 1/4  اینچی) می‌برد.

r\    برگشت به اول سطر: مکان نما را در ابتدای خط فعلی قرار می‌دهد ولی آن را تا خط بعد جلو نمی‌برد.

a\   زنگ: صدای سیستم به صدا در می‌آید. (عموما برای نوشتن کد خطا به کار می‌رود، البته استفاده های دیگه ای هم داره که میتونید خودتون پیدا کنید!)

\\    \: برای چاپ کاراکتر \ به کار می‌رود.

’\     ‘: برای چاپ کاراکتر ‘ به کار می‌رود.

“\    “: برای چاپ کاراکتر ” به کار می‌رود.

5. دستور های جریان ورودی/ خروجی به ترتیب شامل دستورهای  cin/cout هستند، که استفاده از این دستورها را در برنامه های بعدی که می‌نویسیم، توضیح خواهیم داد، البته این دستورها را با این علامت ها به کار می‌روند: >>cout و <<cin

6. برای اینکه کدی که شما می‌نویسید خوانا باشد و اگر روزی آن را به شخص دیگری بدهید، بتواند آن را بخواند، بهتر است از علامت های توضیحی استفاده کنید که شامل // و /*   */  است، علامت // برای توضیح یک خطی به کار می‌رود و علامت های /*  */ برای توضیح چند خطی به کار می‌روند، که توضیح های چند خطی با علامت */ شروع و با علامت /* به پایان می‌رسد، یعنی هر عبارتی بین این دو علامت قرار بگیرد، توسط برنامه توضیح تلقی می‌شود.

7. دستورهایی که با علامت # شروع می‌شوند، که به آنها پیش پردازنده می‌گویند، در اصل هرکدام از آنها یک کتابخانه (library) سی پلاس پلاس را فراخوانی می‌کنند. حال کتابخانه چیست؟ منظور از کتابخانه در ++C یعنی مجموعه تابع ها و دستورهایی که ما با فراخواندن یکی از دستورهای پیش پردازنده آن ها را در اختیار برنامه قرار می‌دهیم، به بیان ساده‌تر، وقتی شما یک دستور پیش پردازنده مثل iostream را در برنامه به عنوان کد پیش پردازنده می‌نویسید، تمام دستورها و تابع های مربوط به کتابخانه ورودی/خروجی در اختیار برنامه قرار می‌گیرد (همون طور که در توضیح خط 1 کد گفتم، محتوای سرفایل ورودی/خروجی، منظورم همین بود!) به عنوان مثالی دیگر اگر دستور پیش پردازنده math.h را به صورت زیر در برنامه قرار دهید، تمام تابع ها و عملگرهای ریاضی مثل توان، سینوس، کسینوس و… در برنامه قرار می‌گیرد:

# include <math.h>

قسمت اول این آموزش را می‌توانید از اینجا بخوانید

موضوع قسمت بعدی: مفاهیم حافظه، متغیرها و عملگرها

51 در مورد “آموزش برنامه نویسی به زبان ++C (قسمت دوم)”

  1. عالی بود ……
    یه سوال داشتم .
    من میخوام یه پروژه بنویسم چی کار کنم که بیتونم یه پروژه بنویسم …..

  2. اقا دمت کرم.. خدایی خیلی با معرفتی مهندس,—- با زبان ساده و سلیس – که منه مبتدی هم قشنک متوجه میشم- ایول داری به مولا —

  3. به نظر من اگه نرم افزار اندرویدی مثل C4droid رو هم به کاربراتون معرفی کنید خیلی خوبه
    مخصوصا این که همیشه هم در دسترسه
    فقط یکم در هدر ها متفاوتند

  4. با سلام و خسته نباشید ، این کد های که رنگ سبز دارن اگه ننویسیم هیچ اتفاقی نمی افته و برنامه runمیشه

  5. سلام ببخشید این نرم افزار هایی که اول معرفی کردید… برنامه نویسیه؟ نظرتون در مورد android studio چیه؟

  6. سلام خسته نباشید
    خواستم ببینم اگه بخوایم متنی رو نمایش بدیم که خودش گیومه داشته باشه “برای مثل”اینجوری “” دیباگر errorمیده خواستم ببینم با چه روشی میشه این متن رو نمایش داد با cout

  7. با سلام
    یه سوال داشتم
    درمورد برنامه c freeولی نمیدونم چطور باهاش کار کنم
    ممنون میشم از لطفتون که منو راهنمایی کنید

  8. بخشید …
    من برنامه C++ 2013 Update 5 دارم …
    نمی دونم چرا روی getch عمل نمیکنه…
    کتابخونه رو هم conio.h معرفی میکنم….
    مشکل از کجاست؟؟؟؟
    .
    .
    .
    ممنون از سایت خوبتون…

  9. سلام دوستان خواهشا کمک کنید
    من وقتی یک برنامه حتی خیلی ساده رو هم مینویسم وقتی میخوام دیباگ کنم با ارور زیر مواجه میشم
    .’unable to start program ‘D:\b\debug\b.exe
    The system cannot find the file specified.

  10. سلام من از devc++ استفاده میکنم وقتی میخوام اجرا کنم erorمیده ?source file not compiled compile now چه کار کنم

  11. سلام خسته نباشید در هنگام استفاده از ویژال استیو با هر نگاراشی برای نوشتن برنانه c++
    در هنگام اجرا هر برنامه پیام زیر صادر می شودتوضیح اینکه در سیستم هایی دیگر به راحتی
    برنامه ها اجرار می شود البته چند با نصب انجام دادم پیام :
    Unablie start program D:\visal studio2010\projects\bn\debug\bn.exe
    The sys cannot find the file specified

  12. من از Microsoft visual studio 2015 استفاده می کنم و هر کاری می کنم ارور می‌ده که cin و cout و اقسامشان تعریف نشده اند چکار باید بکنم؟

  13. ببخشید من getch();رو آخر برنامم قبل returnمینویسم اما برنامم خیلی سریع اجرا میشه و بدون اینکه من خروجیو ببینم در کسری از ثانیه بسته میشه …میخواستم ببینم راهی هس که برنامه منتظر بمونه من یه دکمه ای رو بزنم بعد خارج بشه …که بتونم خروجیو ببینم؟؟؟

  14. سلام ممنون از پیج خوبتون
    میخواستم بپرسم دستوری هست که معکوس ‘n\’ و ‘t\’ باشه؟ اگه هست به ایمیلم بفرستید

  15. سلام ممنون از توضیحات کاملتون من یک سری سوال دارم میشه ادرس ایمیل تون رو هم داخل سایت قرار بدید؟

  16. سلام. من میخوام برنامه ای بنویسم که مقسوم علیه های یک عدد رو برام چاپ کنه! اما نمی دونم که دستوری که باید بنویسم چیه؟ ینی عدد رو تقسیم بر چه عددهایی بکنه و بعد برام مقسوم علیه رو چاپ کنه. میخوام تمام اعداد طبیعی رو چک کنه. ینی عدد رو بگیره، تقسیم بر تمام اعداد طبیعی کوچک تر از عدد اصلی کنه و اگه باقی مانده صفر بود، جواب تقسیم رو چاپ کنه. چطور دستور بدم که بر تمام اعداد طبیعی تقسیم کنه؟

  17. با عرض سلام
    یه سوال داشتم
    برای رسم نمودار نقطه به نقطه، باید چیکار کنم
    برنامه ای نوشتم که خروجیش X , Y هستش
    به ازای هر X یه Y وجود داره
    میخوام توی خروجی نمودار X بر حسب Y رو رسم کنم
    اگه میشه راهنماییم کنین

  18. واقعا دمتون گرم از راهنمایی های کامل و درستتون نمیدونم چطور ازتون تشکر کنم فقط اینو میگم که اجرتون عند الله

  19. سلام و خسته نباشید آقا من وقتی برنامه ی visaul c++ روی کامپیوترم ریختم می زنه instal completedولی نه نرم افزار run می شه ونه من می تونم پیداش کنم یه کمکی به من بکیند…

  20. سلام کد cout
    را اجرا میکنم هیچی رو نمایش نمیده – فقط یه صفحه سیاه زود میره میاد
    خیلی خیلی ممنون از سایت خوبتون
    ممنون میشم راهنماییم کنیم

    1. باسلام. شما دستور()getch رافراموش کرده اید،یادرست وارد نکرده اید،یا کتابخانه ی آن را include نکرده اید.

  21. سلام کار من رو راه انداختین.خیلی ممنون
    من c++رو دارم از روی کتاب جعفر نژاد قمی می خونم و یاد میگیرم . فایلی چیزی هست که توابعی که تغییر کرده رو توش داشته باشه مثل :iostream که قبلا و توی کتاب جعفر نزادم iostream.h نوشته شده ممنون میشم راهنمایی کنید؟

  22. ببخشید یه سوال داشتم. تو نرم افزار c دستوری برای نمایش یک تصویر (image) در پنجره اجرا هست؟یعنی مثلا بعد از گرفتن ورودی ها یک تصویرو نمایش بده وبعد خروجی ها رو بنویبسه؟
    ممنون میشم اگه جواب بدین

  23. ممنون ازتوضیحتون.امیدوارمکه سرعت پیشرفت سایت آی تی رسان کمنشه و با همین سرعتپیشرفتشو ادامه بده.وجود همچین سایتی لازم بود. با تشکر

  24. عالی بود اما اگه لطف میکردین و لینک دانلودبرنامه Visual studio رو میذاشتین بهتر میشد. باتشکر از مدیریت

    1. پوریا ولی‌زاده

      ممنون از شما، متاسفانه به علت سرعت بسیار کم اینترنت در کشور، دانلود اینچنین نرم افزارهایی بسیار وقت گیر است، به همین دلیل از گذاشتن لینک آن خودداری کردم، این نرم افزار را می‌توانید از فروشگاه‌های خدمات کامپیوتری نیز تهیه کنید.
      البته یکی دیگر از دلایل آن نیز، این است که این نرم‌افزار را نمی‌توانید به صورت رسمی از سایت مایکروسافت دانلود کنید، زیرا visual studio به صورت رایگان ارائه نمی‌شود.

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

به بالا بروید
TCH