|
@@ -0,0 +1,159 @@
|
|
|
|
+# Домашнее задание. Функции
|
|
|
|
+
|
|
|
|
+## Анализ
|
|
|
|
+
|
|
|
|
+Проанализируйте свои предыдущии ДЗ на предмет повторяющихся действий и придумайте названия, параметры и возвращаемое значение для функций
|
|
|
|
+в этих случаях
|
|
|
|
+
|
|
|
|
+## a
|
|
|
|
+
|
|
|
|
+Напишите функцию `a`, которая просто является коротким именем для alert. Смотрите пример с `d()`, которая является коротким именем для `debugger` из
|
|
|
|
+материала лекции
|
|
|
|
+
|
|
|
|
+```javascript
|
|
|
|
+a("Привет!") // вызывает alert("Привет!")
|
|
|
|
+```
|
|
|
|
+
|
|
|
|
+## Cube
|
|
|
|
+
|
|
|
|
+Напишите функцию `cube`, которая возвращает число в третьей степени:
|
|
|
|
+
|
|
|
|
+```javascript
|
|
|
|
+cube(1) // возвращает 1
|
|
|
|
+cube(2) // возвращает 8
|
|
|
|
+cube(3) // возвращает 27
|
|
|
|
+```
|
|
|
|
+
|
|
|
|
+## Average
|
|
|
|
+
|
|
|
|
+Напишите функцию `avg2`, которая рассчитывает среднюю для двух чисел:
|
|
|
|
+
|
|
|
|
+```javascript
|
|
|
|
+avg2(1,2) // возвращает 1.5
|
|
|
|
+avg2(10,5) // возвращает 7.5
|
|
|
|
+```
|
|
|
|
+
|
|
|
|
+формула для подсчета среднего: (a + b) / 2
|
|
|
|
+
|
|
|
|
+## Sum3
|
|
|
|
+
|
|
|
|
+Напишите функцию `sum3` для суммирования 3 чисел:
|
|
|
|
+
|
|
|
|
+```javascript
|
|
|
|
+sum3(1,2,3) // => 6
|
|
|
|
+sum3(5,10,100500) // => 100515
|
|
|
|
+```
|
|
|
|
+
|
|
|
|
+## IntegerBoundedRandom
|
|
|
|
+
|
|
|
|
+Напишите функцию `intRandom`, которая принимает два параметра: нижнюю и верхнюю границу, и возвращает
|
|
|
|
+**целое** случайное число из этого диапазона включительно:
|
|
|
|
+
|
|
|
|
+```javascript
|
|
|
|
+intRandom(2,15) // возвращает целое случайное число от 2 до 15 (включительно)
|
|
|
|
+intRandom(-1,-1) // вернет -1
|
|
|
|
+intRandom(0,1) // вернет 0 или 1
|
|
|
|
+```
|
|
|
|
+
|
|
|
|
+Используйте умножение для расширения значения встроенной функции `Math.random` c диапозона 1, сложения для смещения результата
|
|
|
|
+на первый параметр, и `Math.round` для округления результата
|
|
|
|
+
|
|
|
|
+## greetAll
|
|
|
|
+
|
|
|
|
+Сделайтей функцию, которая приветствует всех, кто передан в качестве параметров
|
|
|
|
+
|
|
|
|
+```javascript
|
|
|
|
+greetAll("Superman"); // выводит alert "Hello Superman"
|
|
|
|
+greetAll("Superman", "SpiderMan"); // выводит alert "Hello Superman, SpiderMan"
|
|
|
|
+greetAll("Superman", "SpiderMan", "Captain Obvious"); // выводит alert "Hello Superman, SpiderMan, Captain Obvious"
|
|
|
|
+```
|
|
|
|
+Используйте `arguments` и `for`.
|
|
|
|
+
|
|
|
|
+## Sum
|
|
|
|
+
|
|
|
|
+Напишите функцию `sum`, которая сумирует любое количество параметров:
|
|
|
|
+
|
|
|
|
+```javascript
|
|
|
|
+sum(1) // => 1
|
|
|
|
+sum(2) // => 2
|
|
|
|
+sum(10,20,40,100) // => 170
|
|
|
|
+```
|
|
|
|
+
|
|
|
|
+Используйте псевдомассив `arguments` для получения всех параметров, и `for` для итерирования по нему
|
|
|
|
+
|
|
|
|
+## avg
|
|
|
|
+
|
|
|
|
+Сделайте функцию `avg`, которая рассчитывает среднее значение любого количества параметров
|
|
|
|
+
|
|
|
|
+```javascript
|
|
|
|
+sum(1) // => 1
|
|
|
|
+sum(2) // => 2
|
|
|
|
+sum(10,20,40,100) // => 42.5
|
|
|
|
+```
|
|
|
|
+
|
|
|
|
+## Объединение
|
|
|
|
+
|
|
|
|
+Всё предыдущие функии и примеры с ними объедините в функции, которые вызывайте в `switch` по номеру задания:
|
|
|
|
+```javascript
|
|
|
|
+
|
|
|
|
+function aSample(){
|
|
|
|
+ a("Привет!") // вызывает alert("Привет!")
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+function cubeSample(){
|
|
|
|
+ cube(5) // => 125
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+var sample = prompt("Введите номер задания")
|
|
|
|
+switch (sample){
|
|
|
|
+ case "1": aSample();
|
|
|
|
+ break
|
|
|
|
+ case "2": cubeSample();
|
|
|
|
+ break
|
|
|
|
+}
|
|
|
|
+```
|
|
|
|
+
|
|
|
|
+## Синий пояс: inputPerson
|
|
|
|
+
|
|
|
|
+Сделайте функцию inputPerson, которая будет спрашивать у пользователя фамилию, имя, отчество, и возвращать ассоциативный массив с новой
|
|
|
|
+персоной:
|
|
|
|
+
|
|
|
|
+```javascript
|
|
|
|
+inputPerson() // => {"name": "то, что ввел пользователь", "surname": ..., }
|
|
|
|
+var persons = [inputPerson(), inputPerson(), inputPerson()] // => вводим трех персон
|
|
|
|
+```
|
|
|
|
+
|
|
|
|
+## Черный пояс: inputAnything
|
|
|
|
+
|
|
|
|
+Сделайте функцию inputAnything, которая в качестве параметра принимает следующую структуру:
|
|
|
|
+
|
|
|
|
+```javascript
|
|
|
|
+var inputStructure = [
|
|
|
|
+ {prompt: "Введите Фамилию",
|
|
|
|
+ default_: "",
|
|
|
|
+ field: "surname"
|
|
|
|
+ },
|
|
|
|
+ {prompt: "Введите Имя",
|
|
|
|
+ default_: "",
|
|
|
|
+ field: "name"
|
|
|
|
+ },
|
|
|
|
+ {prompt: "Введите Отчество",
|
|
|
|
+ default_: "",
|
|
|
|
+ field: "fatherName"
|
|
|
|
+ },
|
|
|
|
+ {prompt: "Введите возраст",
|
|
|
|
+ default_: "0",
|
|
|
|
+ field: "age"
|
|
|
|
+ },
|
|
|
|
+]
|
|
|
|
+```
|
|
|
|
+Функция с таким параметром будет выводить 4 раза `prompt`, с текстом из полей `prompt` структуры ("Введите Фамилию" и так далее), и формировать внутренний
|
|
|
|
+объект `result` с полями `field` (`surname`, `name` и так далее), который вернет функция. `default_` в структуре передается в prompt как значение по умолчанию.
|
|
|
|
+
|
|
|
|
+```javascript
|
|
|
|
+inputAnything([{prompt: "Введите число",
|
|
|
|
+ default_: "0",
|
|
|
|
+ field: "number"
|
|
|
|
+ }]) // => {number: "число, которое ввел пользователь"}
|
|
|
|
+inputAnything(inputStructure) // => {surname: "...", name: "...", fatherName: "...", age: "..."}
|
|
|
|
+```
|