// a

// Напишите функцию a, которая просто является коротким именем для alert. 
// Смотрите пример с d(), которая является коротким именем для debugger из материала лекции

function a(text) {
  text = prompt('Enter some text:');
  return alert(text);
};

// cube

// Напишите функцию cube, которая возвращает число в третьей степени:

function cube(num) {
  num = prompt('Enter the number, you will get the cube:');
  return alert(Math.pow(num, 3));
};

// avg2

// Напишите функцию avg2, которая рассчитывает среднюю для двух чисел:

// формула для подсчета среднего: (a + b) / 2

function avg2(a, b) {
  a = prompt('Enter the first number:');
  b = prompt('Enter the second number:');
  return alert((a + b) / 2);
};

// sum3

// Напишите функцию sum3 для суммирования 3 чисел:

// Обратите внимание, что sum3 от двух параметров тоже работает корректно.

function sum3(a, b, c) {
  a = prompt('Enter the first number:') || 0;
  b = prompt('Enter the second number:') || 0;
  c = prompt('Enter the third number:') || 0;
  return alert(a + b + c);
};

// intRandom

// Напишите функцию intRandom, которая принимает два параметра: 
// нижнюю и верхнюю границу, и возвращает целое случайное число из этого диапазона включительно:
// Обратите внимание, что если передан один параметр (intRandom(10) в примере выше), 
// то функция работает как будто первый параметр равен 0, 
// а переданный параметр становится вторым параметром (intRandom(0,10))
// Используйте умножение для расширения значения встроенной функции Math.random c диапозона 1, 
// сложениe для смещения результата на первый параметр, и Math.round для округления результата

function intRandom(m, n) {
  m = +prompt('Enter the first number in diapason:') || 0;
  n = +prompt('Enter the second number in diapason:');
  return alert(Math.round(Math.random() * (m - n) + n));
};

// greetAll

// Сделайтей функцию, которая приветствует всех, кто передан в качестве параметров.
// Вам поможет arguments и for

function greetAll(a) {
  for (var i = 1; i < arguments.length; i++) {
    a += ', ' + arguments[i];
  }
  return alert('Hello, ' + a);
};

// sum

// Напишите функцию sum, которая сумирует любое количество параметров: 
// Используйте псевдомассив arguments для получения всех параметров, и for для итерирования по нему

function sum(a = 0) {
  for (var i = 1; i < arguments.length; i++) {
    a += arguments[i];
  }
  return alert(a);
};

// Union

// Всё предыдущие функции и примеры с ними объедините в функции, которые вызывайте в switch по имени задания:

// function aSample() {
//   a("Привет!") // вызывает alert("Привет!")
// }

// function cubeSample() {
//   cube(5) // => 125
// }

// var sample = prompt("Введите название задания")
// switch (sample.toLowerCase()) {
//   case "a": aSample()
//     break
//   case "cube": cubeSample()
//     break
// }

var sample = prompt("Введите название задания");
switch (sample.toLowerCase()) {
  case "a": a();
    break;
  case "cube": cube();
    break;
  case 'avg2': avg2();
    break;
  case 'sum3': sum3();
    break;
  case 'intrandom': intRandom();
    break;
  case 'greetall': greetAll('Billy', 'Willy', 'Dilly');
    break;
  case 'sum': sum(3,14,15,92);
    break;
  default: alert('Something bad has happened, please try again :(');
    break;
};

// Union declarative

// Используйте ассоциативный массив вместо switch

var list = {
  'lista': function listA(text) {
    text = prompt('Enter some text:');
    return alert(text);
  },
  'listcube': function listCube(num) {
    num = prompt('Enter the number, you will get the cube:');
    return alert(Math.pow(num, 3));
  },
  'listavg2': function listAvg2(a, b) {
    a = prompt('Enter the first number:');
    b = prompt('Enter the second number:');
    return alert((a + b) / 2);
  },
  'listsum3': function listSum3(a, b, c) {
    a = prompt('Enter the first number:') || 0;
    b = prompt('Enter the second number:') || 0;
    c = prompt('Enter the third number:') || 0;
    return alert(a + b + c);
  },
  'listintrandom': function listIntRandom(m, n) {
    m = +prompt('Enter the first number in diapason:') || 0;
    n = +prompt('Enter the second number in diapason:');
    return alert(Math.round(Math.random() * (m - n) + n));
  },
  'listgreetall': function listGreetAll(a) {
    for (var i = 1; i < arguments.length; i++) {
      a += ', ' + arguments[i];
    }
    return alert('Hello, ' + a);
  },
  'listsum': function sum(a = 0) {
    for (var i = 1; i < arguments.length; i++) {
      a += arguments[i];
    }
    return alert(a);
  }
};