본문 바로가기

Project16

[JavaScript 프로젝트 : 공학용 계산기] 중복 연산자 제거 계산기에서 숫자없이 연산자를 연속으로 입력할 경우, 마지막에 입력한 연산자만이 기능한다. 그 기능을 넣고자 한다 let form = '2+*+/3'; let operator = ['+', '-', '*', '/']; let replacedForm = ""; console.log(form.charAt(0)); // 연산자 단일 기능 for(let i=0; i>> stack 순서로 행한다. arr 저장 : 2 stack 저장 : + 숫자가 넘어오면 다시 push 반복 arr 저장 : 1 stack 저장 : ) 문자열의 마지막을 확인하고 logic 마무리 ==> FEEDBACK 위 2번 논리대로 코드를 구현하려고 하였으나 굳이 배열을 사용할 필요없음을 알았다. 원본 문자열의 요소를 반복문으로 하나씩 논리 전개.. 2022. 1. 19.
[JavaScript 프로젝트 : 공학용 계산기] 기본 공학용 계산기 1주일 가량 고민하여 만든 공학용 계산기. 다른 블로그 등에서는 eval로 계산하였으나, eval은... eval 없이 공학용 계산기를 만들고자 하였고, 오류처리? 가 되지 않거나 사용자 편의성을 고려한 기능이 없음을 제외하면 계산을 올바르게 수행하는 것을 만들었다. 일반적인 계산기 코드들은 중위계산식을 사용하였다. 우리가 흔히 하는 식 : '3 * (2 + 1)' 중위 계산식은 개발자에게 직관적이지만 괄호 처리가 상당히 힘들다. 회사 사수 분도 괄호 처리로 몇 주를 앓으시다가 포기하셨다고... 이에 대한 대안이 후위 계산식이다. 위 식 '3 * (2 + 1)' >>> '3 * 2 1 + ' 후위계산식은 computer 입장에서 알아보기 쉬운 방식이라 널리 쓰인다고 한다. (1) https://wayho.. 2022. 1. 19.
[JavaScript 프로젝트 : 공학용 계산기] 문자열 시작, 끝 검색 [문제 제기] : 코드에 기능이 더해져 길어질 수록, 논리가 엉켜서 기능을 더 넣기 어려웠다. 그래서 생각했다. (1)애초에 문자열을 입력받을 때, (2)조건에 따라 문자열을 따로 떼내어 (3)계산한 뒤 본래 문자열의 뺀 index에 return 하고 (4)계산을 반복하자 그러려면 특정 문자열의 '시작 index'와 '끝 index' 부터 찾자. 근데 만약 괄호 ( ) 가 여러개라면? 식이 괄호 안의 괄호라면? do - while 로 index searching을 반복하자 const str = 'a(ba)bcd(a)ba'; // 초기화 let position = 1; let indexStartArr = []; let indexEndArr = []; let i = 0; do{ indexStart = str.. 2022. 1. 18.
[JavaScript 프로젝트 : 공학용 계산기] 삼각함수 계산 s. c, t, p 등 변수에 따라 삼각함수 계산이 가능하도록 추가하고자 하였다. split을 통해 앞 문자열 / 뒷 문자열로 나누어 계산하고자 하였다. 삼각함수 연산자 앞에 숫자가 있을 경우 배열 afterTmp[0], 연산자 뒤의 숫자는 afterTmp[1] 에 저장한다. 문제는 연산자 앞에 숫자가 없을 경우 연산자 뒷 숫자가 afterTmp[0] 에 저장될 줄 알았으나 되려 afterTmp[0] 에 null 값이, afterTmp[1] 에 연산자 뒷편 숫자가 저장됨을 확인하였다. 이유는 모르겠다. let letters = '3pow21'; console.log(letters); // split을 하면 기준에 따라 2개의 배열로 나누는데, // 기준점 앞 문자가 null 이라면 배열[0] 값은 nul.. 2022. 1. 18.