Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Проверка на дурака (https://javascript.ru/forum/misc/66426-proverka-na-duraka.html)

gleb162 14.12.2016 18:34

Проверка на дурака
 
Есть готовый скрипт "Перевод из одной системы счисления в другую", не знаю, как написать ошибку при выводе неправильных данных. Пример:
1)Вводим число 128
2)Ставим "из системы" 8-миричной
3)В систему 16-тиричную
и он в ответ в выдает значение "а", как это исправить, чтобы он выдавал ошибку при таких значениях...?

<html>
<head>
<title>Перевод из одной системы счисления в другую</title>
<script LANGUAGE="JavaScript">
function convert(form) {
//получаем данные из поле ввода, преобразуя их в Integer
base_from = parseInt(form.base_from.value);
base_to = parseInt(form.base_to.value);
//преобразуем данные по основанию base_from в десятичную систему
num = parseInt(form.num.value, base_from);
//преобразуем данные из десятичной в систему по указанному основанию base_to
amount = num.toString(base_to);
//выводим результат
form.amount.value = amount
}
</script>
</head>
<body>
<form name="Convert_form">
<p>Перевести <input type="text" name="num" size="8">
из системы <input type="text" name="base_from" size="8" value="2">
в систему <input type="text" name="base_to" size="8" value="2">
<input type="button" value=" = " onclick="convert(this.form)"> 
<input type="text" name="amount" size="15"> 
</p>
</form>
</body>
</html>

Malleys 14.12.2016 20:01

Надо проверить, будет ли переведённое в десятичную систему число равно самому себе, если его обратно перевести в ту же систему счисления.

<!doctype html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Перевод из одной системы счисления в другую</title>
        <meta http-equiv="X-UA-Compatible" content=" IE=edge, chrome=1">
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, minimal-ui">
    </head>
    <body>
    <form>
        Перевести <input type="text" name="num" size="8">
        из системы <input type="text" name="base_from" size="8" value="2">
        в систему <input type="text" name="base_to" size="8" value="2">
        <input type="button" value=" = " onclick="convert(this.form)"> 
        <input type="text" name="amount" size="15"> 
    </form>
    <script>

    function convert(form) {
        //получаем данные из поле ввода, преобразуя их в Integer
        base_from = parseInt(form.base_from.value);
        base_to = parseInt(form.base_to.value);

        //преобразуем данные по основанию base_from в десятичную систему
        num = parseInt(form.num.value, base_from);

        if(num.toString(base_from) !== form.num.value) {
            form.amount.value = "#ERROR";
            throw new RangeError("Invalid number");
        }

        //преобразуем данные из десятичной в систему по указанному основанию base_to
        amount = num.toString(base_to);

        //выводим результат
        form.amount.value = amount
    }
        </script>
    </body>
</html>

gleb162 14.12.2016 21:09

Спасибо большое, все работает)


Часовой пояс GMT +3, время: 02:24.