본문 바로가기

공학용 계산기5

[Java Project] 공학용 계산기 & 후위식 계산 javascript 로 짜기 전에 만든 java version의 공학용 계산기다. 본래 jsp 파일을 view 로 만들고, java에서 controller&service&dto 등 mvc 패턴을 적용하여 만들려고 하였으나... 피드백 주신 사수 분이 javascript 를 배워야한다고 말씀하시어... 중간에 유기된 프로젝트... 미안하다... 괄호에 대한 사칙연산의 후위식 계산을 포함하며, 삼각함수-괄호에 대한 오류 처리 등 세부 기능은 전무하다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; i.. 2022. 2. 7.
[JavaScript 프로젝트 : 공학용 계산기] 공학용 계산기 upgraded 이전 공학용 계산기의 기능이 사칙 연산 및 괄호에 따른 계산이었다. 이번 upgraded 버전은 (1) 연산자를 중복 입력하였을 시, 마지막 연산자만 기능되도록 (2) 삼각 함수 계산 추가 - 참고로 삼각함수는 sin( ) 등 반드시 괄호가 들어가도록 함 (3) 괄호가 잘못 입력시 오류 처리 (4) 소수점 기능 등을 추가 하였다. 업그레이드 과정의 70% 가량을 망할 괄호 처리에 소요하였으며, 너무 힘들었다... 왜 아무리 찾아도 괄호로 계산기 만든 사람이 없는지 이해되는... 공학용 계산기 // 입력값 변수 input 선언 및 초기화 let input = ""; function add(letter){ // 입력 문자를 더하여 input = input + letter; // display 창에 띄움 do.. 2022. 1. 26.
[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.