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

JavaScript

Войти
Регистрация
Восстановить пароль
 
Cestuh
0 / 0 / 0
Регистрация: 22.06.2015
Сообщений: 24
#1

Калькулятор на js - JavaScript

18.07.2016, 13:51. Просмотров 245. Ответов 12
Метки нет (Все метки)

Всем привет! Делаю калькулятор на js и добавляю туда математические функции (косинус, тангенс и т.д.), не получается реализовать их. Вот код калькулятора:
PHPHTML
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
<!DOCTYPE html>
<html>
<head>
    <title>JavaScript</title>
    <meta charset="utf-8" />
        [JS]
    <script type="text/javascript" src="jquery-1.12.4.min.js"></script>
    <script type="text/javascript">
        function proverka(input) { 
            var value = input.value; 
            var rep = /[;":'a-zA-Zа-яА-Я]/; 
            if (rep.test(value)) { 
                value = value.replace(rep, ''); 
                input.value = value; 
            } 
        } 
        
        function persents(input){
            return input.replace(/((?:\d+\.)?\d+)\%/g, function(s, val){
                return val / 100;
            })
        }
        
        function checkNum(str) {
            for (var i = 0; i < str.length; i++) {
            var ch = str.substring(i, i+1)
            if (ch < "0" || ch > "9") {
            if (ch != "/" && ch != "*" && ch != "+" && ch != "-" && ch != "."
            && ch != "(" && ch!= ")") {
            alert("invalid entry!")
            return false
            }
            }
            }
            return true
            }
            
            function cos(form) {
calc.input.value = Math.cos(calc.input.value);
}
        
        function addChar(input) {
            if(input.value == 0) return alert("Нельзя на ноль делить");
            if(input.value == 1) return 1;
        }
        
        function timer() {
            var s = Number(document.getElementById("timer").innerHTML);
            s++;
            document.getElementById("timer").innerHTML = s;
            setTimeout("timer()", 1000);
        }
    
        function date() {
            var date = new Date();
            var text = date.getFullYear();
            text += ".0" + Number(date.getMonth()+1);
            text += ".1" + date.getDay();
            text += "." + date.getHours();
            text += "." + date.getMinutes();
            text += "." + date.getSeconds();
            document.getElementById("niggus").innerHTML = text;
        }
    </script>
        [/JS]
    <style>
        #calc * {font-size: 16px;}
        #calc table {border: solid 3px silver; border-spacing: 3px; background-color: #EEE; width: 319px;}
        #calc table td {border-spacing: 3px;}
        input.display {width: 300px; text-align: left; outline: none; color: #000; padding-left: 2px;}  
        input[type= button] {width: 40px; height: 30px; background-color: #EEE; outline: none;}
        input.doit {width: 304px; background-color: #6A5ACD;}
        input.dim{background-color: #A9A9A9;}
        input.gray{background-color: #C0C0C0;}
        input.silver{background-color: #d3d3d3;}
        input.blue{background-color: #d3d3d3;}
        .pp{margin-top: -15px; font-size: 22px; font-weight: bold; color: #00FF00;}
        .p{font-size: 17px; font-weight: bold; color: #00FF00;}
        #timer{font-size: 80px; color: #FF1493; position: relative;}
        #sekundomer {background-color: #000; width: 176px; height: 124px; border: 3px solid silver; text-align: center; margin-left: 419px; margin-top: -198px;}
        #date_nigga {margin-left: 720px; margin-top: -130px;}
    </style>
</head>
<body onload="timer(this), date(this)">
    <form name="calculator" id="calc">
        <table>
            <tr>
                <td>
                    <input type="text" name="input" size="16" class="display" disabled placeholder="0" onkeyup="return proverka(this)" onsubmit="Checkform(this)" />
                </td>
            </tr>
            <tr>
                <td class="buttons">
                    <input type="button" name="skobka" value="(" class="gray" Onclick="calc.input.value += '('"/>
                    <input type="button" name="skobka" value=")" class="gray" Onclick="calc.input.value += ')'"/>
                    <input type="button" name="percent" value="%" class="gray" Onclick="calc.input.value = eval(persents(calc.input.value))">
                    <input type="button" name="clear" value="C" class="gray" OnClick="calc.input.value = ''"/>
                    <input type="button" name="clear_one" value="CE" class="gray" Onclick="calc.input.value = input.value.substring(0, input.value.length - 1)"/>                   
                    <input type="button" name="sq" value="sq" class="dim" Onclick="" />
                    <input type="button" name="asin" value="as" class="dim" Onclick="" />
                    <br/>
                    <input type="button" name="one" value="1" OnClick="calc.input.value += '1'"/>
                    <input type="button" name="two" value="2" OnClick="calc.input.value += '2'"/>
                    <input type="button" name="three" value="3" OnClick="calc.input.value += '3'"/>
                    <input type="button" name="add" value="+" class="silver" OnClick="calc.input.value += '+'"/>
                    <input type="button" name="sub" value="-" class="silver" OnClick="calc.input.value += '-'"/>
                    <input type="button" name="exp" value="exp" class="dim" Onclick="">
                    <input type="button" name="sqrt" value="sqr" class="dim" Onclick="">
                    <br>
                    <input type="button" name="four" value="4" OnClick="calc.input.value += '4'">
                    <input type="button" name="five" value="5" OnClick="calc.input.value += '5'">
                    <input type="button" name="six" value="6" OnClick="calc.input.value += '6'">
                    <input type="button" name="mul" value="x" class="silver" OnClick="calc.input.value += '*'"/>
                    <input type="button" name="div"  value="/" class="silver" OnClick="addChar(calc.input.value += '/')">
                    <input type="button" name="sin" value="sin" class="dim" Onclick="">
                    <input type="button" name="cos" value="cos" class="dim" Onclick="if (checkNum(this.calc.value)) { cos(this.calc) }">
                    <br>
                    <input type="button" name="seven" value="7" OnClick="calc.input.value += '7'">
                    <input type="button" name="eight" value="8" OnClick="calc.input.value += '8'">
                    <input type="button" name="nine" value="9" OnClick="calc.input.value += '9'">
                    <input type="button" name="zero" value="0" OnClick="calc.input.value += '0'"/>
                    <input type="button" name="tochka" value="." class="blue" Onclick="calc.input.value += '.'"/>
                    <input type="button" name="tan" value="tan" class="dim" Onclick="">
                    <input type="button" name="In" value="In" class="dim" Onclick="">
                </td>
            </tr>
            <tr>
                <td>
                    <input type="button" name="doit" value="=" class="doit" OnClick="calc.input.value = eval(calc.input.value)"/>
                </td>
            </tr>
        </table>
    </form>
    <div id="sekundomer">
        <br/>
        <span id="timer">-1</span>
        <br/>
    </div>
    <div id="date_nigga">
        <p>Вы зашли на сайт:</p>
        <p id="niggus" ></p>
        <p>Год.Месяц.День.Час.Минута.Секунда</p>
    </div>
</body>
</html>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.07.2016, 13:51
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Калькулятор на js (JavaScript):

Простой калькулятор и калькулятор с парсингом - C++
Ребят я совсем не давно только начал изучать сишку, решил написать простенький калькулятор который работает с 2 числами. Возник вопрос, как...

Калькулятор - Ruby
Я только начинаю изучать руби, поэтому еще тяжело ориентируюсь даже в таких простых задачах как калькулятор. Мне нужно написать...

калькулятор - Delphi
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; ...

Калькулятор на С++ - C++
калькулятор в принципе готов, надо только сделать запрет деления на 0, помогите кто чем может #include&lt;stdio.h&gt; #include&lt;conio.h&gt; ...

Калькулятор - Delphi
Помогите описать кнопки калькулятора , все есть осталось Backspace как описать ХЗ

Калькулятор на С - C++
калькулятор в принципе готов, надо только сделать деление на дробные числа, помогите кто чем может пожалуйста

12
ntlinuxnt
$ su
1461 / 504 / 71
Регистрация: 18.11.2010
Сообщений: 2,795
Записей в блоге: 2
Завершенные тесты: 5
19.07.2016, 05:41 #2
И в чем заключается ваша проблема?
0
ironid
68 / 14 / 4
Регистрация: 17.10.2015
Сообщений: 53
19.07.2016, 18:19 #3
В js же есть Math объект - используйте его(если я вас правильно понял)
0
BANO
Ренегат
Эксперт HTML/CSS
1476 / 1056 / 292
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
19.07.2016, 18:32 #4
ironid, можно подкрепть вас ссылочкой?
0
Cestuh
0 / 0 / 0
Регистрация: 22.06.2015
Сообщений: 24
19.07.2016, 22:14  [ТС] #5
Проблема заключается в том что, мне нужно эти функции реализовать, я знаю что есть объект Math, но я не понимаю как добавить его правильно в калькулятор, как не пробовал, не получается нормально ее вставить
0
ntlinuxnt
$ su
1461 / 504 / 71
Регистрация: 18.11.2010
Сообщений: 2,795
Записей в блоге: 2
Завершенные тесты: 5
19.07.2016, 22:31 #6
Если в хотите нормальный калькулятор, то вам надо выстраивать дерево и по нему ориентироваться.
0
Cestuh
0 / 0 / 0
Регистрация: 22.06.2015
Сообщений: 24
19.07.2016, 22:33  [ТС] #7
Дерево, функции что ли?
0
ntlinuxnt
$ su
1461 / 504 / 71
Регистрация: 18.11.2010
Сообщений: 2,795
Записей в блоге: 2
Завершенные тесты: 5
19.07.2016, 22:45 #8
https://ru.wikipedia.org/wiki/%D0%90...B5%D0%B2%D0%BE
0
Cestuh
0 / 0 / 0
Регистрация: 22.06.2015
Сообщений: 24
19.07.2016, 22:50  [ТС] #9
И в чем оно мне поможет?
0
ntlinuxnt
$ su
1461 / 504 / 71
Регистрация: 18.11.2010
Сообщений: 2,795
Записей в блоге: 2
Завершенные тесты: 5
19.07.2016, 22:52 #10
тем что можно будет лепить выражения любой глубины
0
Cestuh
0 / 0 / 0
Регистрация: 22.06.2015
Сообщений: 24
19.07.2016, 22:57  [ТС] #11
Не понял, абстрактное дерево позволит сделать мне любое выражение?
0
ntlinuxnt
$ su
1461 / 504 / 71
Регистрация: 18.11.2010
Сообщений: 2,795
Записей в блоге: 2
Завершенные тесты: 5
19.07.2016, 23:16 #12
https://quickgit.kde.org/?p=kcalc.git&a=tree
Или посмотрите например исходники kdeшного калькулятора на плюсах, и реализуйте так же на js. Дело ваше, но сейчас у вас такая лапша, что читать даже не охота.
0
Cestuh
0 / 0 / 0
Регистрация: 22.06.2015
Сообщений: 24
19.07.2016, 23:33  [ТС] #13
Ясно, вода у меня...
0
19.07.2016, 23:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.07.2016, 23:33
Привет! Вот еще темы с ответами:

Калькулятор - Java SE
Пишу калькулятор использую свинг, делаю сложение но в результате переменная plNUM2 равна нулю, хотя я ей присвоил Integer.parseInt(twoStr);...

Калькулятор - Delphi
Добрый день! В Delphi я глубокий неуч и оттого решился написать калькулятор, исключительно ради набивки руки. Но не все оказалось так...

калькулятор - C++
Всем привет, извините, что постю сюда эту тему, но выхода нет((( Проблема состоит в том что надо сделать калькулятор из множества действий...

калькулятор - C++ Qt
помогите пожалуйсто сделать точку, дисплей калькулятора lcdNumber. а то ни как не могу придумать... void Form::btn_tochka() { ...


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

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

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