我想编写一个二分法的程序,写出来之后并没有显示error的错误提示,我也没有发现我程序中的错误,希望有人指教我一下,谢谢各位!
以下是我的程序:
%MACRO ESEARCH(
FRONTNUM=,
TARGETNUM=,
ENDNUM=,
ERRNUM=,
);
%LOCAL I;
%LET I=1;
%LET MIDNUM=%SYSEVALF((&FRONTNUM+&ENDNUM)/2);
%DO %WHILE(
%SYSEVALF(%SYSFUNC(ABS(&MIDNUM-&TARGETNUM))>&ERRNUM));
%IF %SYSEVALF(%SYSEVALF(&MIDNUM-&TARGET)>0) %THEN %DO;
%LET ENDNUM=&MIDNUM;
%LET MIDNUM=%SYSEVALF((&FRONTNUM+&ENDNUM)/2);
%END;
%ELSE %DO;
%LET FRONNUM=&MIDNUM;
%LET MIDNUM=%SYSEVALF((&FRONTNUM+&ENDNUM)/2);
%END;
%PUT %STR(第&I.次迭代:&MIDNUM.);
%LET I=%EVAL(&I.+1);
%END;
%MEND;
%ESEARCH(
FRONTNUM=1,
TARGETNUM=704,
ENDNUM=1024,
ERRNUM=0.5,
);