From 1b37c2291c6973e76bad1c4e19729fd55ea919fc Mon Sep 17 00:00:00 2001 From: mopdobopot Date: Fri, 16 Nov 2012 20:00:53 +0600 Subject: [PATCH 1/6] =?UTF-8?q?=D0=9A=D0=B0=D0=BB=D1=8C=D0=BA=D1=83=D0=BB?= =?UTF-8?q?=D1=8F=D1=82=D0=BE=D1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Все вычисления производит eval(); --- calc.css | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ calc.html | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ calc.js | 20 ++++++++++++++++++++ 3 files changed, 118 insertions(+) create mode 100644 calc.css create mode 100644 calc.html create mode 100644 calc.js diff --git a/calc.css b/calc.css new file mode 100644 index 0000000..3346904 --- /dev/null +++ b/calc.css @@ -0,0 +1,49 @@ +.calc { + width: 350px; + height: 430px; + padding: 15px; + border: 1px solid #cdcdcd; + border-radius: 2px; + background: #BADBAD; + margin: 0 auto; + } +.display { + width: 330px; + height: 50px; + padding: 10px; + margin-bottom: 12px; + background: #F0F8FF; + border: 1px solid #cdcdcd; + border-radius: 2px; + font: 40px Tahoma; + text-align: right; + overflow: hidden; + } +.but { + width: 60px; + height: 60px; + margin: 2px; + border: 1px solid #cdcdcd; + border-radius: 4px; + padding: 10px; + font: 50px Tahoma; + color: #333; + text-align: center; + float: left; + background: #F0F8FF; + cursor: pointer; + } +.but:hover { + background: #CADABA; + } +.but:active { + background: #6B8E23; + } +#div, #mul, #sub, #c { + margin-left: 10px; + margin-right: 0px; + } +#c { + height: 64px; + padding-top: 6px; + } \ No newline at end of file diff --git a/calc.html b/calc.html new file mode 100644 index 0000000..989f56c --- /dev/null +++ b/calc.html @@ -0,0 +1,49 @@ + + + + 4 + + + + + + + 4 + Javascript +
+
0
+
7
+
8
+
9
+
c
+
4
+
5
+
6
+
/
+
1
+
2
+
3
+
*
+
=
+
0
+
+
+
-
+
+ + \ No newline at end of file diff --git a/calc.js b/calc.js new file mode 100644 index 0000000..c8d9510 --- /dev/null +++ b/calc.js @@ -0,0 +1,20 @@ +$(document).ready(function() { + var expr = ''; + $('.but').click(function() { + var $cur = $(this).html(); + if ($cur === 'c') + expr = '0' + else if ($cur in ['0','1','2','3','4','5','6','7','8','9']) + if (expr === '0') + expr = $cur + else + expr += $cur + else if ($cur === '=') + expr = eval(expr) + else + expr = expr + ' ' + $cur + ' '; + if (Math.abs(expr) === Infinity) + expr = 'Division by zero'; + $('.display').html(expr); + }); +}); \ No newline at end of file From 46f24982fe646becc8c1033eec5b2c2be0eb4aca Mon Sep 17 00:00:00 2001 From: mopdobopot Date: Fri, 16 Nov 2012 20:10:11 +0600 Subject: [PATCH 2/6] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BE=D1=87=D0=BA=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit После сообщения об ошибке деления на ноль теперь можно продолжать вычисления. Для этого не обязательно нажимать "с". --- calc.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/calc.js b/calc.js index c8d9510..e9d062e 100644 --- a/calc.js +++ b/calc.js @@ -1,6 +1,8 @@ $(document).ready(function() { var expr = ''; $('.but').click(function() { + if (expr === 'Division by zero') + expr = ''; var $cur = $(this).html(); if ($cur === 'c') expr = '0' From 9392b8db85df750fec1f9e844feadac837304c65 Mon Sep 17 00:00:00 2001 From: mopdobopot Date: Fri, 16 Nov 2012 20:19:06 +0600 Subject: [PATCH 3/6] =?UTF-8?q?=D0=9A=D0=BE=D1=81=D0=BC=D0=B5=D1=82=D0=B8?= =?UTF-8?q?=D1=87=D0=B5=D1=81=D0=BA=D0=B8=D0=B5=20=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BA=D0=B8=20css?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Добавил маленький отступ снизу. На мой взгляд, так удобнее для широкоформатных мониторов (за которым сейчас и работаю) --- calc.css | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/calc.css b/calc.css index 3346904..4df1ce8 100644 --- a/calc.css +++ b/calc.css @@ -5,7 +5,8 @@ border: 1px solid #cdcdcd; border-radius: 2px; background: #BADBAD; - margin: 0 auto; + margin: auto; + margin-bottom: 30px; } .display { width: 330px; From 57a2e309c8ffae26fd511281065a0249e39f6840 Mon Sep 17 00:00:00 2001 From: mopdobopot Date: Fri, 16 Nov 2012 20:31:29 +0600 Subject: [PATCH 4/6] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BE=D1=87=D0=BA=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Если после вычислений получался "0", а потом начинался ввод цифр, то мы видели на дисплее "0132...". Чтобы исправить, достаточно было заменить строгое сравнение с учётом типов "===" на нестрогое, с приведением типов "==" --- calc.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/calc.js b/calc.js index e9d062e..7a36047 100644 --- a/calc.js +++ b/calc.js @@ -7,7 +7,7 @@ $(document).ready(function() { if ($cur === 'c') expr = '0' else if ($cur in ['0','1','2','3','4','5','6','7','8','9']) - if (expr === '0') + if (expr == '0') expr = $cur else expr += $cur From fc3703c40a72607e9e78200be93bd4bcf5eab6b8 Mon Sep 17 00:00:00 2001 From: mopdobopot Date: Fri, 16 Nov 2012 20:40:29 +0600 Subject: [PATCH 5/6] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB?= =?UTF-8?q?=20=D0=BA=D0=BE=D0=BC=D0=BC=D0=B5=D0=BD=D1=82=D0=B0=D1=80=D0=B8?= =?UTF-8?q?=D0=B8=20=D0=BA=20JS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- calc.js | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/calc.js b/calc.js index 7a36047..6e4c69b 100644 --- a/calc.js +++ b/calc.js @@ -1,21 +1,28 @@ $(document).ready(function() { var expr = ''; + /* . + , expr + , + . + exp + , . + */ $('.but').click(function() { - if (expr === 'Division by zero') + if (expr === 'Division by zero') // , expr = ''; - var $cur = $(this).html(); - if ($cur === 'c') + var $cur = $(this).html(); // $cur , + if ($cur === 'c') // "" expr = '0' - else if ($cur in ['0','1','2','3','4','5','6','7','8','9']) + else if ($cur in ['0','1','2','3','4','5','6','7','8','9']) // if (expr == '0') expr = $cur else expr += $cur - else if ($cur === '=') + else if ($cur === '=') // expr = eval(expr) else - expr = expr + ' ' + $cur + ' '; - if (Math.abs(expr) === Infinity) + expr = expr + ' ' + $cur + ' '; // , , , + if (Math.abs(expr) === Infinity) // , expr = 'Division by zero'; $('.display').html(expr); }); From 4b4cb47bef895f0dd005a8f933c4461d92c5fb84 Mon Sep 17 00:00:00 2001 From: mopdobopot Date: Fri, 16 Nov 2012 20:47:57 +0600 Subject: [PATCH 6/6] =?UTF-8?q?=D0=95=D1=89=D1=91=20=D0=BD=D0=B5=D0=BC?= =?UTF-8?q?=D0=BD=D0=BE=D0=B3=D0=BE=20=D0=BA=D0=BE=D0=BC=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D1=82=D0=B0=D1=80=D0=B8=D0=B5=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Плюс правки орфографии :) --- calc.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/calc.js b/calc.js index 6e4c69b..6e46123 100644 --- a/calc.js +++ b/calc.js @@ -8,22 +8,22 @@ $(document).ready(function() { , . */ $('.but').click(function() { - if (expr === 'Division by zero') // , + if (expr === 'Division by zero') // , expr = ''; var $cur = $(this).html(); // $cur , if ($cur === 'c') // "" expr = '0' else if ($cur in ['0','1','2','3','4','5','6','7','8','9']) // if (expr == '0') - expr = $cur + expr = $cur // 0, else - expr += $cur + expr += $cur // , else if ($cur === '=') // - expr = eval(expr) + expr = eval(expr) // ( eval()) else expr = expr + ' ' + $cur + ' '; // , , , if (Math.abs(expr) === Infinity) // , expr = 'Division by zero'; - $('.display').html(expr); + $('.display').html(expr); // }); }); \ No newline at end of file