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

JavaScript

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

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

09.10.2016, 17:30. Просмотров 725. Ответов 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,018
09.10.2016, 23:20 #16
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Вот. Это всё работает.
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="addd('sqrt');" />
 
 
</form>
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;
      
    }
Добавлено через 54 секунды
Цитата Сообщение от Mr.Gadget Посмотреть сообщение
все равно не выводит без "="
Функция у вас наверное тут другая стоит
Javascript
1
<input type="button" value="sqrt" onclick="addd('sqrt');" />
В общем, вставляйте то что я выше скинул и радуйтесь.
1
Mr.Gadget
Фиговый студент
48 / 6 / 1
Регистрация: 26.09.2013
Сообщений: 525
Записей в блоге: 1
09.10.2016, 23:33  [ТС] #17
Azdeman, Александр, а что дописать в эту ф-цию (я так понял, что именно сюда нужно писать)
Javascript
1
function addd(dg)
чтобы и деление единицы работало от соответствующей кнопки.
0
Azdeman
Фрилансер
Эксперт HTML/CSSЭксперт PHP
1721 / 1264 / 343
Регистрация: 12.01.2011
Сообщений: 5,018
09.10.2016, 23:36 #18
Цитата Сообщение от Mr.Gadget Посмотреть сообщение
деление единицы работало от соответствующей кнопки.
? не понял.
0
Mr.Gadget
Фиговый студент
48 / 6 / 1
Регистрация: 26.09.2013
Сообщений: 525
Записей в блоге: 1
09.10.2016, 23:37  [ТС] #19
Azdeman, как с корнем. У меня есть кнопка "1/х"

Javascript
1
2
3
...if (d=='sqrt') {r=Math.sqrt(a);}
                                                        else {
                                if (d=='1/a') {r=1/a;}
Javascript
1
...<input type="button" value="1/a" onclick="fn('1/a');" />
0
Azdeman
Фрилансер
Эксперт HTML/CSSЭксперт PHP
1721 / 1264 / 343
Регистрация: 12.01.2011
Сообщений: 5,018
09.10.2016, 23:42 #20
HTML5
1
<input type="button" value="1/a" onclick="addd('1/a');" />
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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(dg=='1/a'){
          var sq = document.getElementById('p1').value;
            var d=1/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
10.10.2016, 13:25  [ТС] #21
Azdeman, спасибо Вам большое. На сегодня шабаш. Хорошего вечера.

Добавлено через 13 часов 39 минут
Azdeman, Александр, здравствуйте, а как делается точка и кнопка "%"?
0
Azdeman
Фрилансер
Эксперт HTML/CSSЭксперт PHP
1721 / 1264 / 343
Регистрация: 12.01.2011
Сообщений: 5,018
10.10.2016, 13:33 #22
Цитата Сообщение от Mr.Gadget Посмотреть сообщение
Александр, здравствуйте, а как делается точка и кнопка "%"
по аналогии же.
else if () и поехал как там.
1
Mr.Gadget
Фиговый студент
48 / 6 / 1
Регистрация: 26.09.2013
Сообщений: 525
Записей в блоге: 1
10.10.2016, 13:49  [ТС] #23
Azdeman, а там же в калькуляторе она должна считать N% от числа a и прибавление к числу а N%?

Добавлено через 12 минут
Azdeman, как написать сами формулы для рассчета процентов? Посмотрел, как оно должно работать.
Она должна считать N% от числа a и прибавление к числу а N% следующим образом.

ПРОЦЕНТ ОТ ЧИСЛА
Набираем число (500), нажимаем кнопку умножить (*), выбираем количество процентов (5), нажимаем кнопку процента (%). После нажимаем кнопку Равно. 500*5% = 25.


ПРИБАВИТЬ К ЧИСЛУ ПРОЦЕНТ
Набираем число (500), нажимаем кнопку прибавить (+), выбираем количество процентов (5), нажимаем кнопку процента (%). После нажимаем кнопку Равно. 500+5% = 525.

Как реализовать эти 2 действия? Тем путем получится?
0
Azdeman
Фрилансер
Эксперт HTML/CSSЭксперт PHP
1721 / 1264 / 343
Регистрация: 12.01.2011
Сообщений: 5,018
10.10.2016, 14:42 #24
Логически если подумать,то конечно же сделать проверку в переменной b в функции doit знак %, и если он есть то уже вычеслять по формуле
500*5% = 25.
500*5/100 = 25
Проше простого
Javascript
1
2
3
4
5
6
7
if (d=='*') {
if(b.substr(-1)=='%'){
 r=a*b/100;
}else{
r=a*b;
}
}
И так с каждой операции.
1
Mr.Gadget
Фиговый студент
48 / 6 / 1
Регистрация: 26.09.2013
Сообщений: 525
Записей в блоге: 1
10.10.2016, 15:17  [ТС] #25
Azdeman, написал вот так:

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
function percent()
  {
        if (d=='*') 
  {
        if(b.substr(-1)=='%')
  {
        r=a*b/100;
  }     else
  {
        r=a*b;
  }
  }
    }
HTML5
1
<input type="button" value="%" onclick="addd('%');" />
0
Azdeman
Фрилансер
Эксперт HTML/CSSЭксперт PHP
1721 / 1264 / 343
Регистрация: 12.01.2011
Сообщений: 5,018
10.10.2016, 15:22 #26
а почему addd если у вас было в fn() операции
1
Mr.Gadget
Фиговый студент
48 / 6 / 1
Регистрация: 26.09.2013
Сообщений: 525
Записей в блоге: 1
10.10.2016, 17:24  [ТС] #27
Azdeman, поменял. как по сути нужно правильно проверять эту кнопку?

Добавлено через 1 час 51 минуту
Azdeman, поможете?
0
Azdeman
Фрилансер
Эксперт HTML/CSSЭксперт PHP
1721 / 1264 / 343
Регистрация: 12.01.2011
Сообщений: 5,018
10.10.2016, 19:09 #28
Вот , считай с 0 написал.. И html так же замените на мой.. всё замените.
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
_ = document.getElementById('p1');
    function addd(a){
            if(_.value ==0){
                _.value='';
            }else if(a=='sqrt'){
                var _result = Math.sqrt(_.value);
                _.value = '';
                _.value = _result;
                    return;
            }else if(a=='1/a'){
                var _result = 1/_.value;
                _.value = '';
                _.value = _result;
                    return;
            }
                _.value +=a;
    }
    function doit(){
        var reg = _.value.match(/^(\d+)([+-/*])(\d+)%/);
        if(reg){
                _.value='';
                _.value=eval('reg[1]+reg[2]+reg[3]/100');
            
        }
            result = eval(_.value);
                _.value = '';
                _.value = result;
                
    }
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
<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');" /><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');" />
 
<input type="button" value="C" onclick="cl();" />   
<input type="button" value="=" onclick="doit();" />
 
 <br />
<br>
<input type="button" value="%" onclick="addd('%')" />
<input type="button" value="+" onclick="addd('+');" />
<input type="button" value="-" onclick="addd('-');" /><br />
<input type="button" value="*" onclick="addd('*');" />
<input type="button" value="/" onclick="addd('/');" /> 
<input type="button" value="sqrt" onclick="addd('sqrt');" /><br/>
<input type="button" value="1/a" onclick="addd('1/a');" />
Добавлено через 7 минут
Цитата Сообщение от Azdeman Посмотреть сообщение
cl();
функцию cl() свою вставите в мой код.
1
Mr.Gadget
Фиговый студент
48 / 6 / 1
Регистрация: 26.09.2013
Сообщений: 525
Записей в блоге: 1
12.10.2016, 19:02  [ТС] #29
Azdeman, здравствуйте, Александр, ошибка в строчке 39 (JS) типа не удалось получить свойство "value" ссылки, значение которой не определено или является NULL.

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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
 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';
}
 
_= document.getElementById('p1');
    function addd(a){
            if(_.value==0){
                _.value='';
            }else if(a=='sqrt'){
                var _result = Math.sqrt(_.value);
                _.value ='';
                _.value =_result;
                    return;
            }else if(a=='1/a'){
                var _result = 1/_.value;
                _.value ='';
                _.value =_result;
                    return;
            }
                _.value +=a;
    }
    function doit(){
        var reg = _.value.match(/^(\d+)([*/+-])(\d+)%/);
        if(reg){
                _.value='';
                _.value=eval('reg[1]+reg[2]+reg[3]/100');
            
        }
            result = eval(_.value);
                _.value = '';
                _.value = result;
                
    }
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');" /><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');" />
 
<input type="button" value="C" onclick="cl();" />   
<input type="button" value="=" onclick="doit();" />
 
 <br />
<br>
<input type="button" value="%" onclick="addd('%')" />
<input type="button" value="+" onclick="addd('+');" />
<input type="button" value="-" onclick="addd('-');" /><br />
<input type="button" value="*" onclick="addd('*');" />
<input type="button" value="/" onclick="addd('/');" /> 
<input type="button" value="sqrt" onclick="addd('sqrt');" /><br/>
<input type="button" value="1/a" onclick="addd('1/a');" />
</form>
0
Azdeman
Фрилансер
Эксперт HTML/CSSЭксперт PHP
1721 / 1264 / 343
Регистрация: 12.01.2011
Сообщений: 5,018
12.10.2016, 19:59 #30
Цитата Сообщение от Mr.Gadget Посмотреть сообщение
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';
}
Зачем вам вот это? я же сказал убрать это раз.
2-е.. может вам исходник скинуть ?
0
12.10.2016, 19:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.10.2016, 19:59
Привет! Вот еще темы с ответами:

Калькулятор на 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 в...


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

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

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