<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Home Task #3. Prokhorova</title> </head> <body> <script> // Задание 1. Создать функцию calculate(operand1, operand2, sign), где operand1 и operand2 — два числа, sign — знак арифметической операции. //Функция должна расчитывать результат операции, исходя из переданного ей знака. //Функция должна проверять корректность введенных чисел и знака операции. //Все аргументы для функции принять от пользователя. function calculate(operand1, operand2, sign) { var result; if (isNaN(operand1) || isNaN(operand2) ) { alert("One of arguments is not a number!"); return; } switch (sign) { case "+" : { result = operand1 + operand2; break; } case "-" : { result = operand1 - operand2; break; } case "/" : { result = operand1 / operand2; break; } case "*" : { result = operand1 * operand2; break; } default: { alert("Unsupported operation!"); return; } } return result; } var operand1 = +prompt("Enter number:"); var operand2 = +prompt("Enter number:"); var sign = prompt("Enter sign:"); result = calculate(operand1, operand2, sign); if (result != undefined) { alert(result); } </script> <script> // 2. Создать функцию, возводящую число в степень, число и сама степень вводится пользователем. var number = +prompt('Enter number:'); var power = +prompt('Enter power:'); function abs(val) { if (val < 0) { return -val; } else { return val; } } function fun1(a,b) { if (b == 0) { return 1; } else if (b == 1) { return a; } var r = 1; for (var n = 0; n < abs(b); n++) { r = r * a; } if (b < 0) { return 1 / r; } return r; } alert(fun1(number, power)); </script> <script> // 3. Создать игру "Камень-Ножницы-Бумага". // Выбор компьютера определяется строкой: // var computerChoice = Math.random(); // alert(computerChoice); // Math.random() выдает произвольное число в промежутке от 0 до 1, на основании этого можно построить принцип выбора решения компьютера. function getRandomInt(min, max) { return Math.floor(Math.random() * (max - min)) + min; } function play() { do { pcChoice = getRandomInt(0, 3); switch (pcChoice) { case 0: alert("stone!"); break; case 1: alert("scissors!"); break; case 2: alert("paper!"); break; default: alert("Something wrong!"); } question = confirm("Another one?"); } while (question); } play(); </script> <script> // 4. Напишите функцию, которая возвращает n-е число Фибоначчи. Для решения используйте цикл. // бонус: для решения использовать не цикл, а рекурсию function fibo(n) { var f = 0, p = 1, c; if (n <= 0) { return NaN; } else if (n == 1) { return f; } else if (n == 2) { return p; } for (var i = 0; i < n - 2; i++) { c = f + p; f = p; p = c; } return c; } n = +prompt("Enter n:"); alert(fibo(n)); </script> <script> // 4. бонус: для решения использовать не цикл, а рекурсию var f = 0, p = 1; function fibor(f, p, n) { if (n <= 0) { return NaN; } else if (n == 1) { return 0; } var c = f + p; n -= 1; f = p; p = c; if (n - 2 > 0) { c = fibor(f, p, n); } return c; } n = +prompt("Enter n:"); alert(fibor(f, p, n)); </script> </body> </html>