Рубежный контроль - JS

Рубежный контроль по JS

Главные требования

  1. Работа выполнена самостоятельно.
  2. Работа создана во время проведения занятия (1 пара).
  3. Не менее трех коммитов за авторством студента, равномерно распределенных по времени выполнения задания.
  4. Работа размещена на удаленном репозитории на Github, который создан через Github Classroom.

Задание

Работа с проектом и репозиторием

  1. Принять задание на Github Classroom. Ссылка на задание.
  2. Клонировать репозиторий созданный репозиторий.
  3. Инициализировать пакет с помощью команды npm init -y.
  4. Установить ESLint и конфигурацию от HTML Academy и подключить установленную конфигурацию.
  5. Добавить в проект файл .gitignore с исключением папки node_modules.
  6. Создать коммит на ветке main, создать новую ветку и задание выполнять на ней.

Работа над основным заданием

  1. Создать документ html, указав в футере ФИО, группу и дату выполнения работы.
  2. На страницу в основную часть перенести описание самой задачи. После описания добавить форму с требуемыми полями и кнопкой получения результата. Все поля обязательны к заполнению.
  3. Реализовать валидацию данных из полей формы под ограничения задачи.
  4. Добавить понятные описания ошибок валидации.
  5. При нажатии кнопки получения результата введенные данные и ответ отображаются на странице после формы. Поля при этом очищаются.

Завершение работы

  1. Проверить код на валидаторе html.
  2. Проверить код статическим анализатором ESLint.
  3. Созданные коммиты отправить на удаленный репозиторий на ветку rk.

Критерии оценки

  • Выполнены главные требования.
  • Правильно создана основа проекта.
  • Правильно выполнена работа с ветками.
  • В футере указано ФИО.
  • Структура html-документа и форма корректны.
  • Валидация формы выполнена средствами JS и Constraint Validation API.
  • Визуально понятно в каком поле ошибка.
  • Сообщения об ошибке валидации понятны и доступны.
  • Решена алгоритмическая задача с использованием наиболее подходящих конструкций языка js.
  • Понятные имена функций и переменных.
  • Код html и js отформатирован.
  • Отсутствие ошибок на валидаторе для html и ESLint.

Варианты

Вариант 1

Даны две строки, верните истину тогда и только тогда, когда первая строка может стать второй после некоторого количества перестановок. Перестановка заключается в перемещении крайнего левого символа в крайнее правое положение. “abcde” после первой перестановки становится “bcdea”. “a” была первой, стала последней.

Допустимы только буквы.

Примеры

Вход: “abcde”, цель = “cdeab”, вывод: истина

Вход: “abcde”, цель = “abced”, вывод: ложь

Вариант 2

Дана строка, представляющая запись о посещаемости студента, где каждый символ означает, отсутствовал ли студент, опоздал или присутствовал в этот день. Запись содержит только следующие три символа:

‘Н’: Отсутствует. ‘О’: Опоздал. ‘П’: Присутствует.

Студент имеет право на поощрение за посещаемость, если он соответствует обоим следующим критериям:

  • Студент отсутствовал (“Н”) строго менее 2 дней в общей сложности.
  • Студент никогда не опаздывал (“О”) в течение 3 или более дней подряд.

Верните истину, если студент имеет право на получение награды за посещаемость, или ложь в противном случае.

Допустимы только буквы Н, О, П.

Примеры

Вход: “ППНООП”, вывод: истина. Студент имеет менее 2 пропусков и никогда не опаздывал 3 и более дней подряд.

Ввод: “ППНООО”, вывод: ложь. Студент опоздал 3 дня подряд, поэтому не имеет права на получение награды.

Вариант 3

Дана строка чисел, разделенных пробелами, и нужно вернуть наибольшее и наименьшее число не используя объект Math.

Допустимы только цифры, пробелы и -.

Примеры

Вход: “1 2 3 4 5”, вывод: “5 1”.

Ввод: “1 9 3 4 -5”, вывод: “9 -5”.

Вариант 4

Дано целое число, которое является номером столбца, верните соответствующий ему заголовок столбца в том виде, в котором он отображается на листе Excel.

1 -> A 2 -> B 3 -> C … 26 -> Z 27 -> AA 28 -> AB

Допустимы только целые числа.

Примеры

Вход: 29, вывод: “AC”

Вход: 701, вывод: “ZY”

Вариант 5

Дано целое положительное число - время прибытия поезда в часах, и другое целое положительное число - время задержки в часах. Верните время, когда поезд прибудет на станцию. Время указывается в 24-часовом формате.

Допустимы только целые числа от 1 до 24 включительно.

Примеры

Вход: 15 и 5, вывод: 20. Время прибытия поезда - 15:00 часов. Он задержался на 5 часов. Теперь он прибудет в 15+5=20 (20:00 часов).

Вход: 13 и 11, вывод: 0. Время прибытия поезда - 13:00 часов. Он задержался на 11 часов. Теперь он прибудет в 13+11=24 (что обозначается 00:00 в 24-часовом формате, поэтому возвращаем 0).

Вариант 6

Есть длинная клумба, на которой некоторые места засажены, а некоторые - нет. Однако цветы нельзя садить на смежных местах.

Учитывая массив, содержащий 0 и 1, где 0 означает пустое место, а 1 - не пустое, и целое число n цветов, верните истину, если на клумбу можно посадить n новых цветов, не нарушая правила “цветы нельзя садить на смежных местах”, и ложь в противном случае.

Допустимы только 0, 1 и , в качестве разделителя для клумбы и целые числа для количества цветов.

В исходной последовательности клумбы правило всегда соблюдено.

Примеры

Вход: 1,0,0,0,1 и 1, вывод: истина.

Вход: 1,0,0,0,1 и 2, вывод: ложь.

Вариант 7

Дан массив целых чисел, а счастливое целое число - это число, частота которого в массиве равна его значению.

Возвращается наибольшее счастливое целое число в массиве. Если счастливое целое число отсутствует, возвращается -1.

Допустимы только целые числа и , в качестве разделителя.

Примеры

Вход: 2,2,3,4, вывод: 2. Единственное счастливое число в массиве - 2, потому что его частота равна ему.

Вход: 1,2,2,3,3,3, вывод: 3. 1, 2 и 3 - счастливые числа, но 3 наибольшее из них.

Вход: 2,2,2,3,3, вывод: -1. В массиве нет счастливых чисел.

Вариант 8

Дан массив целых чисел. Уникальные элементы массива - это элементы, которые встречаются в массиве ровно один раз. Верните сумму всех уникальных элементов массива.

Допустимы только целые числа и пробел в качестве разделителя.

Примеры

Вход: 1 2 3 2, вывод: 4. Уникальными элементами являются [1,3], а сумма равна 4.

Вход: 1 1 1, вывод: 0. Уникальных элементов нет и сумма равна 0.

Вариант 9

Даны две строки, верните истину, если вторая является анаграммой первой, и ложь в противном случае.

Анаграмма - это слово или фраза, образованная путем перестановки букв другого слова или фразы, обычно с использованием всех исходных букв ровно один раз.

Допустимы только буквы.

Примеры

Вход: колба - бокал, вывод: истина

Вход: крыса - краска, вывод: ложь

Вариант 10

Дана строка, которую необходимо закодировать. Каждый символ в новой строке будет ”(”, если этот символ встречается в исходной строке только один раз, или ”)”, если этот символ встречается в исходной строке более одного раза.

Допустимы только буквы.

Примеры

Вход: “din”, вывод: ”(((”

Вход: “recede”, вывод: ”()()()”