Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

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

جزء من قسم الأساسيات في رحلة C++ على Coddy. الدرس 19 من 74.

في الدرس السابق، تناولنا عاملي الزيادة (++) والنقصان (--). لهذَين العاملَين شكلان: prefix وpostfix.

تُكتب الصيغة prefix قبل المتغير (على سبيل المثال، ++x أو --x)، وتُكتب الصيغة postfix بعد المتغير (على سبيل المثال، x++ أو x--).

معرفة الشكل الذي يجب استخدامه أمر مهم عمليًا. على سبيل المثال، في لعبة ما قد تتتبّع نقاط اللاعب باستخدام score++ بعد كل إصابة، أو تستخدم --lives لتعكس فورًا فقدان حياة قبل التحقق مما إذا كانت اللعبة قد انتهت. في الحلقات، يمكن أن يؤثر الاختيار بين prefix وpostfix في القيمة المستخدمة داخل تعبير قبل التحديث أو بعده.

الفرق بين الصيغتين دقيق لكنه مهم:

  • صيغة prefix: تزيد/تنقص قيمة المتغير ثم تُرجع القيمة الجديدة.
  • صيغة postfix: تُرجع القيمة الحالية للمتغير ثم تزيدها/تنقصها.

إليك مثالًا لتوضيح الفرق:

int x = 5;
int y = x++;
// y = 5, x = 6 (postfix: y يحصل على القيمة الأصلية، ثم يتم زيادة x)

int a = 5;
int b = ++a;
// b = 6, a = 6 (prefix: يتم زيادة a أولاً، ثم يحصل b على القيمة الجديدة)

في الحالة الأولى، تُسنَد إلى y القيمة الأصلية لـ x (5)، ثم تتم زيادة x إلى 6. في الحالة الثانية، تتم زيادة a أولًا، ثم تُسنَد قيمتها الجديدة (6) إلى b.

ينطبق المنطق نفسه على معامل الإنقاص:

int x = 5;
int y = x--;
// y = 5, x = 4 (postfix: y تحصل على القيمة الأصلية، ثم يتم إنقاص x)

int a = 5;
int b = --a;
// b = 4, a = 4 (prefix: يتم إنقاص a أولاً، ثم تحصل b على القيمة الجديدة)
challenge icon

التحدي

مبتدئ

أُعطيت شفرة تتضمن تهيئة x وy وz. (لا تحذف هذه lines!)

مهمتك هي استخدام معاملي الزيادة/النقصان لتنفيذ العمليات التالية، بالترتيب التالي:

  1. استخدم معامل الزيادة postfix لإسناد القيمة الحالية لـ x إلى a ثم زد قيمة x.
  2. استخدم معامل النقصان prefix لإنقاص قيمة y وإسناد قيمتها الجديدة إلى b.
  3. استخدم معامل النقصان postfix لإسناد القيمة الحالية لـ z إلى c ثم أنقص قيمة z.

بعد تنفيذ هذه العمليات، اطبع قيم a وb وc وx وy وz في وحدة التحكم بالتنسيق التالي:

a: [value of a]
b: [value of b]
c: [value of c]
x: [value of x]
y: [value of y]
z: [value of z]
مَطلوب تنسيق الإخراج: [محتواك المترجم هنا]

جرّب بنفسك

#include <iostream>

int main() {
    int x = 10;
    int y = 20;
    int z = 30;
    
    int a, b, c;
    
    // اكتب الكود الخاص بك أدناه
    
    
    // لا تغيّر الأسطر أدناه
    std::cout << "a: " << a << std::endl;
    std::cout << "b: " << b << std::endl;
    std::cout << "c: " << c << std::endl;
    std::cout << "x: " << x << std::endl;
    std::cout << "y: " << y << std::endl;
    std::cout << "z: " << z << std::endl;
    
    return 0;
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس الأساسيات

تدرّب بنفسك: مترجم C++ عبر الإنترنت