'BEGIN' 'INTEGER' L1,L2,JN,NN,I,J,K; 'REAL' RH,PI,ONE3,SUM,W,SUMT,D,EPS,SUM2,D1,D2,D3,AB; 'ARRAY' U1,U2,U3,CCC[1:10,1:10],QQ[1:20]; 'INTEGER''ARRAY'JA,JB,JC[1:10],IALP[1:10,1:10]; 'BOOLEAN' TEST,YES,NO; 'REAL''PROCEDURE' SCRUFF(A); 'VALUE' A; 'REAL' A; SCRUFF:=SQRT(ABS(A/PI*RH)); 'PROCEDURE' HH(A,B,C); 'ARRAY' A,B,C; 'BEGIN' 'INTEGER' L,M,N; 'FOR' L:=1 'STEP' 1 'UNTIL' 10 'DO' 'FOR' M:=1 'STEP' 1 'UNTIL' 10 'DO' 'BEGIN' SUMT:=0; 'FOR' N:=1 'STEP' 1 'UNTIL' 10 'DO' SUMT:=SUMT + A[L,N]*B[N,M]; C[L,M]:=SUMT; 'END'; 'END' OF H; 'INTEGER''PROCEDURE' FACT(N); 'VALUE' N; 'INTEGER' N; FACT:=N*('IF' N 'LE' 1 'THEN' 1 'ELSE' FACT(N-1)); 'PROCEDURE' WRT(ARR,N); 'VALUE'ARR,N; 'INTEGER' N; 'INTEGER''ARRAY' ARR; 'COMMENT' WRITES AN INTEGER ARRAY; 'BEGIN' 'INTEGER' AI; WRITE TEXT('(''('CC')'')'); WRITE TEXT('(''('3S')'')'); 'FOR' AI:=1 'STEP' 1 'UNTIL' N 'DO' 'BEGIN' WRITE TEXT('(''('3S')'')'); PRINT(ARR[AI],5,0); 'END'; WRITE TEXT('(''('CC')'')'); 'END' WRT; 'INTEGER''PROCEDURE' INT(II); 'INTEGER' II; 'BEGIN' 'INTEGER'Q,R,S,T; Q:=JA[II]+FACT(II); R:='IF' II>1 'THEN' JB[II-1]+1 'ELSE' 1; S:=Q+R^3+II; T:='IF' Q=R 'THEN' S+Q+R 'ELSE' S+Q-2*R; INT:=(Q+R+S+T)'/'2+II; 'END'; 'REAL''PROCEDURE' II1(R,AL,AU); 'VALUE' R,AL,AU; 'REAL' R,AL,AU; 'COMMENT' MADE UP PROCEDURE; II1:=SQRT(COS(AU)-SIN(AL))-EXP(2+R+R*R); 'REAL''PROCEDURE' II2(R,AL,AU); 'VALUE' R,AL,AU; 'REAL' R,AL,AU; 'COMMENT' MADE UP PROCEDURE; II2:=SQRT(SIN(AU)-COS(AL))-EXP(2+R+R*R); 'REAL''PROCEDURE' II3(R,AU); 'VALUE' R,AU; 'REAL' R,AU; 'COMMENT'MADE UP PROCEDURE; II3:=SQRT(COS(AU)+SIN(AU))-EXP(2-R-COS(AU)+R*R); 'PROCEDURE' INVA(N,A,EPSILON,ALARM,DELTA); 'VALUE' N; 'ARRAY' A; 'REAL' EPSILON,DELTA; 'INTEGER' N; 'LABEL' ALARM; 'BEGIN' 'ARRAY' B,C[1:N]; 'REAL' X,Y; 'INTEGER' I,J,K,L,P; 'INTEGER''ARRAY' Z[1:N]; DELTA:=1.0; 'FOR' J:=1 'STEP' 1 'UNTIL' N 'DO' Z[J]:=J; 'FOR' I:=1 'STEP' 1 'UNTIL' N 'DO' 'BEGIN' K:=I; Y:=A[I,I]; L:=I-1; P:=I+1; 'FOR' J:=P 'STEP' 1 'UNTIL' N 'DO' 'BEGIN' W:=A[I,J]; 'IF' ABS(W) > ABS(Y) 'THEN' 'BEGIN' K:=J; Y:=W 'END' 'END'; DELTA:=DELTA*Y; 'IF' ABS(Y) < EPSILON 'THEN' 'GOTO' ALARM; Y:=1.0/Y; 'FOR' J:=1 'STEP' 1 'UNTIL' N 'DO' 'BEGIN' C[J]:=A[J,K]; A[J,K]:=A[J,I]; A[J,I]:=-C[J]*Y; B[J]:=A[I,J]:=A[I,J]*Y 'END'; A[I,I]:=Y; J:=Z[I]; Z[I]:=Z[K]; Z[K]:=J; 'FOR' K:=1 'STEP' 1 'UNTIL' L,P 'STEP' 1 'UNTIL' N 'DO' 'FOR' J:=1 'STEP' 1 'UNTIL' L,P 'STEP' 1 'UNTIL' N 'DO' A[K,J]:=A[K,J]-B[J]*C[K] 'END'; 'FOR' I:=1 'STEP' 1 'UNTIL' N 'DO' 'BEGIN' REPEAT: K:=Z[I]; 'IF' K=I 'THEN' 'GOTO' ADVANCE; 'FOR' J:=1 'STEP' 1 'UNTIL' N 'DO' 'BEGIN' W:=A[I,J]; A[I,K]:=A[K,J]; A[K,J]:=W 'END'; P:=Z[I]; Z[I]:=Z[K]; Z[K]:=P; DELTA:=-DELTA; 'GOTO' REPEAT; ADVANCE:'END' 'END' OF INVERSION; 'PROCEDURE' INVB(N,A,EPSILON,ALARM,DELTA); 'VALUE' N; 'ARRAY' A; 'REAL' EPSILON,DELTA; 'INTEGER' N; 'LABEL' ALARM; 'BEGIN' 'ARRAY' B,C[1:N]; 'REAL' X,Y; 'INTEGER' I,J,K,L,P; 'INTEGER''ARRAY' Z[1:N]; DELTA:=1.0; 'FOR' J:=1 'STEP' 1 'UNTIL' N 'DO' Z[J]:=J; 'FOR' I:=1 'STEP' 1 'UNTIL' N 'DO' 'BEGIN' K:=I; Y:=A[I,I]; L:=I-1; P:=I+1; 'FOR' J:=P 'STEP' 1 'UNTIL' N 'DO' 'BEGIN' W:=A[I,J]; 'IF' ABS(W) > ABS(Y) 'THEN' 'BEGIN' K:=J; Y:=W 'END' 'END'; DELTA:=DELTA*Y; 'IF' ABS(Y) < EPSILON 'THEN' 'GOTO' ALARM; Y:=1.0/Y; 'FOR' J:=1 'STEP' 1 'UNTIL' N 'DO' 'BEGIN' C[J]:=A[J,K]; A[J,K]:=A[J,I]; A[J,I]:=-C[J]*Y; B[J]:=A[I,J]:=A[I,J]*Y 'END'; A[I,I]:=Y; J:=Z[I]; Z[I]:=Z[K]; Z[K]:=J; 'FOR' K:=1 'STEP' 1 'UNTIL' L,P 'STEP' 1 'UNTIL' N 'DO' 'FOR' J:=1 'STEP' 1 'UNTIL' L,P 'STEP' 1 'UNTIL' N 'DO' A[K,J]:=A[K,J]-B[J]*C[K] 'END'; 'FOR' I:=1 'STEP' 1 'UNTIL' N 'DO' 'BEGIN' REPEAT: K:=Z[I]; 'IF' K=I 'THEN' 'GOTO' ADVANCE; 'FOR' J:=1 'STEP' 1 'UNTIL' N 'DO' 'BEGIN' W:=A[I,J]; A[I,K]:=A[K,J]; A[K,J]:=W 'END'; P:=Z[I]; Z[I]:=Z[K]; Z[K]:=P; DELTA:=-DELTA; 'GOTO' REPEAT; ADVANCE:'END' 'END' OF INVERSION; 'PROCEDURE' INVC(N,A,EPSILON,ALARM,DELTA); 'VALUE' N; 'ARRAY' A; 'REAL' EPSILON,DELTA; 'INTEGER' N; 'LABEL' ALARM; 'BEGIN' 'ARRAY' B,C[1:N]; 'REAL' X,Y; 'INTEGER' I,J,K,L,P; 'INTEGER''ARRAY' Z[1:N]; DELTA:=1.0; 'FOR' J:=1 'STEP' 1 'UNTIL' N 'DO' Z[J]:=J; 'FOR' I:=1 'STEP' 1 'UNTIL' N 'DO' 'BEGIN' K:=I; Y:=A[I,I]; L:=I-1; P:=I+1; 'FOR' J:=P 'STEP' 1 'UNTIL' N 'DO' 'BEGIN' W:=A[I,J]; 'IF' ABS(W) > ABS(Y) 'THEN' 'BEGIN' K:=J; Y:=W 'END' 'END'; DELTA:=DELTA*Y; 'IF' ABS(Y) < EPSILON 'THEN' 'GOTO' ALARM; Y:=1.0/Y; 'FOR' J:=1 'STEP' 1 'UNTIL' N 'DO' 'BEGIN' C[J]:=A[J,K]; A[J,K]:=A[J,I]; A[J,I]:=-C[J]*Y; B[J]:=A[I,J]:=A[I,J]*Y 'END'; A[I,I]:=Y; J:=Z[I]; Z[I]:=Z[K]; Z[K]:=J; 'FOR' K:=1 'STEP' 1 'UNTIL' L,P 'STEP' 1 'UNTIL' N 'DO' 'FOR' J:=1 'STEP' 1 'UNTIL' L,P 'STEP' 1 'UNTIL' N 'DO' A[K,J]:=A[K,J]-B[J]*C[K] 'END'; 'FOR' I:=1 'STEP' 1 'UNTIL' N 'DO' 'BEGIN' REPEAT: K:=Z[I]; 'IF' K=I 'THEN' 'GOTO' ADVANCE; 'FOR' J:=1 'STEP' 1 'UNTIL' N 'DO' 'BEGIN' W:=A[I,J]; A[I,K]:=A[K,J]; A[K,J]:=W 'END'; P:=Z[I]; Z[I]:=Z[K]; Z[K]:=P; DELTA:=-DELTA; 'GOTO' REPEAT; ADVANCE:'END' 'END' OF INVERSION; 'PROCEDURE' INVD(N,A,EPSILON,ALARM,DELTA); 'VALUE' N; 'ARRAY' A; 'REAL' EPSILON,DELTA; 'INTEGER' N; 'LABEL' ALARM; 'BEGIN' 'ARRAY' B,C[1:N]; 'REAL' X,Y; 'INTEGER' I,J,K,L,P; 'INTEGER''ARRAY' Z[1:N]; DELTA:=1.0; 'FOR' J:=1 'STEP' 1 'UNTIL' N 'DO' Z[J]:=J; 'FOR' I:=1 'STEP' 1 'UNTIL' N 'DO' 'BEGIN' K:=I; Y:=A[I,I]; L:=I-1; P:=I+1; 'FOR' J:=P 'STEP' 1 'UNTIL' N 'DO' 'BEGIN' W:=A[I,J]; 'IF' ABS(W) > ABS(Y) 'THEN' 'BEGIN' K:=J; Y:=W 'END' 'END'; DELTA:=DELTA*Y; 'IF' ABS(Y) < EPSILON 'THEN' 'GOTO' ALARM; Y:=1.0/Y; 'FOR' J:=1 'STEP' 1 'UNTIL' N 'DO' 'BEGIN' C[J]:=A[J,K]; A[J,K]:=A[J,I]; A[J,I]:=-C[J]*Y; B[J]:=A[I,J]:=A[I,J]*Y 'END'; A[I,I]:=Y; J:=Z[I]; Z[I]:=Z[K]; Z[K]:=J; 'FOR' K:=1 'STEP' 1 'UNTIL' L,P 'STEP' 1 'UNTIL' N 'DO' 'FOR' J:=1 'STEP' 1 'UNTIL' L,P 'STEP' 1 'UNTIL' N 'DO' A[K,J]:=A[K,J]-B[J]*C[K] 'END'; 'FOR' I:=1 'STEP' 1 'UNTIL' N 'DO' 'BEGIN' REPEAT: K:=Z[I]; 'IF' K=I 'THEN' 'GOTO' ADVANCE; 'FOR' J:=1 'STEP' 1 'UNTIL' N 'DO' 'BEGIN' W:=A[I,J]; A[I,K]:=A[K,J]; A[K,J]:=W 'END'; P:=Z[I]; Z[I]:=Z[K]; Z[K]:=P; DELTA:=-DELTA; 'GOTO' REPEAT; ADVANCE:'END' 'END' OF INVERSION; 'REAL''PROCEDURE' MK1(Z1,Z2,A1,A2,V); 'VALUE' Z1,Z2,A1,A2,V; 'REAL' Z1,Z2,A1,A2,V; 'BEGIN' 'REAL' EP,K,R,AL,RL,IU,IL,BE,N,AFS,EE,TEMP; 'COMMENT' OXFORD PROCEDURE; EE:=(465.5*V^2)/(9.0&4); TEMP:=Z1^ONE3+Z2^ONE3; EP:=(3.24&4*A1*A2*EE)/(SQRT(TEMP)*Z1*Z2 *(A1+A2)); N:=(RH/(A2*1.66))*1.0&3; AFS:=1.096/TEMP; 'COMMENT' RESULT NOW IN G-UNITS; R:=A1/A2; AL:=(1+R)/2; BE:=(AL*AL)/R; K:=0.0; 'IF' EP 'LE' 0.380001 'THEN' 'BEGIN' IL:=PI; 'GOTO' B2B 'END'; 'IF' EP 'LE' 3 'THEN' 'BEGIN' IU:=PI; 'GOTO' SA 'END'; RL:=2*ARCTAN((3/SQRT(EP*EP-9))); IU:=RL; SA: IL:=2*ARCTAN((0.38/SQRT((EP*EP-0.1444)))); 'IF' EP 'LE' 3 'THEN' 'GOTO' B; K:=K+II1(R,RL,PI)/(EP*EP); B: K:=K+0.814*(II3(R,IU)-II3(R,IL))/EP-0.2*II2(R,IL,IU); B2B: K:=K+0.87*II3(R,IL)/EP; MK1:=(K*PI*N*AFS)/2 'END'; 'REAL''PROCEDURE' MK2(Z1,Z2,A1,A2,V); 'VALUE' Z1,Z2,A1,A2,V; 'REAL' Z1,Z2,A1,A2,V; 'BEGIN' 'REAL' EP,K,R,AL,RL,IU,IL,BE,N,AFS,EE,TEMP; 'COMMENT' OXFORD PROCEDURE; EE:=(465.5*V^2)/(9.0&4); TEMP:=Z1^ONE3+Z2^ONE3; EP:=(3.24&4*A1*A2*EE)/(SQRT(TEMP)*Z1*Z2 *(A1+A2)); N:=(RH/(A2*1.66))*1.0&3; AFS:=1.096/TEMP; 'COMMENT' RESULT NOW IN G-UNITS; R:=A1/A2; AL:=(1+R)/2; BE:=(AL*AL)/R; K:=0.0; 'IF' EP 'LE' 0.380001 'THEN' 'BEGIN' IL:=PI; 'GOTO' B2B 'END'; 'IF' EP 'LE' 3 'THEN' 'BEGIN' IU:=PI; 'GOTO' SA 'END'; RL:=2*ARCTAN((3/SQRT(EP*EP-9))); IU:=RL; SA: IL:=2*ARCTAN((0.38/SQRT((EP*EP-0.1444)))); 'IF' EP 'LE' 3 'THEN' 'GOTO' B; K:=K+II1(R,RL,PI)/(EP*EP); B: K:=K+0.814*(II3(R,IU)-II3(R,IL))/EP-0.2*II2(R,IL,IU); B2B: K:=K+0.87*II3(R,IL)/EP; MK2:=(K*PI*N*AFS)/2 'END'; 'REAL''PROCEDURE' MK3(Z1,Z2,A1,A2,V); 'VALUE' Z1,Z2,A1,A2,V; 'REAL' Z1,Z2,A1,A2,V; 'BEGIN' 'REAL' EP,K,R,AL,RL,IU,IL,BE,N,AFS,EE,TEMP; 'COMMENT' OXFORD PROCEDURE; EE:=(465.5*V^2)/(9.0&4); TEMP:=Z1^ONE3+Z2^ONE3; EP:=(3.24&4*A1*A2*EE)/(SQRT(TEMP)*Z1*Z2 *(A1+A2)); N:=(RH/(A2*1.66))*1.0&3; AFS:=1.096/TEMP; 'COMMENT' RESULT NOW IN G-UNITS; R:=A1/A2; AL:=(1+R)/2; BE:=(AL*AL)/R; K:=0.0; 'IF' EP 'LE' 0.380001 'THEN' 'BEGIN' IL:=PI; 'GOTO' B2B 'END'; 'IF' EP 'LE' 3 'THEN' 'BEGIN' IU:=PI; 'GOTO' SA 'END'; RL:=2*ARCTAN((3/SQRT(EP*EP-9))); IU:=RL; SA: IL:=2*ARCTAN((0.38/SQRT((EP*EP-0.1444)))); 'IF' EP 'LE' 3 'THEN' 'GOTO' B; K:=K+II1(R,RL,PI)/(EP*EP); B: K:=K+0.814*(II3(R,IU)-II3(R,IL))/EP-0.2*II2(R,IL,IU); B2B: K:=K+0.87*II3(R,IL)/EP; MK3:=(K*PI*N*AFS)/2 'END'; 'REAL''PROCEDURE' MK4(Z1,Z2,A1,A2,V); 'VALUE' Z1,Z2,A1,A2,V; 'REAL' Z1,Z2,A1,A2,V; 'BEGIN' 'REAL' EP,K,R,AL,RL,IU,IL,BE,N,AFS,EE,TEMP; 'COMMENT' OXFORD PROCEDURE; EE:=(465.5*V^2)/(9.0&4); TEMP:=Z1^ONE3+Z2^ONE3; EP:=(3.24&4*A1*A2*EE)/(SQRT(TEMP)*Z1*Z2 *(A1+A2)); N:=(RH/(A2*1.66))*1.0&3; AFS:=1.096/TEMP; 'COMMENT' RESULT NOW IN G-UNITS; R:=A1/A2; AL:=(1+R)/2; BE:=(AL*AL)/R; K:=0.0; 'IF' EP 'LE' 0.380001 'THEN' 'BEGIN' IL:=PI; 'GOTO' B2B 'END'; 'IF' EP 'LE' 3 'THEN' 'BEGIN' IU:=PI; 'GOTO' SA 'END'; RL:=2*ARCTAN((3/SQRT(EP*EP-9))); IU:=RL; SA: IL:=2*ARCTAN((0.38/SQRT((EP*EP-0.1444)))); 'IF' EP 'LE' 3 'THEN' 'GOTO' B; K:=K+II1(R,RL,PI)/(EP*EP); B: K:=K+0.814*(II3(R,IU)-II3(R,IL))/EP-0.2*II2(R,IL,IU); B2B: K:=K+0.87*II3(R,IL)/EP; MK4:=(K*PI*N*AFS)/2 'END'; 'PROCEDURE'MP1A(F,H,P0,P1,P2); 'VALUE' P0,P1,P2; 'REAL' P0,P1,P2; 'REAL''PROCEDURE'F;'COMMENT'(X):'VALUE'X:'REAL'X; 'INTEGER''PROCEDURE' H;'COMMENT'(I):'INTEGER'I; 'BEGIN' SUM:=0; 'FOR' JN:=1 'STEP' 1 'UNTIL' 10 'DO' 'FOR' NN:=1 'STEP' 1 'UNTIL' 10 'DO' 'BEGIN' U1[JN,NN]:=F(P0+NN*PI+P2); U2[NN,JN]:=U1[JN,NN]; SUM:=SUM+U2[NN,JN]; U3[JN,NN]:=U2[NN,JN]+F(SUM); 'COMMENT' RUBBISH; JA[NN]:=NN+JN-H(1); 'COMMENT' MORE RUBBISH; JB[NN]:=-JA[NN]+NN; JC[NN]:=JA[NN]-NN+JN+H(1); NEWPAGE; WRITE TEXT('(''('CC')'_ARRAY_JA_'('C')'SECTION')'); WRT(JA,NN); NEWPAGE; WRITE TEXT('(''('CC')'_ARRAY_JB_'('C')'SECTION')'); WRT(JB,NN); NEWPAGE; WRITE TEXT('(''('CC')'_ARRAY_JC_'('C')'SECTION')'); WRT(JC,NN); 'END'; NEWPAGE; SORTA(JA,JB,JC,10,1); NEWPAGE; 'IF' SUM=70 'OR' SUM=70+PI 'THEN' SORTA(JB,JC,JA,10,1) 'ELSE' SORTA(JC,JA,JB,10,1); NEWPAGE; INVA(10,U1,EPS,EX,D); ARCTAN(D); NEWLINES(1); 'IF' D = SUM 'THEN' INVA(10,U2,EPS,EX,D) 'ELSE' INVA(10,U3,EPS,EX,D); ARCTAN(D); 'END'; 'PROCEDURE'MP1B(F,H,P0,P1,P2); 'VALUE' P0,P1,P2; 'REAL' P0,P1,P2; 'REAL''PROCEDURE'F;'COMMENT'(X):'VALUE'X:'REAL'X; 'INTEGER''PROCEDURE' H; 'BEGIN' 535 SUM:=0; 'FOR' JN:=1 'STEP' 1 'UNTIL' 10 'DO' 'FOR' NN:=1 'STEP' 1 'UNTIL' 10 'DO' 'BEGIN' U1[JN,NN]:=F(P0+NN*PI+P2); U2[NN,JN]:=U1[JN,NN]; SUM:=SUM+U2[NN,JN]; U3[JN,NN]:=U2[NN,JN]+F(SUM); 'COMMENT' RUBBISH; JA[NN]:=NN+JN-H; 'COMMENT' MORE RUBBISH; JB[NN]:=-JA[NN]+NN; JC[NN]:=JA[NN]-NN+JN+H; NEWPAGE; WRITE TEXT('(''('CC')'_ARRAY_JA_'('C')'SECTION')'); WRT(JA,NN); NEWPAGE; WRITE TEXT('(''('CC')'_ARRAY_JB_'('C')'SECTION')'); WRT(JB,NN); NEWPAGE; WRITE TEXT('(''('CC')'_ARRAY_JC_'('C')'SECTION')'); WRT(JC,NN); 'END'; NEWPAGE; SORTB(JA,JB,JC,10,1); NEWPAGE; 'IF' SUM=70 'OR' SUM=70+PI 'THEN' SORTB(JB,JC,JA,10,1) 'ELSE' SORTB(JC,JA,JB,10,1); NEWPAGE; INVB(10,U1,EPS,EX,D); ARCTAN(D); NEWLINES(1); 'IF' D=SUM 'THEN' INVB(10,U2,EPS,EX,D) 'ELSE' INVB(10,U3,EPS,EX,D); ARCTAN(D); 'END'; 'PROCEDURE'MP1C(F,H,P0,P1,P2); 'VALUE' P0,P1,P2; 'REAL' P0,P1,P2; 'REAL''PROCEDURE'F;'COMMENT'(X):'VALUE'X:'REAL'X; 'INTEGER''PROCEDURE' H; 'BEGIN' SUM:=0; 'FOR' JN:=1 'STEP' 1 'UNTIL' 10 'DO' 'FOR' NN:=1 'STEP' 1 'UNTIL' 10 'DO' 'BEGIN' U1[JN,NN]:=F(P0+NN*PI+P2); U2[NN,JN]:=U1[JN,NN]; SUM:=SUM+U2[NN,JN]; U3[JN,NN]:=U2[NN,JN]+F(SUM); 'COMMENT' RUBBISH; JA[NN]:=NN+JN-H; 'COMMENT' MORE RUBBISH; JB[NN]:=-JA[NN]+NN; JC[NN]:=JA[NN]-NN+JN+H; NEWPAGE; WRITE TEXT('(''('CC')'_ARRAY_JA_'('C')'SECTION')'); WRT(JA,NN); NEWPAGE; WRITE TEXT('(''('CC')'_ARRAY_JB_'('C')'SECTION')'); WRT(JB,NN); WRITE TEXT('(''('CC')'_ARRAY_JC_'('C')'SECTION')'); WRT(JC,NN); 'END'; NEWPAGE; SORTC(JA,JB,JC,10,1); NEWPAGE; 'IF' SUM=70 'OR' SUM=70+PI 'THEN' SORTC(JB,JC,JA,10,1) 'ELSE' SORTC(JC,JA,JB,10,1); NEWPAGE; INVC(10,U1,EPS,EX,D); ARCTAN(D); NEWLINES(1); 'IF' D=SUM 'THEN' INVC(10,U2,EPS,EX,D) 'ELSE' INVC(10,U3,EPS,EX,D); ARCTAN(D); 'END'; 'PROCEDURE'MP1D(F,H,P0,P1,P2); 'VALUE' P0,P1,P2; 'REAL' P0,P1,P2; 'REAL''PROCEDURE'F;'COMMENT'(X):'VALUE'X:'REAL'X; 'INTEGER''PROCEDURE' H; 'BEGIN' SUM:=0; 'FOR' JN:=1 'STEP' 1 'UNTIL' 10 'DO' 'FOR' NN:=1 'STEP' 1 'UNTIL' 10 'DO' 'BEGIN' U1[JN,NN]:=F(P0+NN*PI+P2); U2[NN,JN]:=U1[JN,NN]; SUM:=SUM+U2[NN,JN]; U3[JN,NN]:=U2[NN,JN]+F(SUM); 'COMMENT' RUBBISH; JA[NN]:=NN+JN-H; 'COMMENT' MORE RUBBISH; JB[NN]:=-JA[NN]+NN; JC[NN]:=JA[NN]-NN+JN+H; NEWPAGE; WRITE TEXT('(''('CC')'_ARRAY_JA_'('C')'SECTION')'); WRT(JA,NN); NEWPAGE; WRITE TEXT('(''('CC')'_ARRAY_JB_'('C')'SECTION')'); WRT(JB,NN); NEWPAGE; WRITE TEXT('(''('CC')'_ARRAY_JC_'('C')'SECTION')'); WRT(JC,NN); 'END'; NEWPAGE; SORTD(JA,JB,JC,10,1); NEWPAGE; 'IF' SUM=70 'OR' SUM=70+PI 'THEN' SORTD(JB,JC,JA,10,1) 'ELSE' SORTD(JC,JA,JB,10,1); NEWPAGE; INVD(10,U1,EPS,EX,D); ARCTAN(D); NEWLINES(1); 'IF' D=SUM 'THEN' INVD(10,U2,EPS,EX,D) 'ELSE' INVD(10,U3,EPS,EX,D); ARCTAN(D); 'END'; 'PROCEDURE' SORTA(IA,IB,IC,N,P); 'VALUE' N,P; 'INTEGER' N,P; 'INTEGER''ARRAY' IA,IB,IC; 'BEGIN' 'INTEGER' I,J,K,L,WORK; 'IF' N > 0 'THEN' 'BEGIN' 'FOR' J:=1 'STEP' 1 'UNTIL' N 'DO' 'BEGIN' I:=K'/'3; K:=I*3; I:=J-K; IA[J]:='IF' I=0 'THEN' J 'ELSE' 2*N-J+('IF' I>0 'THEN' N 'ELSE' 0) 'END'; WRT(IA,N); 'IF' P'NE'0 'THEN' 'FOR' L:=1 'STEP' 1 'UNTIL' N 'DO' 'BEGIN' K:=N-L-1; 'FOR' I:=1 'STEP' 1 'UNTIL' K 'DO' 'IF' IA[I] > IA[K] 'THEN' 'BEGIN' WORK:=IA[K]; IA[K]:=IA[I]; IA[I]:=WORK 'END'; 'END'; WRT(IA,N) 'END' 'ELSE' 'IF' N<0 'THEN' 'BEGIN' SORTB(IC,IA,IB,10,P); SORTB(IB,IC,IA,10,P); SORTB(IA,IB,IC,L1,P); SORTB(IA,IB,IC,L2,P); 'END' 'END' SORTA; 'PROCEDURE' SORTB(IA,IB,IC,N,P); 'VALUE' N,P; 'INTEGER' N,P; 'INTEGER''ARRAY' IA,IB,IC; 'BEGIN' 'INTEGER' I,J,K,L,WORK; 'IF' N > 0 'THEN' 'BEGIN' 'FOR' J:=1 'STEP' 1 'UNTIL' N 'DO' 'BEGIN' I:=K'/'3; K:=I*3; I:=J-K; IA[J]:='IF' I=0 'THEN' J 'ELSE' 2*N-J+('IF' I>0 'THEN' N 'ELSE' 0) 'END'; WRT(IA,N); 'IF' P'NE'0 'THEN' 'FOR' L:=1 'STEP' 1 'UNTIL' N 'DO' 'BEGIN' K:=N-L-1; 'FOR' I:=1 'STEP' 1 'UNTIL' K 'DO' 'IF' IA[I] > IA[K] 'THEN' 'BEGIN' WORK:=IA[K]; IA[K]:=IA[I]; IA[I]:=WORK 'END'; 'END'; WRT(IA,N) 'END' 'ELSE' 'IF' N<0 'THEN' 'BEGIN' SORTC(IC,IA,IB,10,P); SORTC(IA,IB,IC,L1,P); SORTC(IA,IB,IC,L2,P); 'END' 'END' SORTB; 'PROCEDURE' SORTC(IA,IB,IC,N,P); 'VALUE' N,P; 'INTEGER' N,P; 'INTEGER''ARRAY' IA,IB,IC; 'BEGIN' 'INTEGER' I,J,K,L,WORK; 'IF' N > 0 'THEN' 'BEGIN' 'FOR' J:=1 'STEP' 1 'UNTIL' N 'DO' 'BEGIN' I:=K'/'3; K:=I*3; I:=J-K; IA[J]:= 'IF' I=0 'THEN' J 'ELSE' 2*N-J+('IF' I>0 'THEN' N 'ELSE' 0) 'END'; WRT(IA,N); 'IF' P'NE'0 'THEN' 'FOR' L:=1 'STEP' 1 'UNTIL' N 'DO' 'BEGIN' K:=N-L-1; 'FOR' I:=1 'STEP' 1 'UNTIL' K 'DO' 'IF' IA[I] > IA[K] 'THEN' 'BEGIN' WORK:=IA[K]; IA[K]:=IA[I]; IA[I]:=WORK 'END'; 'END'; WRT(IA,N) 'END' 'ELSE' 'IF' N<0 'THEN' 'BEGIN' SORTD(IC,IA,IB,10,P); SORTD(IB,IC,IA,10,P); SORTD(IA,IB,IC,L1,P); SORTD(IA,IB,IC,L2,P); 'END' 'END' SORTC; 'PROCEDURE' SORTD(IA,IB,IC,N,P); 'VALUE' N,P; 'INTEGER' N,P; 'INTEGER''ARRAY' IA,IB,IC; 'BEGIN' 'INTEGER' I,J,K,L,WORK; 'IF' N > 0 'THEN' 'BEGIN' 'FOR' J:=1 'STEP' 1 'UNTIL' N 'DO' 'BEGIN' I:=K'/'3; K:=I*3; I:=J-K; IA[J]:='IF' I=0 'THEN' J 'ELSE' 2*N-J+('IF' I>0 'THEN' N 'ELSE' 0) 'END'; WRT(IA,N); 'IF'P'NE'0'THEN' 'FOR'L:=1'STEP'1'UNTIL'N'DO' 'BEGIN' K:=N-L-1; 'FOR'I:=1'STEP'1'UNTIL'K'DO' 'IF' IA[I]>IA[K] 'THEN' 'BEGIN' WORK:=IA[K]; IA[K]:=IA[I]; IA[I]:=WORK 'END'; 'END'; WRT(IA,N) 'END''ELSE''IF'N<0'THEN' 'BEGIN' SORTA(IC,IA,IB,10,P); SORTA(IB,IC,IA,10,P); SORTA(IA,IB,IC,L1,P); SORTA(IA,IB,IC,L2,P); 'END' 'END'SORTD; 'PROCEDURE'MP2A(F,P0,P1,P2); 'VALUE'P0,P1,P2; 'REAL'P0,P1,P2; 'REAL''PROCEDURE'F;'COMMENT'(X):'VALUE'X:'REAL'X; 'BEGIN' JN:=32; SUM:=0; 'FOR'NN:=1'STEP'1'UNTIL'10'DO' 'BEGIN' U1[JN,NN]:=F(P0+NN*PI+P2); U2[NN,JN]:=U1[JN,NN]; SUM:=SUM+U2[NN,JN]; U3[JN,NN]:=U2[NN,JN]+F(SUM); 'COMMENT'RUBBISH; JA[NN]:=NN+J; 'COMMENT'MORERUBBISH; JB[NN]:=-JA[NN]+NN; JC[NN]:=JA[NN]-NN+J; NEWPAGE; WRITETEXT('(''('CC')'_ARRAY_JA_'('C')'SECTION')'); WRT(JA,NN); NEWPAGE; WRITETEXT('(''('CC')'_ARRAY_JB_'('C')'SECTION')'); WRT(JB,NN); NEWPAGE; WRITETEXT('(''('CC')'_ARRAY_JC_'('C')'SECTION')'); WRT(JC,NN); 'END'; NEWPAGE; SORTA(JA,JB,JC,10,1); NEWPAGE; 'IF'SUM=70'OR'SUM=70+PI'THEN'SORTA(JB,JC,JA,10,1) 'ELSE'SORTA(JC,JA,JB,10,1); NEWPAGE; INVA(10,U1,EPS,EX,D); ARCTAN(D); NEWLINES(1); 'IF'D=SUM'THEN'INVA(10,U2,EPS,EX,D) 'ELSE''IF'SUM'NE'PI'THEN'HH(U1,U2,U3) 'ELSE'INVA(10,U3,EPS,EX,D); ARCTAN(D); 'END'; 'PROCEDURE'MP2B(F,P0,P1,P2); 'VALUE'P0,P1,P2; 'REAL'P0,P1,P2; 'REAL''PROCEDURE'F;'COMMENT'(X):'VALUE'X:'REAL'X; 'BEGIN' JN:=32; SUM:=0; 'FOR'NN:=1'STEP'1'UNTIL'10'DO' 'BEGIN' U2[NN,JN]:=U1[JN,NN]; SUM:=SUM+U2[NN,JN]; U3[JN,NN]:=U2[NN,JN]+F(SUM); 'COMMENT'RUBBISH; JA[NN]:=NN+J; 'COMMENT'MORERUBBISH; JB[NN]:=-JA[NN]+NN; JC[NN]:=JA[NN]-NN+J; NEWPAGE; WRITETEXT('(''('CC')'_ARRAY_JA_'('C')'SECTION')'); WRT(JA,NN); NEWPAGE; WRITETEXT('(''('CC')'_ARRAY_JB_'('C')'SECTION')'); WRT(JB,NN); NEWPAGE; WRITETEXT('(''('CC')'_ARRAY_JC_'('C')'SECTION')'); WRT(JC,NN); 'END'; NEWPAGE; SORTB(JA,JB,JC,10,1); NEWPAGE; 'IF'SUM=70'OR'SUM=70+PI'THEN'SORTB(JB,JC,JA,10,1) 'ELSE'SORTB(JC,JA,JB,10,1); NEWPAGE; INVB(10,U1,EPS,EX,D); ARCTAN(D); NEWLINES(1); 'IF' D=SUM 'THEN' INVB(10,U2,EPS,EX,D); NEWLINES(1); 'IF'D=SUM'THEN'INVB(10,U2,EPS,EX,D) 'ELSE''IF'SUM'NE'PI'THEN'HH(U1,U2,U3) 'ELSE'INVB(10,U3,EPS,EX,D); ARCTAN(D); 'END'; 'PROCEDURE'MP2C(F,P0,P1,P2); 'VALUE'P0,P1,P2; 'REAL'P0,P1,P2; 'REAL''PROCEDURE'F;'COMMENT'(X):'VALUE'X:'REAL'X; 'BEGIN' JN:=32; SUM:=0; 'FOR'NN:=1'STEP'1'UNTIL'10'DO' 'BEGIN' U1[JN,NN]:=F(P0+NN*PI+P2); U2[NN,JN]:=U1[JN,NN]; SUM:=SUM+U2[NN,JN]; U3[JN,NN]:=U2[NN,JN]+F(SUM); 'COMMENT'RUBBISH; JA[NN]:=NN+J; 'COMMENT'MORERUBBISH; JB[NN]:=-JA[NN]+NN; JC[NN]:=JA[NN]-NN+J; NEWPAGE; WRITETEXT('(''('CC')'_ARRAY_JA_'('C')'SECTION')'); WRT(JA,NN); NEWPAGE; WRITETEXT('(''('CC')'_ARRAY_JB_'('C')'SECTION')'); WRT(JB,NN); NEWPAGE; WRITETEXT('(''('CC')'_ARRAY_JC_'('C')'SECTION')'); WRT(JC,NN); 'END'; NEWPAGE; SORTC(JA,JB,JC,10,1); NEWPAGE; 'IF'SUM=70'OR'SUM=70+PI'THEN'SORTC(JB,JC,JA,10,1) 'ELSE'SORTC(JC,JA,JB,10,1); NEWPAGE; INVC(10,U1,EPS,EX,D); ARCTAN(D); NEWLINES(1); 'IF'D=SUM'THEN'INVC(10,U2,EPS,EX,D) 'ELSE''IF'SUM'NE'PI'THEN'HH(U1,U2,U3) 'ELSE'INVC(10,U3,EPS,EX,D); ARCTAN(D); 'END'; 'PROCEDURE'MP2D(F,P0,P1,P2); 'VALUE'P0,P1,P2; 'REAL'P0,P1,P2; 'REAL''PROCEDURE'F;'COMMENT'(X):'VALUE'X:'REAL'X; 'BEGIN' JN:=32; SUM:=0; 'FOR'NN:=1'STEP'1'UNTIL'10'DO' 'BEGIN' U1[JN,NN]:=F(P0+NN*PI+P2); U2[NN,JN]:=U1[JN,NN]; SUM:=SUM+U2[NN,JN]; U3[JN,NN]:=U2[NN,JN]+F(SUM); 'COMMENT'RUBBISH; JA[NN]:=NN+J; 'COMMENT'MORERUBBISH; JB[NN]:=-JA[NN]+NN; JC[NN]:=JA[NN]-NN+J; NEWPAGE; WRITETEXT('(''('CC')'_ARRAY_JA_'('C')'SECTION')'); WRT(JA,NN); NEWPAGE; WRITETEXT('(''('CC')'_ARRAY_JB_'('C')'SECTION')'); WRT(JB,NN); NEWPAGE; WRITETEXT('(''('CC')'_ARRAY_JC_'('C')'SECTION')'); WRT(JC,NN); 'END'; NEWPAGE; SORTD(JA,JB,JC,10,1); NEWPAGE; 'IF'SUM=70'OR'SUM=70+PI'THEN'SORTD(JB,JC,JA,10,1) 'ELSE'SORTD(JC,JA,JB,10,1); NEWPAGE; INVD(10,U1,EPS,EX,D); ARCTAN(D); NEWLINES(1); 'IF'D=SUM'THEN'INVD(10,U2,EPS,EX,D) 'ELSE''IF'SUM'NE'PI'THEN'HH(U1,U2,U3) 'ELSE'INVD(10,U3,EPS,EX,D); ARCTAN(D); 'END'; EPS:=1.0; PI:=3.14159; RH:=PI*PI*EPS; MP1A(SQRT,INT,PI+PI,RH+PI,EPS+PI); ONE3:=0.6667; 'FOR'J:=1'STEP'I'UNTIL'10'DO' 'BEGIN' SUM2:=0; JA[J]:=J; JB[J]:=JA[J]+1; JC[J]:=JB[J]+1; 'FOR'I:=1'STEP'1'UNTIL'10'DO' 'BEGIN' MP2A(SQRT,PI+ONE3,RH,EPS); INVA(10,U1,EPS,EX,D1); MP2A(SQRT,PI+ONE3,RH,EPS); INVA(10,U1,EPS,EX,D1); INVB(10,U2,EPS,EX,D2); INVC(10,U3,EPS,EX,D3); TEST:=D+D1