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

فرز المتجهات

جزء من قسم المنطق وتدفق التنفيذ في رحلة R على Coddy. الدرس 37 من 64.

sort(x) تُرجع قيم x بترتيب تصاعدي، ويعكسها decreasing = TRUE. لا يتم تغيير المتجه الأصلي:

scores <- c(72, 95, 60, 88)
print(sort(scores))
print(sort(scores, decreasing = TRUE))
print(scores)

المخرجات:

[1] 60 72 88 95
[1] 95 88 72 60
[1] 72 95 60 88

يتم ترتيب النص أبجديًا. يعتمد الترتيب الدقيق على إعدادات لغة النظام: في Coddy، كما هو الحال في العديد من الخوادم، تسبق الأحرف الكبيرة الأحرف الصغيرة، لذا يتم ترتيب "Zed" قبل "ada". استخدم tolower() للتحويل عندما لا تكون حالة الأحرف مهمة:

names <- c("cy", "Zed", "ada")
print(sort(names))
print(sort(tolower(names)))

المخرجات:

[1] "Zed" "ada" "cy" 
[1] "ada" "cy"  "zed"

تعكس rev(x) الترتيب الحالي دون فرز، وتُبقي head(x, n) على العناصر n الأولى، وهو ما يمنحك، إلى جانب sort()، قائمة بأعلى القيم:

scores <- c(72, 95, 60, 88)
print(rev(scores))
print(head(sort(scores, decreasing = TRUE), 2))

الناتج:

[1] 88 60 95 72
[1] 95 88

يحتفظ المتجه المُسمّى والمرتّب بكل اسم مع قيمته، لذلك تظهر الأسماء بترتيب القيم:

stock <- c(tea = 12, jam = 3, oil = 7)
low_first <- sort(stock)
print(names(low_first))
print(low_first[["jam"]])

الناتج:

[1] "jam" "oil" "tea"
[1] 3
challenge icon

التحدي

سهل

أكمل top_scores(scores, n). أعد أعلى n درجات من الأعلى إلى الأدنى، مع ربطها باستخدام , . إذا كان عدد الدرجات أقل من n، فأعدها جميعًا.

يقرأ الكود المُ supplied الدرجات كسطر مفصول بفواصل وn، ثم يطبع القيمة المُعادة.

جرّب بنفسك

top_scores <- function(scores, n) {
  # اكتب الكود الخاص بك هنا
  ""
}

# كود الإدخال/الإخراج المُزوَّد: أبقِه كما هو
input <- suppressWarnings(readLines(file("stdin")))
cat(top_scores(as.numeric(strsplit(input[1], ",")[[1]]), as.numeric(input[2])), sep = "\n")
quiz iconاختبر نفسك

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

جميع دروس المنطق وتدفق التنفيذ

تدرّب بنفسك: مترجم R عبر الإنترنت