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

count، all?، any?، none?

جزء من قسم المنطق وتدفق العمليات في رحلة Ruby على Coddy — الدرس 24 من 56.

أربع دوال Enumerable صغيرة تجيب على أسئلة حول مجموعة ما دون إجبارك على كتابة حلقة تكرار (loop).

count تُرجع عدد العناصر التي تستوفي الشرط في الكتلة (block):

[1, 2, 3, 4, 5].count { |n| n.even? }   # 2
[1, 2, 3, 4, 5].count                    # 5  (بدون كتلة، العدد الإجمالي)

تكون all? صحيحة (true) عندما يستوفي كل عنصر الشرط الموجود في الكتلة البرمجية (block):

[2, 4, 6].all? { |n| n.even? }    # true
[2, 4, 7].all? { |n| n.even? }    # false

تكون any? صحيحة (true) عندما يتحقق الشرط لعنصر واحد على الأقل:

[1, 2, 3].any? { |n| n.even? }    # true
[1, 3, 5].any? { |n| n.even? }    # false

تكون none? صحيحة عندما لا ينطبق الشرط على أي منها:

[1, 3, 5].none? { |n| n.even? }   # true

تتميز هذه الدوال بخاصية الـ short-circuit، حيث تتوقف any? عند أول تطابق، وتتوقف all? عند أول فشل. فهي غير مكلفة برمجياً.

challenge icon

التحدي

سهل

اقرأ قائمة من درجات الاختبار (أعداد صحيحة) مفصولة بفاصلة. يعتبر الفصل فصلاً ناجحاً صالحاً عندما:

  • none? من الدرجات سالبة (اختبار غير مسجل)
  • all? الدرجات هي 100 على الأكثر
  • any? درجة هي 100 بالضبط (درجة كاملة واحدة على الأقل)
  • ما لا يقل عن 3 درجات هي >= 70 (استخدم count)

اطبع سطراً واحداً بالضبط:

  • Valid: <count> passing عندما تتحقق جميع الشروط الأربعة (count هو عدد الدرجات >= 70)
  • Invalid خلاف ذلك

للمدخلات 72,80,100,65,90: توجد 4 درجات >= 70، ولا توجد درجات سالبة، وجميعها <= 100، وإحداها 100، لذا فإن المخرجات هي Valid: 4 passing.

للمدخلات 72,80,90: توجد 3 درجات ناجحة ولكن لا توجد درجة كاملة، لذا النتيجة هي Invalid.

ورقة مرجعية

أربع طرق من Enumerable تجيب على أسئلة حول مجموعة:

count – تعيد عدد العناصر التي تستوفي الكتلة البرمجية (أو الحجم الإجمالي بدون كتلة):

[1, 2, 3, 4, 5].count { |n| n.even? }  # 2
[1, 2, 3, 4, 5].count                   # 5

all? – تكون true عندما يستوفي كل عنصر الكتلة البرمجية:

[2, 4, 6].all? { |n| n.even? }  # true

any? – تكون true عندما يستوفي عنصر واحد على الأقل الكتلة البرمجية:

[1, 2, 3].any? { |n| n.even? }  # true

none? – تكون true عندما لا يستوفي أي عنصر الكتلة البرمجية:

[1, 3, 5].none? { |n| n.even? }  # true

هذه الطرق تستخدم خاصية الـ short-circuit: تتوقف any? عند أول تطابق، وتتوقف all? عند أول فشل.

جرّب بنفسك

scores = gets.chomp.split(",").map(&:to_i)

# TODO: اجمع بين all? و any? و none? و count لتحديد Valid مقابل Invalid
quiz iconاختبر نفسك

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

جميع دروس المنطق وتدفق العمليات