안녕하세요? 프로그램을 개발하는 도중 궁금한게 있어서 이렇게 질문을 올립니다. 예) procedure TForm1.abc; var str:string; val:integer; begin str:='2 + 3 *1'; 문자열 변수 str에 저장되어있는 문자열을 아래와 같이 사용하려고 하...
어린왕자
•
2000.04.19 01:01
안녕하세요..영원한 델초보 어린왕자인데요..
그냥..저가 아는 수준으루 말해두 되나요?
직접적으로 '+',...
이경문
•
2000.04.19 17:33
Expression Parser에 대한 개념을 가지고 있어야 합니다.
먼저 주어진 스트링을 Token이라는 Compiler에서...
그냥..저가 아는 수준으루 말해두 되나요?
직접적으로 '+','-'이런 산술연산자로는 안될꺼예요..
연산자는 함수이고
데이타는 스트링이니깐요..
그러니깐..힘들꺼예요..다만 막노동으로 연결해주는 수밖에..즉.
'+'가 입력되었을때 플러스를 해주는 함수와 연결하고
'-'가 왔을때 마이너스 해주는 함수와 연결해주고..
수식을 해석해야하는 쫌 막노동이 들거 같군요..
무슨말인지 아시죠?
이항연산문장(str) 즉 연산자가 하나인거를 예를 들어보면..
Plus:=pos('+',str);
if pos<> then begin
Return:=Add(plus,str);
showmessage('주어진 식 '+str+'의 값은 '+IntToStr(Return)+'입니다');
end
else showmessage('이프로그램으로 계산할수 없습니다');
procedure Add(Plus:integer;str:string):integer;
begin
// 이부분을 문자하나하나분석해서 수식화하면 는데 여간 막노동일이 아니어서..T.T
end;
그럼 즐코딩하세요..질문이 시원치않아서 죄송합니다..
나원용 wrote:
> 안녕하세요?
>
> 프로그램을 개발하는 도중 궁금한게 있어서 이렇게 질문을
> 올립니다.
>
> 예)
> procedure TForm1.abc;
> var
> str:string;
> val:integer;
> begin
> str:='2 + 3 *1';
> 문자열 변수 str에 저장되어있는 문자열을 아래와 같이 사용하려고 하는데
> 어떻게 변환하는지 알고 계신분은 제발 알려 주셨으면 감사 * 100 하겠습니다.
> 이렇게 val:= 2 + 3 * 1
>
> end;
>