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

count، all?، any?، none?

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

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

تعيد count عدد العناصر التي تستوفي الكتلة:

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

all? تكون true عندما يحقق كل عنصر الشرط المحدد في الكتلة:

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

any? تكون صحيحة عندما يحقق عنصر واحد على الأقل ذلك:

[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

تتوقف الطرائق مبكرًا، إذ تتوقف any? عند أول تطابق، وتتوقف all? عند أول فشل. وهي غير مكلفة.

challenge icon

التحدي

سهل

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

  • لا توجد أي درجة 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 درجات passing ولكن لا توجد درجة كاملة، لذا تكون النتيجة Invalid.

جرّب بنفسك

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

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

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

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

تدرّب بنفسك: مترجم Ruby عبر الإنترنت