//JOB(ERCC07,STEPHENS,T=200,L=10000) //OPTIONS(QUOTES,OPT) //ALGOL 'COMMENT' *************** * * * ALGG052 * * * *************** ; 'BEGIN' 'BEGIN' 'COMMENT' A0,A6; 'REAL' CHI,MU,NU,S,DX,ZETAE,ZETA, A,B,LCHI,SCHI,UCHI,LMU,SMU,UMU,THETAIG,PHI,LAMDA,ETA; 'INTEGER' M,X,I,J,CHOICE; 'REAL' 'PROCEDURE' EM(Y,L); 'VALUE' Y,L; 'REAL' Y; 'INTEGER' L; 'BEGIN' 'REAL' S, Q; 'INTEGER' R; 'IF' L = 0 'THEN' S:=1 'ELSE' 'BEGIN' S:=1; Q:=1; 'FOR' R:=1 'STEP' 1'UNTIL' L 'DO' 'BEGIN' Q:=Q*Y/R; S:=S+Q 'END'; EM:=S 'END'; 'END' OF PROCEDURE EM; 'INTEGER' 'PROCEDURE' FA(X); 'VALUE' X; 'INTEGER' X; 'BEGIN' 'INTEGER' I,P; 'IF' X = 0 'THEN' P:=1'ELSE' 'BEGIN' P:=1; 'FOR' I:=1'STEP' 1'UNTIL' X 'DO' P:=P*I 'END'; FA:=P 'END' 0F FA; 'REAL' 'PROCEDURE' INTA(U,Z,L); 'VALUE' U,Z,L; 'REAL' U,Z; 'INTEGER' L; 'BEGIN' 'REAL' Q,S; 'IF' U = 0'THEN' S:=(1-(1+Z)**(1+L))/(1+L) 'ELSE' 'BEGIN' Q:= EXP(U*Z)* EM(-U*(1+Z),L)-EM(-U,L); S:=FA(L)*Q/(-U)**(1+L) 'END'; INTA:=S 'END' OF INTA; 'REAL' 'PROCEDURE' INTB(V,Z,L);'VALUE' V,Z,L;'REAL' V,Z; 'INTEGER' L; 'BEGIN' 'REAL' S, Q;'IF' V = 0 'THEN' S:=(1-(1+Z)**(1+L))/(1+L) 'ELSE' 'BEGIN' Q:=EXP(-V*Z)*EM(V*(1+Z),L)-EM(V,L);S:=FA(L)*Q/V**(1+L) 'END'; INTB:=S 'END' OF PROC INTB; M:=READ;LCHI:=READ; SCHI:=READ;UCHI:=READ;LMU:=READ;SMU:=READ; UMU:=READ;J:=READ;CHOICE:=READ; PHI:=1+M; WRITETEXT('('N = ')'); PRINT(M,0,3); NEWLINES(1); 'FOR' CHI:=LCHI 'STEP' SCHI'UNTIL' UCHI'DO' 'BEGIN' WRITETEXT('(''('P')'CHI = ')'); PRINT(CHI,0,3); NEWLINES(1); WRITE TEXT('(''('2S')'MU'('8S')'ETA'('8S')'SQRT(ETA)'('5S')'ZETAE '('7S')'THETAIG'('7S')'LAMDA'('2S2C')'')'); 'FOR' MU:=LMU'STEP' SMU'UNTIL' UMU'DO' 'BEGIN' 'IF' MU=0'AND' CHI=0 'THEN' 'GOTO' SPECIAL; I:=0; X:=-1;NU:='IF' MU=0'OR' CHI =0'THEN' 0'ELSE' MU*CHI/(MU+CHI); A:=INTA(MU,X,M);B:=INTB(NU,X,M);S:=EXP(NU*X)*B-A; 'IF' S> 0'THEN' 'GOTO' ONE; ZETA:=0;DX:= -1; LOOP:ZETA:=ZETA+DX; A:=INTA(MU,ZETA,M);B:=INTB(NU,ZETA,M); S:=EXP(NU*ZETA)*B-A;ZETAE:=ZETA; 'IF' S>0'THEN' 'GOTO' LOOP;ZETA:=ZETAE-DX;I:=I+1; 'IF' I =J 'THEN' 'GOTO' TWO;DX:=DX/10;'GOTO' LOOP; SPECIAL: PRINT(MU,1,2); WRITE TEXT('(''('7S')'0.0'('9S')'0.0'('8S')'-1.00000'('5S')' +1.00000'('C')'')');'GOTO' FINAL; ONE:ZETA:=-1;THETAIG:=MU*PHI*A/(MU+2*CHI); ETA:=MU*MU/(MU+CHI); PRINT(MU,1,2); SPACES(4); PRINT(ETA,2,5); SPACES(4); PRINT(SQRT(ETA),2,5); SPACES(4); PRINT(ZETA,1,5); SPACES(4); PRINT(THETAIG,2,5); NEWLINES(1); 'GOTO' FINAL; TWO:THETAIG:=MU*PHI*A/(MU+2*CHI); LAMDA:=(1+ZETA)**PHI; ETA:=MU*MU/(MU+CHI); PRINT(MU,1,2); SPACES(4); PRINT(ETA,2,5); SPACES(4); PRINT(SQRT(ETA),2,5); SPACES(4); PRINT(ZETA,1,5); SPACES(4); PRINT(THETAIG,2,5); SPACES(4); PRINT(LAMDA,2,5); NEWLINES(1); FINAL:'END';'END'; 'IF' CHOICE = 0'THEN' 'GOTO' HELL; 'FOR' CHI:=SCHI 'STEP' SCHI 'UNTIL' UCHI 'DO' 'BEGIN' SMU:=READ;UMU:=READ;WRITE TEXT('(''('P')'CHI%=%')'); PRINT(CHI,2,3); NEWLINES(1); WRITE TEXT('(''('2S')'MU'('8S')'ETA'('6S')'SQRT(ETA)'('5S')'THETAIG'('7S 2C')'')'); 'FOR' MU:=0'STEP' SMU 'UNTIL' UMU 'DO' 'BEGIN' 'IF' MU=0'AND' CHI=0'THEN' 'BEGIN' PRINT(MU,1,2); WRITE TEXT('(''('7S')'0.0'('9S')'0.0'('6S')'+1.00000'('C')'')'); 'GOTO' LAST; 'END'; ZETAE:=-1;A:=INTA(MU,ZETAE,M);THETAIG:=MU*A *PHI/(MU+2*CHI);ETA:=MU*MU/(MU+CHI);PRINT(MU,1,2); SPACES(4); PRINT(ETA,2,5); SPACES(4); PRINT(SQRT(ETA),2,5); SPACES(4); PRINT(THETAIG,2,5); NEWLINES(1); LAST:'END'; 'END';HELL: 'END' 'END'; //RUN 1;2;0.2;2.0; 0.0;0.1;6.0;6;0;0.03;0.3;0.05;0.5;0.07;0.7;0.09;0.9;0.1;1.2; 0.1;1.5;0.1;1.8;0.1;2.4; 0.1;1.5;0.1;1.8;0.1;2.4;