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