Арифметические действия
Вот такая задачка:
Создайте Web-страницу, в которой выполняются арифметические действия над двумя операндами. В первом текстовом поле вводятся два числовых операнда, между которыми должен находиться один из знаков арифметических действий: "+", "-", "*" или "/". При нажатии кнопки "Вычислить" выполняется соответствующая арифметическая операция, и результат выводится во втором текстовом поле. Если введенный операнд не является правильным арифметическим выражением, во втором текстовом поле выводится сообщение "Ошибка". Я не могу понять алгоритм, как в одной строке писати числа и оно будет их просчитывать.... Я начинала писать код, если вводить в 2 рядках, и потом это применить к своему заданию: <script> function calc1 () { var a1=document.getElementById("1st"); var a2=document.getElementById("2nd"); var pRez=document.getElementById("rezult"); if (parseInt(a1.value)&&parseInt(a2.value)) { var rez=parseInt(a1.value)+parseInt(a2.value); pRez.value=rez; Но пока безуспешно.... Может у кого то есть идеи что бы каждое действие описывалось. Ну тоисть провирялось введеное, а потом если там есть +-*/ выполнялось действие. Никак не могу понять как это зделать) Посмотрите, пожалуйста) |
if( parseInt("1")) { alert(1) } if( parseInt("n1")) { alert(1) } else alert(2) |
<!DOCTYPE html> <html> <head> <title>Простой калькулятор</title> </head> <body> <input type = "text" id = "forCalculate"> <input type = "button" value = "Вычислить" id = "run"> <input type = "text" id = "result" disabled> <script> function gid(id) { return document.getElementById(id); } gid("run").onclick = function() { var res, errMsg = "Ошибка"; try { res = eval(gid("forCalculate").value) } catch(e) { res = errMsg; } if(isNaN(+res)) res = errMsg; gid("result").value = res; } </script> </body> </html> В лом писать много, предлагаю простой вариант. |
GuardCat,
Большое спасибо!) Но у меня есть вопрос, какая функцию выполняет gid? Просто я представляла себе эту програму, в плане, что нада описывать каждую операцию (+-*/). |
gid в данном случае --- просто сокращение, чтобы не писать всё время document.getElementById. Посмотрите, эта функция в начале же описана. Как вы представляли понял, делать так не вижу смысла и просто ленюсь. Отлично работает eval, к тому же с ним можно вводить длинные выражения (2 + 7 - 89 + 767 / 11 * 8).
|
|
FINoM,
Извените, а что это означает? |
FINoM, шутку юмора оценил. Да-да, можно не только вычислять, но ещё и скрипты писать в том поле. В какой-то теме melky (по-моему) рассказывал о последствиях такого ужаса: теперь пользователь сможет сам у себя украсть куки и логиниться под собой на всех сайтах.
|
Может у кого то есть идеи что бы каждое действие описывалось. Ну тоисть провирялось введеное, а потом если там есть +-*/ выполнялось действие. Посмотрите пожалуйста) Никак не могу понять как это зделать)
|
GuardCat,
Могли бы Вы объяснить, как именно работает даная програма.В особенно сти эта часть: try { res = eval(gid("forCalculate").value) } catch(e) { res = errMsg; } if(isNaN(+res)) res = errMsg; gid("result").value = res; } Извените, еще раз за беспокойство. Просто очень нада именно понять програму) |
Часовой пояс GMT +3, время: 05:22. |