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

التكرار عبر عناصر الـ Vector

جزء من قسم Fundamentals في رحلة R على Coddy — الدرس 63 من 78.

بينما تُعد العمليات الموجهة (vectorized operations) في لغة R قوية، فأنت تحتاج أحياناً إلى معالجة كل عنصر على حدة باستخدام منطق مخصص. تسمح لك حلقة for بالتكرار عبر عناصر المتجه واحداً تلو الآخر.

أبسط طريقة للتكرار عبر متجه (vector) هي التكرار مباشرة على عناصره:

fruits <- c("apple", "banana", "cherry")
for (fruit in fruits) {
  print(fruit)
}

المخرجات:

[1] "apple"
[1] "banana"
[1] "cherry"

في كل تكرار، يأخذ متغير الحلقة fruit قيمة العنصر التالي في المتجه (vector). هذا النهج نظيف وسهل القراءة عندما تحتاج فقط إلى القيم نفسها.

يمكنك الجمع بين التكرار والمنطق الشرطي لمعالجة العناصر بشكل انتقائي:

numbers <- c(3, 8, 2, 10, 5)
for (num in numbers) {
  if (num > 5) {
    print(num)
  }
}

المخرجات:

[1] 8
[1] 10

هذا النمط مفيد عندما تحتاج إلى تطبيق عمليات مختلفة بناءً على قيمة كل عنصر، وهو أمر لا تستطيع العمليات الموجهة (vectorized operations) وحدها التعامل معه دائمًا.

challenge icon

التحدي

سهل

سوف تتلقى سطرين من المدخلات:

  1. قائمة من الأرقام مفصولة بفاصلة (على سبيل المثال، 12,5,18,3,25,8,14)
  2. قيمة العتبة (على سبيل المثال، 10)

باستخدام حلقة for للتكرار عبر عناصر المتجه (vector):

  1. قم بإنشاء متجه من الأرقام المفصولة بفاصلة
  2. قم بالمرور عبر كل عنصر في المتجه
  3. لكل عنصر يكون أكبر من أو يساوي العتبة، قم بطباعة ذلك العنصر باستخدام print()

على سبيل المثال، إذا كانت المدخلات هي:

4,15,8,22,6,19,11
10

يجب أن تكون المخرجات:

[1] 15
[1] 22
[1] 19
[1] 11

الشرح: تقوم الحلقة بفحص كل عنصر مقابل العتبة (10). العناصر 15، 22، 19، و 11 جميعها أكبر من أو تساوي 10، لذا يتم طباعتها. أما العناصر 4، 8، و 6 فيتم تخطيها.

ورقة مرجعية

تسمح لك حلقة for بالمرور عبر عناصر المتجه (vector) واحداً تلو الآخر وتطبيق منطق مخصص على كل عنصر.

الصيغة الأساسية للتكرار عبر متجه (vector):

fruits <- c("apple", "banana", "cherry")
for (fruit in fruits) {
  print(fruit)
}

في كل تكرار، يأخذ متغير الحلقة قيمة العنصر التالي في المتجه.

دمج الحلقات التكرارية مع المنطق الشرطي لمعالجة العناصر بشكل انتقائي:

numbers <- c(3, 8, 2, 10, 5)
for (num in numbers) {
  if (num > 5) {
    print(num)
  }
}

هذا النمط مفيد عندما تحتاج إلى تطبيق عمليات مختلفة بناءً على قيمة كل عنصر.

جرّب بنفسك

# قراءة المدخلات
con <- file("stdin", "r")
numbers_input <- suppressWarnings(readLines(con, n = 1))
threshold <- as.numeric(suppressWarnings(readLines(con, n = 1)))
close(con)

# تحويل السلسلة النصية المفصولة بفاصلة إلى متجه عددي
numbers <- as.numeric(unlist(strsplit(numbers_input, ",")))

# TODO: اكتب الكود الخاص بك أدناه
# استخدم حلقة for للتكرار عبر متجه الأرقام
# لكل عنصر >= threshold، قم بطباعته باستخدام ()print
quiz iconاختبر نفسك

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

جميع دروس Fundamentals