function analysis(){
    // во всех предыдущих дз я делал функции как отдельное задание
    // (в дз 05, у меня функции последовательно вызывают друг друга,
    // тем самым передавая значение массива по цепочке)
} // Анализ
function a() {
    alert(arguments[0]);
} // a
function cube(num) {
    return Math.pow(num, 3);
    //return Math.pow(arguments[0], 3);
} // cube
function avg2(a, b){
    return (a + b) / 2
} // avg2
function sum3(a, b, c) {
    return (a || 0) + (b || 0) + (c || 0);
} // sum3
function intRandom(...args) {
    return (args.length === 1) ?
        Math.round(Math.random() * args[0]) :
        Math.round(Math.random() * (args[1] - args[0]) + args[0]);
} // intRandom
// function greetAll(){
//     let str = 'Hello ';
//     for (let i = 0; i < arguments.length; i++) {
//         str += `${arguments[i]}, `;
//     }
//     return str.slice(0, str.length-2);
// } // greetAll ВАРИАНТ 1
function greetAll(...persons){
    return `Hello ${persons.join(', ')}`;
} // greetAll ВАРИАНТ 2
function sum(){
    let sum = 0;
    for (let i = 0; i < arguments.length; i++) {
        sum += arguments[i];
    }
    return sum;
} // sum
function union() {
    function aSample(){
        a("Привет!");
    }
    function cubeSample(){
        alert(cube(5));
    }
    function avg2Sample(){
        alert(avg2(1,2));
    }
    function sum3Sample(){
        alert(sum3(1,2,3));
    }
    function intRandomSample(){
        alert(intRandom(2, 15));
    }
    function greetAllSample(){
        alert(greetAll("Superman", "SpiderMan", "Captain Obvious"));
    }
    function sumSample(){
        alert(sum(10, 20, 40, 100));
    }

    let sample = prompt("Введите название задания")
    switch (sample.toLowerCase()){
        case "a": aSample();
            break;
        case "cube": cubeSample();
            break;
        case "avg2": avg2Sample();
            break;
        case "sum3": sum3Sample();
            break;
        case "intRandom": intRandomSample();
            break;
        case "greetAll": greetAllSample();
            break;
        case "sum": sumSample();
            break;
        default: alert('Error');
            break;
    }
} // Union
function unionDeclarative(str){
    let obj = {
        a: function (){
            a("Привет!");
        },
        cube: function (){
            alert(cube(5));
        },
        avg2: function (){
            alert(avg2(1,2));
        },
        sum3: function (){
            alert(sum3(1,2,3));
        },
        intRandom: function (){
            alert(intRandom(2, 15));
        },
        greetAll: function (){
            alert(greetAll("Superman", "SpiderMan", "Captain Obvious"));
        },
        sum: function (){
            alert(sum(10, 20, 40, 100));
        },
        union: function (){
            union();
        },
    }
    return obj[str];
} // Union declarative

//unionDeclarative('a')(); // пример вызова