اذهب إلى المحتوى

Recommended Posts

  • 0
نشر

وظيفة الدالة G هي حساب قيم معينة حسب قيم a و b الممررة للدالة عند الاستدعاء، وتستخدم شروطًا وحلقات تكرارية لتحديث المتغيرات وإرجاع النتائج.

بداخلها يتم تعيين المتغير T إلى 0 والمتغير M إلى 1.

في الحلقة الأولى الخارجية يحدث تكرار للحلقة a مرات أي حسب قيمة a، ثم تعيين قيمة "i" إلى كل قيمة في نطاق من 1 إلى a.

  • في الحلقة الثانية يحدث تكرار لها b+1 مرات بمعنى قيمة b مضاف لها 1، ثم تعيين قيمة j إلى كل قيمة في نطاق من 1 إلى b+1.

وداخل تلك الحلقة أي الحلقة الثانية الداخلية يوجد شرط  "j % 2 != 0" ويعني (هل j غير زوجي؟).

إن كان الشرط صحيحًا، يتم تنفيذ الكود داخل الشرط، وتحديث المتغيرات:

  • يتم تحديث قيمة i إلى i+j.
  • يتم تحديث قيمة T إلى T+i+j.
  • يتم تحديث قيمة M إلى M+T//2+j%i.

بعد ذلك إرجاع القيم i, j, T, M من الدالة بواسطة return.

للتوضيح، لنفترض أن

 a = 2 و b = 3

الحلقة الخارجية ستُكرر مرتين (لأن a = 2).

والحلقة الداخلية ستُكرر أربع مرات في كل تكرار من الحلقة الخارجية (لأن b+1 = 4).

بالتالي سيتم تنفيذ الكود داخل الحلقة الداخلية 8 مرات (2 تكرارات للحلقة الخارجية * 4 تكرارات للحلقة الداخلية).

  • 0
نشر

الدالة G(a, b) تقوم بأخذ معاملين a و b. ومن ثم تقوم بتعريف المتغيرين T و M في البداية، حيث T = 0 و M = 1.

بعد ذلم يتم تنفيذ الحلقات التكرارية حيث يتم إستخدام حلقتين تكراريتين متداخلتين:

حيث الحلقة الأولى تتكرر من i = 1 إلى a - 1 حيث range تقم بإرجاع قيمة تكرار من  حتي a-1 .

و الحلقة الثانية  تتكرر من j = 1 إلى b  حيث أن range تقوم بالتكرار من 1  حتي b+1-1 .

بعد ذلك يتم التحقق م الشرط if (j % 2 != 0) أي يتححق مما إذا كانت j عددًا فرديا فإذا كانت j فردية يتم تنفيذ الكود داخل الجملة الشرطية وهو :

  • i = i + j: يتم تحديث قيمة i بإضافة j إليها.
  • T = T + i + j: يتم تحديث T بإضافة i و j إلى قيمته الحالية.
  • M = M + T // 2 + j % i: يتم تحديث M بإضافة T // 2 إلى قيمته الحالية، إضافة إلى باقي قسمة j على i.

بعد ذلك تقوم الدالة بإرجاع i, j, T, و M بعد انتهاء الحلقتين.

لا يمكن الجزم بما تفعله الدالة تماما فكل ما تفعله هي أنها تقوم بتغير الأرقام بناء على شروط معينة ولا يوجد أى معني لتغير الأرقام.

  • 0
نشر

يقوم الكود بتعريف دالة G(a, b) تأخذ مدخلين a و b وترجع أربعة قيم على شكل Tuple والدالة G(a, b) تقوم بمعالجة الأعداد الفردية من 1 إلى b وتؤثر هذه الأعداد على قيمة i التي تتغير داخل الحلقة الخارجية التي تعتمد على a ثم تجري عمليات حسابية على i و j و T و M وترجع قيمها النهائية لاحظ التالي:

  • الحلقة الخارجية: تتكرر من i = 1 إلى a - 1.
  • الحلقة الداخلية: تتكرر من j = 1 إلى b.

الشرط داخل الحلقة الداخلية يقول أنه إذا كان j عددا فرديا فسيتم تنفيذ العمليات الحسابية التالية:

  • زيادة قيمة i بمقدار j.
  • زيادة قيمة T بمقدار i + j (بعد تحديث i).
  • تحديث قيمة M باستخدام الصيغة M + T // 2 + j % i.

وعند الإرجاع أي بعد انتهاء الحلقات ترجع الدالة قيم i و j و T و M النهائية.

لنأخذ مثالا عند استدعاء G(2, 3) الحلقة الخارجية ستتكرر مرة واحدة فقط عندما يكون i = 1 والحلقة الداخلية تتكرر ثلاث مرات كالآتي:

  • j = 1: i يصبح 2، T يصبح 3، M يصبح 2.
  • j = 2: لا شيء يحدث لأن j زوجي.
  • j = 3: i يصبح 5، T يصبح 11، M يصبح 11.

ثم ترجع الدالة (5, 3, 11, 11) وفي استدعاء G(2, 5) يتم نفس الشيء لكن الحلقة الداخلية ستتكرر خمس مرات، وترجع الدالة (10, 5, 26, 29).

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...