Арифметический калькулятор с контролем ошибок, это такой калькулятор, в строке ввода которого Вы видите всё арифметическое выражение сразу. Поэтому в случае чего Вы можете исправить неверно введенные числа.
По этой ссылке Вы можете посмотреть, как выглядит и работает калькулятор с контролем ошибок: http://enigma.nanoquant.ru/demo-script/calc/demo-calc1.html.
Если Вы хотите установить этот калькулятор себе на свой сайт, то здесь находится инструкция по установке и коды, которые нужно скопировать на свой сайт.
Этот код нужно вставить между тегами body в то самое место, в котором должен находиться калькулятор. Синим цветом выделены тексты, которые Вы должны перекодировать, если кодировка Вашего сайта отличается от кодировки windows-1251. Кроме того, Вы можете сами по своему усмотрению ввести любые нужные Вам стили тегов table, tr и td для изменения дизайна калькулятора.
<table border="2" width="200" cellspacing="0" cellpadding="0" bgcolor="#000000" style="border-color:black" onClick="previouskey=event.srcElement.innerText"> <tr> <td width="100%" bgcolor="#FFFFFF" id="result" style="font:bold 20px Verdana;color:black;text-align='right'">0</td> </tr> <tr> <td width="100%" valign="middle" align="center"><table border="0" width="100%" cellspacing="0" cellpadding="0" style="font:bold 20px Verdana;color:white"> <tr> <td width="80%" align="center"><table border="1" width="100%" cellspacing="0" cellpadding="0" style="cursor:hand;font:bold 20px Verdana;color:white" onMouseover="if (event.srcElement.tagName=='TD')event.srcElement.style.color='yellow'" onMouseout="event.srcElement.style.color='white'" onselectStart="return false" onClick="calculate()" height="82"> <tr> <td width="25%" align="center" height="17">7</td> <td width="25%" align="center" height="17">8</td> <td width="25%" align="center" height="17">9</td> <td width="25%" align="center" height="17">/</td> </tr> <tr> <td width="25%" align="center" height="19">4</td> <td width="25%" align="center" height="19">5</td> <td width="25%" align="center" height="19">6</td> <td width="25%" align="center" height="19">*</td> </tr> <tr> <td width="25%" align="center" height="19">1</td> <td width="25%" align="center" height="19">2</td> <td width="25%" align="center" height="19">3</td> <td width="25%" align="center" height="19">-</td> </tr> <tr> <td width="25%" align="center" height="19">0</td> <td width="25%" align="center" height="19" onClick="pn();previouskey=1;event.cancelBubble=true">+/-</td> <td width="25%" align="center" height="19">.</td> <td width="25%" align="center" height="19">+</td> </tr> </table> </td> <td width="20%"><div align="left"><table border="1" width="100%" cellspacing="0" cellpadding="0"> <tr> <td width="100%" style="cursor:hand;font:bold 20px Verdana;color:white;text-align:center" onClick="result.innerText=0;results=''">C</td> </tr> </table> </div><div align="left"><table border="1" width="100%" cellspacing="0" cellpadding="0" height="81"> <tr> <td width="100%" style="cursor:hand;font:bold 32px Verdana;color:white;text-align:center" onMouseover="event.srcElement.style.color='yellow'" onMouseout="event.srcElement.style.color='white'" onClick="calculateresult()">=</td> </tr> </table> </div></td> </tr> </table> </td> </tr> </table> <script language="JavaScript1.2"> var results='' var previouskey='' var re=/(\/|\*|\+|-)/ var re2=/(\/|\*|\+|-){2}$/ var re3=/.+(\/|\*|\+|-).+/ var re4=/\d|\./ var re5=/^[^\/\*\+].+\d$/ var re6=/\./ function calculate(){ if (event.srcElement.tagName=="TD"){ if (event.srcElement.innerText.match(re4)&&previouskey=="=") results='' if (result.innerText.match(re3)&&event.srcElement.innerText.match(re)){ if (!results.match(re5)){ result.innerText="Ошибка!" return } results=eval(results) if (results.toString().length>=12&&results.toString().match(re6)) results=results.toString().substring(0,12) result.innerText=results } results+=event.srcElement.innerText if (results.match(re2)) results=results.substring(0,results.length-2)+results.charAt(results.length-1) result.innerText=results } } function calculateresult(){ if (!results.match(re5)){ result.innerText="Ошибка!" return } results=eval(results) if (results.toString().length>=12&&results.toString().match(re6)) results=results.toString().substring(0,12) result.innerText=results } function pn(){ if (result.innerText.charAt(0)!='-') result.innerText=results='-'+result.innerText else if (result.innerText.charAt(0)=='-') result.innerText=results=result.innerText*(-1) } </script> |
Внимание! Если эти коды копируются из Вашего браузера в Вашу веб-страницу неправильно, то нужно их сначала скопировать в какой-нибудь самый простой текстовый редактор, например, в Блокнот. А уже потом оттуда их скопировать на свою веб-страницу.