File: PLOTER.FC of Tape: Sources/Focal/fc3
(.FC,.FO Focal format converted to 'WRITE' listing)
C-PS/8 FOCAL, 1971 01.01 C FROM PLOTER IN 'FOCAL PROGRAMMING MANUAL' 01.02 C PDP-15 SYSTEMS COPYRIGHT 1970 MODIFIED BY JOHN HUISMAN 01.03 C OMSI SOFTWARE DEVELOPMENT GROUP 01.04 C LAST CHANGE: 8/9/71 01.05 01.06 C THIS PROGRAM WILL SIMULTANEOUSLY PLOT THE EUCLIDEAN 01.07 C GRAPHS OF ANY THREE FUNCTIONS. REMEMBER THAT YOU ARE IN 01.08 C FOCAL, SO ANY FUNCTIONS YOU USE LIKE SINE MUST APPEAR AS 01.09 C 'FSIN'. THE EQUATIONS ARE IN GROUP 10 WHERE THEY MAY BE 01.10 C MODIFIED. TO PLOT LESS THAN ALL THREE EQUATIONS, JUST 01.11 C SET ONE OF THE EQUATIONS TO A CONSTANT WHICH WILL BE OFF 01.12 C YOUR SCALE. 01.13 C ** Y SCALING FACTOR IS THE NUMBER OF Y-UNITS EACH DOT REPRESENTS 01.14 C ** UPPER AND LOWER LIMITS ARE THE X-VALUE'S LIMITS 01.15 C ** INCREMENT REFERS TO THE STEP BY WHICH THE X=VALUES ARE TAKEN 01.16 C ** THE PLOT ARRANGES YOUR PARAMETERS TO GO THROUGH X=0 01.17 01.30 E 01.33 A "HAVE YOU INPUT THE EQUATIONS YET? ",AN 01.36 I (AN-0NO) 1.5,1.4,1.5 01.40 T !!"HERE ARE THE EQUATIONS. TYPE 'G' TO RESTART."!!;W 10 01.45 Q 01.50 A "LOWER LIMIT ",LL,!"UPPER LIMIT ",UL,!"INCREMENT ",IN,! 01.60 S Y(1)=0;S Y(2)=0;S Y(3)=0 01.70 A "DO YOU WANT A TABLE OF VALUES? ",AN 01.80 I (AN-0YES) 4.05,1.9,4.05 01.90 F X=LL,IN,UL;D 10;D 2 02.10 I (Y(2)-Y(1)) 2.14,2.12,2.14 02.12 T "1 & 2 INTERSECT AT:"! 02.14 I (Y(3)-Y(2)) 2.2,2.16,2.2 02.16 T "2 & 3 INTERSECT AT:"! 02.20 I (Y(1)-Y(3)) 2.3,2.25,2.3 02.25 T "1 & 3 INTERSECT AT:"! 02.30 T "X=",X," Y1=",Y(1)," Y2=",Y(2)," Y3=",Y(3),! 03.10 A "DO YOU WANT A PLOT? ",AN 03.20 I (AN-0YES) 9.1,4.05,9.1 04.05 A !"Y SCALING FACTOR: ",YS,!! 04.07 F A=1,66;S P(A)=160 04.10 F X=IN*FITR(LL/IN),IN,IN*FITR(UL/IN);D 5 04.20 Q 05.05 05.15 S P(33)=174 05.20 I (-FABS(X)) 5.3;S P(1)=217;F A=2,65;S P(A)=174 05.25 S P(66)=217 05.30 D 10;F A=1,3;S Y(A)=Y(A)/YS 05.40 I (33-FABS(Y(1))) 5.5;S P(Y(1)+33)=163 05.50 I (33-FABS(Y(2)))5.6;S P(Y(2)+33)=170 05.60 I (33-FABS(Y(3)))5.7;S P(Y(3)+33)=171 05.70 D 6;R 06.02 S M=67 06.04 S M=M-1;I (P(M)-160) 6.1,6.04,6.1 06.10 F A=1,M;S AN=FOUT(P(A));S P(A)=160 06.20 T ! 09.10 Q 10.10 S Y(1)=X 10.20 S Y(2)=X*X 10.30 S Y(3)=200