Инструкция пользователя:

      Калькулятор предназначен для счета в 16-ти ричной системе счисления. Кнопки A, B, C, D, E, F предназначены для ввода чисел от 10 до 15 (в 16-ти ричной системе). Калькулятор выполняет основные арифметические функции: +,-,*,/. Работа с калькулятором аналогична работе с обыкновеннм калькулятором.

Исходный текст калькулятора:

 <SCRIPT language=JavaScript> 
    var  count=0;
    var  action=0;  
   function addChr(input,character)
    {
     if (input.value==0) input.value="";
     if (input.value==0) count=0;     
     if (count=="0") {input.value+="0x0"; count=1}
     if (character=="X") {input.value="0x00"; count=0;character="";} 
     if ((character=="+" || character=="-" || character=="/" || character=="*" || character=="=")&& input.value==0 ) {character="";input.value="0x00";count=0;}
     if (action=="1" && (character=="+" || character=="-" || character=="/" || character=="*")) character="";
     if (character=="+" || character=="-" || character=="/" || character=="*" || character=="=" ) count=0;
     if (count=="1" && (character=="+" || character=="-" || character=="/" || character=="*")) character="";
     if (input.value==null || input.value=="0")
       input.value=character
     else input.value+=character

     if (character=="+" || character=="-" || character=="/" || character=="*" ) action=1
        else action=0; 
     if (character=="=") action=0;
    };
   function rezChr(input)
    {
     input.value=(input.value-1)
    };
   function compute(form)
    {
var x=0;y=0;z=0;y1="";buff=0;buff1="";str="";str1="";c=0;

    x=Math.round(eval(form.display.value));
    res=x;
    while (res>0)
    { 
      z=res; 
      res=res>>4;
      if (res>0) buff=res; 
      y=z-res*16;
      if (y<10) y1=y; 
      if (y==10) y1="A"
      if (y==11) y1="B"
      if (y==12) y1="C"
      if (y==13) y1="D"
      if (y==14) y1="E"
      if (y==15) y1="F"

      if (res>0) {str=y1+str;c++;}
    } 
    if (x<16) buff=x;
      if (buff<10)  buff1=buff;
      if (buff==10) buff1="A"
      if (buff==11) buff1="B"
      if (buff==12) buff1="C"
      if (buff==13) buff1="D"
      if (buff==14) buff1="E"
      if (buff==15) buff1="F"
       
     str=buff1+str; 
     c++;
    str="0x0"+str;
    form.display.value=""; 
    form.display.value=str; 
    
    count=1;
    };
   function about(form)
    {     
     alert("Create by Andrew V.Volkogon")
     form.display.value=0
    };
 </SCRIPT>

Блок-схема алгоритма:



Rambler's Top100