me@helium 8 anni fa
parent
commit
cd19c68b88
1 ha cambiato i file con 159 aggiunte e 0 eliminazioni
  1. 159 0
      05HomeWork.md

+ 159 - 0
05HomeWork.md

@@ -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: "..."}
+```