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

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

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

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

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

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

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

  • صيغة البادئة (Prefix form): تقوم بزيادة/إنقاص قيمة المتغير ثم تُرجع القيمة الجديدة.
  • صيغة اللاحقة (Postfix form): تُرجع القيمة الحالية للمتغير ثم تقوم بزيادته/إنقاصه.

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

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

int a = 5;
int b = ++a;
// b = 6, a = 6 (البادئة: يتم زيادة a أولاً، ثم تأخذ b القيمة الجديدة)

في الحالة الأولى، يتم تعيين القيمة الأصلية لـ x (5) إلى y، ومن ثم تتم زيادة 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. (لا تحذف هذه الأسطر!)

مهمتك هي استخدام معاملات الزيادة والنقصان (increment/decrement operators) لإجراء العمليات التالية، بهذا الترتيب:

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

بعد إجراء هذه العمليات، قم بطباعة قيم a، و b، و c، و x، و y، و z إلى وحدة التحكم (console) بالتنسيق التالي:

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اختبر نفسك

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

جميع دروس Fundamentals