Menu
Coddy logo textTech

Получение пользовательского ввода

Часть раздела Основы путешествия по R на Coddy — урок 34 из 78.

challenge icon

Задание

Легко

В предыдущем уроке вы создали приветственное сообщение для калькулятора разделения счета (Bill Split Calculator). Теперь добавьте функциональность для сбора пользовательского ввода для расчета счета.

После существующего приветственного сообщения прочитайте три значения, введенных пользователем:

  1. Общая сумма счета
  2. Процент чаевых (как целое число, например, 15 для 15%)
  3. Количество человек, разделяющих счет

В R-скриптах, которые выполняются неинтерактивно (как на этой платформе), ввод считывается из стандартного потока ввода. Для этого сначала откройте соединение с 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")

Все уроки раздела Основы