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

توليد المتتاليات (seq, :)

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

لقد كنت تستخدم 1:5 لإنشاء تسلسلات في حلقاتك التكرارية. عامل النقطتين الرأسيتين هذا سريع وبسيط، ولكن توفر لغة R أيضاً الدالة seq() لمزيد من التحكم في تسلسلاتك.

يقوم عامل النقطتين الرأسيتين (colon operator) بإنشاء تسلسل من الأعداد الصحيحة المتتالية:

print(1:5)
print(10:6)

المخرجات:

[1] 1 2 3 4 5
[1] 10 9 8 7 6

لاحظ أن التسلسل يمكن أن يسير في أي من الاتجاهين. عندما يكون الرقم الأول أكبر، فإنه يقوم بالعد التنازلي.

توفر لك الدالة seq() مرونة أكبر. يمكنك تحديد حجم الخطوة باستخدام الوسيط by:

print(seq(2, 10, by = 2))

المخرجات:

[1] 2 4 6 8 10

هذا ينشئ أرقاماً زوجية من 2 إلى 10.

يمكنك أيضاً تحديد عدد الأرقام التي تريدها باستخدام length.out:

print(seq(1, 10, length.out = 4))

المخرجات:

[1] 1 4 7 10

يقوم R تلقائيًا بحساب التباعد ليعطيك بالضبط 4 أرقام متباعدة بالتساوي. يعمل كلا النهجين بسلاسة في الحلقات التكرارية (loops)، مما يتيح لك التكرار عبر تسلسلات مخصصة بسهولة.

challenge icon

التحدي

سهل

اقرأ ثلاثة أرقام من المدخلات: start، و end، و step.

استخدم الدالة seq() لإنشاء تسلسل من start إلى end بحجم step المعطى. ثم استخدم حلقة for للتكرار عبر هذا التسلسل وطباعة مربع كل رقم.

يجب طباعة كل قيمة مربعة في سطر خاص بها باستخدام print().

على سبيل المثال، إذا كانت المدخلات هي 2، و 10، و 2، يجب أن تكون المخرجات:

[1] 4
[1] 16
[1] 36
[1] 64
[1] 100

هذا لأن التسلسل 2، 4، 6، 8، 10 قد تم إنشاؤه، وتم تربيع كل رقم.

ورقة مرجعية

عامل النقطتين الرأسيتين : ينشئ تسلسلات من الأعداد الصحيحة المتتالية:

1:5  # ينشئ 1 2 3 4 5
10:6  # ينشئ 10 9 8 7 6 (عد تنازلي)

توفر الدالة seq() تحكماً أكبر في التسلسلات:

# تحديد حجم الخطوة باستخدام 'by'
seq(2, 10, by = 2)  # ينشئ 2 4 6 8 10

# تحديد عدد القيم باستخدام 'length.out'
seq(1, 10, length.out = 4)  # ينشئ 1 4 7 10

يعمل كل من عامل النقطتين الرأسيتين و seq() في حلقات for:

for (i in seq(2, 10, by = 2)) {
  print(i)
}

جرّب بنفسك

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

# TODO: اكتب الكود الخاص بك أدناه
# 1. استخدم ()seq لتوليد تسلسل من start إلى end بالخطوة (step) المحددة
# 2. استخدم حلقة for للتكرار عبر التسلسل
# 3. اطبع مربع كل رقم باستخدام ()print
quiz iconاختبر نفسك

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

جميع دروس Fundamentals