0Pricing
C++ Academy · درس

المعاملات الأساسية والتحويل بين الأنواع

أتقن المعاملات الحسابية ومعاملات المقارنة والمنطق، إضافةً إلى التحويلات الضمنية والصريحة بين الأنواع

المعاملات الأساسية والتحويل بين الأنواع درس مجاني في C++ Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في C++ Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة C++ Academy 4 دروس في المجموع.

المعاملات الحسابية

المعاملات الحسابية القياسية هي: + - * / ومعامل باقي القسمة %. يعمل معامل باقي القسمة على الأعداد الصحيحة فقط.

int a = 17, b = 5;
std::cout << a + b << "\n";  // 22
std::cout << a - b << "\n";  // 12
std::cout << a * b << "\n";  // 85
std::cout << a / b << "\n";  // 3 (integer division)
std::cout << a % b << "\n";  // 2

القسمة الصحيحة مقابل قسمة الفاصلة العائمة

عندما يكون كلا المعاملين عددين صحيحين، تُقرّب القسمة نحو الصفر. حوّل أحد المعاملين إلى نوع ذي فاصلة عائمة لإجراء قسمة حقيقية.

int a = 7, b = 2;
std::cout << a / b << "\n";              // 3
std::cout << static_cast<double>(a) / b; // 3.5

الزيادة والنقصان

يضيف ++ و-- واحدًا أو يطرحانه. تزيد السابقة (++x) القيمة أولًا ثم تعيدها. أما اللاحقة (x++) فتعيد القيمة الأصلية ثم تزيدها.

الإسناد المركب

ادمج العمليات الحسابية مع الإسناد: += و-= و*= و/= و%=. هذه الصيغ أقصر وغالبًا أوضح.

int total = 0;
total += 5;     // total = total + 5
total *= 2;     // total = total * 2

معاملات المقارنة

تعيد معاملات المقارنة الستة قيمة bool: == و!= و< و<= و> و>=.

المعاملات المنطقية

ادمج القيم المنطقية باستخدام && (و) و|| (أو) و! (ليس). وهي تستخدم التقييم قصير الدائرة — فإذا حُسمت النتيجة مبكرًا، فلا تُقيَّم بقية الأجزاء.

bool valid = (age >= 18) && (age < 120);
bool weekend = (day == "Sat") || (day == "Sun");

المعاملات على مستوى البتات

للتعامل مع البتات: & (و) و| (أو) و^ (xor) و~ (ليس) و<< (إزاحة إلى اليسار) و>> (إزاحة إلى اليمين).

التحويلات الضمنية

تحوّل C++ تلقائيًا بين الأنواع العددية في سياقات كثيرة — وقد تفقد الدقة أحيانًا دون تنبيه. توخَّ الحذر في التعبيرات التي تجمع أنواعًا مختلفة.

int i = 10;
double d = i;       // OK: int to double
int j = 3.7;        // OK but truncates to 3

static_cast: تحويل صريح

هذه هي الطريقة المفضلة للتحويل بين الأنواع المرتبطة. ويتحقق منها المترجم في وقت الترجمة.

double price = 9.99;
int dollars = static_cast<int>(price);  // 9

تحويلات أخرى: reinterpret_cast وconst_cast

توجد ثلاثة تحويلات أخرى لحالات خاصة:

  • reinterpret_cast — إعادة تفسير أنماط البتات (استخدمه نادرًا)
  • const_cast — إزالة const (استخدمه في حالات أندر)
  • dynamic_cast — تحويل في وقت التشغيل للأنواع متعددة الأشكال

تجنّب التحويلات بصيغة C

الصيغة القديمة (int)x غامضة — فقد تعني أيًا من التحويلات الأربعة. استخدم التحويل المسمى الذي يطابق قصدك.

تحقق سريع

إلى ماذا تُقيَّم 7 / 2 في C++ عندما يكون كلا المعاملين من النوع int؟

خلاصة

توفر C++ معاملات حسابية ومعاملات مقارنة ومنطقية وعلى مستوى البتات. قد تؤدي التحويلات الضمنية إلى فقدان البيانات — لذا فضّل static_cast للتحويلات الصريحة وتجنّب التحويلات بصيغة C.

الأسئلة الشائعة

هل درس «المعاملات الأساسية والتحويل بين الأنواع» مجاني؟

نعم — نص درس «المعاملات الأساسية والتحويل بين الأنواع» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة C++ Academy، انتقل إلى CoddyKit PRO. تتضمن دورة C++ Academy 4 دروس في المجموع.

ماذا ستتعلم في «المعاملات الأساسية والتحويل بين الأنواع»؟

أتقن المعاملات الحسابية ومعاملات المقارنة والمنطق، إضافةً إلى التحويلات الضمنية والصريحة بين الأنواع تتمرن على C++ Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ C++ Academy؟

لا تُشترط خبرة سابقة. C++ Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «المعاملات الأساسية والتحويل بين الأنواع»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس C++ Academy هذا؟

نعم. كل درس في C++ Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. إعداد مترجم C++
  2. مرحبًا بالعالم وعملية البناء
  3. المتغيرات والاستدلال التلقائي على النوع وconstexpr
  4. المعاملات الأساسية والتحويل بين الأنواع
← العودة إلى C++ Academy