ماذا تشتري
جزء من قسم الأساسيات في رحلة Swift على Coddy — الدرس 86 من 86.
التحدي
سهلاكتب دالة باسم whatToBuy تأخذ itemNames و itemPrices و budget، وتعيد مصفوفة من أسماء العناصر التي يمكن شراؤها ضمن الميزانية المحددة.
قم بالمرور على العناصر بالترتيب. لكل عنصر، تحقق مما إذا كانت إضافة سعره إلى المجموع الجاري ستبقيك ضمن الميزانية. إذا كان الأمر كذلك، أضف اسم العنصر إلى قائمة التسوق الخاصة بك وقم بتحديث المجموع. إذا كان العنصر سيتجاوز الميزانية، فتخطه واستمر في فحص العناصر المتبقية.
المنطق:
- ابدأ بمجموع جاري قيمته
0.0ومصفوفة نتائج فارغة - قم بالمرور عبر كل عنصر باستخدام الفهرس (index)
- إذا كان المجموع الجاري بالإضافة إلى سعر العنصر الحالي أقل من أو يساوي الميزانية، فأضف اسم العنصر إلى النتيجة وقم بتحديث المجموع الجاري
- إذا كانت إضافة العنصر ستتجاوز الميزانية، فتخطه وانتقل إلى العنصر التالي
- أعد مصفوفة أسماء العناصر التي يمكن تحمل تكلفتها
المعاملات (Parameters):
itemNames([String]): مصفوفة من أسماء العناصرitemPrices([Double]): مصفوفة من الأسعار المقابلة (بنفس طول itemNames)budget(Double): الحد الأقصى للمبلغ الذي يمكن إنفاقه
المخرجات: مصفوفة من أسماء العناصر التي يمكن تحمل تكلفتها ضمن الميزانية، بنفس ترتيب ظهورها ([String])
مثال:
// itemNames: ["Apple", "Bread", "Milk"]
// itemPrices: [2.0, 3.5, 4.0]
// budget: 6.0
// Result: ["Apple", "Bread"]
// (Apple costs 2.0, Bread costs 3.5, total is 5.5 which is within budget)
// (Milk would make total 9.5, which exceeds 6.0, so it's skipped)جرّب بنفسك
func whatToBuy(itemNames: [String], itemPrices: [Double], budget: Double) -> [String] {
// اكتب الكود هنا
}
جميع دروس الأساسيات
4المعاملات - الجزء الأول
المعاملات الحسابيةمعامل باقي القسمةالإسناد المركبمراجعة - عمليات رياضية بسيطةمعاملات المقارنة7أساسيات الإدخال والإخراج
دالة الطباعةتضمين النصوصإدخال ReadLineتحويل الأنواعمراجعة - حتى 120مراجعة - True أو False10الدوال
تعريف دالةالمعاملات والوسائطقيم الإرجاعتسميات الوسائطمراجعة - دالة Sigmaمراجعة - دالة Validationالقيم الافتراضية2المتغيرات
Let مقابل Varتوصيف الأنواع (Type Annotations)الأرقامStringBooleanقواعد التسميةمراجعة - تهيئة المتغيرات5المعاملات - الجزء الثاني
المعاملات المنطقية - الجزء الأولالمعاملات المنطقية - الجزء الثانيمراجعة - المنطق البسيطالمعاملات المنطقية - الجزء الثالثالمعامل الثلاثي (Ternary Operator)8حاسبة تقسيم الفاتورة
رسالة الترحيبالحصول على المدخلات3القيم الاختيارية (Optionals)
ما هي القيم الاختياريةفك القيم باستخدام If Letاستخدام Guard Letمعامل دمج Nilمراجعة - فك القيم بأمان9حلقات التكرار
حلقة For-Inحلقة Whileحلقة Repeat-WhileBreakContinueمراجعة - المضروب (Factorial)النطاقات في حلقات التكرارالحلقات المتداخلةمراجعة - الإدخال الديناميكي (Dynamic Input)