Показать сообщение отдельно
  #1 (permalink)  
Старый 27.12.2014, 18:10
Новичок на форуме
Отправить личное сообщение для helloterry8 Посмотреть профиль Найти все сообщения от helloterry8
 
Регистрация: 27.12.2014
Сообщений: 4

Конвертер (перевод) систем счисления
На языке JavaScript написать программу без встроенных функций с использованием условий, циклов и массивов конвертации из десятичной системы счисления в двоичную, восьмеричную и шестнадцатеричную, а так же реализовать конвертацию чисел в обратном направлении.

Помогите понять, где ошибка. Неправильно переводит из 10 в 2, 8 и 16, а в обратном направлении вообще не работает.

<html>
<head>
    <meta charset="utf-8" />
    <title>Конвертёр чисел между системами счисления</title>
<script type="text/javascript">
function translaten() {
var number = document.getElementById('number').value;
var vhod = document.getElementById('input').value;
var vihod = document.getElementById('output').value;
var resultat = "";
	if (vhod == 10 && vihod == 2 || vihod == 8 || vihod == 16) {
var a;
while (number > 0) {
    a = number % vihod;
resultat = resultat + a;
var b;
b=number/vihod;
number=number-Math.ceil(b);
}
alert('Ваш результат - '+resultat);
}
if (vhod == 2 || vhod == 8 || vihod == 16 && vihod == 10) {
var resultat = 0, m = 0, nnazad, n = number.length;
nnazad = n - 1;
var arr=number.split('');
// for (var i=1; i == n; i++) {
var i = 0;
while (i < number.length) {
if (arr[i] == "A") { arr[i] = "10"; }
if (arr[i] == "B") { arr[i] = "11"; }
if (arr[i] == "C") { arr[i] = "12"; }
if (arr[i] == "D") { arr[i] = "13"; }
if (arr[i] == "E") { arr[i] = "14"; }
if (arr[i] == "F") { arr[i] = "15"; }
m = number[i] * Math.pow(input, n);
resultat = m + resultat;
n--;
i++;
alert('Ваш результат - ', resultat);
if (i > nnazad) { 
    alert('Ваш результат - ', resultat, '.'); break; }
} 
//}
}
}
</script>
    <title>Перевод из одной системы счисления в другую</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <style type="text/css">
        * {
            padding: 0;
        }

        body {
            color: #80e8ff;
            background: #2E69E3;
            text-align: center; /* выравниваем все содержимое body по центру */
        }

        div {
            width: 800px; /* ширина основного блока */
            height: 100%; /* высота для наглядности */
            background: #004A7f; /* цвет блока для наглядности */
            margin: 0 auto; /* задаем отступ слева и справа auto чтобы сработало выравнивание по центру */
        }

        p {
            font-family: courier;
            font-size: 160%;
        }

        .input {
            border: 5px solid #cccccc;
            border-radius: 9px;
            -webkit-border-radius: 9px;
            -moz-border-radius: 3px;
            -khtml-border-radius: 3px;
            background: #ffffff !important;
            outline: none;
            height: 34px;
            width: 220px;
            color: #80e8ff;
            font-size: 16px;
            font-family: Tahoma;
            text-align: right;
        }

        .button {
            background: #2E8CE3;
            padding: 7px 30px;
            font-size: 16px;
            font-weight: bold;
            color: #FFFFFF;
            text-align: center;
            border: solid 1px #73C8F0;
            cursor: pointer;
            border-radius: 5px;
            -moz-border-radius: 5px;
            -webkit-border-radius: 5px;
            background: -moz-linear-gradient(0% 100% 90deg, #2E8CE3, #73C2Fd);
            background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#73C2Fd), to(#2E8CE3));
            box-shadow: inset 0 1px 0 0 #FFFFFF;
            -moz-box-shadow: 0 1px 3px rgba(0,0,0,0.5);
            -webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.5);
            border-bottom: 1px solid rgba(0,0,0,0.25);
            text-shadow: 0 -1px 1px rgba(0,0,0,0.25);
        }

            .button:hover {
                background: #80e8ff;
                background: -moz-linear-gradient(0% 100% 90deg, #2E69E3, #59C2FF);
                background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#59C2FF), to(#2E69E3));
            }

            .button:active {
                background: #80e8ff;
                background: -moz-linear-gradient(0% 100% 90deg, #2E69E3, #59C2fF);
                background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#59C2FF), to(#2E69E3));
                box-shadow: inset 1px 1px 0 0 #004A7f;
                -moz-box-shadow: inset 1px 1px 0 0 #004A7f;
                -webkit-box-shadow: inset 1px 1px 0 0 #004A7F;
                padding: 8px 29px 6px 31px;
            }

        .select {
            border: 5px solid #cccccc;
            border-radius: 9px;
            -webkit-border-radius: 9px;
            -moz-border-radius: 3px;
            -khtml-border-radius: 3px;
            background: #ffffff !important;
            outline: none;
            height: 34px;
            width: 60px;
            color: #004A7f;
            font-size: 16px;
            font-family: Tahoma;
        }
    </style>
</head>
<body>
<form>
    <div>
<p><strong>Конвертёр чисел между системами счисления:</strong></p>
        <p> число <input type="text" name="number" id="number"  /> </p> из
<select class="element select medium" id="input" name="input"> 
	   <option value="" selected="selected"></option>
	   <option>2</option>
	   <option>8</option>
	   <option>10</option>
	   <option>16</option>
	</select> системы счисления в
<select class="element select medium" id="output" name="output"> 
	   <option value="" selected="selected"></option>
	   <option>2</option>
	   <option>8</option>
	   <option>10</option>
	   <option>16</option>
	</select> систему счисления
<p><input type="button" value="Перевести" onclick="translaten();" /></p>
        </div>
</form>
</body>
</html>

Последний раз редактировалось helloterry8, 27.12.2014 в 18:20.
Ответить с цитированием