IDENTIFICATION DIVISION.
PROGRAM-ID. SQROOT.
AUTHOR. PETER.
DATE-WRITTEN. 15 MAY 2012.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
01 W-CALCULATION.
05 W-NUMBER PIC S9(4)V9(5) COMP.
05 W-ROOT PIC S9(4)V9(5) COMP.
05 W-ADJUST PIC S9(4)V9(5) COMP.
05 W-LIMIT PIC S9(4)V9(5) VALUE +0.00005.
05 W-WORK1 PIC S9(4)V9(5).
01 W-OUTPUT.
05 FILLER PIC X(15) VALUE "SQUARE ROOT OF ".
05 W-OUT-NUMBER PIC Z(3)9.9(5).
05 FILLER PIC X(04) VALUE " IS ".
05 W-OUT-ROOT PIC Z(4).9(5).
PROCEDURE DIVISION.
A0001.
ACCEPT W-NUMBER.
PERFORM C-CALCULATE
UNTIL W-WORK1 < W-LIMIT.
MOVE W-NUMBER TO W-OUT-NUMBER.
MOVE W-ROOT TO W-OUT-ROOT.
DISPLAY W-OUTPUT.
STOP RUN.
C-CALCULATE SECTION.
MOVE W-NUMBER TO W-ROOT.
COMPUTE W-ADJUST = ((W-NUMBER / W-ROOT) + W-ROOT) / 2;
SUBTRACT W-ADJUST FROM W-ROOT.
C-CALC-EXIT.
EXIT.
ICAgICAgICBJREVOVElGSUNBVElPTiBESVZJU0lPTi4KICAgICAgICAgICAgUFJPR1JBTS1JRC4gICAgIFNRUk9PVC4KICAgICAgICAgICAgQVVUSE9SLiAgICAgICAgIFBFVEVSLgogICAgICAgICAgICBEQVRFLVdSSVRURU4uICAgMTUgTUFZIDIwMTIuCiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICBFTlZJUk9OTUVOVCBESVZJU0lPTi4KICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICBDT05GSUdVUkFUSU9OIFNFQ1RJT04uCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgREFUQSBESVZJU0lPTi4KICAgICAgICBGSUxFIFNFQ1RJT04uCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgV09SS0lORy1TVE9SQUdFIFNFQ1RJT04uCiAgICAgICAgICAgIDAxICBXLUNBTENVTEFUSU9OLgogICAgICAgICAgICAgICAgMDUgIFctTlVNQkVSICAgICAgICAgICAgICAgICAgIFBJQyBTOSg0KVY5KDUpIENPTVAuCiAgICAgICAgICAgICAgICAwNSAgVy1ST09UICAgICAgICAgICAgICAgICAgICAgUElDIFM5KDQpVjkoNSkgQ09NUC4KICAgICAgICAgICAgICAgIDA1ICBXLUFESlVTVCAgICAgICAgICAgICAgICAgICBQSUMgUzkoNClWOSg1KSBDT01QLgogICAgICAgICAgICAgICAgMDUgIFctTElNSVQgICAgICAgICAgICAgICAgICAgIFBJQyBTOSg0KVY5KDUpIFZBTFVFICswLjAwMDA1LgogICAgICAgICAgICAgICAgMDUgIFctV09SSzEgICAgICAgICAgICAgICAgICAgIFBJQyBTOSg0KVY5KDUpLgogICAgICAgIAogICAgICAgICAgICAwMSAgVy1PVVRQVVQuCiAgICAgICAgICAgICAgICAwNSAgRklMTEVSICAgICAgICAgICAgICAgICAgICAgUElDIFgoMTUpIFZBTFVFICJTUVVBUkUgUk9PVCBPRiAiLgogICAgICAgICAgICAgICAgMDUgIFctT1VULU5VTUJFUiAgICAgICAgICAgICAgIFBJQyBaKDMpOS45KDUpLgogICAgICAgICAgICAgICAgMDUgIEZJTExFUiAgICAgICAgICAgICAgICAgICAgIFBJQyBYKDA0KSBWQUxVRSAiIElTICIuCiAgICAgICAgICAgICAgICAwNSAgVy1PVVQtUk9PVCAgICAgICAgICAgICAgICAgUElDIFooNCkuOSg1KS4KICAgICAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIFBST0NFRFVSRSBESVZJU0lPTi4KICAgICAgICAKICAgICAgICBBMDAwMS4KICAgICAgICAgICAgQUNDRVBUIFctTlVNQkVSLgogICAgICAgICAgICAKICAgICAgICAgICAgUEVSRk9STSBDLUNBTENVTEFURQogICAgICAgICAgICAgICAgVU5USUwgVy1XT1JLMSA8IFctTElNSVQuCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgTU9WRSBXLU5VTUJFUiAgVE8gIFctT1VULU5VTUJFUi4KICAgICAgICAgICAgTU9WRSBXLVJPT1QgICAgVE8gIFctT1VULVJPT1QuCiAgICAgICAgICAgIAogICAgICAgICAgICBESVNQTEFZIFctT1VUUFVULgogICAgICAgICAgICBTVE9QIFJVTi4KICAgICAgICAKICAgICAgICBDLUNBTENVTEFURSBTRUNUSU9OLgogICAgICAgICAgICAKICAgICAgICAgICAgTU9WRSBXLU5VTUJFUiBUTyBXLVJPT1QuCiAgICAgICAgICAgIAogICAgICAgICAgICBDT01QVVRFICAgVy1BREpVU1QgPSAoKFctTlVNQkVSIC8gVy1ST09UKSArIFctUk9PVCkgLyAyOwogICAgICAgICAgICBTVUJUUkFDVCAgVy1BREpVU1QgRlJPTSBXLVJPT1QuCiAgICAgICAgICAgIAogICAgICAgIEMtQ0FMQy1FWElULgogICAgICAgICAgICBFWElULgo=