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

دوال النطاق

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

تأتي النطاقات (Ranges) مع دوال (methods) مفيدة تغنيك عن كتابة الحلقات التكرارية (loops) يدوياً.

يتحقق include? مما إذا كانت القيمة تقع ضمن النطاق:

range = 1..10
puts range.include?(5)   # true
puts range.include?(11)  # false

تعمل كل من min و max و size مباشرة على النطاقات (ranges):

puts (1..10).min   # 1
puts (1..10).max   # 10
puts (1..10).size  # 10

تكرر step عبر النطاق بالقفز بمقدار ثابت، وهي مفيدة عندما لا تريد كل قيمة:

(0..10).step(2) do |n|
  puts n
end
# 0, 2, 4, 6, 8, 10

و each تعمل تماماً كما في المصفوفات:

(1..3).each { |n| puts n * n }
# 1
# 4
# 9
challenge icon

التحدي

سهل

يتم إعطاؤك نطاقاً شاملاً (inclusive range) وقائمة من التخمينات. قم بحساب نتيجة التخمينات وتلخيص النطاق.

اقرأ سطرين:

  1. عددين صحيحين مفصولين بمسافة: start و end_value
  2. قائمة من التخمينات الصحيحة مفصولة بفاصلة

باستخدام النطاق start..end_value، قم بطباعة:

  1. Hit: <n>، حيث n هو عدد التخمينات التي تقع ضمن النطاق (استخدم include?)
  2. Span: <n>، حيث n هو size الخاص بالنطاق
  3. Multiples of 3 sum: <n>، حيث n هو مجموع كل مضاعفات العدد 3 في النطاق (استخدم step بدءاً من أول مضاعف للعدد 3 عند أو بعد start)

بالنسبة للمدخلات 1 10 في السطر الأول و 3,5,11,7,-2 في السطر الثاني، يكون المخرج هو:

Hit: 3
Span: 10
Multiples of 3 sum: 18

(الضربات (Hits): 3، 5، 7. مضاعفات العدد 3 في 1..10 هي: 3+6+9 = 18.)

ورقة مرجعية

طرق Range المفيدة:

range = 1..10
range.include?(5)  # صحيح (true)
range.min          # 1
range.max          # 10
range.size         # 10

تكرر step عبر القفز بمقدار ثابت:

(0..10).step(2) { |n| puts n }
# 0, 2, 4, 6, 8, 10

تعمل each تماماً كما هو الحال في المصفوفات:

(1..3).each { |n| puts n * n }

جرّب بنفسك

start, end_value = gets.chomp.split.map(&:to_i)
guesses = gets.chomp.split(",").map(&:to_i)

# للمراجعة: عدد الإصابات عبر include?، النطاق عبر size، مجموع مضاعفات 3 عبر step
quiz iconاختبر نفسك

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

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