فصل ۱: مبانی C++ و ساختار کلی برنامه
🎯 هدف این فصل
این فصل به شما کمک میکند که:
- با ماهیت زبان C++ آشنا شوید.
- ساختار کلی یک برنامه C++ را یاد بگیرید.
- اولین برنامه عملی خود را اجرا کنید.
- نکات مهم در شروع کار با این زبان را بدانید.
۱. آشنایی با C++
C++ یکی از قدرتمندترین و پرکاربردترین زبانهای برنامهنویسی است که ویژگیهای زبان C را به ارث برده و مفاهیم برنامهنویسی شیءگرا (OOP) را اضافه کرده است.
ویژگیهای مهم C++
- سرعت بالا: مناسب برای برنامههای سنگین مثل بازیها یا سیستمعاملها.
- قابلیت چند پارادایمی: هم رویهای (Procedural)، هم شیءگرا (OOP)، هم جنریک (Templates).
- مدیریت دستی حافظه: انعطاف بالا ولی نیاز به دقت.
- حوزه استفاده گسترده: از اپلیکیشن دسکتاپ تا سیستمهای توکار (Embedded Systems).
۲. ساختار کلی یک برنامه C++
یک برنامهی پایه C++ معمولاً شامل بخشهای زیر است:
- پیشپردازندهها و
#include
ها - استفاده یا تعریف
namespace
- تعریف توابع و متغیرها
- تابع اصلی
main()
۳. نوشتن اولین برنامه: “Hello, World!”
#include <iostream> // کتابخانه ورودی/خروجی استاندارد
using namespace std; // استفاده از فضای نام std
int main() {
cout << "Hello, World!" << endl; // چاپ متن
return 0; // پایان موفقیتآمیز برنامه
}
📌 خروجی:
Hello, World!
۴. توضیح خطبهخط کد
#include <iostream>
به برنامه میگوید که از کتابخانه ورودی/خروجی استاندارد استفاده کند.
cin
→ گرفتن ورودیcout
→ چاپ خروجی
using namespace std;
داخل کتابخانه استاندارد، توابع و اشیا در فضایی به نامstd
قرار دارند.
با این دستور دیگر نیازی به نوشتنstd::cout
یاstd::cin
نداریم.int main()
نقطه شروع اجرای برنامه.
هر برنامه C++ باید یک تابع main داشته باشد.cout << "Hello, World!" << endl;
cout
→ چاپ متن یا داده<<
→ فرستادن داده به خروجی"Hello, World!"
→ رشتهای که چاپ میشودendl
→ ایجاد خط جدید و خالی کردن بافر خروجی
return 0;
به سیستم عامل میگوید که برنامه با موفقیت تمام شده است.
۵. اهمیت سمیکالون ;
و آکولاد {}
;
→ پایان یک دستور در C++ را مشخص میکند.
بدون آن خطا میگیرید:
cout << "Hi" // ❌ خطا! سمیکالون جا افتاده
{}
→ بلوک کد را محدود میکند.
مثلاً کدی که داخل main قرار میدهیم داخل یک بلاک بین{
و}
است.
۶. استفاده از کامنتها
- تکخطی:
// این یک توضیح است
- چندخطی:
/*
توضیحات چند خطی
برای کدهای طولانی
*/
📌 کامنتها برای توضیح کد هستند و توسط کامپایلر نادیده گرفته میشوند.
۷. کتابخانهها (#include
)
دو نوع کتابخانه داریم:
- کتابخانههای استاندارد → با
< >
#include <cmath> // برای توابع ریاضی
- فایلهای محلی/خودمان → با
" "
#include "myheader.h"
۸. سینتکس تابع main
سه شکل رایج:
int main() { /*...*/ }
int main(int argc, char* argv[]) { /*...*/ }
int main(void) { /*...*/ }
📌 حالت اول معمولتر است و در اکثر پروژهها استفاده میشود.
۹. ورودی و خروجی با cin
و cout
مثال:
#include <iostream>
using namespace std;
int main() {
string name;
int age;
cout << "Enter your name: ";
cin >> name;
cout << "Enter your age: ";
cin >> age;
cout << "Hello " << name << ", you are " << age << " years old.\n";
return 0;
}
🔹 ورودی:
Enter your name: Ali
Enter your age: 20
🔹 خروجی:
Hello Ali, you are 20 years old.
۱۰. فرآیند اجرای یک برنامه C++
۱. پیشپردازش → پردازش #include
و ماکروها
۲. کامپایل → تبدیل به کد ماشین (فایل .o
یا .obj
)
- لینکدهی → ترکیب همه کدها و کتابخانهها
- اجرا → شروع از تابع
main
۱۱. تفاوت printf
و cout
cout
→ شیوه مدرن در C++printf
→ روش قدیمی C، همچنان قابل استفاده است.
مثال:
#include <iostream>
#include <cstdio>
using namespace std;
int main() {
cout << "Using cout" << endl;
printf("Using printf\n");
return 0;
}
۱۲. سبک کدنویسی خوب (Code Style)
- نامگذاری معنادار:
int age; // ✅ واضح
int a; // ❌ مبهم
- ایندنتگذاری منظم
- فاصلهگذاری درست بین عملگرها:
x = y + z;
۱۳. انواع خطاها
- Syntax Error → خطای نوشتاری
- Compile-time Error → خطا هنگام ساخت برنامه
- Runtime Error → خطا هنگام اجرا (مثلاً تقسیم بر صفر)
- Logical Error → برنامه اجرا میشود ولی نتیجه اشتباه است.
۱۴. نکات و هشدارها
⚠ فراموش کردن ;
رایجترین خطای مبتدیهاست.
⚠ همیشه ورودی را بررسی کنید که مشکلساز نباشد.
⚠ استفاده بیاندازه از using namespace std;
در پروژههای بزرگ ممکن است باعث تداخل شود.
۱۵. اشتباهات رایج
- عدم تعریف متغیر پیش از استفاده
- مخلوط کردن
printf
وcout
بدون مدیریت بافر - ننوشتن
{}
برای بلوکهای شرطی یا حلقهها - قرار دادن کد خارج از
main
بدون دلیل
۱۶. تمرینها
تمرین ۱: برنامهای بنویسید که نام و سن کاربر را بگیرد و چاپ کند.
تمرین ۲: برنامهای که دو عدد بگیرد و جمع و ضرب آنها را چاپ کند.
تمرین ۳: برنامهای که نام و معدل سه درس را بگیرد و معدل کل را محاسبه کند.
تمرین ۴ (چالش): برنامهای که نام، سن و شماره دانشجویی را بگیرد، دادهها را ذخیره کند و با فرمت زیبایی چاپ کند.
۱۷. جمعبندی
- کد C++ از
main
شروع به اجرا میکند. #include
برای استفاده از کتابخانههاست.cin
وcout
ابزارهای اصلی ورودی/خروجی هستند.- رعایت قواعد سینتکس (
;
,{}
) حیاتی است.