The SIN, COS and TAN functions return approximate values of sine, cosine and tangent for angles specified as arguments to the respective functions.
This sample applies only to Win32.
000010 @OPTIONS MAIN 000020*---------------------------------------------------------------------- 000030* Sine (SIN), cosine (COS), and tangent (TAN) graphs are plotted. 000040*---------------------------------------------------------------------- 000050 IDENTIFICATION DIVISION. 000060 PROGRAM-ID. SAMPLE. 000070 DATA DIVISION. 000080 WORKING-STORAGE SECTION. 000090 01 PI PIC S9(3)V9(15) VALUE 3.141592653589793. 000100 01 VAL PIC S9(3)V9(15). 000110 01 LINE-POS PIC 9(2). 000120 01 COL-POS PIC 9(2). 000130 01 GRAPH-CODE PIC X(1). 000140 01 COUNTER PIC 9(4) BINARY. 000150 01 S-COUNTER PIC S9(4) BINARY. 000160 PROCEDURE DIVISION. 000170 DISPLAY "Which graph do you want to plot? (SIN: S, COS: C, 000180- " TAN: T) >> " WITH NO ADVANCING. 000190 ACCEPT GRAPH-CODE. 000200 PERFORM TEST BEFORE 000210 VARYING COUNTER FROM 1 BY 1 UNTIL COUNTER > 80 000220 DISPLAY "-" AT LINE 13 COLUMN COUNTER 000230 END-PERFORM. 000240 PERFORM TEST BEFORE 000250 VARYING COUNTER FROM 1 BY 1 UNTIL COUNTER = 26 000260 DISPLAY "|" AT LINE COUNTER COLUMN 40 000270 END-PERFORM. 000280 DISPLAY "+" AT LINE 13 COLUMN 40. 000290*---------------------------------------------------------------------- 000300* A sine (SIN) graph is plotted. 000310*---------------------------------------------------------------------- 000320 EVALUATE GRAPH-CODE 000330 WHEN "S" 000340 PERFORM TEST BEFORE 000350 VARYING S-COUNTER FROM -39 BY 1 UNTIL S-COUNTER = 40 000360 COMPUTE VAL = 12 * (FUNCTION SIN (PI / 39 * S-COUNTER)) 000370 COMPUTE LINE-POS ROUNDED = 13 - VAL 000380 COMPUTE COL-POS = 40 + S-COUNTER 000390 DISPLAY "*" AT LINE LINE-POS COLUMN COL-POS 000400 END-PERFORM 000410*---------------------------------------------------------------------- 000420* A cosine (COS) graph is plotted. 000430*---------------------------------------------------------------------- 000440 WHEN "C" 000450 PERFORM TEST BEFORE 000460 VARYING S-COUNTER FROM -39 BY 1 UNTIL S-COUNTER = 40 000470 COMPUTE VAL = 12 * (FUNCTION COS (PI / 39 * S-COUNTER)) 000480 COMPUTE LINE-POS ROUNDED = 13 - VAL 000490 COMPUTE COL-POS = 40 + S-COUNTER 000500 DISPLAY "*" AT LINE LINE-POS COLUMN COL-POS 000510 END-PERFORM 000520*---------------------------------------------------------------------- 000530* A tangent (TAN) graph is plotted. 000540*---------------------------------------------------------------------- 000550 WHEN "T" 000560 PERFORM TEST BEFORE 000570 VARYING S-COUNTER FROM -38 BY 1 UNTIL S-COUNTER = 39 000580 COMPUTE VAL = 0.5 * (FUNCTION TAN (PI / 2 / 39 * S-COUNTER)) 000590 COMPUTE LINE-POS ROUNDED = 13 - VAL 000600 COMPUTE COL-POS = 40 + S-COUNTER 000610 DISPLAY "*" AT LINE LINE-POS COLUMN COL-POS 000620 END-PERFORM 000630 END-EVALUATE. 000640 END PROGRAM SAMPLE.