
2к1с Создание интерактивных приложений для интернет - КР / 1673682505_ПР2. Работа с функциями
.docxПрактическая работа №2
«Работа с функциями js»
Индивидуальные задания:
Создайте функцию, которая принимает число в качестве аргумента. Сложите все числа от 1 до числа, которое вы передали функции. Например, если входные данные равны 4, то ваша функция должна возвращать 10, потому что 1 + 2 + 3 + 4 = 10.
Например:
function(4) ➞ 10
function(13) ➞ 91
function(600) ➞ 180300
Примечание:
Входным является любое положительное число от 1 до 1000.
Создайте функцию, которая принимает число (шаг) в качестве аргумента и возвращает количество спичек на этом шаге. Шаги 1, 2 и 3 показаны на рисунке.
Например:
function(1) ➞ 6
function(4) ➞ 21
function(87) ➞ 436
Примечание:
Шаг 0 возвращает 0 спичек.
Вводимое значение (шага) всегда должно быть целым неотрицательным числом.
Каждый шаг является количеством домов, соединенных вместе.
Создайте функцию, которая принимает массив чисел и возвращает как минимальное, так и максимальное числа в следующем порядке.
Например:
function([1, 2, 3, 4, 5]) ➞ [1, 5]
function([2334454, 5]) ➞ [5, 2334454]
function([1]) ➞ [1, 1]
Примечание:
Все вводимые массивы должны содержать хотя бы один элемент и быть действительными.
Вашей функции будут переданы две функции, f и g, которые не принимают никаких параметров. Ваша функция должна вызвать их и вернуть строку, которая указывает, какая функция вернула большее число.
Если f возвращает большее число, верните строку f.
Если g возвращает большее число, верните строку g.
Если функции возвращают одно и то же число, не возвращайте строку ни в том, ни в другом случае.
Например:
function(() => 5, () => 10) ➞ "g"
function(() => 25, () => 25) ➞ "neither"
function(() => 505050, () => 5050) ➞ "f"
Примечание:
Все вводимые массивы должны содержать хотя бы один элемент и быть действительными.
Создайте функцию, которая возвращает true, если первый массив может быть вложен во второй, и false в противном случае.
arr1 может быть вложен в arr2, если:
минимальное значение arr1 больше, чем минимальное значение arr2.
максимальное значение arr1 меньше максимального значения arr2.
Например:
function ([1, 2, 3, 4], [0, 6]) ➞ true
function ([3, 1], [4, 0]) ➞ true
function ([9, 9, 8], [8, 9]) ➞ false
function ([1, 2, 3, 4], [2, 3]) ➞ false
Примечание:
Обратите внимание на строгое неравенство (пример №3).
Создайте функцию, возвращающую общую сумму входного числа, умноженную на каждое число от 1 до 10.
Например:
function (1) ➞ 55
// 1 x 1 + 1 x 2 + 1 x 3 ...... 1 x 9 + 1 x 10 = 55
function (6) ➞ 330
// 6 x 1 + 6 x 2 + 6 x 3 ...... 6 x 9 + 6 x 10 = 330
function (10) ➞ 550
function (8) ➞ 440
function (2) ➞ 110
Создайте функцию, которая вычисляет количество различных квадратов в сетке из n * n квадратов.
Например:
function (2) ➞ 5
function (4) ➞ 30
function (5) ➞ 55
Пояснения:
Если n = 0, то количество квадратов равно 0
Если n = 1, то количество квадратов равно 1 + 0 = 1
Если n = 2, то количество квадратов равно 2^2 + 1 = 4 + 1 = 5
Если n = 3, то количество квадратов равно 3^2 + 5 = 9 + 5 = 14
Как вы можете видеть, для каждого значения n количество квадратов равно n в квадрате + количество квадратов от предыдущего значения n.
Примечание:
Входные данные представляют собой положительное целое число.
Квадратное пирамидальное число.
Напишите функцию, которая принимает двузначное число и определяет, является ли оно наибольшим из двух возможных обменов цифрами. К примеру:
function (27) ➞ false
function (43) ➞ true
Если 27 - это наш ввод, мы должны вернуть false, потому что замена цифр дает нам 72, а 72 > 27. С другой стороны, замена 43 дает нам 34, а 43 > 34.
Например:
function (14) ➞ false
function (53) ➞ true
function (99) ➞ true
Примечание:
Числа с двумя одинаковыми цифрами (третий пример) должны давать значение true.
Слово вырвалось на свободу и теперь пыталось спрятаться среди толпы высоких букв! Помогите написать функцию для определения того, что это за слово, зная следующие правила:
Искомое слово написано в нижнем регистре.
Вся эта толпа букв написана в верхнем регистре.
Обратите внимание, что слово будет распределено среди случайных букв, но их буквы останутся в том же порядке.
Например:
function ("РФкЙЦКоЙЦАФЫшЙАФкФЫВАФаЖЛДО") ➞ "кошка"
function ("ФАЖШЙсПЛЙеТЬИВдФАПлЙАоЙАП") ➞ "седло"
Создайте функцию, которая будет принимать шестнадцатеричное число и возвращать двоичный эквивалент (в виде строки).
Например:
function (0xFF) ➞ "11111111"
function (0xAA) ➞ "10101010"
function (0xFA) ➞ "11111010"
Примечание:
Число всегда будет 8-битным числом.
Вам будут предоставлены два чрезвычайно похожих массива, но ровно один из элементов в массиве будет оценен немного выше, чем его аналог (что означает, что оценка значения > другого значения вернет true).
Создайте функцию, которая возвращает, немного ли первый массив превосходит второй.
Например:
function ([1, 2, 4], [1, 2, 3]) ➞ true
// Пара элементов в каждом индексе сравнивается по очереди.
// 1 из первого массива совпадает с 1 из второго массива.
// 2 - это то же самое, что и 2.
// Однако 4 больше, чем 3, поэтому первый массив превосходит.
function (["a", "d", "c"], ["a", "b", "c"]) ➞ true
function (["zebra", "ostrich", "whale"], ["ant", "ostrich", "whale"]) ➞ true
function ([1, 2, 3, 4], [1, 2, 4, 4]) ➞ false
function ([true, 10, "zebra"], [true, 10, "zebra"]) ➞ false
Примечание:
Оба массива должны иметь одинаковую длину.
Все значения и их аналоги всегда будут иметь один и тот же тип данных.
Если два массива совпадают, верните значение false.
Учитывая число, верните массив, содержащий две половины этого числа. Если число нечетное, увеличьте самое правое число.
Например:
function(4) ➞ [2, 2]
function(10) ➞ [5, 5]
function(11) ➞ [5, 6]
function(-9) ➞ [-5, -4]
Примечание:
Все числа будут целыми числами.
Вы также можете вводить отрицательные числа
Вы застряли на многоэтажной автомобильной стоянке. Ваша задача - выйти со стоянки, используя только лестницу. Выход всегда находится в правом нижнем углу первого этажа.
Создайте функцию, которая принимает двумерный массив, где:
Количество бесплатных парковочных мест для автомобилей равно 0
Лестницы представлены 1
Ваша начальная позиция обозначена цифрой 2 и может находиться на любом уровне автостоянки.
Выход всегда находится в правом нижнем углу первого этажа.
Вы должны воспользоваться лестницей (1), чтобы спуститься на уровень ниже.
На каждом этаже будет только одна лестница, кроме первого этажа, на котором не будет никаких лестниц.
... и возвращает массив самого быстрого маршрута из автостоянки.
array = [
[1, 0, 0, 0, 2],
[0, 0, 0, 0, 0]
]
// Начиная с 2, переместитесь влево 4 раза = "L4"
// Спуститься с лестницы на 1 ступень = "D1"
// Переместитесь вправо 4 раза, чтобы выйти из правого нижнего угла = "R4"
result = ["L4", "D1", "R4"]
Например:
function ([
[2, 0, 0, 1, 0],
[0, 0, 0, 1, 0],
[0, 0, 0, 0, 0]
]) ➞ ["R3", "D2", "R1"]
// Начиная с 2, переместитесь вправо 3 раза = "R3"
// Спуститься с лестницы на 2 ступеньки = "D2"
// Переместитесь вправо на 1 шаг, чтобы выйти из правого нижнего угла = "R1"
function ([[0, 0, 0, 0, 2]]) ➞ []
// Вы уже находитесь в правом нижнем углу.
Вы вырастили растение, и после трех долгих месяцев пришло время пожинать плоды (или цветы, в данном случае) вашей тяжелой работы. Во время фазы роста вы добавляли воду и удобрения и поддерживали постоянную температуру. Пришло время проверить, насколько выросло растение!
Растение растет горизонтально, от основания слева, до конца справа:
---@---@---@
Стебель сделан из дефисов, а цветы представлены символами. Растение всегда начинается со стебля и всегда заканчивается цветами.
Четырьмя заданными параметрами являются:
seed (строка) определяет тип цветов, образуемых растением.
water (целое число) каждая единица воды расширяет часть стебля между цветами и дает общее количество сегментов (стебель + цветы) растения.
fertilizer (целое число) каждая единица удобрения увеличивает количество цветов, сгруппированных в гроздья.
temp (целое число) если зафиксированная температура составляет от 20°C до 30°C (включая границы), растение растет нормально, в противном случае все цветки погибают, за исключением единственного оставшегося в живых на конце стебля.
Учитывая вышеуказанные параметры, реализуйте функцию, которая возвращает строку, представляющую растение (смотрите примеры ниже для лучшей визуализации).
Например:
function ("@", 3, 3, 25) ➞ "---@@@---@@@---@@@"
// Вода определяет длину участков стебля между цветами.
// Вода дает общее количество сегментов.
// Удобрение увеличивает длину цветочных гроздей.
// В этом случае температура находится в допустимом диапазоне 20°C | 30°C
function ("#", 1, 5, 30) ➞ "-#####"
function ("&", 5, 1, 20) ➞ "-----&-----&-----&-----&-----&"
function ("§", 3, 3, 15) ➞ "---------§"
// Температура, выходящая за пределы допустимого диапазона, приводит к гибели всех цветов, кроме последнего.
// Температура не влияет на стержень.
Примечание:
Во всех приведенных случаях будут действительные параметры для воды и ферта, вам нужно только убедиться, что температура находится в "безопасном" диапазоне (20 ° C | 30 ° C).
Раскрашивая полосатый узор, вы можете начать с последовательного раскрашивания каждой полосы, что означает, что вы тратите время на смену цветных карандашей.
Создайте функцию, в которой, учитывая массив cols цветов, верните сколько времени требуется, чтобы раскрасить весь узор. Обратите внимание на следующие моменты:
Переключение между карандашами занимает 1 секунду.
Чтобы раскрасить квадрат, требуется 2 секунды.
Например:
function(["Red", "Blue", "Red", "Blue", "Red"]) ➞ 14
// Существует 5 цветов, поэтому для раскрашивания каждого из них требуется 2 секунды (2 x 5 = 10).
// Вам нужно поменять карандаши 4 раза, и на переключение уходит 1 секунда (1 x 4 = 4).
// 10 + 4 = 14
Например:
function (["Blue"]) ➞ 2
function (["Red", "Yellow", "Green", "Blue"]) ➞ 11
function (["Blue", "Blue", "Blue", "Red", "Red", "Red"]) ➞ 13
Примечания:
Меняйте цветные карандаши только в том случае, если следующий цвет отличается от предыдущего.
Верните номер за считанные секунды.
Создайте функцию, которая принимает одно шестнадцатеричное число в качестве аргумента и возвращает эквивалентное шестизначное двоичное число для подсветки дисплея. Рассматривайте шестизначное двоичное число как входящий сигнал от последовательного порта. Сегментный дисплей - это обычный катодный сегментный дисплей, который означает, что вам нужно указать логическую цифру 1, чтобы осветить каждый сегмент.
Например:
function (0x1) ➞ 0x06
// [dp, g, f, e, d, c, b, a] = [0, 0, 0, 0, 0, 1, 1, 0]
function (0x8) ➞ 0x7F
// [dp, g, f, e, d, c, b, a] = [0, 1, 1, 1, 1, 1, 1, 1]
function (0x0) ➞ 0x3F
// [dp, g, f, e, d, c, b, a] = [0, 0, 1, 1, 1, 1, 1, 1]
Примечание:
Порядок битов следующий MSB [dp, g, f, e, d, c, b, a] LSB.
Это то, что часто встречается в работе с ПЛИС, где вам нужно выполнить какое-то преобразование между числовыми значениями и битами, управляющими оборудованием. Эти преобразования часто не имеют простого алгоритма и требуют жесткого кодирования.
Имеются два массива, которые представляют два бутерброда, верните, используется ли в обоих бутербродах один и тот же тип хлеба. Хлеб всегда будет найден в начале и в конце массива.
Например:
function (
["white bread", "lettuce", "white bread"],
["white bread", "tomato", "white bread"]
) ➞ true
function (
["brown bread", "chicken", "brown bread"],
["white bread", "chicken", "white bread"]
) ➞ false
function (
["toast", "cheese", "toast"],
["brown bread", "cheese", "toast"]
) ➞ false
Примечание:
Массивы всегда будут состоять из трех элементов.
Первый кусок хлеба на одном бутерброде должен быть таким же, как первый кусок хлеба на другом бутерброде. То же самое относится и к последнему куску хлеба.
Ольга и Николай играют в «камень, ножницы, бумага».
Каждая игра представлена массивом длиной 2, где первый элемент представляет то, во что играла Ольга, а второй элемент представляет то, во что играл Николай.
Учитывая последовательность игр, определите, кто выиграет наибольшее количество матчей. Если они сыграли в ничью, выведите "Ничья".
К означает камень
Б означает бумагу
Н означает ножницы
Например:
function([["К", "Б"], ["К", "Н"], ["Н", "К"]]) ➞ "Ольга"
function([["К", "К"], ["Н", "Н"]]) ➞ "Ничья"
function([["Н", "К"], ["К", "Н"], ["К", "К"]]) ➞ "Ничья"
Варианты заданий:
-
№ Варианта
Задание 1
Задание 2
1
1
10
2
2
11
3
3
12
4
4
14
5
5
15
6
6
16
7
7
17
8
8
18
9
9
6
10
10
5
11
11
4
12
12
3
13
13
2
14
14
1
15
15
10
16
16
8
17
17
7
18
18
6