Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Общие вопросы > WEB-Программирование
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 20.11.2008, 08:24
Аватар для artemavd
artemavd artemavd вне форума
Начинающий
 
Регистрация: 05.08.2008
Сообщения: 115
Репутация: 12
Восклицание Помогите по JavaScript

Вот код перевода чисел из одной системы счисления в другую. Помогите переделать его, чтбы он переводил только из 16тиричной в 2ичную:
Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
	<title>1-ое задание</title>
</head>
<body>
	<script type="text/javascript" language="JavaScript">
	
//Инициализация массива аргументов
function initArray() {
    this.length = initArray.arguments.length;
    for (var i = 0; i < this.length; i++)
        this[i] = initArray.arguments[i];
}

function from10toradix(value,radix){
    var retval = '';
    var ConvArray = new initArray(0,1,2,3,4,5,6,7,8,9,'A','B','C','D','E','F');
    var intnum;
    var tmpnum;
    var i = 0;

    intnum = parseInt(value,10);
    if (isNaN(intnum)){
        retval = 'NaN';
    }else{
        while (intnum > 0.9){
            i++;
            tmpnum = intnum;
            // связь возвращаемой строки с новым значением:
            retval = ConvArray[tmpnum % radix] + retval;
            intnum = Math.floor(tmpnum / radix);
            if (i > 100){
                // стоп
                retval = 'NaN';
                break;
            }
        }
    }
    return retval;
}

//Очищение 
function resetform(cform) {
    cform.result.value="";
    cform.expr.value="";
}

/* Пока не будет выбрана какая-то радиокнопка процедура не будет выполнена.*/

function compute(cform) {
    var tmpvar;
      if (cform.cotype[0].checked){
        // d2h  Перевод из десятичной в шестнадцатиричную
          cform.result.value = " " +  from10toradix(cform.expr.value,16);
     }else if (cform.cotype[5].checked){
        // h2d  Перевод из шестнадцатиричной в десятичную
          cform.result.value = " " + parseInt(cform.expr.value,16);
     }else if (cform.cotype[1].checked){
        // d2b Перевод из десятичной в двоичную
          cform.result.value = " " + from10toradix(cform.expr.value,2);
     }else if (cform.cotype[2].checked){
         // b2d Перевод из двоичной в десятиричную
          cform.result.value = " " + parseInt(cform.expr.value,2);
     }else if (cform.cotype[3].checked){
        // b2h Перевод из двоичной в шестнадцатиричную
          tmpvar = parseInt(cform.expr.value,2);
        if (isNaN(tmpvar)){
            cform.result.value = '';
        }else{
            cform.result.value = " " + from10toradix(tmpvar,16);
        }
     }else if (cform.cotype[4].checked){
        // h2b Перевод из шестнадцатиричной в двоичную. 
		 //Именно эту процедуру мне и надо оставить. Только из 16ой в 2ую. Остальные мне не надо по условию.  
          tmpvar = parseInt(cform.expr.value,16);
         if (isNaN(tmpvar)){
             cform.result.value = '';
         }else{
              cform.result.value = " " + from10toradix(tmpvar,2);
         }
    }else{
        alert("ERROR: No such conversion type");
    }
}
</script>

<form action="">
Vvedite chislo: <input type="text" name="expr" size="100"> &nbsp; &nbsp;<br>
/*Это сами радио кнопки. Их нужно все убрать. Нужно как то сделать, чтобы не надо было ничего выбирать, а по нажатию кнопки
сразу происходила процедура перевода чисел.*/        
		<table>
		 
                 <tr>
                        <td><input type="radio" name="cotype" value="d2h"> dec to hex (10 в 16)</td>
                </tr>
                <tr>
                        <td><input type="radio" name="cotype" value="d2b" checked="checked"> dec to bin (10 в 2)</td>
                </tr>
                <tr>
                <td><input type="radio" name="cotype" value="b2d"> bin to dec (2 в 10)</td>
                </tr>
                <tr>
                        <td><input type="radio" name="cotype" value="b2h"> bin to hex (2 в 16)</td>
                </tr>
                <tr>
                        <td><input type="radio" name="cotype" value="h2b"> hex to bin (16 в 2)</td>
                </tr>
                <tr>
                        <td><input type="radio" name="cotype" value="h2d"> hex to dec (16 в 10)</td>
                </tr>
        </table>
		
<br>

Otvet: <input type="text" name="result" size="100">&nbsp; &nbsp;<input type="button" value="Perevesti" onclick="compute(this.form);">
</form>
</body>
</html>
Ответить с цитированием
  #2  
Старый 21.11.2008, 15:52
Аватар для mak-karpov
mak-karpov mak-karpov вне форума
Активный
 
Регистрация: 18.09.2008
Сообщения: 235
Версия Delphi: 2010 и 7
Репутация: 1242
По умолчанию

Так.
Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
	<title>1-ое задание</title>
</head>
<body>
	<script type="text/javascript" language="JavaScript">
	
//Инициализация массива аргументов
function initArray() {
    this.length = initArray.arguments.length;
    for (var i = 0; i < this.length; i++)
        this[i] = initArray.arguments[i];
}

function from10toradix(value,radix){
    var retval = '';
    var ConvArray = new initArray(0,1,2,3,4,5,6,7,8,9,'A','B','C','D','E','F');
    var intnum;
    var tmpnum;
    var i = 0;

    intnum = parseInt(value,10);
    if (isNaN(intnum)){
        retval = 'NaN';
    }else{
        while (intnum > 0.9){
            i++;
            tmpnum = intnum;
            // связь возвращаемой строки с новым значением:
            retval = ConvArray[tmpnum % radix] + retval;
            intnum = Math.floor(tmpnum / radix);
            if (i > 100){
                // стоп
                retval = 'NaN';
                break;
            }
        }
    }
    return retval;
}

//Очищение 
function resetform(cform) {
    cform.result.value="";
    cform.expr.value="";
}

/* Пока не будет выбрана какая-то радиокнопка процедура не будет выполнена.*/

function compute(cform) {
    var tmpvar;
      if (cform.cotype[0].checked){
        // d2h  Перевод из десятичной в шестнадцатиричную
          cform.result.value = " " +  from10toradix(cform.expr.value,16);
     }else if (cform.cotype[5].checked){
        // h2d  Перевод из шестнадцатиричной в десятичную
          cform.result.value = " " + parseInt(cform.expr.value,16);
     }else if (cform.cotype[1].checked){
        // d2b Перевод из десятичной в двоичную
          cform.result.value = " " + from10toradix(cform.expr.value,2);
     }else if (cform.cotype[2].checked){
         // b2d Перевод из двоичной в десятиричную
          cform.result.value = " " + parseInt(cform.expr.value,2);
     }else if (cform.cotype[3].checked){
        // b2h Перевод из двоичной в шестнадцатиричную
          tmpvar = parseInt(cform.expr.value,2);
        if (isNaN(tmpvar)){
            cform.result.value = '';
        }else{
            cform.result.value = " " + from10toradix(tmpvar,16);
        }
     }else if (cform.cotype[4].checked){
        // h2b Перевод из шестнадцатиричной в двоичную. 
		 //Именно эту процедуру мне и надо оставить. Только из 16ой в 2ую. Остальные мне не надо по условию.  
          tmpvar = parseInt(cform.expr.value,16);
         if (isNaN(tmpvar)){
             cform.result.value = '';
         }else{
              cform.result.value = " " + from10toradix(tmpvar,2);
         }
    }else{
        alert("ERROR: No such conversion type");
    }
}
</script>

<form action="">
Vvedite chislo: <input type="text" name="expr" size="100"> &nbsp; &nbsp;<br>       
		<table style="display: none;">
		 
                 <tr>
                        <td><input type="radio" name="cotype" value="d2h"> dec to hex (10 в 16)</td>
                </tr>
                <tr>
                        <td><input type="radio" name="cotype" value="d2b" > dec to bin (10 в 2)</td>
                </tr>
                <tr>
                <td><input type="radio" name="cotype" value="b2d"> bin to dec (2 в 10)</td>
                </tr>
                <tr>
                        <td><input type="radio" name="cotype" value="b2h"> bin to hex (2 в 16)</td>
                </tr>
                <tr>
                        <td><input type="radio" name="cotype" value="h2b" checked> hex to bin (16 в 2)</td>
                </tr>
                <tr>
                        <td><input type="radio" name="cotype" value="h2d"> hex to dec (16 в 10)</td>
                </tr>
        </table>
		
<br>

Otvet: <input type="text" name="result" size="100">&nbsp; &nbsp;<input type="button" value="Perevesti" onclick="compute(this.form);">
</form>
</body>
</html>
__________________
Кнопка "+" - весы в правом верхнем углу сообщения...
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter