* r_sq <= (x-h)_sq + (y-k)_sq <= R_sq ** annulus equation IDENTIFICATION DIVISION. PROGRAM-ID. EQUATIONTEST. DATA DIVISION. FILE SECTION. WORKING-STORAGE SECTION. *Equation Variables 01 DIAMETER-RECEIVE-SMALL PIC 9(4). 01 DIAMETER-RECEIVE-LARGE PIC 9(4). 01 RADIUS-SQ-1 PIC 9(4). 01 RADIUS-SQ-2 PIC 9(4). 01 COORD-VARIABLES. 03 X-COORD-SET PIC 9(4). 03 Y-COORD-SET PIC 9(4). 03 X-COORD-VAR PIC 9(4). 03 Y-COORD-VAR PIC 9(4). *Arithmetic Variables 01 ARITHMETIC-VARIABLES. 03 X-VAR-MINUS-X-SET PIC S9(4). 03 X-VAR-MINUS-X-SET-SQ PIC 9(4). 03 Y-VAR-MINUS-Y-SET PIC S9(4). 03 Y-VAR-MINUS-Y-SET-SQ PIC 9(4). *These are used to test if the equation is working. 01 FINAL-VALUE PIC 9(4). 01 BLACK-PIXEL CONSTANT 00. 01 IMAGE-PIXEL CONSTANT 11. PROCEDURE DIVISION. MAIN-LOGIC. PERFORM RADIUS-INITIALIZATION. PERFORM COORD-INITIALIZATION. PERFORM RADIUS-CALCULATION. PERFORM COORD-CALCULATION. PERFORM COORD-CALCULATION-2. PERFORM CHECK-ROUTINE. STOP RUN. RADIUS-INITIALIZATION. DISPLAY "Please enter the diameter for the inner and outer" "circles of the annulus." DISPLAY "Inner Circle:". ACCEPT DIAMETER-RECEIVE-SMALL. DISPLAY "Outer Circle:". ACCEPT DIAMETER-RECEIVE-LARGE. DISPLAY DIAMETER-RECEIVE-SMALL " " DIAMETER-RECEIVE-LARGE. DISPLAY DIAMETER-RECEIVE-SMALL " " DIAMETER-RECEIVE-LARGE. COORD-INITIALIZATION. *In the final program this whole operation must be done with FILE. DISPLAY "Enter the central X and Y coordinates:". ACCEPT X-COORD-SET. ACCEPT Y-COORD-SET. DISPLAY "Enter the test X and Y variables:". ACCEPT X-COORD-VAR. ACCEPT Y-COORD-VAR. RADIUS-CALCULATION. * Calculate Radii Squares COMPUTE DIAMETER-RECEIVE-SMALL ROUNDED = DIAMETER-RECEIVE-SMALL / 2. COMPUTE RADIUS-SQ-1 = DIAMETER-RECEIVE-SMALL * DIAMETER-RECEIVE-SMALL. COMPUTE DIAMETER-RECEIVE-LARGE ROUNDED = DIAMETER-RECEIVE-LARGE / 2. COMPUTE RADIUS-SQ-2 = DIAMETER-RECEIVE-LARGE * DIAMETER-RECEIVE-LARGE. COORD-CALCULATION. * Calculate Distance Squares (using Signed variables) COMPUTE X-VAR-MINUS-X-SET = X-COORD-SET - X-COORD-VAR. COMPUTE X-VAR-MINUS-X-SET-SQ = X-VAR-MINUS-X-SET * X-VAR-MINUS-X-SET. COMPUTE Y-VAR-MINUS-Y-SET = Y-COORD-SET - Y-COORD-VAR. COMPUTE Y-VAR-MINUS-Y-SET-SQ = Y-VAR-MINUS-Y-SET * Y-VAR-MINUS-Y-SET. COORD-CALCULATION-2. COMPUTE FINAL-VALUE = X-VAR-MINUS-X-SET-SQ + Y-VAR-MINUS-Y-SET-SQ. CHECK-ROUTINE. IF RADIUS-SQ-1 <= FINAL-VALUE AND FINAL-VALUE <= RADIUS-SQ-2 DISPLAY IMAGE-PIXEL ELSE DISPLAY BLACK-PIXEL END-IF.