تحدي: مجموع الأرقام
جزء من قسم Fundamentals في رحلة Dart على Coddy — الدرس 93 من 94.
التحدي
سهلفي هذا التحدي، ستقوم بإنشاء دالة تحسب مجموع الأرقام في قائمة بناءً على شروط معينة.
لديك قائمة من الأعداد الصحيحة، وتحتاج إلى إكمال الدالة sumWithCondition التي تجمع فقط الأرقام التي تستوفي معايير محددة.
يجب أن تقوم الدالة بما يلي:
- حساب مجموع كل الأرقام في القائمة التي تكون أكبر من قيمة
threshold - التوقف عن إضافة الأرقام فوراً بعد أن يتجاوز المجموع قيمة
maxSum(قد يكون المجموع النهائي أكبر منmaxSum) - إرجاع المجموع النهائي
هام: تتوقف الدالة عن إضافة الأرقام بعد إضافة رقم يجعل المجموع يتجاوز maxSum. وهذا يعني أن النتيجة النهائية يمكن أن تكون أكبر من maxSum.
مثال: إذا كانت الأرقام الأكبر من threshold هي [15, 20, 25, 30] و maxSum هو 50:
- إضافة 15: sum = 15 (استمرار)
- إضافة 20: sum = 35 (استمرار)
- إضافة 25: sum = 60 (يتجاوز 50، لذا توقف هنا)
- النتيجة: 60 (وليس 50)
جرّب بنفسك
void main() {
// حالات الاختبار
List<int> numbers = [5, 10, 15, 20, 25, 30];
// جمع الأرقام الأكبر من 12، بحد أقصى للمجموع 50
int result = sumWithCondition(numbers, 12, 50);
print('Sum of numbers > 12 (max 50): $result');
// جمع الأرقام الأكبر من 8، بحد أقصى للمجموع 100
result = sumWithCondition(numbers, 8, 100);
print('Sum of numbers > 8 (max 100): $result');
}
// TODO: أكمل هذه الدالة لجمع الأرقام بناءً على الشروط
int sumWithCondition(List<int> numbers, int threshold, int maxSum) {
int sum = 0;
// TODO: قم بالمرور عبر قائمة الأرقام
// TODO: أضف الأرقام الأكبر من العتبة (threshold) فقط إلى المجموع
// TODO: توقف عن الإضافة إذا تجاوز المجموع الحد الأقصى (maxSum)
return sum;
}جميع دروس Fundamentals
4المعاملات - الجزء الثاني
معاملات المقارنةالمعامل المنطقي ANDالمعامل المنطقي ORالمعامل المنطقي NOTمعاملات فحص النوعملخص - إجراء المقارنات7التعامل مع النصوص (Strings)
دمج النصوص (String Concatenation)تضمين النصوص (String Interpolation)النصوص متعددة الأسطر (Multi-line Strings)خصائص النصوص (String Properties)دوال النصوص الأساسية (String Methods)10المجموعات - أساسيات الخرائط
ما هي الخرائط؟إنشاء خريطةالوصول إلى القيم عبر المفتاحأزواج المفتاح والقيمةالحصول على حجم الخريطةالحصول على المفاتيحالحصول على القيمالتحقق من وجود مفتاح2المتغيرات وأنواع البيانات الأساسية
ما هي المتغيرات؟النصوص (Strings)الأعداد الصحيحة (int)الأعداد العشرية (double)القيم المنطقية (bool)استنتاج النوع باستخدام 'var'المتغيرات النهائية (Final)المتغيرات الثابتة (Constant)قواعد التسميةأساسيات الـ Null Safetyملخص - التصريح عن المتغيرات8مسار التحكم - الحلقات التكرارية
حلقة 'for' التكراريةحلقة 'while' التكراريةحلقة 'do-while' التكراريةاستخدام 'break' في الحلقات التكراريةاستخدام 'continue' في الحلقات التكراريةملخص - تكرار الكود البرمجي3المعاملات - الجزء الأول
المعاملات الحسابيةالقسمة الصحيحةمعامل باقي القسمة (Modulo)الزيادة والنقصاناختصارات التعيينملخص - الحسابات البسيطة6تدفق التحكم - اتخاذ القرار
جملة 'if'جملة 'else'جملة 'else if'ملخص - القرارات البسيطةجمل 'if' المتداخلةجملة 'switch'9المجموعات - أساسيات القوائم
ما هي القوائم؟إنشاء قائمةالوصول عبر الفهرسالحصول على طول القائمةإضافة عناصرإزالة عناصرالتحقق مما إذا كانت القائمة فارغةالتكرار عبر القائمة