آموزش برنامه نویسی به زبان ++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>

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

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

50 دیدگاه
  1. hamoon می گوید

    besiar mofid va karamad

    ۲
  2. Nice Devil می گوید

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

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

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

  3. Nice Devil می گوید

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

  4. reza می گوید

    خیلی مفید بود . امیدوارم ادامه داشته باشه.

    1. ناشناس می گوید

      متشکرم

      ۱
  5. ali می گوید

    سلام.
    ببخشید من عبارت ;( )getch رو می نویسم اما به من میگه
    error C3861: ‘getch’: identifier not found

    1. وحیده می گوید

      باید هدر فایل زیر رو در کنار دستورات پیش پردازنده درج کنید
      <include <conio.h#

  6. mehran می گوید

    ممنون از توضیحات قابل فهمتون

  7. AloneSoN می گوید

    دمتون گرم بابت مطلب مفیدی که گذاشتید خیلی استفاده کردم

  8. پریسا می گوید

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

  9. حمی می گوید

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

    ۱
  10. shilan می گوید

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

    1. حامد می گوید

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

  11. ارسطو خمسه می گوید

    بسیار عالی بود ! جواب سوال هایم را گرفتم !
    متشکرم !

  12. علی می گوید

    استفاده کردیم

    1. علی می گوید

      بله ازچی استفاده کردید

  13. علی می گوید

    خیلی خوبه ولی من فقط یک لیست کامل از دستورات c++رامی خواستم

  14. امیررضا می گوید

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

    1. Dariush می گوید

      خوب از START برو All programs بعد ویژوال استودیو رو پیدا کن

  15. sahar می گوید

    تشکر!

  16. کامران می گوید

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

  17. محسن می گوید

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

  18. لیلا می گوید

    سلام ببخشید میشه بگین اسم علامت <> و :: در c++ چیه؟

  19. David Cerac می گوید

    با تشکر از آمزش ها
    مشکل در اجرای دستور Getch():
    مثال زیر:
    #include
    #include
    #include

    using namespace std;

    int main()
    {
    cout<<"welcom";

    _getch();
    return 0;
    }

  20. طراحی سایت تبریز می گوید

    خیلی مطالب سایتتون خوبه واقعا ممنون

  21. Nitro می گوید

    عالیس ت

  22. behnam می گوید

    دستوری هس د برلند که سرعت عملیاتو نمایش بده؟؟

  23. قایق بادی می گوید

    ممنون از وبسایت خوبتون…

  24. امیر می گوید

    سلام
    خیلی خوب بود فقط اگ میشه معکوس دستور “n\” رو به ایمیلم برستید
    ممنون

  25. یو پی اس می گوید

    خیلی عالی بود ممنونم

  26. زهرا می گوید

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

  27. mehrshid می گوید

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

  28. ;کیوان می گوید

    سلام. من دستور()getch را مینویسم ولی ارورc4996 میده. لطفا راهنمایی کنید.

  29. Parsa.zf می گوید

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

  30. Ramin می گوید

    پس قسمتای بعدی کو
    لطفا برارید

  31. hadis می گوید

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

  32. محسن می گوید

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

  33. بهرام می گوید

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

  34. صادق می گوید

    سلام
    به جای clrscr
    , gotoxy
    ]چی بنویسیم
    چطوری خروجی exe بگیریم
    با تشکر

  35. مسعود می گوید

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

  36. pourya می گوید

    ممون دوست عزیز خیلی مفید بود
    مچکراز وقتی که گذاشتی این مطلب و گذاشتی

  37. meysam می گوید

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

  38. porya.h می گوید

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

  39. sara می گوید

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

  40. sajjad می گوید

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

  41. Motahar می گوید

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

  42. محمد می گوید

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

  43. پدرام می گوید

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

  44. kourosh می گوید

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

یه نظری بده!

آدرس ایمیل شما منتشر نخواهد شد.

از دیدگاه شما سپاسگزاریم