ساختار یک برنامه ++C
Code:
1- //My first Program in C++
2- #include <iostream>
3- using namespace std;
4- int main()
5- {
6- cout << "Hello World!";
7- return 0 ;
8- }
Result:
Hello World!
در قسمت Code کد برنامه نویسی (Source Code) اولین برنامه مون رو می بینیم.
و در قسمت Result نتیجه ی کامپایل کردن و اجرا کردن برنامه رو مشاهده می کنیم.
(شماره گذاری سطرها برای نظم بیشتر است و در کدنویسی نباید نوشته شوند)
- راستی، وقتی کد برنامه تون رو نوشتین و خواستین اجرا کنین در Visual 2008 دکمه های Ctrl+F5 رو بزنید تا برنامه کامپایل و اجرا بشه.
برنامه
ی بالا نمونه ی اولیه ی یک برنامه است که هر نوآموزی از اینجا شروع به
برنامه نویسی میکنه و نتیجه ی برنامه، نمایش عبارت !Hello World روی صفحه
ی مانیتوره!
این یکی از ساده ترین برنامه هاییه که میشه با ++C نوشت، ولی سادگی دلیل نمیشه که نکته نداشته باشه!
همین مثال شامل مبانی و زیربناها و ساختاری است که هر برنامه ی ++C به آن نیاز دارد.
- حالا این مثال رو خط به خط بررسی می کنیم تا بفهمیم جریان از چه قراره؟
//My first Program in C++
این
یک توضیح (کامنت) در مورد برنامه است. تمام سطرهایی که با // شروع بشن
کامنت در نظر گرفته میشن و هیچ تاثیری بر رفتار برنامه ندارند.
شما می تونین از کامنت ها برای توضیحات مختصر در مورد برنامه یا شرح قسمتی از اون استفاده کنین.
#include <iostream>
سطرهایی که با علامت # (Hash) شروع میشن یک راهنما برای کامپایلر هستند.
آنها یک کد برنامه نویسی معمولی نیستند بلکه کامپایلر را راهنمایی می کنند تا بتواند کدهای برنامه را بفهمد.
مثلا
فایل iostream شامل تعریف هایی است که دستورهای ورودی و خروجی را به
کامپایلر می فهماند. و ما با نوشتن این سطر به کامپایلر می گوییم که می
خواهیم از دستوراتی که در فایل iostream تعریف شده اند استفاده کنیم.
پس کامپایلر به سراغ فایل iostream میرود و آن را می خواند و برای اجرای دستورات ما آماده می شود.
به این فایل ها
هدر فایل (سرفایل)
Header File می گویند.
using namespace std;
تمام
دستورات کتابخانه ای (دستوراتی که از قبل برای کامپایلر تعریف می شوند)
در ++C، در طبقه بندی هایی تعریف شده اند که به این طبقات namespace گفته
می شود.
اگر بخواهیم از یک دستور استفاده کنیم باید طبقه ی آن را هم
مشخص کنیم، حال اگر بخواهیم در میان کد برنامه در کنار هر دستور طبقه ی آن
را نیز مشخص کنیم، هم کد نویسی خسته کننده و هم حجم برنامه زیاد می شود.
پس در همان ابتدا مشخص می کنیم که می خواهیم از دستورات طبقه ی خاصی (مثلا std) استفاده کنیم.
int main()
این
عبارت همیشه در ابتدای تابع اصلی برنامه می آبد. ما باید همه ی دستوراتی
را که می خواهیم کامپیوتر اجرا کند در تابع اصلی بنویسیم.
بعد از کلمه
ی main دوتا پرانتز قرار دارد که این به خاطر اینه که در C++ برنامه ها از
چند تابع فرعی و یک تابع اصلی تشکیل می شوند. پس main یک تابع است و بعد
از نام تابع ها باید پرانتز باز و بسته بشه. که بعضی اوقات داخل پرانتز
چیزی می نویسیم و بعضی اوقات هم نه!
ولی فعلن بدونین که پرانتز جلو تابع main باید خالی باشه.
بعد
از این پرانتز ها باید بدنه ی تابع اصلی مون رو مشخص کنیم که محدوده ی اون
با {} مشخص میشه و دستوراتی که بین این دو بیان، جزء بدنه ی تابع اصلی
شناخته میشن.
cout << "Hello World";
این سطر یک جمله ی دستوری (statement) در ++C هست.
یک جمله دستوری، یک جمله ی ساده یا مرکب است که می تواند کاری انجام دهد.
و تنها کاری که دستور بالایی انجام می دهد، به نمایش در آوردن عبارت !Hello World روی نمایشگر است.
cout در فایل iostream و در طبقه ی std تعریف شده است.
اگر Header File را نمی نوشتیم کامپایلر آن را نمی شناخت و خطا اعلام می کرد.
و اگر using namespace std را نمی نوشتیم، باز هم خطا می گرفت و مجبور بودیم به این صورت بنویسیم:
std::cout<<"Hello World!";
نکته:
توجه داشته باشید که در انتهای هر جمله ی دستوری یک " ; " semicolon قرار
دارد که وظیفه ی این کاراکتر مشخص نمودن انتهای جمله است.
یکی از خطاهای رایج در کدنویسی فراموش کردن همین کاراکتر است.
return 0;
دستور return باعث می شود که از تابع اصلی خارج شویم.
معمولا
return همراه با یک کد بازگشت (return code) می آید که در اینجا صفر است و
این کد صفر یعنی برنامه به صورت صحیح و بدون خطا انجام شده و پایان یافته
است.
این یک روش متداول برای خروج از برنامه های console است.
ما برنامه رو توی سطرهای جداگانه می نویسیم تا خواناتر باشه ولی در ++C اجباری بر جدا نوشتن نیست!
مثلا به جای:
int main
{
cout << "Hello World!";
return 0;
}
می توانیم بنویسیم:
int main() { cout << "Hello World!"; return 0; }
که هیچ تفاوتی در اجرا با هم ندارند!
اما
دوباره میگم که باید جداگانه بنویسیم تا برنامه ای خوانا تر داشته باشیم و
بتونیم راحت تر عیب یابیش کنیم. همچنین پاراگراف بندی و تورفتگی ها رو هم
رعایت کنیم تا همه چیز با هم قاطی نشه!
Comments توضیحاتکامنت ها قسمت هایی از Source Code هستند که کامپایلر آنها را نادیده می گیرد و هیچ تاثیری بر روند برنامه ندارند.
هدف از کامنت گذاری، درج نکته ها و توضیحات برای کمک به فهمیدن و خواناتر شدن برنامه است.
در C++ دو شیوه برای کامنت گذاری وجود دارد:
برای نوشتن کامنت های یک خطی // Line Comments
برای نوشتن کامنت های چند خطی /* Block Comments */
به مثال زیر توجه کنید:
Code:
1- /* My second Program in C++
2- with more comments */
3- #include <iostream>
4- using namespace std;
5- int main()
6- {
7- cout << "Hello World! "; // prints Hello World!
8- cout << "I'm a C++ Program."; // prints I'm a C++ Program.
9- return 0;
10-}
Result:
Hello World! I'm a C++ Program.
اگر
شما کامنت هاتون رو با // یا /* */ مشخص نکنید کامپایلر اونا رو جزء
دستورات به حساب میاره و چون نمیتونه اونا رو بفهمه خطا اعلام میکنه،
مواظب باشید!