主题:为什么老出现Subscript out of range!!谢谢高手帮小弟我调试
DEFDBL A-H, K, O-Z
DIM X(3000), Y(3000, 10), YT(10)
DIM S(4), K(10, 4), C(4)
CLS
READ M, H, IP
DATA 2,0.01,10
READ X(0)
DATA 0.0
FOR I = 0 TO M - 1: READ Y(0, I): NEXT I
DATA 0.0,370.0
Y0Max = .9: D = 1.825
PRINT TAB(5); "*DATA*"
PRINT "M="; M: PRINT "H="; H; "(m)"
PRINT "XA(0)="; X(0): PRINT "T(0)="; Y(0, 1); "(K)"
PRINT TAB(5); "*ResuIt*"
PRINT " L(m) XA T(K) "
PRINT USING "####.##"; X(0);
FOR I = 0 TO M - 1
PRINT USING "#######.####"; Y(0, I);
NEXT I
PRINT
DD1 = 143800000000#: DD2 = 6250000000000000#
S(1) = 0: S(2) = .5: S(3) = .5: S(4) = 1!
FOR I = 0 TO M - 1: K(I, 0) = 0: NEXT I
C(1) = 1! / 6!: C(2) = 1! / 3!
C(3) = 1! / 3!: C(4) = 1! / 6!
L = 0: Y0T = 0: IPM = 0
DO WHILE Y0T <= Y0Max
L = L + 1: IPM = IPM + 1
X(L) = X(L - 1) + H
FOR I = 0 TO M - 1: Y(L, I) = Y(L - 1, I): NEXT I
FOR J = 1 TO 4
XT = X(L - 1) + S(J) * H
FOR I = 0 TO M - 1
YT(I) = Y(L - 1, I) + S(J) * K(I, J - 1)
NEXT I
YK1 = ((1! - YT(0)) ^ .5) * (13! - 4 * YT(0)) / (EXP(156000 / YT(1)) * ((100! - 4 * YT(0)) ^ 1.5))
YK2 = YT(0) * ((13! - 4 * YT(0)) ^ .5) / (EXP(27000 / YT(1)) * ((1! - YT(0)) ^ .5) * (100! - 4 * YT(0)))
YK3 = (102.9 - .00834 * YT(1)) * 2.64
K(0, J) = H * (DD1 * YK1 - DD2 * YK2)
K(1, J) = H * (DD1 * YK1 - DD2 * YK2) * YK3
FOR I = 0 TO M - 1
Y(L, I) = Y(L, I) + C(J) * K(I, J)
NEXT I
NEXT J
IF IPM >= IP THEN
PRINT USING "####.##"; X(L);
FOR I = 0 TO M - 1
PRINT USING "#######.####"; Y(L, I);
NEXT I
PRINT
IPM = 0
END IF
Y0T = Y(L, 0)
LOOP
PRINT USING "####.##"; X(L);
FOR I = 0 TO M - 1
PRINT USING "#######.####"; Y(L, I);
NEXT I
PRINT
END
DIM X(3000), Y(3000, 10), YT(10)
DIM S(4), K(10, 4), C(4)
CLS
READ M, H, IP
DATA 2,0.01,10
READ X(0)
DATA 0.0
FOR I = 0 TO M - 1: READ Y(0, I): NEXT I
DATA 0.0,370.0
Y0Max = .9: D = 1.825
PRINT TAB(5); "*DATA*"
PRINT "M="; M: PRINT "H="; H; "(m)"
PRINT "XA(0)="; X(0): PRINT "T(0)="; Y(0, 1); "(K)"
PRINT TAB(5); "*ResuIt*"
PRINT " L(m) XA T(K) "
PRINT USING "####.##"; X(0);
FOR I = 0 TO M - 1
PRINT USING "#######.####"; Y(0, I);
NEXT I
DD1 = 143800000000#: DD2 = 6250000000000000#
S(1) = 0: S(2) = .5: S(3) = .5: S(4) = 1!
FOR I = 0 TO M - 1: K(I, 0) = 0: NEXT I
C(1) = 1! / 6!: C(2) = 1! / 3!
C(3) = 1! / 3!: C(4) = 1! / 6!
L = 0: Y0T = 0: IPM = 0
DO WHILE Y0T <= Y0Max
L = L + 1: IPM = IPM + 1
X(L) = X(L - 1) + H
FOR I = 0 TO M - 1: Y(L, I) = Y(L - 1, I): NEXT I
FOR J = 1 TO 4
XT = X(L - 1) + S(J) * H
FOR I = 0 TO M - 1
YT(I) = Y(L - 1, I) + S(J) * K(I, J - 1)
NEXT I
YK1 = ((1! - YT(0)) ^ .5) * (13! - 4 * YT(0)) / (EXP(156000 / YT(1)) * ((100! - 4 * YT(0)) ^ 1.5))
YK2 = YT(0) * ((13! - 4 * YT(0)) ^ .5) / (EXP(27000 / YT(1)) * ((1! - YT(0)) ^ .5) * (100! - 4 * YT(0)))
YK3 = (102.9 - .00834 * YT(1)) * 2.64
K(0, J) = H * (DD1 * YK1 - DD2 * YK2)
K(1, J) = H * (DD1 * YK1 - DD2 * YK2) * YK3
FOR I = 0 TO M - 1
Y(L, I) = Y(L, I) + C(J) * K(I, J)
NEXT I
NEXT J
IF IPM >= IP THEN
PRINT USING "####.##"; X(L);
FOR I = 0 TO M - 1
PRINT USING "#######.####"; Y(L, I);
NEXT I
IPM = 0
END IF
Y0T = Y(L, 0)
LOOP
PRINT USING "####.##"; X(L);
FOR I = 0 TO M - 1
PRINT USING "#######.####"; Y(L, I);
NEXT I
END