Форум программистов, компьютерный форум, киберфорум
Наши страницы

JavaScript

Войти
Регистрация
Восстановить пароль
 
 
Mr.Gadget
Фиговый студент
48 / 6 / 1
Регистрация: 26.09.2013
Сообщений: 525
Записей в блоге: 1
#1

Подкорректировать калькулятор - JavaScript

09.10.2016, 17:30. Просмотров 721. Ответов 49
Метки нет (Все метки)

Здравствуйте, как сделать, чтобы:

1)поле вывода после выбора операции опустошалось и выводилось следующее (как в калькуляторе)
2) при наборе числа, чтобы убирался висящий ноль
3) как обычно делают стилевое оформление калькулятора?
4) как исключить деление на ноль?
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
a = 0;
d = '';
function fn(p)
{
a = parseFloat(document.getElementById('p1').value);
d = p;
}
function doit()
{
var b = parseFloat(document.getElementById('p1').value);
if (d=='+') { r = a + b; }
else {
    if (d=='-') {r=a-b;}
        else {
          if (d=='*') {r=a*b;}
            else {r=a/b;}
        }
  }
document.getElementById('p1').value = r;
}
function cl()
{
a = 0;
d = '';
document.getElementById('p1').value='0';
}
function addd(dg)
{
document.getElementById('p1').value += dg;
}
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<form action="">
<input type="text" id="p1" name="p1" value="0"/>
<br>
<input type="button" value="C" onclick="cl();" />
<br>
<input type="button" value="1" onclick="addd('1');" />
<input type="button" value="2" onclick="addd('2');" />
<input type="button" value="3" onclick="addd('3');" /> <br />
<input type="button" value="4" onclick="addd('4');" />
<input type="button" value="5" onclick="addd('5');" />
<input type="button" value="6" onclick="addd('6');" /> <br />
<input type="button" value="7" onclick="addd('7');" />
<input type="button" value="8" onclick="addd('8');" />
<input type="button" value="9" onclick="addd('9');" /> <br />
<input type="button" value="0" onclick="addd('0');" />
 
<br>
<input type="button" value="+" onclick="fn('+');" />
<input type="button" value="-" onclick="fn('-');" />
<input type="button" value="*" onclick="fn('*');" />
<input type="button" value="/" onclick="fn('/');" />
<input type="button" value="=" onclick="doit();" />
</form>
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.10.2016, 17:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Подкорректировать калькулятор (JavaScript):

как подкорректировать работу меню - JavaScript
Всем здравствуйте! Есть меню (подробности во вложении). При наведенеии курсора мыши на конкретный пункт меню этот пункт должен выделяться...

Вычисление кол-ва совпадений, необходимо подкорректировать код - JavaScript
Здравстувуйте! Необходимо было написать код, вычисляющий кол-во совпадений по определенной формуле с факториалом, код имеется и вроде как...

Калькулятор - JavaScript
Дброго времени суток:) Помогите пожалуйста дополнить программу так, что бы в калькуляторе был запрет на цифру 0, т.е. программа...

Калькулятор на JS - JavaScript
Доброго времени суток, подскажите пожалуйста, начал разбираться с калькулятором, делаю по примеру, подробно разоборав что куда и как, при...

калькулятор - JavaScript
Здравствуйте! Вот такой вопрос: написала я код калькулятора в Notepad++ на javascript, а как его запустить? просто у меня обычный текст,...

Калькулятор - JavaScript
Ребят, доброго времени суток. Не подскажете как организовать такой калькулятор? http://www.rpkbriz.ru/transport_bus.php С меняющимся...

49
Azdeman
Фрилансер
Эксперт HTML/CSSЭксперт PHP
1721 / 1264 / 343
Регистрация: 12.01.2011
Сообщений: 5,017
09.10.2016, 19:34 #2
Цитата Сообщение от Mr.Gadget Посмотреть сообщение
1)поле вывода после выбора операции опустошалось и выводилось следующее (как в калькуляторе)
При клике в функции fn
document.getElementById('p1').value='';
Так вы опустошите.
Цитата Сообщение от Mr.Gadget Посмотреть сообщение
2) при наборе числа, чтобы убирался висящий ноль
Этот тот 0 что в начале?

Добавлено через 6 минут
Как то так?
Javascript
1
2
3
4
5
6
7
function addd(dg)
{
if(document.getElementById('p1').value==0){
document.getElementById('p1').value = '';
}
document.getElementById('p1').value += dg;
}
Добавлено через 3 минуты
Цитата Сообщение от Mr.Gadget Посмотреть сообщение
4) как исключить деление на ноль?
Проверкой.
1
Mr.Gadget
Фиговый студент
48 / 6 / 1
Регистрация: 26.09.2013
Сообщений: 525
Записей в блоге: 1
09.10.2016, 20:08  [ТС] #3
Azdeman, спасибо, с этим разобрался.

Добавлено через 2 минуты
Azdeman, можете еще подсказать деление 1/х, %, и вычисление корня?

Добавлено через 4 минуты
Azdeman, корень я написал вот так:
Javascript
1
2
else {
                        if (d=='sqrt') {r=Math.sqrt(a);}
Как бы сделать так, чтобы результат выводился уже при нажатии на кнопку корня?
0
Azdeman
Фрилансер
Эксперт HTML/CSSЭксперт PHP
1721 / 1264 / 343
Регистрация: 12.01.2011
Сообщений: 5,017
09.10.2016, 20:11 #4
Javascript
1
2
3
4
if (d=='sqrt') {
r=Math.sqrt(a);
document.getElementById('p1').value = r;
}
1
Mr.Gadget
Фиговый студент
48 / 6 / 1
Регистрация: 26.09.2013
Сообщений: 525
Записей в блоге: 1
09.10.2016, 20:18  [ТС] #5
Цитата Сообщение от Azdeman Посмотреть сообщение
Javascript
1
2
3
if (d=='sqrt') {
r=Math.sqrt(a);
document.getElementById('p1').value = r;}
Не сработало, по прежнему на "=" приходится нажимать.
0
Azdeman
Фрилансер
Эксперт HTML/CSSЭксперт PHP
1721 / 1264 / 343
Регистрация: 12.01.2011
Сообщений: 5,017
09.10.2016, 20:51 #6
Javascript
1
<input type="button" value="sqrt" onclick="addd('sqrt');" />
Javascript
1
2
3
4
5
6
7
8
9
function addd(dg)
{
if(dg=='sqrt'){
dg=Math.sqrt(a);
document.getElementById('p1').value = dg;
   return;
}
document.getElementById('p1').value += dg;
}
1
Mr.Gadget
Фиговый студент
48 / 6 / 1
Регистрация: 26.09.2013
Сообщений: 525
Записей в блоге: 1
09.10.2016, 21:11  [ТС] #7
Azdeman, а где это описать?
Javascript
1
<input type="button" value="sqrt" onclick="addd('sqrt');" />
Добавлено через 6 минут
Azdeman, ой, нашел где. Висну уже

Добавлено через 5 минут
Azdeman, код мой сейчас выглядит так:

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
a = 0;
d = '';
function fn(p)
{
a = parseFloat(document.getElementById('p1').value);
d = p;
document.getElementById('p1').value='';
}
function doit()
{
 
var b = parseFloat(document.getElementById('p1').value);
if (d=='+') { r = a + b; }
else {
    if (d=='-') {r=a-b;}
        else {
            if (d=='*') {r=a*b;}
              else {
                    if (d=='/') {r=a/b;}
                        else {
                            if (d=='sqrt') {r=Math.sqrt(a);
                        
                           }
                      }
                 }
            }
   }
document.getElementById('p1').value = r;
}
function cl()
{
a = 0;
d = '';
document.getElementById('p1').value='0';
}
 
function addd(dg)
{
if(dg=='sqrt'){
dg=Math.sqrt(a);
document.getElementById('p1').value = dg;
   return;
}
document.getElementById('p1').value += dg;
}
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<form action="">
<input type="text" id="p1" name="p1" value="0"/>
<br>
<input type="button" value="C" onclick="cl();" />
<br>
<input type="button" value="1" onclick="addd('1');" />
<input type="button" value="2" onclick="addd('2');" />
<input type="button" value="3" onclick="addd('3');" /> <br />
<input type="button" value="4" onclick="addd('4');" />
<input type="button" value="5" onclick="addd('5');" />
<input type="button" value="6" onclick="addd('6');" /> <br />
<input type="button" value="7" onclick="addd('7');" />
<input type="button" value="8" onclick="addd('8');" />
<input type="button" value="9" onclick="addd('9');" /> <br />
<input type="button" value="0" onclick="addd('0');" />
 
 
<br>
<input type="button" value="+" onclick="fn('+');" />
<input type="button" value="-" onclick="fn('-');" />
<input type="button" value="*" onclick="fn('*');" />
<input type="button" value="/" onclick="fn('/');" />
<input type="button" value="sqrt" onclick="addd('sqrt');" />
<input type="button" value="=" onclick="doit();" />
</form>
Добавлено через 49 секунд
Azdeman, нолик снова перестал исчезать и ошибка выполнения скрипта.
0
Azdeman
Фрилансер
Эксперт HTML/CSSЭксперт PHP
1721 / 1264 / 343
Регистрация: 12.01.2011
Сообщений: 5,017
09.10.2016, 21:32 #8
То я ошибку вверху сделал , не увидал...
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
function addd(dg)
{
if(dg=='sqrt'){
var sq = document.getElementById('p1').value;
dg=Math.sqrt(sq);
document.getElementById('p1').value='';
document.getElementById('p1').value = dg;
 return;
}else if(document.getElementById('p1').value == 0){
document.getElementById('p1').value='';
}
document.getElementById('p1').value += dg;
1
Mr.Gadget
Фиговый студент
48 / 6 / 1
Регистрация: 26.09.2013
Сообщений: 525
Записей в блоге: 1
09.10.2016, 21:44  [ТС] #9
Azdeman, выведение на экран по прежнему с нолем спереди, корень считает по прежнему только при нажатии "="

Добавлено через 2 минуты
Azdeman, может потому что здесь
Цитата Сообщение от Mr.Gadget Посмотреть сообщение
Javascript
1
<input type="button" value="sqrt" onclick="addd('sqrt');" />
вместо
Javascript
1
 "addd('sqrt');"
нужно написать
Javascript
1
 "fn('sqrt');"
?
Хотя так тоже не правильно работает.
0
Azdeman
Фрилансер
Эксперт HTML/CSSЭксперт PHP
1721 / 1264 / 343
Регистрация: 12.01.2011
Сообщений: 5,017
09.10.2016, 22:13 #10
HTML5
1
2
<input type='text' id='nums'>
<input type='submit' onclick="fun('sqrt')" value="sqrt">
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
 function fun(dg){
      if(dg=='sqrt'){
            var sq = document.getElementById('nums').value;
            var d=Math.sqrt(sq);
            document.getElementById('nums').value='';
            document.getElementById('nums').value=d;
            return;
      }else if(dg=='0'){
            document.getElementById('nums').value = '';
      }
            document.getElementById('nums').value += dg;
      
    }
1
Mr.Gadget
Фиговый студент
48 / 6 / 1
Регистрация: 26.09.2013
Сообщений: 525
Записей в блоге: 1
09.10.2016, 22:25  [ТС] #11
Куда включить эти фрагменты? Извините, я уже запутался.

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
a = 0;
d = '';
function fn(p)
{
a = parseFloat(document.getElementById('p1').value);
d = p;
document.getElementById('p1').value='';
}
function doit()
{
 
var b = parseFloat(document.getElementById('p1').value);
if (d=='+') { r = a + b; }
else {
    if (d=='-') {r=a-b;}
        else {
            if (d=='*') {r=a*b;}
              else {
                    if (d=='/') {r=a/b;}
                        else {
                                if (d=='sqrt') {r=Math.sqrt(a);}
                                else {
                                    if (d=='1/a') {r=1/a;}
                                        }
                         }
                  }
         }
}
document.getElementById('p1').value = r;
}
function cl()
{
a = 0;
d = '';
document.getElementById('p1').value='0';
}
 
function addd(dg)
{
if(document.getElementById('p1').value==0){
document.getElementById('p1').value = '';
}
document.getElementById('p1').value += dg;
 
}
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<form action="">
<input type="text" id="p1" name="p1" value="0"/>
<br>
 
<br>
<input type="button" value="1" onclick="addd('1');" />
<input type="button" value="2" onclick="addd('2');" />
<input type="button" value="3" onclick="addd('3');" />
<input type="button" value="+" onclick="fn('+');" /><br />
<input type="button" value="4" onclick="addd('4');" />
<input type="button" value="5" onclick="addd('5');" />
<input type="button" value="6" onclick="addd('6');" /> 
<input type="button" value="-" onclick="fn('-');" /><br />
<input type="button" value="7" onclick="addd('7');" />
<input type="button" value="8" onclick="addd('8');" />
<input type="button" value="9" onclick="addd('9');" /><br />
<input type="button" value="0" onclick="addd('0');" />
<input type="button" value="1/a" onclick="fn('1/a');" />
<input type="button" value="C" onclick="cl();" />
<input type="button" value="=" onclick="doit();" />
 
 
<br>
 
 
<input type="button" value="*" onclick="fn('*');" />
<input type="button" value="/" onclick="fn('/');" /> 
<input type="button" value="sqrt" onclick="fn('sqrt');" />
 
 
</form>
0
Azdeman
Фрилансер
Эксперт HTML/CSSЭксперт PHP
1721 / 1264 / 343
Регистрация: 12.01.2011
Сообщений: 5,017
09.10.2016, 22:34 #12
Вот js поменяйте , и всё будет работать.
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
      a = 0;
      d = '';
function fn(p)
{
a = parseFloat(document.getElementById('p1').value);
d = p;
document.getElementById('p1').value='';
}
function doit()
{
 
var b = parseFloat(document.getElementById('p1').value);
if (d=='+') { r = a + b; }
else {
    if (d=='-') {r=a-b;}
        else {
            if (d=='*') {r=a*b;}
              else {
                    if (d=='/') {r=a/b;}
                        else {
                            if (d=='sqrt') {r=Math.sqrt(a);
                        
                           }
                      }
                 }
            }
   }
document.getElementById('p1').value = r;
}
function cl()
{
a = 0;
d = '';
document.getElementById('p1').value='0';
}
 
function addd(dg){
      if(dg=='sqrt'){
            var sq = document.getElementById('p1').value;
            var d=Math.sqrt(sq);
            document.getElementById('p1').value='';
            document.getElementById('p1').value=d;
            return;
      }else if(document.getElementById('p1').value==0){
            document.getElementById('p1').value = '';
      }
            document.getElementById('p1').value += dg;
      
    }
1
Mr.Gadget
Фиговый студент
48 / 6 / 1
Регистрация: 26.09.2013
Сообщений: 525
Записей в блоге: 1
09.10.2016, 22:46  [ТС] #13
Azdeman, что здесь лишнее?
Javascript
1
2
3
<input type="button" value="sqrt" onclick="fn('sqrt');" />
<input type='text' id='nums'>
<input type='submit' onclick="fn('sqrt')" value="sqrt">
Эту функцию

Javascript
1
2
3
4
5
6
7
8
function addd(dg)
{
if(document.getElementById('p1').value==0){
document.getElementById('p1').value = '';
}
document.getElementById('p1').value += dg;
 
}
заменил следующей

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
function addd(dg){
      if(dg=='sqrt'){
            var sq = document.getElementById('p1').value;
            var d=Math.sqrt(sq);
            document.getElementById('p1').value='';
            document.getElementById('p1').value=d;
            return;
      }else if(document.getElementById('p1').value==0){
            document.getElementById('p1').value = '';
      }
            document.getElementById('p1').value += dg;
      
    }
Верно?

Вижу при запуске следующее (см. скрины)
Нажимаю кнопку "9" дальше нажимаю "SQRT" - поле чистится, дальше нажимаю "=" - выводит результат на старый экран. Не работает по прежнему вывод результата вычисления корня при нажатии на кнопку SQRT. Вторая SQRT-кнопка и второе поле не работают.
0
Миниатюры
Подкорректировать калькулятор  
Azdeman
Фрилансер
Эксперт HTML/CSSЭксперт PHP
1721 / 1264 / 343
Регистрация: 12.01.2011
Сообщений: 5,017
09.10.2016, 23:17 #14
Цитата Сообщение от Mr.Gadget Посмотреть сообщение
<input type='text' id='nums'>
<input type='submit' onclick="fn('sqrt')" value="sqrt">
удалить, это я для примера писал.

Добавлено через 1 минуту
Цитата Сообщение от Mr.Gadget Посмотреть сообщение
Не работает по прежнему вывод результата вычисления корня при нажатии на кнопку SQRT.
как не работает ? у меня всё работало , кеш почистите.
1
Mr.Gadget
Фиговый студент
48 / 6 / 1
Регистрация: 26.09.2013
Сообщений: 525
Записей в блоге: 1
09.10.2016, 23:18  [ТС] #15
Azdeman, все равно не выводит без "=", даже после чистки кеша.
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
a = 0;
      d = '';
function fn(p)
{
a = parseFloat(document.getElementById('p1').value);
d = p;
document.getElementById('p1').value='';
}
function doit()
{
 
var b = parseFloat(document.getElementById('p1').value);
if (d=='+') { r = a + b; }
else {
    if (d=='-') {r=a-b;}
        else {
            if (d=='*') {r=a*b;}
              else {
                    if (d=='/') {r=a/b;}
                        else {
                            if (d=='sqrt') {r=Math.sqrt(a);
                        
                           }
                      }
                 }
            }
   }
document.getElementById('p1').value = r;
}
function cl()
{
a = 0;
d = '';
document.getElementById('p1').value='0';
}
 
function addd(dg){
      if(dg=='sqrt'){
            var sq = document.getElementById('p1').value;
            var d=Math.sqrt(sq);
            document.getElementById('p1').value='';
            document.getElementById('p1').value=d;
            return;
      }else if(document.getElementById('p1').value==0){
            document.getElementById('p1').value = '';
      }
            document.getElementById('p1').value += dg;
      
    }
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<form action="">
<input type="text" id="p1" name="p1" value="0"/>
<br>
 
<br>
<input type="button" value="1" onclick="addd('1');" />
<input type="button" value="2" onclick="addd('2');" />
<input type="button" value="3" onclick="addd('3');" />
<input type="button" value="+" onclick="fn('+');" /><br />
<input type="button" value="4" onclick="addd('4');" />
<input type="button" value="5" onclick="addd('5');" />
<input type="button" value="6" onclick="addd('6');" /> 
<input type="button" value="-" onclick="fn('-');" /><br />
<input type="button" value="7" onclick="addd('7');" />
<input type="button" value="8" onclick="addd('8');" />
<input type="button" value="9" onclick="addd('9');" /><br />
<input type="button" value="0" onclick="addd('0');" />
<input type="button" value="1/a" onclick="fn('1/a');" />
<input type="button" value="C" onclick="cl();" />
<input type="button" value="=" onclick="doit();" />
 
 
<br>
 
 
<input type="button" value="*" onclick="fn('*');" />
<input type="button" value="/" onclick="fn('/');" /> 
<input type="button" value="sqrt" onclick="fn('sqrt');" />
 
 
 
 
</form>
0
09.10.2016, 23:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.10.2016, 23:18
Привет! Вот еще темы с ответами:

Калькулятор на JS - JavaScript
ребят всем привет ! пишу windows like калькулятор на JS не могу продумать 1 часть алгоритма подкиньте совет плз. при нажатии...

калькулятор - JavaScript
что надо сделать чтобы создать такой калькулятор ?? &lt;html&gt; &lt;head&gt; &lt;title&gt; калькулятор &lt;/title&gt;&lt;head&gt; &lt;body&gt; a&lt;input...

Калькулятор - JavaScript
Добрый день. Сделал калькулятор по примерам. Далее нужно его модернизировать. Нужно чтобы пользователь мог менять кнопки местами, или...

Калькулятор - JavaScript
Не могу понять как работает javascript в коде HTML может чего- то забыл написать... А точнее не работает кнопка Back Space в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru