يعد العثور على مجموع الأرقام الموجبة في مصفوفة معينة مهمة مهمة في البرمجة. بعد كل شيء ، غالبا ما نحتاج إلى الحصول على نتيجة هي مجموع العناصر الإيجابية للصفيف فقط. يمكن أن يكون هذا مفيدا عند تحليل البيانات أو حل مهمة معينة. في هذه المقالة ، سننظر في عدة طرق لحل هذه المشكلة وتنفيذ هذه الخوارزميات بلغة برمجة.
تتمثل إحدى طرق حل هذه المشكلة في التكرار ببساطة من خلال جميع عناصر المصفوفة وجمع الأرقام الموجبة فقط. في هذه الحالة ، من الضروري الإعلان عن متغير لتخزين مجموع الأرقام الموجبة والتكرار على جميع عناصر المصفوفة. إذا كانت قيمة العنصر الحالي أكبر من الصفر ، فقم بإضافته إلى المبلغ الإجمالي. بعد التكرار من خلال جميع عناصر المصفوفة ، نحصل على مجموع الأرقام الموجبة.
هناك طريقة أخرى لحل المشكلة وهي استخدام حلقة فوريش أو حلقة في التكرار من خلال عناصر المصفوفة. في هذه الحالة ، يمكنك إضافة شرط داخل الحلقة للتحقق من القيمة الموجبة للعنصر وإضافته إلى المبلغ الإجمالي. نتيجة لذلك ، نحصل على مجموع كل الأرقام الموجبة في المصفوفة. يمكن أن يكون هذا النهج أكثر إحكاما وملاءمة لتنفيذ التعليمات البرمجية.
- طرق لإيجاد مجموع الأرقام الموجبة في مصفوفة معينة
- البحث الخطي عن مجموع الأرقام الموجبة
- استخدام العودية لإيجاد مجموع الأرقام الموجبة
- استخدام البرمجة الوظيفية لإيجاد مجموع الأرقام الموجبة
- سؤال وجواب
- كيف يمكنني العثور على مجموع الأرقام الموجبة في صفيف?
- هل يمكن أن تكون الأرقام في المصفوفة سالبة?
- ماذا يحدث إذا لم تكن هناك أرقام موجبة في المصفوفة?
طرق لإيجاد مجموع الأرقام الموجبة في مصفوفة معينة
يمكن استخدام طرق مختلفة للعثور على مجموع الأرقام الموجبة في مصفوفة معينة. وفيما يلي عدد قليل منهم:
طريقة حلقة: حلقة من خلال جميع عناصر المصفوفة وعند كل تكرار تحقق ما إذا كان العنصر هو رقم موجب. إذا كان الأمر كذلك ، فقم بإضافته إلى المبلغ الإجمالي. هذه الطريقة سهلة التنفيذ وفعالة للمصفوفات الصغيرة.
طريقة العودية: بشكل متكرر نذهب من خلال كل عنصر من عناصر المصفوفة والتحقق من ذلك للإيجابية. إذا كان العنصر موجبا ، فقم بإضافته إلى المبلغ الإجمالي. قد تكون هذه الطريقة أكثر ملاءمة للعمل مع المصفوفات الكبيرة ، لأنها تتجنب التكرار على جميع العناصر بشكل صريح.
طريقة تدفق البيانات: باستخدام تدفقات البيانات ، يمكنك تصفية وتحديد الأرقام الموجبة فقط من المصفوفة ، ثم تلخيصها. هذه الطريقة مناسبة تماما للعمل مع القوائم الكبيرة وتسمح لك بإجراء العمليات بشكل متواز وفعال.
أن يأخذ مجموعة وإرجاع مجموع كل العناصر. يمكنك استخدام هذه الوظيفة جنبا إلى جنب مع وظيفة التصفية للعثور على مجموع الأرقام الموجبة فقط.
يعتمد اختيار الطريقة على المهمة المحددة وحجم المصفوفة ومتطلبات الأداء. من المهم أن تأخذ في الاعتبار تفاصيل كل طريقة واختيار الأنسب في كل حالة محددة.
البحث الخطي عن مجموع الأرقام الموجبة
للعثور على مجموع الأرقام الإيجابية في مجموعة معينة س 1 ن ، يمكنك استخدام خوارزمية البحث الخطي.
تتكون خوارزمية البحث الخطي من استعراض جميع عناصر المصفوفة والتحقق من كل منها بحثا عن الإيجابية. إذا كان العنصر موجبا ، يتم إضافته إلى المجموع.
لتنفيذ بحث خطي عن مجموع الأرقام الموجبة ، يمكنك استخدام الكود الكاذب التالي:
1. تهيئة مجموع المتغير بالقيمة 0.
2. تهيئة المتغير ط مع القيمة 1.
3. بينما أنا < = ن ، نفذ الخطوات 4-7.
4. إذا س [أنا] > 0 ، ثم تنفيذ الخطوة 5 ، وإلا انتقل إلى الخطوة 6.
5. أضف س [أنا] لتلخيص.
6. زيادة بنسبة 1.
7. Вернуть sum.
Пример реализации на языке C++:
#include
int linearSearchSum(int x[], int n) {
int sum = 0;
for (int i = 0; i < n; i++) {
if (x[i] > 0) {
sum += x[i];
}
}
return sum;
}
int main() {
int x[] = {1, -2, 3, -4, 5};
int n = sizeof(x) / sizeof(x[0]);
int sum = linearSearchSum(x, n);
std::cout << "Сумма положительных чисел: " << sum << std::endl;
return 0;
}
В результате выполнения данного кода будет выведено:
Сумма положительных чисел: 9
وبالتالي ، فإن البحث الخطي يجعل من الممكن العثور بكفاءة على مجموع الأرقام الموجبة في مصفوفة معينة.
استخدام العودية لإيجاد مجموع الأرقام الموجبة
المصفوفة هي بنية بيانات تخزن عددا معينا من العناصر بترتيب معين. في مجموعة معينة س [1..ن] من الممكن أن يكون لديك أرقام موجبة وسالبة. المهمة هي العثور على مجموع كل الأرقام الموجبة في مصفوفة معينة.
يمكن استخدام نهج تكراري لحل هذه المشكلة. العودية هي خاصية دالة لاستدعاء نفسها. في حالتنا ، يمكننا إنشاء دالة تكرارية تبحث في جميع عناصر المصفوفة وتحقق مما إذا كان العنصر الحالي رقما موجبا.
مثال على وظيفة متكررة في جافا سكريبت:
حساب الدالة (صفيف ، فهرس) {
// الحالة الأساسية: إذا وصلنا إلى نهاية المصفوفة ، فإننا نعود إلى الصفر
إذا (فهرس > = صفيف.الطول) {
العودة 0;
}
// Рекурсивный случай: суммируем текущий элемент, если он положительный, и вызываем функцию для следующего элемента
if (array[index] > 0) {
return array[index] + calculateSum(array, index + 1);
} else {
return calculateSum(array, index + 1);
}
}
var array = [1, -2, 3, -4, 5];
var sum = calculateSum(array, 0);
console.log(sum); // Вывод: 9
في هذا المثال ، نقوم بإنشاء دالة حسابية تأخذ مصفوفة وفهرس العنصر الحالي كوسيطات. في بداية الدالة ، نتحقق من الحالة الأساسية ، إذا كان الفهرس أكبر من أو يساوي طول المصفوفة ، فإننا نعود إلى الصفر.
في الحالة العودية ، نتحقق مما إذا كان العنصر الحالي رقما موجبا. إذا كانت الإجابة بنعم ، فإننا نضيفها إلى المجموع وندعو وظيفة كالكولاتيسوم للعنصر التالي من المصفوفة. إذا كان العنصر الحالي سالبا ، فإننا ببساطة نسمي دالة الحساب للعنصر التالي.
ثم نقوم بإنشاء مصفوفة [1, -2, 3, -4, 5] ونسمي دالة الحساب ، بدءا من العنصر الأول (الفهرس 0). نتيجة لذلك ، نحصل على مجموع الأرقام الموجبة في المصفوفة ، وهو 9.
يستخدم المثال أعلاه جافا سكريبت ، ولكن يمكن تطبيق نهج مماثل في لغات البرمجة المختلفة باستخدام التركيبات النحوية المناسبة للعمل مع المصفوفات والوظائف.
استخدام البرمجة الوظيفية لإيجاد مجموع الأرقام الموجبة
البرمجة الوظيفية هي نموذج برمجة يعتمد فيه البرنامج على وظائف في فهمهم الرياضي. أصبح هذا النموذج شائعا بشكل متزايد في البرمجة الحديثة نظرا لوحدته وسهولة فهمه.
أحد تطبيقات البرمجة الوظيفية هو إيجاد مجموع الأرقام الموجبة في مصفوفة معينة.
عادة ما تتضمن البرمجة ذات النمط الوظيفي استخدام وظائف ذات ترتيب أعلى وتعبيرات لامدا وعمليات القائمة. إذا وجدت مجموع الأرقام الموجبة في صفيف ، يمكنك استخدام الخوارزمية التالية:
- إنشاء وظيفة تأخذ مجموعة من الأرقام كوسيطة.
- استخدم وظيفة ذات ترتيب أعلى مثل مرشح لتصفية الأرقام الموجبة فقط.
- قم بتطبيق وظيفة التخفيض للعثور على مجموع الأرقام الموجبة.
- إرجاع المبلغ المستلم.
مثال على شفرة جافا سكريبت باستخدام البرمجة الوظيفية للعثور على مجموع الأرقام الموجبة في مصفوفة معينة:
| أرقام كونست = [1, -2, 3, -4, 5]; |
| الأرقام الإيجابية = الأرقام . تصفية (الأسطوانات = > الأسطوانات > 0); |
| مجموع ثابت = أرقام إيجابية.تخفيض ((المجموع ، الأسطوانات) = > المجموع + الأسطوانات ، 0); |
| وحدة التحكم.سجل (مجموع) ؛ / / النواتج 9 |
يوضح هذا المثال كيف يسمح لك استخدام البرمجة الوظيفية بحل مشكلة العثور على مجموع الأرقام الموجبة في صفيف بشكل موجز وفعال.
إن استخدام البرمجة الوظيفية للعثور على مجموع الأرقام الموجبة في مصفوفة معينة يجعل من السهل فهم الكود والحفاظ عليه ، ويجعله أكثر مرونة ويحسن أدائه. كما يسمح لك باستخدام قوة وتعبير البرمجة الوظيفية لحل المشكلات المعقدة بأقل قدر من التعليمات البرمجية.
سؤال وجواب
كيف يمكنني العثور على مجموع الأرقام الموجبة في صفيف?
للعثور على مجموع الأرقام الموجبة في مصفوفة ، تحتاج إلى تصفح كل عنصر من عناصر المصفوفة والتحقق مما إذا كان موجبا. إذا كان الأمر كذلك ، فقم بإضافة قيمته إلى المجموع. بعد المرور عبر جميع العناصر ، سيحتوي المجموع على مجموع كل الأرقام الموجبة في المصفوفة.
هل يمكن أن تكون الأرقام في المصفوفة سالبة?
نعم ، يمكن أن تكون الأرقام في المصفوفة سالبة. ستعمل خوارزمية العثور على مجموع الأرقام الموجبة فقط مع القيم الموجبة ، لذلك سيتم تجاهل الأرقام السالبة.
ماذا يحدث إذا لم تكن هناك أرقام موجبة في المصفوفة?
إذا لم تكن هناك أرقام موجبة في المصفوفة ، فسيكون مجموع الأرقام الموجبة صفرا. نظرا لأن كل تكرار للحلقة يتحقق من إيجابية الرقم ، إذا لم تكن هناك أرقام موجبة ، فلن يتم تغيير متغير المجموع وسيظل مساويا للصفر.