Skip to content

Instantly share code, notes, and snippets.

@WayneKeenan
Created December 19, 2024 20:12
Show Gist options
  • Save WayneKeenan/729cbe8ac040c3fcbad507e9542824bd to your computer and use it in GitHub Desktop.
Save WayneKeenan/729cbe8ac040c3fcbad507e9542824bd to your computer and use it in GitHub Desktop.
IDENTIFICATION DIVISION.
PROGRAM-ID. TARGET-GUIDANCE.
AUTHOR. YOUR NAME.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
DATA DIVISION.
WORKING-STORAGE SECTION.
* Define the target structure
01 TARGET-DATA.
05 TARGET-ID PIC 9(4).
05 TARGET-COORDINATES.
10 TARGET-X PIC 9(5).
10 TARGET-Y PIC 9(5).
05 TARGET-STATUS PIC X(10).
* Define the guidance module structure
01 GUIDANCE-DATA.
05 CURRENT-LOCATION.
10 CURRENT-X PIC 9(5).
10 CURRENT-Y PIC 9(5).
05 NEXT-INSTRUCTION PIC X(50).
PROCEDURE DIVISION.
MAIN-LOGIC SECTION.
MAIN-PARAGRAPH.
PERFORM INITIALIZE-TARGET
PERFORM CALCULATE-DISTANCE
PERFORM DETERMINE-INSTRUCTION
DISPLAY "Guidance Program Completed."
STOP RUN.
INITIALIZE-TARGET SECTION.
INITIALIZE-TARGET-PARAGRAPH.
MOVE 1001 TO TARGET-ID
MOVE 12345 TO TARGET-X
MOVE 67890 TO TARGET-Y
MOVE "ACTIVE" TO TARGET-STATUS
DISPLAY "Target Initialized: " TARGET-ID
" Coordinates: " TARGET-X "," TARGET-Y
" Status: " TARGET-STATUS.
CALCULATE-DISTANCE SECTION.
CALCULATE-DISTANCE-PARAGRAPH.
MOVE 10000 TO CURRENT-X
MOVE 65000 TO CURRENT-Y
COMPUTE DISTANCE-X = TARGET-X - CURRENT-X
COMPUTE DISTANCE-Y = TARGET-Y - CURRENT-Y
DISPLAY "Distance to Target: X=" DISTANCE-X
" Y=" DISTANCE-Y.
DETERMINE-INSTRUCTION SECTION.
DETERMINE-INSTRUCTION-PARAGRAPH.
IF DISTANCE-X > 0
MOVE "Move East" TO NEXT-INSTRUCTION
ELSE
MOVE "Move West" TO NEXT-INSTRUCTION
END-IF
IF DISTANCE-Y > 0
MOVE "Move North" TO NEXT-INSTRUCTION
ELSE
MOVE "Move South" TO NEXT-INSTRUCTION
END-IF
DISPLAY "Next Instruction: " NEXT-INSTRUCTION.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment