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

الحصول على مدخلات المستخدم

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

challenge icon

التحدي

سهل

في الدرس السابق، قمت بإنشاء رسالة ترحيب لبرنامج Bill Split Calculator. الآن، أضف الوظيفة لجمع مدخلات المستخدم لحساب الفاتورة.

بعد رسالة الترحيب الموجودة لديك، اقرأ ثلاثة مدخلات من المستخدم:

  1. إجمالي مبلغ الفاتورة
  2. نسبة الإكرامية (كعدد صحيح، على سبيل المثال، 15 لـ 15%)
  3. عدد الأشخاص الذين سيتقاسمون الفاتورة

في سكربتات R التي تعمل بشكل غير تفاعلي (مثل هذه المنصة)، يتم قراءة المدخلات من دفق الإدخال القياسي (standard input stream). للقيام بذلك، افتح أولاً اتصالاً بـ stdin باستخدام file()، ثم اقرأ كل سطر باستخدام readLines()، وأغلق الاتصال عند الانتهاء:

con <- file("stdin", "r")
bill <- as.numeric(suppressWarnings(readLines(con, n = 1)))
tip_percent <- as.numeric(suppressWarnings(readLines(con, n = 1)))
people <- as.numeric(suppressWarnings(readLines(con, n = 1)))
close(con)

إليك ما يفعله كل جزء:

  • file("stdin", "r") — يفتح دفق الإدخال القياسي للقراءة ويخزنه في con
  • readLines(con, n = 1) — يقرأ سطراً واحداً بالضبط من ذلك الاتصال
  • suppressWarnings(...) — يكتم التحذيرات غير الضارة التي تظهر عند القراءة من stdin بهذه الطريقة
  • as.numeric(...) — يحول النص المدخل إلى رقم
  • close(con) — يغلق الاتصال بعد قراءة جميع المدخلات

قم بتخزين القيم الثلاث في متغيرات تسمى bill و tip_percent و people.

بعد قراءة المدخلات، اعرض رسالة تأكيد توضح ما تم إدخاله بالتنسيق التالي:

Bill: $[bill]
Tip: [tip_percent]%
People: [people]

استخدم cat() لجميع المخرجات وقم بتضمين أحرف السطر الجديد \n عند الحاجة. استخدم sep = "" في كل استدعاء لـ cat() لتجنب المسافات غير المرغوب فيها.

على سبيل المثال، إذا كانت المدخلات هي 120 و 18 و 4، فيجب أن يكون المخرج الكامل هو:

Welcome to the Bill Split Calculator!
Let's split your bill fairly.
Bill: $120
Tip: 18%
People: 4

جرّب بنفسك

# TODO: Write your code below
# Use cat() to display the welcome message
# Remember to use \n for new lines
cat("Welcome to the Bill Split Calculator!\nLet's split your bill fairly.\n")

جميع دروس Fundamentals