|
> No.3558[元記事へ]
GAIさんへのお返事です。
> A=2,B=3,C=5 では結果はOKですが
> A=2,B=3,C=11
> A=7,B=11,C=13 とかでは一カ所符号が逆になる部分があるようです。
大変失礼いたしました。
とりあえず修正しておきました。
LET A=7
LET B=11
LET C=13
PRINT "1/(SQR(";A;")+SQR(";B;")+SQR(";C;"))"
LET SS=SGN((A+B-C)^2-4*A*B)
IF MOD(A-B-C,2)=0 AND MOD(-A+B-C,2)=0 AND MOD(C-A-B,2)=0 AND MOD((A+B-C)^2-4*A*B,2)=0 THEN LET S=2 ELSE LET S=1
PRINT "(";SIGN$(SS*(A-B-C)/S);"SQR(";A;")";SIGN$(SS*(-A+B-C)/S);"SQR(";B;")";SIGN$(SS*(C-A-B)/S);"SQR(";C;")";SIGN$(SS*2/S);"SQR(";A*B*C;"))/";ABS((A+B-C)^2-4*A*B)/S
END
EXTERNAL FUNCTION SIGN$(X)
IF ABS(X)=1 THEN
IF X<0 THEN LET SIGN$="-" ELSE LET SIGN$="+"
ELSE
IF X<0 THEN LET SIGN$="-"&STR$(-X)&"*" ELSE LET SIGN$="+"&STR$(X)&"*"
END IF
END FUNCTION
|
|