Повторение — Вектор цен
Часть раздела Основы путешествия по R на Coddy — урок 60 из 78.
Задание
ЛегкоВы получите две строки входных данных:
- Список исходных цен, разделенных запятыми (например,
100,200,150,80) - Процент скидки в виде целого числа (например,
20для 20%)
Выполните следующие операции:
- Создайте вектор из цен, разделенных запятыми
- Менеджер магазина заметил, что на третий товар была установлена неверная цена. Измените ее на
125 - Примените скидку ко всем ценам (умножьте на
(100 - discount) / 100) - Выведите вектор цен со скидкой
- Выведите общую сумму всех цен со скидкой, используя
sum() - Выведите среднюю цену со скидкой, используя
mean()
Например, если входные данные:
100,200,150,80
20Выходные данные должны быть:
[1] 80 160 100 64
[1] 404
[1] 101Объяснение: Третья цена изменяется на 125, затем применяется скидка 20% (умножение на 0.8), в результате чего получаются цены 80, 160, 100 и 64.
Попробуйте сами
# Чтение входных данных
con <- file("stdin", "r")
prices_input <- suppressWarnings(readLines(con, n = 1))
discount <- suppressWarnings(readLines(con, n = 1))
close(con)
# Преобразование входных данных
original_prices <- as.numeric(unlist(strsplit(prices_input, ",")))
discount_percent <- as.numeric(discount)
# TODO: Напишите ваш код ниже
# 1. Измените третий элемент на 125
# 2. Примените скидку ко всем ценам
# 3. Выведите вектор цен со скидкой
# 4. Выведите общую сумму, используя sum()
# 5. Выведите среднее значение, используя mean()Все уроки раздела Основы
4Операторы. Часть 2
Логические операторы (AND, OR)Логические операторы. Часть 2 (NOT)Повторение: простая логикаВекторизованная логика. Часть 1Векторизованная логика. Часть 27Калькулятор разделения счета
Приветственное сообщениеПолучение пользовательского ввода13Векторы: продвинутый уровень
Срезы и индексация векторовЛогическая индексацияАрифметика и ресайклинг векторовОператор %in%2Переменные и типы данных
Числовой тип данныхЦелочисленный тип данныхСимвольный тип данныхЛогический тип данныхПроверка типов данныхПравила именованияПропущенные значения: NAИтоги — создание переменных5Принятие решений
Оператор ifКонструкция if - elseПовторение: Простой калькуляторВложенные конструкции if - else8Циклы
Цикл ForЦикл WhileBreakNext (Continue)Повторение: ФакториалГенерация последовательностей (seq, :)Вложенные циклыПовторение: Динамический ввод3Операторы. Часть 1
Арифметические операторыЦелочисленное деление и остаток от деленияОператоры присваиванияПовторение: простая математикаОператоры сравнения6Основы ввода-вывода
Вывод через printКоманда cat для выводаВывод с переменнымиЧтение ввода через readline()Основы преобразования типовПовторение — Калькулятор возрастаПовторение — Истина или ложь9Функции
Объявление функцииАргументы функцииВозвращаемые значенияПовторение — функция SigmaПовторение — функция валидацииЗначения параметров по умолчанию12Итерация по последовательностям
Итерация по элементам вектораИспользование seq_along()Итерация по символам (strsplit)Функции для работы со строками