يبدو ان هذا الاختبار صعب لانني اعتدت فيلم الشرح اكثر من مرة ولمدة يومين الاقي صعوبة بتجاوزه. طلبت المساعدة وضحيت بعشر نقاط وزالت في القاع واحتاج للخروج من هذه الحفرة
هل يجب طباعة print مع for-in
ممتاز اقتربت جدا من الحل
تحتاج الى تعديل محتوى جملة الدوران فقط
عليك استخدام sum وحساب المجموع التراكمي ل n ضمن sum
لاحاجة لوجود عداد من اجل جملة الدوران او زيادة قيمة from حيث انك حددت المدى ضمن تعريف for in من from الى to وبذلك ستتم زيادة قيمة from بشكل تلقائي حتى تصل الى to
والمطلوب حساب المجموع ضمن sum وبذلك تحتاج الى تكرار اضافة القيم ضمن sum وهذا لا يتحقق من خلال sum = n حيث بهذه الحالة فان sum ستأخذ في نهاية جملة الدوران اخر قيمة ل n فقط
يمكنك اعادة مشاهدة الدرس للتأكد من طريقة عمل for…in حيث في جملة الدوران تحتاج الى عداد وشرط
1- في هذا التحدي فان قيمة n ستبدأ من قيمة from ثم تزداد بمقدار واحد وتعيد تكرار جملة الدوران وهكذا تتكرر العملية حتى نصل الى الى الشرط وهو عندما تصل قيمة n الى قيمة to
2- نلاحظ ان هذا كله يتم بشكل تلقائي عندما نقوم بتعريف جملة الدوران بهذه الطريقة:
for n in from...to
فلماذا قمت بكتابة from+=1
3- يبقى المطلوب في السؤال وهو ايجاد طريقة لحساب مجموع القيم من from الى to
نلاحظ ان متغير جملة الدوران n يعبر عن هذه القيم فهو يبدأ من from ويزداد الى to لذلك يكفي ايجاد طريقة لنتمكن من جمع كل القيم مع بعضها
4- يتم استخدام طريقة الجمع التراكمي ضمن sum بحيث انه في بداية جملة الدوران ستأخذ sum قيمة n نفسها —ثم في التكرار الجديد لجملة الدوران نقوم بجمع قيمة n الجديدة مع قيمتها القديمة الموجودة ضمن sum ونحتفظ بناتج جمع الكلي ضمن sum وبذلك تكون القيمة ضمن sum تعبر عن مجموع اول رقمين From والرقم الذي يليه
5- بتكرار العملية وفي تكرار لجملة الدوران نقوم بجمع قيمة n مع مجموع القيم السابقة الذي سيكون ضمن sum لنحصل على مجموع القيم الجديد الذي نحفظه من جديد ضمن sum
6- بهذه الطريقة سنحصل على مجموع القيم من from الى to ضمن قيمة sum عند نهاية تنفيذ جملة الدوران وهو المطلوب ضمن السؤال
التحدي البرمجي : تحدي 1 من 1
هل من الممكن تحديد المزيد من المعلومات عن استفسارك
مثلا اذا قمت بجمع القيمة القديمة ل sum مع from وحفظت الناتج مجددا ضمن sum
مثلا في المرة الاول ستكون قيمة sum تساوي 0 وسيتم جمع هذه القيمة مع قيمة from و هي 10 ثم سنقوم بحفظ الناتج ضمن sum مجددا وبذلك تتغير قيمة sum من القيمة الحالية 0 الى القيمة الجديدة 10
وفي جملة الدوران القادمة سيتم جمع القيمة 10 مع قيمة from الجديدة 11 وثم حفظ الناتج في sum اي قيمة sum الجديدة 10 + 11 وتساوي 21 وهكذا مع كل دورة لجملة الدوران