Listing of file='2' on disk='vmedia/glbr_22.wvd.zip'
# Sector 224, program filename = '2' 0001 DIM B(22),E(22),W(22),C(22) 0005 E0=1E-12 : E1=1E-4 : E4=1E-20 : K1=100 : S5=0 0010 PRINT "DEGREE OF POLYNOMIAL?" : INPUT N 0015 PRINT "ENTER COEFF.: A0,A1,...,AN 1/LINE" 0020 FOR I=1 TO N+1 : INPUT B(N-I+2) 0025 NEXT I : IF ABS(B(1))>=E0 THEN 35 0030 PRINT "A(N) ZERO OR NEARLY ZERO. CALCULATIONS END." : GOTO 999 0035 PRINT : PRINT "ROOTS:" : IF N<=2 THEN 350 0040 B(N+2)=0 : N1=2*INT((N+1)/2) 0045 FOR M1=1 TO N1/2 : P,Q=1 0050 FOR K=1 TO K1 : FOR L=1 TO K1 0055 FOR I=1 TO N1+1 : C(I)=B(I) : NEXT I 0060 FOR J=N1-2 TO N1-4 STEP -2 : FOR I=1 TO J+1 0065 C(I+1)=C(I+1)-P*C(I) : C(I+2)=C(I+2)-Q*C(I) 0070 NEXT I : NEXT J 0075 R0=C(N1+1) : R1=C(N1) 0080 S0=C(N1-1) : S1=C(N1-2) 0085 V0=-Q*S1 : V1=S0-S1*P 0090 D0=V1*S0-V0*S1 : IF ABS(D0)>=E4 THEN 110 0095 P=P+5 : Q=Q+5 0100 NEXT L 0110 D1=S0*R1-S1*R0 : D2=R0*V1-V0*R1 0120 P1=D1/D0 : Q1=D2/D0 : P=P+P1 : Q=Q+Q1 0130 IF ABS(R0)>=E1 THEN 150 : IF ABS(R1)>=E1 THEN 150 0140 E(M1)=1 : GOTO 210 0150 IF ABS(P1)>=E1 THEN 170 : IF ABS(Q1)>=E1 THEN 170 0160 E(M1)=2 : GOTO 210 0170 IF P=0 THEN 180 : IF ABS(P1/P)>=E1 THEN 200 0180 IF Q=0 THEN 200 : IF ABS(Q1/Q)>=E1 THEN 200 0190 E(M1)=3 : GOTO 210 0200 NEXT K : E(M1)=4 0210 S=-P/2 : T=S*S-Q 0220 IF T<0 THEN 240 : T=SQR(T) : W(M1)=1 0230 PRINT : PRINT S+T : PRINT S-T : GOTO 260 0240 W(M1)=-1 : T=SQR(-T) 0250 PRINT : PRINT S;"+I*";T : PRINT S;"-I*";T 0260 IF E(M1)=4 THEN 999 0270 FOR J=1 TO N1-1 0280 B(J+1)=B(J+1)-P*B(J) : B(J+2)=B(J+2)-Q*B(J) 0290 NEXT J 0300 N1=N1-2 : IF N1>1 THEN 310 : GOTO 999 0310 IF N1>=3 THEN 340 0320 M1=M1+1 : E(M1)=1 0330 P=B(2)/B(1) : Q=B(3)/B(1) : GOTO 210 0340 NEXT M1 0350 IF N=2 THEN 370 0360 PRINT -B(2)/B(1) : GOTO 999 0370 B(3)=B(2)*B(2)-4*B(1)*B(3) 0380 S=-B(2)/2/B(1) : T=SQR(ABS(B(3)))/2/B(1) 0390 M1,E(4)=4 : IF SGN(B(3))<0 THEN 250 : GOTO 230 0999 END