معاملات المصفوفات
جزء من قسم الأساسيات في رحلة Ruby على Coddy — الدرس 71 من 88.
توفر لغة Ruby معاملات خاصة تتيح لك دمج المصفوفات ومقارنتها ومعالجتها بطرق قوية. تجعل هذه المعاملات من السهل العمل مع مصفوفات متعددة في وقت واحد.
يقوم العامل + بدمج مصفوفتين في مصفوفة جديدة:
a = [1, 2, 3]
b = [4, 5, 6]
combined = a + b
puts combined # المخرجات: 1, 2, 3, 4, 5, 6يقوم عامل الـ - بإزالة العناصر من المصفوفة الأولى التي تظهر في المصفوفة الثانية:
all_numbers = [1, 2, 3, 4, 5]
to_remove = [2, 4]
result = all_numbers - to_remove
puts result # المخرجات: 1, 3, 5يقوم عامل التشغيل & بإرجاع العناصر المشتركة بين كلا المصفوفتين (التقاطع):
a = [1, 2, 3, 4]
b = [3, 4, 5, 6]
common = a & b
puts common # المخرجات: 3, 4يقوم عامل التشغيل | بدمج المصفوفات وإزالة التكرارات (الاتحاد):
a = [1, 2, 3]
b = [3, 4, 5]
union = a | b
puts union # المخرجات: 1, 2, 3, 4, 5كل هذه العمليات تُنشئ مصفوفات جديدة وتترك المصفوفات الأصلية دون تغيير.
التحدي
سهلاقرأ سطرين من المدخلات، يحتوي كل منهما على أعداد صحيحة مفصولة بفاصلة:
- المصفوفة الأولى (على سبيل المثال،
1,2,3,4,5) - المصفوفة الثانية (على سبيل المثال،
3,4,5,6,7)
قم بإجراء العمليات التالية واطبع النتائج، كل منها في سطر مستقل:
- اطبع كل عنصر من عناصر الدمج (concatenation) لكلتا المصفوفتين (باستخدام
+) - اطبع
---كفاصل - اطبع كل عنصر من عناصر الفرق (difference) (المصفوفة الأولى ناقص الثانية، باستخدام
-) - اطبع
---كفاصل - اطبع كل عنصر من عناصر التقاطع (intersection) (العناصر المشتركة، باستخدام
&) - اطبع
---كفاصل - اطبع كل عنصر من عناصر الاتحاد (union) (مدمجة بدون تكرار، باستخدام
|)
على سبيل المثال، إذا كانت المدخلات هي 1,2,3,4,5 و 3,4,5,6,7، يجب أن تكون المخرجات:
1
2
3
4
5
3
4
5
6
7
---
1
2
---
3
4
5
---
1
2
3
4
5
6
7إذا كانت المدخلات هي 10,20,30 و 30,40,50، يجب أن تكون المخرجات:
10
20
30
30
40
50
---
10
20
---
30
---
10
20
30
40
50إذا كانت المدخلات هي 5,10,15 و 1,2,3، يجب أن تكون المخرجات:
5
10
15
1
2
3
---
5
10
15
---
---
5
10
15
1
2
3ورقة مرجعية
يوفر Ruby معاملات خاصة لدمج المصفوفات ومقارنتها ومعالجتها:
يقوم المعامل + بربط مصفوفتين معاً:
a = [1, 2, 3]
b = [4, 5, 6]
combined = a + b # [1, 2, 3, 4, 5, 6]يقوم المعامل - بإزالة العناصر من المصفوفة الأولى التي تظهر في المصفوفة الثانية:
all_numbers = [1, 2, 3, 4, 5]
to_remove = [2, 4]
result = all_numbers - to_remove # [1, 3, 5]يعيد المعامل & التقاطع (العناصر المشتركة):
a = [1, 2, 3, 4]
b = [3, 4, 5, 6]
common = a & b # [3, 4]يعيد المعامل | الاتحاد (مدمجة بدون تكرار):
a = [1, 2, 3]
b = [3, 4, 5]
union = a | b # [1, 2, 3, 4, 5]تقوم كل هذه المعاملات بإنشاء مصفوفات جديدة وتترك المصفوفات الأصلية دون تغيير.
جرّب بنفسك
# قراءة مصفوفات المدخلات
input1 = gets.chomp.split(',').map(&:to_i)
input2 = gets.chomp.split(',').map(&:to_i)
# TODO: اكتب كودك أدناه
# قم بإجراء العمليات التالية:
# 1. الدمج باستخدام +
# 2. الفرق باستخدام -
# 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تحويل أنواع البياناتمراجعة - حاسبة العمرمراجعة - صح أم خطأ