From a3fa55d67db75d5746af0daa3dd292bb43d5d01d Mon Sep 17 00:00:00 2001 From: Krio Date: Sat, 11 Sep 2021 13:32:29 +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=2010?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- labs/lab10/desc.json | 15 +++++++++++---- labs/lab10/main.js | 12 +++++++++++- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/labs/lab10/desc.json b/labs/lab10/desc.json index 0c4200c..7a921db 100644 --- a/labs/lab10/desc.json +++ b/labs/lab10/desc.json @@ -1,14 +1,21 @@ { "number": 10, - "task": "", + "task": "Создайте функцию, которая принимает положительное целое число (одно из base2, base8 или base16), преобразует целое число в заданное основание и возвращает строку с использованием рекурсии.", "vars": [ [ { - "name": "", - "desc": "", + "name": "n", + "desc": "Число в двоичной системе", "data": "" } + ], + [ + { + "name": "n", + "desc": "Число в двоичной системе", + "data": "999" + } ] ], - "complete": false + "complete": true } \ No newline at end of file diff --git a/labs/lab10/main.js b/labs/lab10/main.js index 466be91..909a077 100644 --- a/labs/lab10/main.js +++ b/labs/lab10/main.js @@ -3,5 +3,15 @@ function main(formName) { let result = document.getElementById("result"); - result.textContent = "Результат: неопределенно"; + let n = document.forms[formName].elements[0].value; + if ( !/^[01]+$/.test(n) ) { + result.textContent = "Ошибка: n должно содежать только нули и единицы!"; + return; + } + + result.textContent = "Результат: " + binToDecimal(Number(n)); } + +function binToDecimal(n) { + return n == 0 ? 0 : n % 10 + 2 * binToDecimal(Math.trunc(n / 10)); +} \ No newline at end of file