homework.ts 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. //ДЗ: Функции и области видимости
  2. //Анализ
  3. //Проанализируйте свои предыдущие ДЗ на предмет повторяющихся действий и придумайте названия,
  4. //параметры и возвращаемое значение для функций в этих случаях
  5. //Напишите функцию a, которая просто является коротким именем для alert. Смотрите пример
  6. //с d(), которая является коротким именем для debugger из материала лекции
  7. function greetings(greetings:string) {
  8. alert(greetings)
  9. }
  10. // greetings("Привет!") // вызывает alert("Привет!")
  11. //cube
  12. function cube(number: number) {
  13. return Math.pow(number,3)
  14. }
  15. // console.log(cube(2))
  16. //avg2
  17. //Напишите функцию avg2, которая рассчитывает среднюю для двух чисел:
  18. //формула для подсчета среднего: (a + b) / 2
  19. //напишите функцию тут
  20. //avg2(1,2) // возвращает 1.5
  21. //avg2(10,5) // возвращает 7.5
  22. const avgOfTwo = (a: number, b: number) => (a + b) / 2
  23. // console.log(avgOfTwo(1,2))
  24. // console.log(avgOfTwo(10,5))
  25. //sum3
  26. //Напишите функцию sum3 для суммирования 3 чисел:
  27. //Обратите внимание, что sum3 от двух параметров тоже работает корректно.
  28. //sum3(1,2,3) // => 6
  29. //sum3(5,10,100500) // => 100515
  30. //sum3(5,10) // => 15
  31. const sumThree = (a: number = 0, b: number = 0, c: number = 0) => (a + b + c)
  32. // console.log(sumThree(1,2,3))
  33. // console.log(sumThree(5,10,100500))
  34. // console.log(sumThree(5, 10))
  35. //intRandom
  36. //Напишите функцию intRandom, которая принимает два параметра: нижнюю и верхнюю границу, и возвращает целое
  37. //случайное число из этого диапазона включительно:
  38. //Обратите внимание, что если передан один параметр (intRandom(10) в примере выше), то функция работает
  39. //как будто первый параметр равен 0, а переданный параметр становится вторым параметром(intRandom(0, 10))
  40. //Используйте умножение для расширения значения встроенной функции Math.random c диапозона 1, сложениe для
  41. //смещения результата на первый параметр, и Math.round для округления результата
  42. //intRandom(2,15) // возвращает целое случайное число от 2 до 15 (включительно)
  43. //intRandom(-1,-1) // вернет -1
  44. //intRandom(0,1) // вернет 0 или 1
  45. //intRandom(10) // вернет 0 до 10 включительно
  46. const intRandom = (min: number = 0, max?: number) =>
  47. Math.round(Math.random() * ((max ? max : min) - (max ? min : 0)) + (max ? min : 0))
  48. // console.log(intRandom(2,15))
  49. // console.log(intRandom(-1,-1))
  50. // console.log(intRandom(0,1))
  51. // console.log(intRandom(10))
  52. //greetAll
  53. //Сделайтей функцию, которая приветствует всех, кто передан в качестве параметров.
  54. //Вам поможет arguments и for
  55. //greetAll("Superman") // выводит alert "Hello Superman"
  56. //greetAll("Superman", "SpiderMan") // выводит alert "Hello Superman, SpiderMan"
  57. //greetAll("Superman", "SpiderMan", "Captain Obvious") // выводит alert "Hello Superman, SpiderMan, Captain Obvious"
  58. const greetAllDeclaration = function () {
  59. for (const arg of arguments) {
  60. console.log(`Hello darling ${arg} from function declaration`)
  61. }
  62. }
  63. // greetAllDeclaration("Superman")
  64. // greetAllDeclaration("Superman", "SpiderMan")
  65. // greetAllDeclaration("Superman", "SpiderMan", "Captain Obvious")
  66. const greetAllArrow = function (...argumentsArr:string[]) {
  67. for (const arg of argumentsArr) {
  68. console.log(`Hello darling ${arg} from arro function`)
  69. }
  70. }
  71. // greetAllArrow("Superman")
  72. // greetAllArrow("Superman", "SpiderMan")
  73. // greetAllArrow("Superman", "SpiderMan", "Captain Obvious")
  74. //sum
  75. //Напишите функцию sum, которая сумирует любое количество параметров: Используйте псевдомассив
  76. //arguments для получения всех параметров, и for для итерирования по нему
  77. //sum(1) // => 1
  78. //sum(2) // => 2
  79. //sum(10,20,40,100) // => 170
  80. const sumDeclaration = function () {
  81. let sum = 0;
  82. for(const arg of arguments ){
  83. sum +=arg
  84. }
  85. return sum
  86. }
  87. // sumDeclaration(1)
  88. // sumDeclaration(2)
  89. // sumDeclaration(10,20,40,100)
  90. const sumArrow = function (...argumentsArr:number[]) {
  91. let sum = 0;
  92. for(const arg of argumentsArr ){
  93. sum +=arg
  94. }
  95. return sum
  96. }
  97. // sumArrow(1)
  98. // sumArrow(2)
  99. // sumArrow(10,20,40,100)
  100. //Union
  101. //Всё предыдущие функции и примеры с ними объедините в функции, которые вызывайте в switch по имени задания:
  102. const eternalSample = () => {
  103. const sample = prompt("Введите название задания")
  104. !sample&&eternalSample()
  105. switch (sample.toLowerCase()){
  106. case "a": greetings('Gorge')
  107. break;
  108. case "cube": console.log(cube(2))
  109. break;
  110. case "avg2": console.log(avgOfTwo(1, 2))
  111. break;
  112. case "sum3": console.log(sumThree(1, 2, 3))
  113. break;
  114. case "intrandom": console.log(intRandom(2, 15))
  115. break;
  116. case "greetall": greetAllArrow("Superman", "SpiderMan")
  117. break;
  118. case "sum": console.log(sumArrow(10, 20, 40, 100))
  119. break;
  120. default: console.log('Whoopps');
  121. }
  122. eternalSample()
  123. }
  124. // eternalSample()
  125. //Union declarative
  126. //made it but withou invoking , belive me id works
  127. const associativeArr = new Map()
  128. associativeArr.set("a",greetings)
  129. associativeArr.set("cube",cube)
  130. associativeArr.set("avg2",avgOfTwo)
  131. associativeArr.set("sum3",sumThree)
  132. associativeArr.set("intrandom",intRandom)
  133. associativeArr.set("greetall",greetAllArrow)
  134. associativeArr.set("sum", sumArrow)
  135. const eternalSampleAssociativeArr = () => {
  136. const sample = prompt("Введите название задания")
  137. !sample && eternalSampleAssociativeArr()
  138. const getValue = associativeArr.get(sample.toLocaleLowerCase())
  139. getValue ?console.log(getValue):console.log('Whoopps>Try again and writy more exat!');
  140. eternalSampleAssociativeArr()
  141. }
  142. // eternalSampleAssociativeArr()