일단 자바스크립트고
코드는 못올려서 (안올리는게아니라 못올림)
간단한 계산기 만드는데
Win10 계산기랑 똑같이 하려고
근데 문제가 버튼 실구현은 다했는데
계산할때 알고리즘을 우찌할지 모르겠음
inputs라는 string()가 있는데 여기에 버튼누르면
inputs += "1" 이런식으로 넣고
기호에는 양옆에 공백둔다음에 계산할때
inputs를 split 쳐가지고 Array에 집어넣어서 각 칸에 기호가 뭐가오는지에 따라서 계산하게 했거든?
근데 중간부터 막힘
array에 집어넣기까진했는데 뒤에 어떻게할지..
맨앞에 기호오는거 확인이랑 기호중복은 못하게는 구현해놓음
코드는 못올려서 (안올리는게아니라 못올림)
간단한 계산기 만드는데
Win10 계산기랑 똑같이 하려고
근데 문제가 버튼 실구현은 다했는데
계산할때 알고리즘을 우찌할지 모르겠음
inputs라는 string()가 있는데 여기에 버튼누르면
inputs += "1" 이런식으로 넣고
기호에는 양옆에 공백둔다음에 계산할때
inputs를 split 쳐가지고 Array에 집어넣어서 각 칸에 기호가 뭐가오는지에 따라서 계산하게 했거든?
근데 중간부터 막힘
array에 집어넣기까진했는데 뒤에 어떻게할지..
맨앞에 기호오는거 확인이랑 기호중복은 못하게는 구현해놓음
262362362623634458372362362125124234357457342345235235235235235235897646342312658번째 바퀴 재발명을 응원합니다
재발명이아니라 한번 해보는거임 만들수있나 싶어서 아직 한참남긴햇는데
실험
eval - dc Cpp
정규식으로 자르든 뭐든 숫자는 1이든 123이든 전부 한 뭉텅이로 인식해야하니... 정규식 쓴다면 \d*같은식으로 할테고 - dc Cpp
prefix표기법으로 변환 후 스택에 넣었다 뺐다 하며 계산하는 방법도 있암 - dc Cpp
infix방식으로 하려면 괄호도 신경써줘야 하는데 재귀함수로 넘기면서 우선순위 높은거부터 처리하는것도 방법인듯 - dc Cpp
그니까 split으로 공백사이를 자르면 123,+,456 이런식으로 배열에 집어넣게끔은 했어 그뒤가 문제임 복수번째 배열에서 일일히 노가다해서 계산하게끔 하는거 말곤 없으려나?
평가하는 함수를 분리하는걸 추천함. evaluation(l, r, op)에 각각 123 456 +가 들어갈테고 switch문 등으로 연산자 종류별로 다른 연산 수행 - dc Cpp
아니면 op자리에 콜백함수를 넘겨도 됨. - dc Cpp
123 * ( 456 + 789) 이런 식은 어떻게 할건지도 생각해보면 좋겠지만 복잡해질테니, 괄호 없는거부터 해봐야겠지 ㅇㅇ - dc Cpp
ㄱㅅㄱㅅ
잘라놨으면 합친다음에 eval로 계산해서 출력해
굳이 split 쳐서 array로 안하고 input 들어오면 유효성검사한다음에 text+=input으로 합치고 마지막에 = 입력하면 계산해서 출력값던지게 해도됨
그런식으로 하긴함 =누르자마자 회치듯이 split쳐서 근데 그뒤가.. 일단 고마워!
split을 하지말고 그냥 입력하면서 연결되는 텍스트를 통째로 eval할 수 있게 입력값을 잘 검사해보셈 1+1+1을 [1,+,1,+,1]로 저장해놓을 필요가 없다는 뜻임
eval 안쓰겠다고 이러고있던거 아닌가 싶긴한데 - dc Cpp
뭐 굳이 안쓰겠다면... 진짜 ()같은거 들어가면 귀찮아질텐데
지가 쳐붙여놓고 그걸 다시 파싱하고 있네 시발 ㅋㅋ - dc App
숫자끼리 합쳐놓을라고 했을때 떠오른게 그거였음