Домашнее задание к лекции 1.4 «Функции»

В магазине появилась возможность оформить дополнительное гарантийное обслуживание на любой товар: на 1 год за 1250 Q и на 2 года за 2300 Q.

Вдобавок ко всему, на товаре можно сделать гравировку с любой надписью. Стоимость надписи – 11 Q за 1 слово.

При оформлении заказа клиент может выбрать необходимые ему функции, в том числе доставку. Данные о стоимости доставки возьмите из задания к лекции «Управляющие конструкции».

Задача № 1

Напишите функцию, которая принимает в качестве значения количество лет, на которое оформляется дополнительное гарантийное обслуживание, и возвращает в качестве результата своей работы стоимость услуги. В случае, если клиент не выбрал услугу, возвращается 0.

Процесс реализации

  1. Создайте функцию, принимающую нужное количество аргументов на вход.
  2. Определите, на какое количество лет приобретается дополнительное гарантийное обслуживание.
  3. Предусмотрите вариант, когда услуга не выбрана.
  4. В качестве результата работы функции возвратите вычисленную стоимость.
  5. Вызовите функцию.
  6. Выведите результат работы функции в консоль в формате:
    Дополнительное гарантийное обслуживание: 1250 Q

Задача № 2

Напишите функцию, которая будет принимать на вход строку с надписью для гравировки. На выход функция отдает стоимость для гравировки. Если строка пустая или равна undefined, то цена гравировки равна 0.

Процесс реализации

  1. В переменную запишите строку текста, которую нужно будет выгравировать.
  2. Создайте функцию, принимающую в качестве аргумента строку.
  3. Воспользуйтесь методом split, чтобы получить массив слов, по аналогии с примером ниже:
    
    var string = 'Это строка из нескольких слов';
    var words = string.split(' ');
    console.log(words);
  4. Предусмотрите универсальный способ расчета стоимости гравировки от количества слов. Мы не ограничиваем клиентов по длине надписи.
  5. Верните в качестве результата работы вычисленную стоимость.
  6. Выведите результат работы функции в консоль в формате:
    Подарочная упаковка и гравировка: 55 Q

Подробнее про метод split читайте в документации.

Задача № 3

Напишите функцию, которая в качестве аргумента будет принимать необходимость доставки товара клиенту и название планеты. Предусмотрите вариант, когда клиенту не нужна доставка, неверно введено название области доставки или доставка в квадрант не осуществляется.

Процесс реализации

  1. Создайте функцию, принимающую нужное количество аргументов.
  2. Проверьте, нужна ли доставка клиенту.
  3. Если да, то сверьте название введенной области с доступными областями доставки.
  4. Если название верное и доставка в квадрант осуществляется, то посчитайте стоимость и верните сумму в качестве результата работы функции.
  5. Если доставка клиенту не нужна, то результатом функции должен быть 0.
  6. Если область доставки введена неверно или в данную область доставка не осуществляется, то результатом функции должен быть NaN.
  7. Выведите результат работы функции в консоль в формате
    • Если доставка нужна:
      Стоимость доставки: 550 Q
    • Если результат функции 0:
      Доставка не требуется
    • Если результат функции NaN:
      Ошибка при расчете стоимости доставки

Задача № 4. Дополнительная (необязательная)

Оформите все предыдущие задачи в одну глобальную функцию, принимающую в качестве аргументов сумму заказа, срок гарантии, фразу для гравировки, необходимость доставки и название зоны доставки. Результатом работы функции будет общая стоимость заказа. Результат работы функции выведите в консоль в формате:

        
Общая стоимость заказа: 5855 Q.
Из них 1250 Q за гарантийное обслуживание на 1 год/года.
Гравировка на сумму 55 Q.
Доставка в область Галактика Туманность Андромеды: 550 Q.