Julia set: Difference between revisions
Content added Content deleted
(Added the Common Business-Oriented Language) |
|||
Line 145: | Line 145: | ||
} |
} |
||
</lang> |
</lang> |
||
=={{header|COBOL}}== |
|||
Plots—in ASCII or EBCDIC art—a Julia set for the function <i>f</i>(<i>z</i>) = <i>z</i><sup>2</sup> + <i>c</i>, based on a value of <i>c</i> input by the user (real part then imaginary part, pressing the carriage return key after each). The sample output is for the inputs <tt>-0.8</tt> and <tt>0.156</tt>. |
|||
<lang 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.</lang> |
|||
{{out}} |
|||
<pre> |
|||
### |
|||
## ## |
|||
# ### #### # |
|||
################ ### |
|||
# # # ############### # ####### |
|||
## ##### ######## # # ##### ## |
|||
######## ### ######## # ### ### # ## # |
|||
## # #### # # # #### # #### ### # |
|||
# # ### # # ######### # ## ###### |
|||
# ######### # ######### ###### # |
|||
### ### ## ## ############ # |
|||
# # ######### ## ## # |
|||
##### #### |
|||
# # |
|||
### |
|||
# |
|||
</pre> |
|||
=={{header|J}}== |
=={{header|J}}== |