//a
function a (text) {
    alert(text)
}

//cube
function cube (n) {
    n = n * n * n;
    return n;
}
    //вариант ниже тесты не принимали, но он же вроде рабочий
    // function cube(n){
    //     return n**3;
    // }

//avg2
    //тесты продолжают не пропускать мои рабочие варианты, я в печали 
    //let avg2 = (a, b) => (a + b) / 2

function avg2 (a, b) {
    let average = (a + b) / 2
    return average;
} 

//sum3
function sum3 (a=0, b=0, c=0) {
    let sum = a + b + c;
    return sum;
}

//intRandom
function intRandom (upper, lower = 0) {
    let randomNumber = Math.round(Math.random() * (upper - lower) + lower)
    return randomNumber;
}

//greetAll
function greetAll () {
    let message = 'Guten Tag, '
    for (let i = 0; i < arguments.length; i++) {
        if (i == arguments.length - 1) {
            message += `${arguments[i]} `
        } else {
            message += `${arguments[i]}, `
        }
    }
    alert(message)
}
    //or
    // function greetAll (...names) {
    //     alert(`Hello ${names.reduce((a, b) => `${a}, ${b}`)}`)
    // }

//sum
function sum () {
    let sum = 0;
    for (let i = 0; i < arguments.length; i++) {
        sum += arguments[i]
    }
    return sum;
}
    //or 
    // function sum (...numbers) {
    //     return numbers.reduce((a,b)=> a + b)
    // }


//Union
// let taskName = prompt('Введите название задания').toLowerCase()
// switch (taskName) {
//     case 'a': a('Дарова!')
//             break
//     case 'cube': cube(5)
//             break
//     case 'avg2': avg2(10, 5)
//             break
//     case 'sum3': sum3(333, 333)
//             break
//     case 'intrandom': intRandom(666)
//             break
//     case 'greetall': greetAll('Ivan')
//             break
//     case 'sum': sum(111, 222, 333, 444, 555)
//             break
//     default: alert('Не пон')
// }

//Union declarative
let functions = {
    a: function aSample () {
        alert('Доброго времени суток!')
    },
    cube: function cubeSample () {
        n = 5 * 5 * 5;
        return n;
    },
    avg2: function avg2Sample () {
        let average = (10 + 10) / 2
        return average;
    },
    sum3: function sum3Sample () {
        let sum = 111 + 222 + 333;
        return sum;
    },
    intrandom: function intRandomSample () {
        let randomNumber = Math.round(Math.random() * (10 - 0) + 0)
        return randomNumber;
    },
    greetall: function greetAllSample () {
        let message = 'Guten Tag, '
        arguments = ['Ivan']
        for (let i = 0; i < arguments.length; i++) {
            if (i == arguments.length - 1) {
                message += `${arguments[i]} `
            } else {
                message += `${arguments[i]}, `
            }
        }
        alert(message)
    },
    sum: function sumSample () {
        arguments = [111, 222, 333, 444, 555]
        let sum = 0;
        for (let i = 0; i < arguments.length; i++) {
            sum += arguments[i]
        }
        return sum;
    }
}
let taskName = prompt('Введите название задания').toLowerCase()
functions[taskName]()