From 6d36dde1d984de34d23fa8bd9c22d6af46b18650 Mon Sep 17 00:00:00 2001 From: Krio Date: Tue, 7 Sep 2021 08:44:10 +0700 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B0=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=B0=205?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- labs/lab5/desc.json | 28 ++++++++++++++++++++++++++++ labs/lab5/main.js | 31 +++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 labs/lab5/desc.json create mode 100644 labs/lab5/main.js diff --git a/labs/lab5/desc.json b/labs/lab5/desc.json new file mode 100644 index 0000000..d11fe67 --- /dev/null +++ b/labs/lab5/desc.json @@ -0,0 +1,28 @@ +{ + "number": "5", + "task": "Повторяющийся квадратный корень из числа - это количество раз, которое необходимо применить к функции извлечения квадратного корня, чтобы число было строго меньше 2. Для заданного целого числа вернуть повторяющийся квадратный корень. Вернуть «недействительно», если оно отрицательное.", + "vars": [ + [ + { + "name": "n", + "desc": "Исходное число", + "data": "" + } + ], + [ + { + "name": "n", + "desc": "Исходное число", + "data": "8" + } + ], + [ + { + "name": "n", + "desc": "Исходное число", + "data": "-5" + } + ] + ], + "complete": true +} \ No newline at end of file diff --git a/labs/lab5/main.js b/labs/lab5/main.js new file mode 100644 index 0000000..07c5cee --- /dev/null +++ b/labs/lab5/main.js @@ -0,0 +1,31 @@ +"use strict"; + +function main(formName) { + let result = document.getElementById("result"); + + let n = document.forms[formName].elements[0].value; + if (isNotNumber(n)) { + result.textContent = "Ошибка: n не является числом!"; + return; + } + + result.textContent = "Результат: " + countRoots(n); +} + +function countRoots(n) { + if (n < 0) { + return undefined; + } + + let result = 0; + while (n >= 2) { + n = Math.sqrt(n); + result++; + } + + return result; +} + +function isNotNumber(val) { + return val.replace(/\s/g, '').length === 0 || isNaN(val); +}