計算アルゴリズム【�U】
■ このスレッドは過去ログ倉庫に格納されています
0025デフォルトの名無しさん
2005/10/16(日) 06:41:43procedure addsub ;forward;
procedure factor; begin
if p^ = '(' then begin inc(p); addsub; if p^<> ')' then Abort;inc(p);end
else if p^ in ['1'..'9'] then begin num:=StrToInt(p^);inc(p);end;
end;
procedure muldiv; var save:Integer; oldsym:char; begin
factor;
while (p^ in ['*','/'] ) do begin save:=num;oldsym:=p^; inc(p); factor;
case oldsym of
'*': num:=save*num;
'/': num:=save div num;
end;
end;
end;
procedure addsub; var save:Integer; oldsym:char; begin
case p^ of
'+': begin inc(p);MulDiv; end;
'-': begin inc(p);MulDiv; num:=-num; end;
else muldiv;
end;
while (p^ in [ '+','-'] ) do
begin save:=num;oldsym:=p^; inc(p);
muldiv;
case oldsym of
'+': num:=save+num;
'-': num:=save-num;
end;
end;
end;
begin
p:=PChar(作った文字列); addsub; 答えはnum
■ このスレッドは過去ログ倉庫に格納されています