29 lines
1.0 KiB
Plaintext
29 lines
1.0 KiB
Plaintext
TPK: DO;
|
|
/* external I/O and real mathematical routines */
|
|
WRITE$STRING: PROCEDURE( S ) EXTERNAL; DECLARE S POINTER; END;
|
|
WRITE$REAL: PROCEDURE( R ) EXTERNAL; DECLARE R REAL; END;
|
|
WRITE$NL: PROCEDURE EXTERNAL; END;
|
|
READ$REAL: PROCEDURE( R ) REAL EXTERNAL; DECLARE R POINTER; END;
|
|
REAL$ABS: PROCEDURE( R ) REAL EXTERNAL; DECLARE R REAL; END;
|
|
REAL$SQRT: PROCEDURE( R ) REAL EXTERNAL; DECLARE R REAL; END;
|
|
/* end external routines */
|
|
|
|
F: PROCEDURE( T ) REAL;
|
|
DECLARE T REAL;
|
|
RETURN REAL$SQRT(REAL$ABS(T))+5*T*T*T;
|
|
END F;
|
|
MAIN: PROCEDURE;
|
|
DECLARE Y REAL, A( 11 ) REAL, I INTEGER;
|
|
DO I = 0 TO 10;
|
|
CALL READ$REAL( @A( I ) );
|
|
END;
|
|
DO I = 10 TO 0 BY -1;
|
|
Y = F( A( I ) );
|
|
IF Y > 400.0 THEN CALL WRITE$STRING( @( 'TOO LARGE', 0 ) );
|
|
ELSE CALL WRITE$REAL( Y );
|
|
CALL WRITE$NL();
|
|
END;
|
|
END MAIN;
|
|
|
|
END TPK;
|