//JOB(ERCC07,STEPHENS,T=200,L=10000) //OPTIONS(QUOTES,OPT) //ALGOL 'COMMENT' *************** * * * ALGG040 * * * *************** ; 'BEGIN' 'COMMENT' MEP00; 'BEGIN' 'COMMENT' A0,A6,A12; 'INTEGER' N,M; REPEAT:N:=READ; 'IF' N=0 'THEN' 'GOTO' FINISH; M:=READ; 'BEGIN' 'INTEGER' I,J,K,SA,SB,SC,SD; 'REAL' KA,KB,RMS,MEAN; 'BOOLEAN' FITLOG; 'ARRAY' A[1:N,0:N], B[1:N], SUM[0:N+N], X,Y[1:M]; 'PROCEDURE' SOLVE(X,A,N); 'VALUE' A,N; 'INTEGER' N; 'ARRAY' A,X; 'BEGIN' 'INTEGER' I,R,C; 'REAL' Z; 'FOR' I:=N-1 'STEP' -1 'UNTIL' 1 'DO' 'FOR' R:=1 'STEP' 1 'UNTIL' I 'DO' 'BEGIN' Z:=A[R,I+1]/A[I+1,I+1]; 'FOR' C:=0 'STEP' 1 'UNTIL' I 'DO' A[R,C]:=A[R,C]-A[I+1,C]*Z; 'END'; 'FOR' R:=1 'STEP' 1 'UNTIL' N 'DO' 'BEGIN' Z:=A[R,0]; 'FOR' I:=R-1 'STEP' -1 'UNTIL' 1 'DO' Z:=Z-X[I]*A[R,I]; X[R]:=Z/A[R,R]; 'END'; 'END' OF SOLVE; FITLOG:=READ#0.0; 'FOR' J:=1 'STEP' 1 'UNTIL' M 'DO' 'BEGIN' X[J]:=READ; Y[J]:='IF' FITLOG 'THEN' LN(READ) 'ELSE' READ; 'END' OF READING CURVE; 'FOR' J:=0 'STEP' 1 'UNTIL' N+N 'DO' SUM[J]:=0.0; 'FOR' J:=1 'STEP' 1 'UNTIL' N 'DO' A[J,0]:=0.0; SUM[0]:=M; 'FOR' I:=1 'STEP' 1 'UNTIL' M 'DO' 'BEGIN' KA:=X[I]; KB:=1.0; 'FOR' J:=1 'STEP' 1 'UNTIL' N+N 'DO' 'BEGIN' KB:=KB*KA; SUM[J]:=SUM[J]+KB; 'END'; KB:=Y[I]; 'FOR' J:=1 'STEP' 1 'UNTIL' N 'DO' 'BEGIN' A[J,0]:=A[J,0]+KB; KB:=KB*KA; 'END'; 'END'; 'FOR' I:=1 'STEP' 1 'UNTIL' N 'DO' 'FOR' J:=1 'STEP' 1 'UNTIL' N 'DO' A[I,J]:=SUM[I+J-2]; 'FOR' I:=READ 'STEP' 1 'UNTIL' N 'DO' 'BEGIN' SOLVE(B,A,I); RMS:=MEAN:=0.0; 'FOR' J:=1 'STEP' 1 'UNTIL' M 'DO' 'BEGIN' KA:=B[I]; KB:=X[J]; 'FOR' K:=I-1 'STEP' -1 'UNTIL' 1 'DO' KA:=KA*KB+B[K]; KA:=Y[J]-KA; RMS:=RMS+KA*KA; MEAN:=MEAN+KA; PRINT(KB,0,4); PRINT(Y[J],0,6); PRINT(KA,1,4); NEWLINES(1); 'END'; NEWLINES(1); PRINT(I-1,1,0); PRINT(MEAN/M,0,4) ; PRINT(SQRT(RMS/M),0,4); 'FOR' J:=1 'STEP' 1 'UNTIL' I 'DO' PRINT(B[J],0,6); NEWLINES(1); 'COMMENT' PDS DELETION NEWPAGE; 'END'; 'END' OF BLOCK 1; 'GOTO' REPEAT; FINISH: 'END'; 'END' //RUN 4;5;0; -2;3; -1;2; 0;3; 1;6; 2;11; 1;0;