59 lines
2.2 KiB
COBOL
59 lines
2.2 KiB
COBOL
IDENTIFICATION DIVISION.
|
|
PROGRAM-ID. JULIA-SET-PROGRAM.
|
|
DATA DIVISION.
|
|
WORKING-STORAGE SECTION.
|
|
01 WS-COMPLEX-CONSTANT.
|
|
05 C-REAL PIC S9V999.
|
|
05 C-IMAGINARY PIC S9V999.
|
|
01 WS-ARGAND-PLANE.
|
|
05 X PIC S9(9)V999.
|
|
05 Y PIC S9(9)V999.
|
|
01 WS-COMPLEX-VARIABLE.
|
|
05 Z-REAL PIC S9(9)V999.
|
|
05 Z-IMAGINARY PIC S9(9)V999.
|
|
01 WS-TEMPORARY-RESULTS.
|
|
05 X-SQUARED PIC S9(9)V999.
|
|
05 Y-SQUARED PIC S9(9)V999.
|
|
05 X-TIMES-Y PIC S9(9)V999.
|
|
05 Z-REAL-SQUARED PIC S9(9)V999.
|
|
01 WS-LOOP-COUNTERS.
|
|
05 HORIZONTAL PIC 999.
|
|
05 VERTICAL PIC 999.
|
|
05 ITERATIONS PIC 99.
|
|
77 WS-PLOT-CHARACTER PIC X.
|
|
PROCEDURE DIVISION.
|
|
INPUT-COMPLEX-CONSTANT-PARAGRAPH.
|
|
ACCEPT C-REAL FROM CONSOLE.
|
|
ACCEPT C-IMAGINARY FROM CONSOLE.
|
|
CONTROL-PARAGRAPH.
|
|
PERFORM OUTER-LOOP-PARAGRAPH VARYING VERTICAL FROM 1 BY 10
|
|
UNTIL VERTICAL IS GREATER THAN 320.
|
|
STOP RUN.
|
|
OUTER-LOOP-PARAGRAPH.
|
|
PERFORM COMPUTATION-PARAGRAPH VARYING HORIZONTAL FROM 1 BY 10
|
|
UNTIL HORIZONTAL IS GREATER THAN 560.
|
|
DISPLAY '' UPON CONSOLE.
|
|
COMPUTATION-PARAGRAPH.
|
|
SUBTRACT 280 FROM HORIZONTAL GIVING X.
|
|
SUBTRACT 160 FROM VERTICAL GIVING Y.
|
|
DIVIDE X BY 200 GIVING X.
|
|
DIVIDE Y BY 100 GIVING Y.
|
|
MOVE '#' TO WS-PLOT-CHARACTER.
|
|
PERFORM COMPLEX-MULTIPLICATION-PARAGRAPH
|
|
VARYING ITERATIONS FROM 1 BY 1
|
|
UNTIL ITERATIONS IS GREATER THAN 50
|
|
OR WS-PLOT-CHARACTER IS EQUAL TO SPACE.
|
|
DISPLAY WS-PLOT-CHARACTER UPON CONSOLE WITH NO ADVANCING.
|
|
COMPLEX-MULTIPLICATION-PARAGRAPH.
|
|
MULTIPLY X BY X GIVING X-SQUARED.
|
|
MULTIPLY Y BY Y GIVING Y-SQUARED.
|
|
SUBTRACT Y-SQUARED FROM X-SQUARED GIVING Z-REAL.
|
|
ADD C-REAL TO Z-REAL.
|
|
MULTIPLY X BY Y GIVING X-TIMES-Y.
|
|
MULTIPLY X-TIMES-Y BY 2 GIVING Z-IMAGINARY.
|
|
ADD C-IMAGINARY TO Z-IMAGINARY.
|
|
MULTIPLY Z-REAL BY Z-REAL GIVING Z-REAL-SQUARED.
|
|
IF Z-REAL-SQUARED IS GREATER THAN 10000 THEN
|
|
MOVE SPACE TO WS-PLOT-CHARACTER.
|
|
MOVE Z-REAL TO X.
|
|
MOVE Z-IMAGINARY TO Y.
|