Повторение — Список продуктов
Часть раздела Основы путешествия по R на Coddy — урок 75 из 78.
Задание
ЛегкоВы получите четыре строки входных данных:
- Название продукта (например,
Wireless Headphones) - Цена (например,
79.99) - Количество на складе (например,
25) - Процент скидки для применения (например,
20)
Выполните следующие операции:
- Создайте именованный список с именем
productсо следующими элементами:name(символьный),price(числовой),stock(числовой) иavailable(установите вTRUE, если запас больше 0, иначеFALSE) - Выведите название продукта, используя оператор
$ - Рассчитайте цену со скидкой (исходная цена минус процент скидки) и обновите элемент
price - Добавьте новый элемент с именем
discountedсо значениемTRUE - Уменьшите
stockна 1 (имитация покупки) - Удалите элемент
availableиз списка - Выведите финальный список
Например, если входные данные следующие:
Smart Watch
150
10
25Вывод должен быть таким:
[1] "Smart Watch"
$name
[1] "Smart Watch"
$price
[1] 112.5
$stock
[1] 9
$discounted
[1] TRUEОбъяснение:
- Исходная цена 150 со скидкой 25%: 150 - (150 * 25/100) = 112.5
- Запас уменьшен с 10 до 9
- Элемент
availableбыл удален из финального списка
Попробуйте сами
# Чтение входных данных
con <- file("stdin", "r")
product_name <- suppressWarnings(readLines(con, n = 1))
price <- as.numeric(suppressWarnings(readLines(con, n = 1)))
stock <- as.numeric(suppressWarnings(readLines(con, n = 1)))
discount_percentage <- as.numeric(suppressWarnings(readLines(con, n = 1)))
close(con)
# TODO: Напишите свой код ниже
# 1. Создайте именованный список под названием 'product' с элементами: name, price, stock и available
# 2. Выведите название продукта, используя оператор $
# 3. Рассчитайте цену со скидкой и обновите элемент price
# 4. Добавьте новый элемент под названием 'discounted' со значением TRUE
# 5. Уменьшите stock на 1
# 6. Удалите элемент 'available' из списка
# 7. Выведите итоговый списокВсе уроки раздела Основы
4Операторы. Часть 2
Логические операторы (AND, OR)Логические операторы. Часть 2 (NOT)Повторение: простая логикаВекторизованная логика. Часть 1Векторизованная логика. Часть 27Калькулятор разделения счета
Приветственное сообщениеПолучение пользовательского ввода13Векторы: продвинутый уровень
Срезы и индексация векторовЛогическая индексацияАрифметика и ресайклинг векторовОператор %in%2Переменные и типы данных
Числовой тип данныхЦелочисленный тип данныхСимвольный тип данныхЛогический тип данныхПроверка типов данныхПравила именованияПропущенные значения: NAИтоги — создание переменных5Принятие решений
Оператор ifКонструкция if - elseПовторение: Простой калькуляторВложенные конструкции if - else8Циклы
Цикл ForЦикл WhileBreakNext (Continue)Повторение: ФакториалГенерация последовательностей (seq, :)Вложенные циклыПовторение: Динамический ввод11Векторы
Создание векторов с помощью c()Доступ к элементам вектораИзменение векторовОперации с векторамиПовторение — Вектор ценПовторение — Обратный векторИменованные векторы14Списки в R
Создание списковДоступ к элементам спискаИзменение списковИменованные спискиПовторение — Список продуктов3Операторы. Часть 1
Арифметические операторыЦелочисленное деление и остаток от деленияОператоры присваиванияПовторение: простая математикаОператоры сравнения6Основы ввода-вывода
Вывод через printКоманда cat для выводаВывод с переменнымиЧтение ввода через readline()Основы преобразования типовПовторение — Калькулятор возрастаПовторение — Истина или ложь9Функции
Объявление функцииАргументы функцииВозвращаемые значенияПовторение — функция SigmaПовторение — функция валидацииЗначения параметров по умолчанию12Итерация по последовательностям
Итерация по элементам вектораИспользование seq_along()Итерация по символам (strsplit)Функции для работы со строками