Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

معاملات المتسلسلات

جزء من قسم الأساسيات في رحلة Swift على Coddy — الدرس 75 من 86.

توفر Swift خصائص وطرقًا مدمجة مفيدة تتيح لك جمع المعلومات حول المصفوفات بسرعة دون الحاجة إلى كتابة حلقات تكرارية. تساعدك معاملات التسلسل هذه على إجراء الحسابات الشائعة بأقل قدر من الكود.

تعيد خاصية count عدد العناصر في المصفوفة:

let scores = [85, 92, 78, 90]
print(scores.count)  // 4

بالنسبة للمصفوفات الرقمية، توفر Swift طرقاً للعثور على أصغر وأكبر القيم. تُرجع الطريقتان min() و max() قيمًا اختيارية (optionals) لأن المصفوفة الفارغة لا تحتوي على حد أدنى أو أقصى:

let temperatures = [72, 68, 75, 80, 65]

if let lowest = temperatures.min() {
    print(lowest)  // 65
}

if let highest = temperatures.max() {
    print(highest)  // 80
}

لحساب مجموع كل العناصر، استخدم الأسلوب reduce. فهو يجمع كل القيم بدءاً من قيمة أولية:

let prices = [10, 20, 30]
let total = prices.reduce(0, +)
print(total)  // 60

تعتبر الـ 0 هي القيمة الابتدائية، و + تخبر Swift بإضافة كل عنصر إلى المجموع التراكمي. ومن خلال دمج هذه العوامل، يمكنك بسهولة حساب المتوسط:

let grades = [85, 90, 78, 92]
let average = grades.reduce(0, +) / grades.count
print(average)  // 86
challenge icon

التحدي

سهل

اكتب دالة باسم analyzeScores تأخذ scores وتعيد سلسلة نصية ملخصة تحتوي على إحصائيات حول المصفوفة.

استخدم معاملات التسلسل (sequence operators) لحساب العدد، والحد الأدنى، والحد الأقصى، والمتوسط للدرجات، ثم قم بتنسيقها في سلسلة نصية ملخصة واحدة.

المنطق:

  1. احصل على العدد الإجمالي للعناصر باستخدام count
  2. ابحث عن القيمة الصغرى باستخدام min()
  3. ابحث عن القيمة الكبرى باستخدام max()
  4. احسب المجموع باستخدام reduce(0, +) واقسمه على العدد للحصول على المتوسط
  5. أعد سلسلة نصية منسقة تحتوي على جميع الإحصائيات

المعاملات:

  • scores ([Int]): مصفوفة من درجات صحيحة (مضمون وجود عنصر واحد على الأقل)

المخرجات: سلسلة نصية منسقة تحتوي على الإحصائيات (String). التنسيق: "Count: X, Min: X, Max: X, Avg: X"

مثال: إذا كانت scores هي [85, 90, 78, 92]، يجب أن تعيد الدالة "Count: 4, Min: 78, Max: 92, Avg: 86".

ملاحظة: يجب حساب المتوسط باستخدام القسمة الصحيحة (بدون منازل عشرية).

ورقة مرجعية

توفر Swift خصائص وطرقاً مدمجة للتعامل مع المصفوفات دون الحاجة لكتابة حلقات تكرار.

تعيد الخاصية count عدد العناصر:

let scores = [85, 92, 78, 90]
print(scores.count)  // 4

تجد الطريقتان min() و max() أصغر وأكبر القيم. وهما تعيدان قيم اختيارية (optionals) لأن المصفوفات الفارغة ليس لها حد أدنى أو أقصى:

let temperatures = [72, 68, 75, 80, 65]

if let lowest = temperatures.min() {
    print(lowest)  // 65
}

if let highest = temperatures.max() {
    print(highest)  // 80
}

تقوم الطريقة reduce بحساب المجموع عن طريق دمج جميع القيم بدءاً من قيمة أولية:

let prices = [10, 20, 30]
let total = prices.reduce(0, +)
print(total)  // 60

احسب المتوسط من خلال دمج reduce مع count:

let grades = [85, 90, 78, 92]
let average = grades.reduce(0, +) / grades.count
print(average)  // 86

جرّب بنفسك

func analyzeScores(scores: [Int]) -> String {
    // اكتب الكود هنا
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس الأساسيات