مخرجات منسقة (sprintf)
جزء من قسم الأساسيات في رحلة R على Coddy. الدرس 37 من 78.
التحدي
سهلفي الدرس السابق، أكملتَ حاسبة تقسيم الفاتورة مع جميع الحسابات. حسّن الآن تنسيق المخرجات باستخدام sprintf() لعرض القيم المالية مع منزلتين عشريتين بالضبط.
عدّل أسطر المخرجات التي تعرض مبالغ بالدولار لاستخدام sprintf() في التنسيق. تتيح لك دالة sprintf() تنسيق الأرقام بعدد محدد من المنازل العشرية باستخدام %.2f لمنزلتين عشريتين.
حدّث أسطر المخرجات التالية لإظهار منزلتين عشريتين بالضبط لجميع القيم المالية:
Bill: $[bill]Tip amount: $[tip_amount]Total with tip: $[total]Each person pays: $[per_person]
أبقِ العمليات الحسابية كما هي تمامًا في الدرس السابق: tip_amount <- bill * tip_percent / 100. قد يؤدي الضرب في tip_percent / 100 بدلًا من ذلك إلى فرق بمقدار سنت واحد بعد تقريب العدد إلى منزلتين عشريتين.
استخدم sprintf() لتنسيق كل قيمة مالية. على سبيل المثال، تعمل sprintf("%.2f", value) على تنسيق عدد ليظهر بمنزلتين عشريتين.
على سبيل المثال، إذا كانت المدخلات هي 85.50 و18 و3، فيجب أن تكون المخرجات الكاملة كما يلي:
Welcome to the Bill Split Calculator!
Let's split your bill fairly.
Bill: $85.50
Tip: 18%
People: 3
Tip amount: $15.39
Total with tip: $100.89
Each person pays: $33.63ملاحظة: يجب أن تظل نسبة البقشيش وعدد الأشخاص عددين صحيحين من دون تنسيق عشري.
جرّب بنفسك
# 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")
# Read user inputs
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)
# Display confirmation message
cat("Bill: $", bill, "\n", sep = "")
cat("Tip: ", tip_percent, "%\n", sep = "")
cat("People: ", people, "\n", sep = "")
# Calculate tip amount and total
tip_amount <- bill * tip_percent / 100
total <- bill + tip_amount
# Display calculation results
cat("Tip amount: $", tip_amount, "\n", sep = "")
cat("Total with tip: $", total, "\n", sep = "")
# Calculate per person amount
per_person <- total / people
# Display per person amount
cat("Each person pays: $", per_person, "\n", sep = "")جميع دروس الأساسيات
4المعاملات - الجزء الثاني
المعاملات المنطقية (AND, OR)المعاملات المنطقية - الجزء الثاني (NOT)مراجعة - المنطق البسيطالمنطق المتجهي - الجزء الأولالمنطق المتجهي - الجزء الثاني7حاسبة تقسيم الفاتورة
رسالة الترحيبالحصول على مدخلات المستخدم2المتغيرات وأنواع البيانات
نوع البيانات الرقمينوع البيانات الصحيحنوع البيانات الحرفينوع البيانات المنطقيالتحقق من أنواع البياناتقواعد التسميةالقيم المفقودة: NAملخص - إنشاء المتغيرات8الحلقات التكرارية
حلقة Forحلقة Whileجملة Breakجملة Next (Continue)مراجعة - المضروب (Factorial)توليد المتتاليات (seq, :)الحلقات المتداخلةمراجعة - الإدخال الديناميكي (Dynamic Input)3المعاملات - الجزء الأول
المعاملات الحسابيةقسمة الأعداد الصحيحة وباقي القسمةمعاملات الإسنادملخص - عمليات رياضية بسيطةمعاملات المقارنة6أساسيات الإدخال والإخراج
طباعة المخرجاتاستخدام Cat للمخرجاتالمخرجات مع المتغيراتقراءة المدخلات باستخدام readline()أساسيات تحويل أنواع البياناتمراجعة - حاسبة العمرمراجعة - صح أم خطأتدرّب بنفسك: مترجم R عبر الإنترنت