You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

168 lines
5.3 KiB
HTML

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!DOCTYPE html>
<html lang="en">
<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("Sum Ting Wong!");
}
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>