태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

'계산기'에 해당되는 글 3건

  1. 2017.03.31 Chobocho Calc 2
  2. 2016.10.28 Simple calculator
  3. 2016.04.23 Chobocho Calc 1 (1)

* Javascript로 만든 계산기

http://www.chobocho.com/javascript/calc.html


* 문법

   # : 주석

   변수 수식 ::= 변수에 수식을 대입한다

   = 수식 ::= 수식을 계산한다 


* Source : https://github.com/chobocho/Calc

'Coding > JavsScript 삽질기' 카테고리의 다른 글

공백을 제거해주는 스크립트  (0) 2018.04.02
Chobocho Calc 2  (0) 2017.03.31
Sam Loyd's unsolvable 15-puzzle  (0) 2017.02.05
Puzzle game  (0) 2017.01.22
Posted by chobocho



<HTML>

    <head>

        <title>Chobocho's Simple Calculator</title>

            <style>

                .tile {

                  text-align:center;

                  width:40px;

                  height:40px;

                  font-size:24px;

                  background-color:"white";

                  border:1px solid black;

                  box-shadow:black 1px 1px;

                }

                

                textarea {

                  height:100px;

                  width:200px;

                  text-align:right;

                  font-size:24px;

                  border:1px solid black;

                  box-shadow:black 1px 1px;

                  padding:2px;

                }

            </style>       

        

        <script language="JavaScript">

            var sum = 0;

            var ret = "";

            var keypadValue = [ "AC", "←", "(", ")", "7", "8", "9", "÷", "4", "5", "6", "×", "1", "2", "3", "-", "0", ".", "=", "+" ];

            

            function init() {

                var table = document.getElementById("keypad");


                

                window.onkeydown = onKeyDown;

                window.onkeyup   = onKeyUp;

                

                for (var i = 0; i < 5; i++) {

                    var tr = document.createElement("tr");

                    for (var j = 0; j < 4; j++) {

                        var td = document.createElement("td");

                        td.className="tile";

                        var idx = i*4 + j;

                     

                        td.value = idx;

                        td.index = idx;

                        td.textContent = keypadValue[idx];

                        td.onclick = onClick;

                        tr.appendChild(td);

                    }

                    table.appendChild(tr);

                } 

            }  

            function onKeyUp(e) {

            }

            function onKeyDown(e) {

            }

            function onClick(e) {

               var clkTile = e.srcElement.index;

               var isClickEqual = false;


               switch(clkTile) {

               case 0 : // AC

                    sum = 0;

                    ret = "";

                    break;

               case 1 : // <-

                    ret = ret.slice(0,-1);

                    break;

               case 2 : // (

               case 3 : // )

               case 4 : // 7

               case 5 : // 8

               case 6 : // 9

               case 7 : // ÷

               case 8 : // 4

               case 9 :

               case 10 :

               case 11 : // x

               case 12 : 

               case 13 :

               case 14 :

               case 16 : // 0

               case 19 : // +

                    ret = ret + keypadValue[clkTile];

                    break;

               case 15 : // -

                    if (ret == "") {

                        ret = "-";

                    } else {

                        ret = ret + "-";

                    }

                    break;

               case 17 : // .

                    if (ret == "") {

                        ret = "0.";

                    } else {

                        ret = ret + ".";

                    }

                    

                    break;

               case 18 : // =

                    if (ret == "" && sum != 0) {

                        ret = sum;

                    } else {

                        ret = ret.replace(/×/g, "*").replace(/÷/g, "/");

                        try {

                            sum = eval(ret);

                        } catch(e) {

                            sum = "Error";

                        }

                        ret = "";

                    }

                    isClickEqual = true;

                    break;               

               default:

                   break;

               }

               console.log("Exp : " + ret + " Sum : " + sum);

               

               document.getElementById("result").value = isClickEqual ? sum : ret;

            }         

        </script>

    </head>

    <body onload="init()">

         <table id="keypad" align="center">

            <tr>

                <td colspan=4>

                <textarea id="result" disabled=true cols="35" rows="1"></textarea>

                </td>

            </tr>

         </table>

    </body>

</HTML>

'Coding > JavsScript 삽질기' 카테고리의 다른 글

Puzzle game  (0) 2017.01.22
Simple calculator  (0) 2016.10.28
Clock  (0) 2016.10.25
Puzzle  (0) 2016.10.25
Posted by chobocho

2016년 목표 중 하나인 Javascript 계산기를 만들기 시작했다


Chrome의 디버깅 기능을 첨 써보고 감동 받았다. ^^;



'Coding > JavsScript 삽질기' 카테고리의 다른 글

Samll lisp by Javascript  (0) 2016.09.12
Chobocho Calc 1  (1) 2016.04.23
글자수 세는 자바 스크립트  (0) 2011.11.15
Google chart API를 이용한 QR CODE 생성기  (3) 2010.11.30
Posted by chobocho