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

ماذا تشتري

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

challenge icon

التحدي

سهل

قم بإنشاء دالة تسمى what_to_buy تأخذ وسيطين: budget (قيمة عددية) و prices (متجه مسمى لأسعار العناصر). يجب أن تعيد الدالة متجهاً نصياً (character vector) يحتوي على أسماء جميع العناصر التي تكون أسعارها أقل من أو تساوي الميزانية.

إذا لم تكن هناك عناصر ميسورة التكلفة، فقم بإرجاع متجه نصي فارغ باستخدام character(0).

ستتلقى المدخلات التالية:

  1. مبلغ الميزانية (رقم)
  2. قائمة بأسماء العناصر مفصولة بفاصلة (على سبيل المثال، apple,banana,steak,bread)
  3. قائمة بالأسعار المقابلة مفصولة بفاصلة (على سبيل المثال، 2,1,15,3)

قم بتحليل المدخلات لإنشاء متجه مسمى للأسعار، واستدعِ دالتك، واطبع النتيجة. استخدم print() لعرض المتجه النصي الناتج.

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

5
apple,banana,steak,bread
2,1,15,3

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

[1] "apple"  "banana" "bread"

إذا كان الإدخال هو:

10
laptop,phone,tablet
999,599,399

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

character(0)

تلميحات:

  • استخدم strsplit(input, ",")[[1]] لتقسيم النصوص المفصولة بفاصلة إلى متجهات
  • استخدم as.numeric() لتحويل نصوص الأسعار إلى أرقام
  • استخدم names(prices) <- item_names لإنشاء متجه مسمى
  • استخدم الفهرسة المنطقية (logical indexing) مع names() لاستخراج أسماء العناصر ميسورة التكلفة

جرّب بنفسك

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

# تحليل المدخلات
item_names <- strsplit(item_names_input, ",")[[1]]
price_values <- as.numeric(strsplit(prices_input, ",")[[1]])

# إنشاء متجه مسمى للأسعار
prices <- price_values
names(prices) <- item_names

# TODO: اكتب دالتك what_to_buy أدناه
# يجب أن تأخذ الدالة الميزانية والأسعار كوسطاء
# وتعيد متجهاً نصياً بأسماء العناصر التي يمكن شراؤها


# استدعاء الدالة وطباعة النتيجة
result <- what_to_buy(budget, prices)
print(result)

جميع دروس Fundamentals