فصل ۲: متغیرها و انواع داده در C++

""

🎯 هدف این فصل

در پایان این فصل شما باید بتوانید:

  1. بفهمید متغیر چیست و چرا استفاده می‌شود.
  2. انواع داده‌های اصلی در C++ را بشناسید.
  3. متغیرها را تعریف، مقداردهی و استفاده کنید.
  4. تبدیل نوع داده (Type Casting) را انجام دهید.
  5. با محدوده مقادیر (Range) هر نوع آشنا باشید.

۱. متغیر چیست؟

متغیر یک فضای حافظه در برنامه است که برای ذخیره یک مقدار استفاده می‌شود و با یک نام مشخص شناخته می‌شود.

📌 سه بخش مهم یک متغیر:

  1. نوع داده (Data Type) → مشخص می‌کند چه نوع اطلاعاتی می‌تواند ذخیره کند.
  2. نام متغیر (Variable Name) → برای دسترسی به آن.
  3. مقدار (Value) → داده‌ای که داخل متغیر ذخیره شده است.

مثال ساده:

#include <iostream>
using namespace std;

int main() {
    int age = 25; // تعریف همزمان نام و مقدار
    cout << "Age: " << age << endl;
    return 0;
}

🔹 خروجی:

Age: 25

۲. قوانین نام‌گذاری متغیرها

  • باید با یک حرف یا _ شروع شود.
  • می‌تواند شامل حروف، اعداد و _ باشد.
  • نمی‌تواند از کلمات کلیدی زبان (مثل int, if, while) استفاده کند.
  • حروف کوچک و بزرگ تفاوت دارند (age و Age دو متغیر متفاوت هستند).

مثال نام‌های معتبر:

int number, _count, price2;

مثال نام‌های نامعتبر:

int 2ndNumber; // ❌ شروع با عدد
int float;     // ❌ استفاده از کلمه کلیدی

۳. انواع داده‌های پایه در C++

C++ چند نوع داده اصلی دارد:

نوع دادهتوضیحاندازه معمول (بایت)محدوده تقریبی
intعدد صحیح4-2,147,483,648 تا 2,147,483,647
floatعدد اعشاری (تک‌دقت)4~ ±3.4E38
doubleعدد اعشاری (دقت دو برابر)8~ ±1.7E308
charیک کاراکتر10 تا 255 یا -128 تا 127
boolدرست/غلط1true یا false
stringرشته (متن)متغیرهر طولی

📌 اندازه‌ها ممکن است در سیستم‌های مختلف متفاوت باشند.


مثال از استفاده:

#include <iostream>
#include <string>
using namespace std;

int main() {
    int age = 30;
    float weight = 65.5;
    double height = 1.85;
    char grade = 'A';
    bool isStudent = true;
    string name = "Ali";

    cout << "Name: " << name << endl;
    cout << "Age: " << age << endl;
    cout << "Weight: " << weight << endl;
    cout << "Height: " << height << endl;
    cout << "Grade: " << grade << endl;
    cout << "Is Student: " << isStudent << endl; // true=1, false=0
    return 0;
}

۴. مقداردهی متغیرها

سه راه برای مقداردهی:

int x = 10;    // مستقیم
int y(20);     // سینتکس قدیمی
int z{30};     // C++11: جلوگیری از از دست رفتن داده

۵. مقدار پیش‌فرض

متغیرهای محلی (داخل تابع) به طور پیش‌فرض مقداردهی نمی‌شوند و دارای مقادیر تصادفی هستند.

int x;
cout << x; // ❌ مقدار ناشناخته

📌 راه حل → همیشه مقدار اولیه بدهید.


۶. ثابت‌ها (Constants)

برای ساخت متغیری که مقدارش تغییر نکند:

const double PI = 3.14159;

سعی در تغییر آن باعث خطا می‌شود.


۷. محدوده مقادیر دیتا تایپ‌ها

می‌توان با sizeof و <limits> اندازه و محدوده را پیدا کرد:

#include <iostream>
#include <limits>
using namespace std;

int main() {
    cout << "int size: " << sizeof(int) << " bytes\n";
    cout << "int min: " << numeric_limits<int>::min() << endl;
    cout << "int max: " << numeric_limits<int>::max() << endl;
}

۸. تبدیل نوع داده (Type Casting)

دو روش:

  1. ضمنی (Implicit) → خود زبان انجام می‌دهد:
int x = 5;
double y = x; // تبدیل از int به double
  1. صریح (Explicit) با Cast:
double pi = 3.14;
int n = (int)pi;       // سبک C
int m = static_cast<int>(pi); // سبک مدرن C++

۹. نوع داده auto (C++11)

خود کامپایلر نوع را تشخیص می‌دهد:

auto a = 42;    // int
auto b = 3.14;  // double
auto c = "Hi";  // const char*

۱۰. نکات و هشدارها

⚠ همیشه متغیر را قبل از استفاده مقداردهی کنید.
⚠ در محاسبات اعشاری از float یا double استفاده کنید.
⚠ برای کار با متن از std::string استفاده کنید، نه char[] (مگر در موارد خاص).
⚠ دقت کنید که تبدیل نوع ممکن است باعث از دست رفتن داده شود.


۱۱. اشتباهات رایج

  • فراموش کردن مقدار اولیه:
int x;
cout << x; // ❌ خروجی تصادفی
  • استفاده از نوع داده اشتباه:
bool b = 100; // ❌ تبدیل به true
  • سرریز (Overflow):
int a = 2147483647;
a = a + 1; // ❌ مقدار منفی می‌شود

۱۲. تمرین‌ها

تمرین ۱

متغیرهای name، age و salary را تعریف کرده و از کاربر دریافت و چاپ کنید.

تمرین ۲

برنامه‌ای بنویسید که شعاع دایره را بگیرد و محیط و مساحت را با const double PI محاسبه کند.

تمرین ۳

اندازه (sizeof) همه انواع داده پایه را چاپ کنید.

تمرین ۴ (چالش)

برنامه‌ای که مسافت طی‌شده و زمان مصرف‌شده را بگیرد و سرعت متوسط را محاسبه کند (نوع داده مناسب انتخاب کنید).


۱۳. جمع‌بندی

  • متغیرها برای ذخیره‌سازی داده استفاده می‌شوند.
  • انواع پایه شامل int, float, double, char, bool و string هستند.
  • همیشه مقدار اولیه بدهید.
  • مراقب تبدیل‌های نوع باشید.
  • برای مقادیر ثابت از const استفاده کنید.
محمد وب‌سایت

دیدگاهتان را بنویسید

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