0 / 0 / 0
Регистрация: 22.06.2015
Сообщений: 36
1

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

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

Всем привет! Делаю калькулятор на js и добавляю туда математические функции (косинус, тангенс и т.д.), не получается реализовать их. Вот код калькулятора:
PHP/HTML
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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.07.2016, 13:51
Ответы с готовыми решениями:

Как преобразовать обычный калькулятор в калькулятор использующий класс стек?
#include &lt;iostream&gt; int main(){ int a = 0; int b = 0; char operation; ...

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

Калькулятор
Привет всем! Мною была написана программка калькулятор в среде Делфи, но она не отчётливо...

Калькулятор
Всем привет! делаю простой калькулятор с функциями +-*/ sin, cos, sqr, sqrt и еще может добавлю...

12
$ su
1604 / 519 / 97
Регистрация: 18.11.2010
Сообщений: 2,807
Записей в блоге: 2
19.07.2016, 05:41 2
И в чем заключается ваша проблема?
0
68 / 14 / 7
Регистрация: 17.10.2015
Сообщений: 53
19.07.2016, 18:19 3
В js же есть Math объект - используйте его(если я вас правильно понял)
0
Ренегат
Эксперт HTML/CSS
1738 / 1083 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
19.07.2016, 18:32 4
ironid, можно подкрепть вас ссылочкой?
0
0 / 0 / 0
Регистрация: 22.06.2015
Сообщений: 36
19.07.2016, 22:14  [ТС] 5
Проблема заключается в том что, мне нужно эти функции реализовать, я знаю что есть объект Math, но я не понимаю как добавить его правильно в калькулятор, как не пробовал, не получается нормально ее вставить
0
$ su
1604 / 519 / 97
Регистрация: 18.11.2010
Сообщений: 2,807
Записей в блоге: 2
19.07.2016, 22:31 6
Если в хотите нормальный калькулятор, то вам надо выстраивать дерево и по нему ориентироваться.
0
0 / 0 / 0
Регистрация: 22.06.2015
Сообщений: 36
19.07.2016, 22:33  [ТС] 7
Дерево, функции что ли?
0
$ su
1604 / 519 / 97
Регистрация: 18.11.2010
Сообщений: 2,807
Записей в блоге: 2
19.07.2016, 22:45 8
https://ru.wikipedia.org/wiki/... 0%B2%D0%BE
0
0 / 0 / 0
Регистрация: 22.06.2015
Сообщений: 36
19.07.2016, 22:50  [ТС] 9
И в чем оно мне поможет?
0
$ su
1604 / 519 / 97
Регистрация: 18.11.2010
Сообщений: 2,807
Записей в блоге: 2
19.07.2016, 22:52 10
тем что можно будет лепить выражения любой глубины
0
0 / 0 / 0
Регистрация: 22.06.2015
Сообщений: 36
19.07.2016, 22:57  [ТС] 11
Не понял, абстрактное дерево позволит сделать мне любое выражение?
0
$ su
1604 / 519 / 97
Регистрация: 18.11.2010
Сообщений: 2,807
Записей в блоге: 2
19.07.2016, 23:16 12
https://quickgit.kde.org/?p=kcalc.git&a=tree
Или посмотрите например исходники kdeшного калькулятора на плюсах, и реализуйте так же на js. Дело ваше, но сейчас у вас такая лапша, что читать даже не охота.
0
0 / 0 / 0
Регистрация: 22.06.2015
Сообщений: 36
19.07.2016, 23:33  [ТС] 13
Ясно, вода у меня...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.07.2016, 23:33

Калькулятор
Делаю калькулятор. Наткнулся на такую проблему: надо как-то сделать,, чтоб при нажатии клавиш на...

Калькулятор с СС
Нужен калькулятор с возможностью перевода из 10 СС в двоичную и восмеричную, из двоичной в 8 и 10,...

Калькулятор
Всем привет! Я делаю калькулятор в NetBeans IDE 1.8 по видеоуроку ndIIRMoyPPM Делаю все как в...

Калькулятор C++
Простейший калькулятор. Помогите пожалуйста.

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

Калькулятор
делаю калькулятор на основе чужого, появились такие проблемы: 1. не работает с отрицательными...


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

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

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