以下是我的程序:
%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,
);



雷达卡


京公网安备 11010802022788号







