الانتقال إلى المحتوى الرئيسي
الوحدة 2 · الدرس 2 من 24/10 في الدورة~12 min
دروس الوحدة (2/2)

الشروط والحلقات

لتنفيذ خوارزميات وإجراءات معقدة في لغة R، يجب أن تكون قادرًا على التحكم في التعليمات التي سيتم تنفيذها وعدد مرات تكرارها.

العبارات الشرطية

في لغة R، تعتمد البنية الشرطية الأساسية على if وelse. بناء الجملة مشابه جدًا للغات مثل JavaScript أو C:

R
score <- 85

if (score >= 60) {
  print("Passed!")
} else {
  print("Failed.")
}

تحدد الأقواس المتعرجة {} كتل التعليمات البرمجية التي سيتم تشغيلها اعتمادًا على نتيجة التعبير المنطقي داخل الأقواس.

الحلقة for

يتم استخدام الحلقة for في R للتكرار على العناصر في تسلسل (مثل المتجه أو القائمة).

R
# Print numbers from 1 to 3
for (i in 1:3) {
  print(i)
}

في R، يعد بناء الجملة 1:3 طريقة مختصرة لإنشاء المتجه c(1, 2, 3).

يمكننا أيضًا تنفيذ حلقة مباشرة فوق عناصر المتجه الموجود:

R
fruits <- c("apple", "banana", "cherry")

for (fruit in fruits) {
  print(fruit)
}

الدالة ifelse

في R، الدالة ifelse() هي نسخة متجهة من العبارة if-else. فهو يسمح لك بتطبيق شرط على متجه بأكمله في عملية واحدة، مما يؤدي إلى إرجاع متجه النتائج.

R
scores <- c(55, 80, 45, 90)
# Se score >= 60 assegna "Pass", altrimenti "Fail"
results <- ifelse(scores >= 60, "Pass", "Fail")
print(results) # "Fail" "Pass" "Fail" "Pass"

الحلقة while

يتم استخدام الحلقة while لتكرار كتلة من التعليمات البرمجية طالما ظل شرط معين صحيحًا (TRUE). من الضروري التأكد من أن الشرط يصبح خاطئًا في النهاية لمنع الحلقات اللانهائية.

R
counter <- 1
while (counter <= 3) {
  print(counter)
  counter <- counter + 1
}

جربه بنفسك

تمرين#r.m2.l2.e1
المحاولات: 0جارٍ التحميل…

اكتب عبارة شرطية if-else تتحقق مما إذا كانت درجة المتغير أكبر من أو تساوي 60. إذا كانت كذلك، فاضبط الحالة على "ناجح"، وإلا فاضبطها على "فشل".

جارٍ تحميل المحرر…
إظهار التلميح

درجة التحقق >= 60 حالة التعيين <- "ناجح" o الحالة <- "فشل"

الحل متاح بعد 3 من المحاولات

تمرين#r.m2.l2.e2
المحاولات: 0جارٍ التحميل…

اكتب حلقة for تتكرر عبر التسلسل 1:5 وتطبع كل قيمة باستخدام الدالة print().

جارٍ تحميل المحرر…
إظهار التلميح

استخدام الخط: for (i in 1:5) { print(i) }

الحل متاح بعد 3 من المحاولات

تمرين#r.m2.l2.e3
المحاولات: 0جارٍ التحميل…

بالنظر إلى المتجه v، اكتب حلقة for تتكرر فوق كل عنصر وتطبع نسخته المزدوجة (val * 2) باستخدام print().

جارٍ تحميل المحرر…
إظهار التلميح

قم بالتكرار عبر عناصر v: for (val in v) { print(val * 2) }

الحل متاح بعد 3 من المحاولات

تمرين#r.m2.l2.e4
المحاولات: 0جارٍ التحميل…

بالنظر إلى درجات المتجهات، استخدم الدالة ifelse() للتحقق من العناصر الأكبر من أو تساوي 60. احفظ النتيجة (التي ستحتوي على "نجاح" أو "فشل" لكل عنصر) في نتائج المتغير.

جارٍ تحميل المحرر…
إظهار التلميح

استخدم الوظيفة: النتائج <- ifelse(scores >= 60, 'Pass', 'Fail')

الحل متاح بعد 3 من المحاولات

تمرين#r.m2.l2.e5
المحاولات: 0جارٍ التحميل…

استخدم حلقة while لمضاعفة قيمة x حتى تتجاوز 50. قم أيضًا بزيادة متغير العداد في كل تكرار.

جارٍ تحميل المحرر…
إظهار التلميح

استخدم حلقة while (x <= 50) وقم بتحديث كل من x والعداد داخل الأقواس المتعرجة.

الحل متاح بعد 3 من المحاولات