פלט מעוצב (sprintf)
חלק מהיחידה יסודות במסלול ה-R של Coddy. שיעור 37 מתוך 78.
אתגר
קלבשיעור הקודם השלמת את מחשבון חלוקת החשבון עם כל החישובים. עכשיו שפר את עיצוב הפלט באמצעות sprintf() כדי להציג ערכים כספיים עם 2 ספרות בדיוק אחרי הנקודה העשרונית.
שנה את שורות הפלט שמציגות סכומים בדולרים כך שישתמשו ב־sprintf() לעיצוב. הפונקציה sprintf() מאפשרת לעצב מספרים עם מספר מסוים של ספרות אחרי הנקודה העשרונית באמצעות %.2f עבור 2 ספרות אחרי הנקודה העשרונית.
עדכן את שורות הפלט הבאות כדי להציג 2 ספרות בדיוק אחרי הנקודה העשרונית עבור כל הערכים הכספיים:
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) מעצב מספר כך שיהיו לו 2 ספרות אחרי הנקודה העשרונית.
לדוגמה, אם הקלטים הם 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אופרטורים חלק 2
אופרטורים לוגיים (AND, OR)אופרטורים לוגיים חלק 2 (NOT)חזרה – לוגיקה פשוטהלוגיקה וקטורית חלק 1לוגיקה וקטורית חלק 27מחשבון לחלוקת החשבון
הודעת פתיחהקבלת קלט מהמשתמש2משתנים וסוגי נתונים
סוג נתונים מספריסוג נתונים שלמיםסוג נתונים של תוויםסוג נתונים לוגיבדיקת סוגי נתוניםמוסכמות למתן שמותערכים חסרים: NAסיכום – יצירת משתנים8לולאות
לולאת forלולאת whileפקודת breakהמשך (continue)סיכום – עצרתיצירת רצפים (seq, :)לולאות מקוננותסיכום – קלט דינמי3אופרטורים חלק 1
אופרטורים אריתמטייםחלוקת מספרים שלמים ומודולואופרטורי השמהחזרה – חשבון פשוטאופרטורי השוואה6קלט/פלט בסיסי
הדפסת פלטחתול כפלטפלט עם משתניםקריאת קלט באמצעות readline()יסודות המרת טיפוסיםחזרה – מחשבון גילחזרה – אמת או שקר9פונקציות
הכרזה על פונקציהארגומנטים של פונקציהערכי החזרהסיכום – פונקציית סיגמאסיכום – פונקציית אימותערכי ברירת מחדל לפרמטריםתרגלו בעצמכם: קומפיילר R אונליין