_22Mohamed نشر 7 مارس 2021 أرسل تقرير نشر 7 مارس 2021 دالة يمكن تمرير قيمة لها هذه القيمة عبارة مصفوفة من الاعداد الصحيحة ثم تقوم بإرجاع مجموع جميع خانات الآحاد للأعداد الموجودة في المصفوفة. اقتباس
0 إسلام عبدالعزيز نشر 7 مارس 2021 أرسل تقرير نشر 7 مارس 2021 لحل هذه المشكلة، علينا تقسيمها إلى أجزاء أصغر (سأقوم بإستخدام جافاسكريبت، ولكن خطوات الحل يمكن تنفيذها في أي لغة). أول مشكلة: كيف أجد الآحاد في رقم معين؟ في كل لغات البرمجة، يوجد مفهوم الـ modulus. الـ modulus هو العلامة % وتستخدم لإرجاع الباقي من رقم معين. مثلاً، إذا أردنا أن نحصل على الآحاد من الرقم 12345، يمكننا أن نفعل هذا: 12345 % 10 // => 5 56789 % 10 // => 9 تم حل أول مشكلة، ويمكننا الآن الحصول على الآحاد بسهولة. الآن نريد أن نكتب دالة لتقوم بعمل حلقة حول المصفوفة المعطاه، وجمع الآحاد من الأرقام الموجودة بها. في هذه الحالة، يمكننا إستخدام reduce، وهي method جاهزة تعمل على المصفوفات في جافاسكريبت. تقوم هذه الدالة بأخذ مدخلين. المدخل الآخير هو القيمة التي سنبدأ بها الحلقة. فمثلاً، سنقوم بجمع أرقام الآن، لذا سنبدأ بـصفر. المدخل الأول، هو عبارة عن دالة، تأخذ مدخلين أيضاً. الأول هو المجموع الحالي الذي وصلنا إليه، والثاني هو العنصر الحالي. function getOnesDigit(n) { return n % 10; } function sumRightDigits(digits) { return digits.reduce((total, current) => total + getOnesDigit(current), 0); } sumRightDigits([10, 21, 3, 8, 9, 11, 44, 62, 100]); // => 28 1 اقتباس
0 سمير عبود نشر 7 مارس 2021 أرسل تقرير نشر 7 مارس 2021 الفكرة ككل هي في جلب رقم الآحاد لعدد مُعين و نحصل على هذا الرقم بإجراء قسمة إقليدية للعدد على 10 حيث باقي القسمة هو رقم الآحاد مثلاً لنأخذ العدد 62 عندما نقسمه على 10 نتحصل على 6 و باقي قسمة هو 2 و هو الرقم المطلوب. غالباً في لغات البرمجة علامة باقي القسمة هي: % بعد هذه المعلومة تُصبح الأمور واضحة المعالم فكل ما يتبقى لك هو تعريف دالة تستقبل مُعامل واحد بالشكل التالي مثلاً بلغة بايثون: def sumRightDigit(numbers): تعريف متغير داخل الدالة لتخزين المجموع و إسناد القيمة 0 له: def sumRightDigit(numbers): sum = 0 عمل حلقة على عناصر المصفوفة و إضافة رقم الآحاد في كل لفة من الحلقة. def sumRightDigit(numbers): sum = 0 for number in numbers: sum += number % 10 في الأخير إرجاع قيمة المُتغير الذي يحمل مجموع الآحاد، ثم إستخدام الدالة: def sumRightDigit(numbers): sum = 0 for number in numbers: sum += number % 10 return sum print(sumRightDigit([10,21,3,8,9,11,44,62,100])) # 28 بنفس الطريقة يُمكننا إستخدام لغة جافاسكربت الفرق فقط في بعض الsyntax: function sumRightDigit(numbers) { sum = 0 for (i in numbers) sum += numbers[i] % 10 return sum } console.log(sumRightDigit([10,21,3,8,9,11,44,62,100])) // 28 إتبع نفس الطريقة في اي لغة تريد. 1 اقتباس
السؤال
_22Mohamed
دالة يمكن تمرير قيمة لها هذه القيمة عبارة مصفوفة من الاعداد الصحيحة ثم تقوم بإرجاع مجموع جميع خانات الآحاد للأعداد الموجودة في المصفوفة.
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.