تقطيع المصفوفات باستخدام النطاقات
جزء من قسم الأساسيات في رحلة Ruby على Coddy. الدرس 69 من 88.
أحيانًا تحتاج إلى استخراج جزء من مصفوفة بدلًا من الوصول إلى عناصر فردية. تتيح لك Ruby اقتطاع المصفوفات باستخدام النطاقات، مما ينشئ مصفوفة جديدة تحتوي على العناصر التي تحددها فقط.
لتقسيم مصفوفة باستخدام نطاق، ضع النطاق بين أقواس مربعة:
numbers = [10, 20, 30, 40, 50]
slice = numbers[1..3]
puts slice # المخرجات: 20, 30, 40يشمل النطاق 1..3 العناصر عند الفهارس 1 و2 و3. تذكّر أن فهارس المصفوفة تبدأ من 0، لذا فإن الفهرس 1 هو العنصر الثاني.
يمكنك أيضًا استخدام النطاق ذي النقاط الثلاث (...) لاستبعاد الفهرس الأخير:
letters = ["a", "b", "c", "d", "e"]
slice = letters[0...3]
puts slice # المخرجات: a, b, cهنا، تشمل 0...3 الفهارس 0 و1 و2، لكنها تتوقف قبل الفهرس 3.
تعمل الفهارس السالبة مع النطاقات أيضًا. وهي تعدّ من نهاية المصفوفة، حيث يكون -1 هو العنصر الأخير:
colors = ["red", "green", "blue", "yellow"]
slice = colors[1..-1]
puts slice # المخرجات: green, blue, yellowيستخرج هذا كل شيء بدءًا من الفهرس 1 وحتى العنصر الأخير، وهو مفيد عندما تريد تخطي العنصر الأول دون معرفة طول المصفوفة.
التحدي
سهلاقرأ مدخلين:
- سطرًا واحدًا يحتوي على أعداد صحيحة مفصولة بفواصل (مثلًا،
10,20,30,40,50,60,70) - تحديدًا للنطاق بالتنسيق
start..endأوstart...end(مثلًا،2..5أو1...4)
قسّم المدخل الأول إلى مصفوفة من الأعداد الصحيحة. ثم استخدم النطاق من المدخل الثاني لاقتطاع جزء من المصفوفة، واطبع كل عنصر من الجزء المقتطع في سطر منفصل.
سيستخدم مدخل النطاق إما نقطتين (..) لتضمين فهرس النهاية، أو ثلاث نقاط (...) لاستبعاده.
على سبيل المثال، إذا كان المدخلان 10,20,30,40,50,60,70 و2..5، فينبغي أن يكون الناتج:
30
40
50
60إذا كان المدخلان 5,10,15,20,25,30 و0...3، فينبغي أن يكون الناتج:
5
10
15إذا كان المدخلان 100,200,300,400,500 و1..-1، فينبغي أن يكون الناتج:
200
300
400
500إذا كان المدخلان a,b,c,d,e,f و-3..-1، فينبغي أن يكون الناتج:
d
e
fجرّب بنفسك
# اقرأ القيم المفصولة بفواصل
input_values = gets.chomp
# اقرأ مواصفات النطاق
range_spec = gets.chomp
# TODO: اكتب الكود الخاص بك أدناه
# 1. قسّم input_values إلى مصفوفة
# 2. حلّل range_spec لتحديد البداية والنهاية، وما إذا كنت ستستخدم .. أو ...
# 3. استخرج شريحة من المصفوفة باستخدام النطاق المناسب
# 4. اطبع كل عنصر من الشريحة في سطر مستقليتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
4المعاملات - الجزء الثاني
المعاملات المنطقية - الجزء الأولالمعاملات المنطقية - الجزء الثانيمراجعة - المنطق البسيطالمعاملات المنطقية - الجزء الثالثالمعاملات المنطقية - الجزء الرابع7حاسبة تقسيم الفاتورة
رسالة الترحيبالحصول على مدخلات المستخدم13المصفوفات المتقدمة
تقطيع المصفوفات باستخدام النطاقاتتقطيع المصفوفات باستخدام الفهارسمعاملات المصفوفاتدالة Include?2المتغيرات وأنواع البيانات
الأرقام والمتغيراتنوع البيانات Stringنوع البيانات Booleanنوع البيانات Symbolالتحقق من أنواع البياناتقواعد التسميةملخص - إنشاء المتغيرات8الحلقات التكرارية
حلقة For مع النطاقاتحلقة WhileBreakNextمراجعة - المضروب (Factorial)حلقة Timesحلقة Untilالحلقات المتداخلةمراجعة - الإدخال الديناميكي (Dynamic Input)3المعاملات - الجزء الأول
المعاملات الحسابيةمعامل باقي القسمةاختصارات العمليات الحسابيةمراجعة - العمليات الرياضية البسيطةمعاملات المقارنة6أساسيات الإدخال والإخراج
الإخراج باستخدام putsالإخراج باستخدام print و pالإخراج باستخدام المتغيراتالإدخال باستخدام getsدالة Chompتحويل أنواع البياناتمراجعة - حاسبة العمرمراجعة - صح أم خطأتدرّب بنفسك: مترجم Ruby عبر الإنترنت