مدرسة جواكاديمي

هنا يمكنك تصفح مدرسة جو اكاديمي، المنهاج، اسئلة، شروحات، والكثير أيضاً

معاملات الزيادة والنقصان القبلية والبعدية ومعاملات الإسناد

الحاسوب - الصف المواد المشتركة أول ثانوي

معاملات الزيادة والنقصان القبلية والبعدية ومعاملات الإسناد

معاملات الزيادة والنقصان القبلية والبعدية

توفر لغة C++معامل الزيادة أو Increment Operator (++)، الذي يقوم بإضافة واحد إلى قيمة المتغير، ومعامل النقصان Decrement Operator (--)، الذي يقوم بإنقاص واحد من قيمة المتغير.

هناك نوعان من معاملات الزيادة والنقصان، هما :

  1. معامل زيادة أو نقصان قبلي(++x,--x) : نعني بالزيادة أو النقصان القبلي إتمام عملية الزيادة بمقدار واحد على قيمة المتغير أو النقصان بمقدار واحد من قيمة المتغير أولا ومن ثم تنفيذ العملية المطلوبة سواءً كانت طباعة أو غيرها من العمليات.
  2. معامل زيادة أو نقصان بعدي(x++, x--) نعني بالزيادة أو النقصان البعدي إتمام العملية المطلوبة أولاً ثم ثانياً إجراء الزيادة بمقدار واحد على قيمة المتغير أو النقصان بمقدار واحد من قيمة المتغير، يوضح البرنامج الآتي مفهوم معامل الزيادة القبلية والبعدية.

معاملات الزيادة والنقصان القبلية والبعدية

وناتج تنفيذ البرنامج هو 

output

في الجملة الأولى يتم حجز موقع بالذاكرة باسم x ويحتوي القيمة 6؛ وموقع آخر باسم y وفيه قيمة مقدارها 2. 

في الجملة التي تليها تم حجز موقعين في الذاكرة لمتغيرين لعددين صحيحين هما z, w.

في الجملة z = ++x يتم زيادة بمقدار واحد على المتغير x  ليصبح 7  ثم يأخذ المتغير z نفس القيمة. 

في الجملة

w = y++

يأخذ المتغير w قيمة المتغير y الأصلية وهي 2 ثم يتم زيادة واحد للمتغير y فتصبح قيمته تساوي 3.

نشاط (2-15):إيجاد ناتج تنفيذ برنامج

بالتعاون مع أفراد مجموعتك اكتب البرنامج الآتي ونفذه:

نشاط 2 - 15

ناتج البرنامج السابق هو: 

نشاط 2 - 15 output

شرح البرنامج:

تم حجز موقع في الذاكرة لعدد صحيح للمتغير a  وخُزنت فيه القيمة 4، ثم حُجِز موقع في الذاكرة لمتغير لعدد صحيح هو b وخُزنت فيه القيمة 0. 

في الجملة  

 cout << --a << endl;

 نقصت قيمة المتغير a بمقدار 1 فتصبح قيمته 3 ومن ثم يتم طباعة هذه القيمة وفي الجملة التي تليها تم طباعة قيمة المتغير a وهي 3.

في الجملة التي تليها تم طباعة المتغير b والذي قيمته 0  ومن ثم نقصت قيمة المتغير بمقدار 1 فأصبح يساوي -1.

وفي الجملة التي تليها تمت طباعة قيمة المتغير b  وهي -1.

بعد إضافة عمليتين جديدتين يجب تحديث قواعد الأولوية في تنفيذ العمليات الحسابية حيث أصبحت كالآتي:

  1.  في حالة وجود الأقواس ()، يتم تنفيذ العمليات التي بداخلها أولاً.
  2. معاملات الزيادة والنقصان القبلية.
  3. الضرب *، والقسمة /، وباقي القسمة %.
  4. الجمع +، والطرح -.
  5. معاملات الزيادة والنقصان البعدية.
  6. في حالة التكافؤ في الأولوية، يتم التنفيذ من اليسار إلى اليمين.

نشاط (2-16): إيجاد قيمة التعابير الحسابية

بالتعاون مع أفراد مجموعتك جد قيم d في  كلاً من التعابير الحسابية الآتية، إذا كانت قيم a=12,b=2,c=1:

      d= ++a % b + --c 

        = ++12 % 2 + --1

        = 13 % 2 + --1

        = 13 % 2 + 0

        = 1 + 0

      = 1

 

 

 

      d= (6 - a--)/(--b * c)

      d= (6 - 12--)/(--2 * 1)

      d= (-6 --)/(--2 * 1)     معاملات الزيادة والنقصان البعدية لا تؤثر على التعبير الحسابي وإنما على قيمة المتغير فقط.

      d= -6/(--2 * 1)

      d= -6/(1 * 1)

      d= -6/1  

      d= -6

 

     

سجل ما توصلت إليه في ملف المجموعة.

معاملات الإسناد: 

معاملات الإسناد تقوم بعملية حسابية مع إسناد قيم للمتغير في وقت واحد، ويبين الجدول الآتي معاملات الإسناد في لغة C++.

معاملات الإسناد