29 Premium Themes
Included with purchase — and more features on the way!
Get access — $12 once
Version 2 is coming soon.
The price goes up when it arrives.
Pay once today and every update after that is free.
One Dark Pro
******************************************************************
* Author: Bryan Flood
* Date: 25/10/2018
* Purpose: Compute Fibonacci Numbers
* Tectonics: cobc
******************************************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. FIB.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
01 N0 BINARY-C-LONG VALUE 0.
01 N1 BINARY-C-LONG VALUE 1.
01 SWAP BINARY-C-LONG VALUE 1.
01 RESULT PIC Z(20)9.
01 I BINARY-C-LONG VALUE 0.
01 I-MAX BINARY-C-LONG VALUE 0.
01 LARGEST-N BINARY-C-LONG VALUE 92.
PROCEDURE DIVISION.
*> THIS IS WHERE THE LABELS GET CALLED
PERFORM MAIN
PERFORM ENDFIB
GOBACK.
*> THIS ACCEPTS INPUT AND DETERMINES THE OUTPUT USING A EVAL STMT
MAIN.
DISPLAY "ENTER N TO GENERATE THE FIBONACCI SEQUENCE"
ACCEPT I-MAX.
EVALUATE TRUE
WHEN I-MAX > LARGEST-N
PERFORM INVALIDN
WHEN I-MAX > 2
PERFORM CASEGREATERTHAN2
WHEN I-MAX = 2
PERFORM CASE2
WHEN I-MAX = 1
PERFORM CASE1
WHEN I-MAX = 0
PERFORM CASE0
WHEN OTHER
PERFORM INVALIDN
END-EVALUATE.
STOP RUN.
*> THE CASE FOR WHEN N = 0
CASE0.
MOVE N0 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 1
CASE1.
PERFORM CASE0
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 2
CASE2.
PERFORM CASE1
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N > 2
CASEGREATERTHAN2.
PERFORM CASE1
PERFORM VARYING I FROM 1 BY 1 UNTIL I = I-MAX
ADD N0 TO N1 GIVING SWAP
MOVE N1 TO N0
MOVE SWAP TO N1
MOVE SWAP TO RESULT
DISPLAY RESULT
END-PERFORM.
*> PROVIDE ERROR FOR INVALID INPUT
INVALIDN.
DISPLAY 'INVALID N VALUE. THE PROGRAM WILL NOW END'.
*> END THE PROGRAM WITH A MESSAGE
ENDFIB.
DISPLAY "THE PROGRAM HAS COMPLETED AND WILL NOW END".
END PROGRAM FIB.
*> From https://github.com/KnowledgePending/COBOL-Fibonacci-Sequence/blob/master/fib.cbl
Andromeda
******************************************************************
* Author: Bryan Flood
* Date: 25/10/2018
* Purpose: Compute Fibonacci Numbers
* Tectonics: cobc
******************************************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. FIB.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
01 N0 BINARY-C-LONG VALUE 0.
01 N1 BINARY-C-LONG VALUE 1.
01 SWAP BINARY-C-LONG VALUE 1.
01 RESULT PIC Z(20)9.
01 I BINARY-C-LONG VALUE 0.
01 I-MAX BINARY-C-LONG VALUE 0.
01 LARGEST-N BINARY-C-LONG VALUE 92.
PROCEDURE DIVISION.
*> THIS IS WHERE THE LABELS GET CALLED
PERFORM MAIN
PERFORM ENDFIB
GOBACK.
*> THIS ACCEPTS INPUT AND DETERMINES THE OUTPUT USING A EVAL STMT
MAIN.
DISPLAY "ENTER N TO GENERATE THE FIBONACCI SEQUENCE"
ACCEPT I-MAX.
EVALUATE TRUE
WHEN I-MAX > LARGEST-N
PERFORM INVALIDN
WHEN I-MAX > 2
PERFORM CASEGREATERTHAN2
WHEN I-MAX = 2
PERFORM CASE2
WHEN I-MAX = 1
PERFORM CASE1
WHEN I-MAX = 0
PERFORM CASE0
WHEN OTHER
PERFORM INVALIDN
END-EVALUATE.
STOP RUN.
*> THE CASE FOR WHEN N = 0
CASE0.
MOVE N0 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 1
CASE1.
PERFORM CASE0
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 2
CASE2.
PERFORM CASE1
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N > 2
CASEGREATERTHAN2.
PERFORM CASE1
PERFORM VARYING I FROM 1 BY 1 UNTIL I = I-MAX
ADD N0 TO N1 GIVING SWAP
MOVE N1 TO N0
MOVE SWAP TO N1
MOVE SWAP TO RESULT
DISPLAY RESULT
END-PERFORM.
*> PROVIDE ERROR FOR INVALID INPUT
INVALIDN.
DISPLAY 'INVALID N VALUE. THE PROGRAM WILL NOW END'.
*> END THE PROGRAM WITH A MESSAGE
ENDFIB.
DISPLAY "THE PROGRAM HAS COMPLETED AND WILL NOW END".
END PROGRAM FIB.
*> From https://github.com/KnowledgePending/COBOL-Fibonacci-Sequence/blob/master/fib.cbl
Ayu Dark
******************************************************************
* Author: Bryan Flood
* Date: 25/10/2018
* Purpose: Compute Fibonacci Numbers
* Tectonics: cobc
******************************************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. FIB.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
01 N0 BINARY-C-LONG VALUE 0.
01 N1 BINARY-C-LONG VALUE 1.
01 SWAP BINARY-C-LONG VALUE 1.
01 RESULT PIC Z(20)9.
01 I BINARY-C-LONG VALUE 0.
01 I-MAX BINARY-C-LONG VALUE 0.
01 LARGEST-N BINARY-C-LONG VALUE 92.
PROCEDURE DIVISION.
*> THIS IS WHERE THE LABELS GET CALLED
PERFORM MAIN
PERFORM ENDFIB
GOBACK.
*> THIS ACCEPTS INPUT AND DETERMINES THE OUTPUT USING A EVAL STMT
MAIN.
DISPLAY "ENTER N TO GENERATE THE FIBONACCI SEQUENCE"
ACCEPT I-MAX.
EVALUATE TRUE
WHEN I-MAX > LARGEST-N
PERFORM INVALIDN
WHEN I-MAX > 2
PERFORM CASEGREATERTHAN2
WHEN I-MAX = 2
PERFORM CASE2
WHEN I-MAX = 1
PERFORM CASE1
WHEN I-MAX = 0
PERFORM CASE0
WHEN OTHER
PERFORM INVALIDN
END-EVALUATE.
STOP RUN.
*> THE CASE FOR WHEN N = 0
CASE0.
MOVE N0 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 1
CASE1.
PERFORM CASE0
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 2
CASE2.
PERFORM CASE1
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N > 2
CASEGREATERTHAN2.
PERFORM CASE1
PERFORM VARYING I FROM 1 BY 1 UNTIL I = I-MAX
ADD N0 TO N1 GIVING SWAP
MOVE N1 TO N0
MOVE SWAP TO N1
MOVE SWAP TO RESULT
DISPLAY RESULT
END-PERFORM.
*> PROVIDE ERROR FOR INVALID INPUT
INVALIDN.
DISPLAY 'INVALID N VALUE. THE PROGRAM WILL NOW END'.
*> END THE PROGRAM WITH A MESSAGE
ENDFIB.
DISPLAY "THE PROGRAM HAS COMPLETED AND WILL NOW END".
END PROGRAM FIB.
*> From https://github.com/KnowledgePending/COBOL-Fibonacci-Sequence/blob/master/fib.cbl
Ayu Mirage
******************************************************************
* Author: Bryan Flood
* Date: 25/10/2018
* Purpose: Compute Fibonacci Numbers
* Tectonics: cobc
******************************************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. FIB.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
01 N0 BINARY-C-LONG VALUE 0.
01 N1 BINARY-C-LONG VALUE 1.
01 SWAP BINARY-C-LONG VALUE 1.
01 RESULT PIC Z(20)9.
01 I BINARY-C-LONG VALUE 0.
01 I-MAX BINARY-C-LONG VALUE 0.
01 LARGEST-N BINARY-C-LONG VALUE 92.
PROCEDURE DIVISION.
*> THIS IS WHERE THE LABELS GET CALLED
PERFORM MAIN
PERFORM ENDFIB
GOBACK.
*> THIS ACCEPTS INPUT AND DETERMINES THE OUTPUT USING A EVAL STMT
MAIN.
DISPLAY "ENTER N TO GENERATE THE FIBONACCI SEQUENCE"
ACCEPT I-MAX.
EVALUATE TRUE
WHEN I-MAX > LARGEST-N
PERFORM INVALIDN
WHEN I-MAX > 2
PERFORM CASEGREATERTHAN2
WHEN I-MAX = 2
PERFORM CASE2
WHEN I-MAX = 1
PERFORM CASE1
WHEN I-MAX = 0
PERFORM CASE0
WHEN OTHER
PERFORM INVALIDN
END-EVALUATE.
STOP RUN.
*> THE CASE FOR WHEN N = 0
CASE0.
MOVE N0 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 1
CASE1.
PERFORM CASE0
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 2
CASE2.
PERFORM CASE1
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N > 2
CASEGREATERTHAN2.
PERFORM CASE1
PERFORM VARYING I FROM 1 BY 1 UNTIL I = I-MAX
ADD N0 TO N1 GIVING SWAP
MOVE N1 TO N0
MOVE SWAP TO N1
MOVE SWAP TO RESULT
DISPLAY RESULT
END-PERFORM.
*> PROVIDE ERROR FOR INVALID INPUT
INVALIDN.
DISPLAY 'INVALID N VALUE. THE PROGRAM WILL NOW END'.
*> END THE PROGRAM WITH A MESSAGE
ENDFIB.
DISPLAY "THE PROGRAM HAS COMPLETED AND WILL NOW END".
END PROGRAM FIB.
*> From https://github.com/KnowledgePending/COBOL-Fibonacci-Sequence/blob/master/fib.cbl
Ayu Light
******************************************************************
* Author: Bryan Flood
* Date: 25/10/2018
* Purpose: Compute Fibonacci Numbers
* Tectonics: cobc
******************************************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. FIB.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
01 N0 BINARY-C-LONG VALUE 0.
01 N1 BINARY-C-LONG VALUE 1.
01 SWAP BINARY-C-LONG VALUE 1.
01 RESULT PIC Z(20)9.
01 I BINARY-C-LONG VALUE 0.
01 I-MAX BINARY-C-LONG VALUE 0.
01 LARGEST-N BINARY-C-LONG VALUE 92.
PROCEDURE DIVISION.
*> THIS IS WHERE THE LABELS GET CALLED
PERFORM MAIN
PERFORM ENDFIB
GOBACK.
*> THIS ACCEPTS INPUT AND DETERMINES THE OUTPUT USING A EVAL STMT
MAIN.
DISPLAY "ENTER N TO GENERATE THE FIBONACCI SEQUENCE"
ACCEPT I-MAX.
EVALUATE TRUE
WHEN I-MAX > LARGEST-N
PERFORM INVALIDN
WHEN I-MAX > 2
PERFORM CASEGREATERTHAN2
WHEN I-MAX = 2
PERFORM CASE2
WHEN I-MAX = 1
PERFORM CASE1
WHEN I-MAX = 0
PERFORM CASE0
WHEN OTHER
PERFORM INVALIDN
END-EVALUATE.
STOP RUN.
*> THE CASE FOR WHEN N = 0
CASE0.
MOVE N0 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 1
CASE1.
PERFORM CASE0
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 2
CASE2.
PERFORM CASE1
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N > 2
CASEGREATERTHAN2.
PERFORM CASE1
PERFORM VARYING I FROM 1 BY 1 UNTIL I = I-MAX
ADD N0 TO N1 GIVING SWAP
MOVE N1 TO N0
MOVE SWAP TO N1
MOVE SWAP TO RESULT
DISPLAY RESULT
END-PERFORM.
*> PROVIDE ERROR FOR INVALID INPUT
INVALIDN.
DISPLAY 'INVALID N VALUE. THE PROGRAM WILL NOW END'.
*> END THE PROGRAM WITH A MESSAGE
ENDFIB.
DISPLAY "THE PROGRAM HAS COMPLETED AND WILL NOW END".
END PROGRAM FIB.
*> From https://github.com/KnowledgePending/COBOL-Fibonacci-Sequence/blob/master/fib.cbl
Cobalt2
******************************************************************
* Author: Bryan Flood
* Date: 25/10/2018
* Purpose: Compute Fibonacci Numbers
* Tectonics: cobc
******************************************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. FIB.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
01 N0 BINARY-C-LONG VALUE 0.
01 N1 BINARY-C-LONG VALUE 1.
01 SWAP BINARY-C-LONG VALUE 1.
01 RESULT PIC Z(20)9.
01 I BINARY-C-LONG VALUE 0.
01 I-MAX BINARY-C-LONG VALUE 0.
01 LARGEST-N BINARY-C-LONG VALUE 92.
PROCEDURE DIVISION.
*> THIS IS WHERE THE LABELS GET CALLED
PERFORM MAIN
PERFORM ENDFIB
GOBACK.
*> THIS ACCEPTS INPUT AND DETERMINES THE OUTPUT USING A EVAL STMT
MAIN.
DISPLAY "ENTER N TO GENERATE THE FIBONACCI SEQUENCE"
ACCEPT I-MAX.
EVALUATE TRUE
WHEN I-MAX > LARGEST-N
PERFORM INVALIDN
WHEN I-MAX > 2
PERFORM CASEGREATERTHAN2
WHEN I-MAX = 2
PERFORM CASE2
WHEN I-MAX = 1
PERFORM CASE1
WHEN I-MAX = 0
PERFORM CASE0
WHEN OTHER
PERFORM INVALIDN
END-EVALUATE.
STOP RUN.
*> THE CASE FOR WHEN N = 0
CASE0.
MOVE N0 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 1
CASE1.
PERFORM CASE0
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 2
CASE2.
PERFORM CASE1
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N > 2
CASEGREATERTHAN2.
PERFORM CASE1
PERFORM VARYING I FROM 1 BY 1 UNTIL I = I-MAX
ADD N0 TO N1 GIVING SWAP
MOVE N1 TO N0
MOVE SWAP TO N1
MOVE SWAP TO RESULT
DISPLAY RESULT
END-PERFORM.
*> PROVIDE ERROR FOR INVALID INPUT
INVALIDN.
DISPLAY 'INVALID N VALUE. THE PROGRAM WILL NOW END'.
*> END THE PROGRAM WITH A MESSAGE
ENDFIB.
DISPLAY "THE PROGRAM HAS COMPLETED AND WILL NOW END".
END PROGRAM FIB.
*> From https://github.com/KnowledgePending/COBOL-Fibonacci-Sequence/blob/master/fib.cbl
Night Owl
******************************************************************
* Author: Bryan Flood
* Date: 25/10/2018
* Purpose: Compute Fibonacci Numbers
* Tectonics: cobc
******************************************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. FIB.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
01 N0 BINARY-C-LONG VALUE 0.
01 N1 BINARY-C-LONG VALUE 1.
01 SWAP BINARY-C-LONG VALUE 1.
01 RESULT PIC Z(20)9.
01 I BINARY-C-LONG VALUE 0.
01 I-MAX BINARY-C-LONG VALUE 0.
01 LARGEST-N BINARY-C-LONG VALUE 92.
PROCEDURE DIVISION.
*> THIS IS WHERE THE LABELS GET CALLED
PERFORM MAIN
PERFORM ENDFIB
GOBACK.
*> THIS ACCEPTS INPUT AND DETERMINES THE OUTPUT USING A EVAL STMT
MAIN.
DISPLAY "ENTER N TO GENERATE THE FIBONACCI SEQUENCE"
ACCEPT I-MAX.
EVALUATE TRUE
WHEN I-MAX > LARGEST-N
PERFORM INVALIDN
WHEN I-MAX > 2
PERFORM CASEGREATERTHAN2
WHEN I-MAX = 2
PERFORM CASE2
WHEN I-MAX = 1
PERFORM CASE1
WHEN I-MAX = 0
PERFORM CASE0
WHEN OTHER
PERFORM INVALIDN
END-EVALUATE.
STOP RUN.
*> THE CASE FOR WHEN N = 0
CASE0.
MOVE N0 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 1
CASE1.
PERFORM CASE0
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 2
CASE2.
PERFORM CASE1
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N > 2
CASEGREATERTHAN2.
PERFORM CASE1
PERFORM VARYING I FROM 1 BY 1 UNTIL I = I-MAX
ADD N0 TO N1 GIVING SWAP
MOVE N1 TO N0
MOVE SWAP TO N1
MOVE SWAP TO RESULT
DISPLAY RESULT
END-PERFORM.
*> PROVIDE ERROR FOR INVALID INPUT
INVALIDN.
DISPLAY 'INVALID N VALUE. THE PROGRAM WILL NOW END'.
*> END THE PROGRAM WITH A MESSAGE
ENDFIB.
DISPLAY "THE PROGRAM HAS COMPLETED AND WILL NOW END".
END PROGRAM FIB.
*> From https://github.com/KnowledgePending/COBOL-Fibonacci-Sequence/blob/master/fib.cbl
Night Owl Light
******************************************************************
* Author: Bryan Flood
* Date: 25/10/2018
* Purpose: Compute Fibonacci Numbers
* Tectonics: cobc
******************************************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. FIB.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
01 N0 BINARY-C-LONG VALUE 0.
01 N1 BINARY-C-LONG VALUE 1.
01 SWAP BINARY-C-LONG VALUE 1.
01 RESULT PIC Z(20)9.
01 I BINARY-C-LONG VALUE 0.
01 I-MAX BINARY-C-LONG VALUE 0.
01 LARGEST-N BINARY-C-LONG VALUE 92.
PROCEDURE DIVISION.
*> THIS IS WHERE THE LABELS GET CALLED
PERFORM MAIN
PERFORM ENDFIB
GOBACK.
*> THIS ACCEPTS INPUT AND DETERMINES THE OUTPUT USING A EVAL STMT
MAIN.
DISPLAY "ENTER N TO GENERATE THE FIBONACCI SEQUENCE"
ACCEPT I-MAX.
EVALUATE TRUE
WHEN I-MAX > LARGEST-N
PERFORM INVALIDN
WHEN I-MAX > 2
PERFORM CASEGREATERTHAN2
WHEN I-MAX = 2
PERFORM CASE2
WHEN I-MAX = 1
PERFORM CASE1
WHEN I-MAX = 0
PERFORM CASE0
WHEN OTHER
PERFORM INVALIDN
END-EVALUATE.
STOP RUN.
*> THE CASE FOR WHEN N = 0
CASE0.
MOVE N0 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 1
CASE1.
PERFORM CASE0
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 2
CASE2.
PERFORM CASE1
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N > 2
CASEGREATERTHAN2.
PERFORM CASE1
PERFORM VARYING I FROM 1 BY 1 UNTIL I = I-MAX
ADD N0 TO N1 GIVING SWAP
MOVE N1 TO N0
MOVE SWAP TO N1
MOVE SWAP TO RESULT
DISPLAY RESULT
END-PERFORM.
*> PROVIDE ERROR FOR INVALID INPUT
INVALIDN.
DISPLAY 'INVALID N VALUE. THE PROGRAM WILL NOW END'.
*> END THE PROGRAM WITH A MESSAGE
ENDFIB.
DISPLAY "THE PROGRAM HAS COMPLETED AND WILL NOW END".
END PROGRAM FIB.
*> From https://github.com/KnowledgePending/COBOL-Fibonacci-Sequence/blob/master/fib.cbl
Noctis
******************************************************************
* Author: Bryan Flood
* Date: 25/10/2018
* Purpose: Compute Fibonacci Numbers
* Tectonics: cobc
******************************************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. FIB.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
01 N0 BINARY-C-LONG VALUE 0.
01 N1 BINARY-C-LONG VALUE 1.
01 SWAP BINARY-C-LONG VALUE 1.
01 RESULT PIC Z(20)9.
01 I BINARY-C-LONG VALUE 0.
01 I-MAX BINARY-C-LONG VALUE 0.
01 LARGEST-N BINARY-C-LONG VALUE 92.
PROCEDURE DIVISION.
*> THIS IS WHERE THE LABELS GET CALLED
PERFORM MAIN
PERFORM ENDFIB
GOBACK.
*> THIS ACCEPTS INPUT AND DETERMINES THE OUTPUT USING A EVAL STMT
MAIN.
DISPLAY "ENTER N TO GENERATE THE FIBONACCI SEQUENCE"
ACCEPT I-MAX.
EVALUATE TRUE
WHEN I-MAX > LARGEST-N
PERFORM INVALIDN
WHEN I-MAX > 2
PERFORM CASEGREATERTHAN2
WHEN I-MAX = 2
PERFORM CASE2
WHEN I-MAX = 1
PERFORM CASE1
WHEN I-MAX = 0
PERFORM CASE0
WHEN OTHER
PERFORM INVALIDN
END-EVALUATE.
STOP RUN.
*> THE CASE FOR WHEN N = 0
CASE0.
MOVE N0 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 1
CASE1.
PERFORM CASE0
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 2
CASE2.
PERFORM CASE1
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N > 2
CASEGREATERTHAN2.
PERFORM CASE1
PERFORM VARYING I FROM 1 BY 1 UNTIL I = I-MAX
ADD N0 TO N1 GIVING SWAP
MOVE N1 TO N0
MOVE SWAP TO N1
MOVE SWAP TO RESULT
DISPLAY RESULT
END-PERFORM.
*> PROVIDE ERROR FOR INVALID INPUT
INVALIDN.
DISPLAY 'INVALID N VALUE. THE PROGRAM WILL NOW END'.
*> END THE PROGRAM WITH A MESSAGE
ENDFIB.
DISPLAY "THE PROGRAM HAS COMPLETED AND WILL NOW END".
END PROGRAM FIB.
*> From https://github.com/KnowledgePending/COBOL-Fibonacci-Sequence/blob/master/fib.cbl
Noctis Azureus
******************************************************************
* Author: Bryan Flood
* Date: 25/10/2018
* Purpose: Compute Fibonacci Numbers
* Tectonics: cobc
******************************************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. FIB.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
01 N0 BINARY-C-LONG VALUE 0.
01 N1 BINARY-C-LONG VALUE 1.
01 SWAP BINARY-C-LONG VALUE 1.
01 RESULT PIC Z(20)9.
01 I BINARY-C-LONG VALUE 0.
01 I-MAX BINARY-C-LONG VALUE 0.
01 LARGEST-N BINARY-C-LONG VALUE 92.
PROCEDURE DIVISION.
*> THIS IS WHERE THE LABELS GET CALLED
PERFORM MAIN
PERFORM ENDFIB
GOBACK.
*> THIS ACCEPTS INPUT AND DETERMINES THE OUTPUT USING A EVAL STMT
MAIN.
DISPLAY "ENTER N TO GENERATE THE FIBONACCI SEQUENCE"
ACCEPT I-MAX.
EVALUATE TRUE
WHEN I-MAX > LARGEST-N
PERFORM INVALIDN
WHEN I-MAX > 2
PERFORM CASEGREATERTHAN2
WHEN I-MAX = 2
PERFORM CASE2
WHEN I-MAX = 1
PERFORM CASE1
WHEN I-MAX = 0
PERFORM CASE0
WHEN OTHER
PERFORM INVALIDN
END-EVALUATE.
STOP RUN.
*> THE CASE FOR WHEN N = 0
CASE0.
MOVE N0 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 1
CASE1.
PERFORM CASE0
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 2
CASE2.
PERFORM CASE1
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N > 2
CASEGREATERTHAN2.
PERFORM CASE1
PERFORM VARYING I FROM 1 BY 1 UNTIL I = I-MAX
ADD N0 TO N1 GIVING SWAP
MOVE N1 TO N0
MOVE SWAP TO N1
MOVE SWAP TO RESULT
DISPLAY RESULT
END-PERFORM.
*> PROVIDE ERROR FOR INVALID INPUT
INVALIDN.
DISPLAY 'INVALID N VALUE. THE PROGRAM WILL NOW END'.
*> END THE PROGRAM WITH A MESSAGE
ENDFIB.
DISPLAY "THE PROGRAM HAS COMPLETED AND WILL NOW END".
END PROGRAM FIB.
*> From https://github.com/KnowledgePending/COBOL-Fibonacci-Sequence/blob/master/fib.cbl
Noctis Bordo
******************************************************************
* Author: Bryan Flood
* Date: 25/10/2018
* Purpose: Compute Fibonacci Numbers
* Tectonics: cobc
******************************************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. FIB.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
01 N0 BINARY-C-LONG VALUE 0.
01 N1 BINARY-C-LONG VALUE 1.
01 SWAP BINARY-C-LONG VALUE 1.
01 RESULT PIC Z(20)9.
01 I BINARY-C-LONG VALUE 0.
01 I-MAX BINARY-C-LONG VALUE 0.
01 LARGEST-N BINARY-C-LONG VALUE 92.
PROCEDURE DIVISION.
*> THIS IS WHERE THE LABELS GET CALLED
PERFORM MAIN
PERFORM ENDFIB
GOBACK.
*> THIS ACCEPTS INPUT AND DETERMINES THE OUTPUT USING A EVAL STMT
MAIN.
DISPLAY "ENTER N TO GENERATE THE FIBONACCI SEQUENCE"
ACCEPT I-MAX.
EVALUATE TRUE
WHEN I-MAX > LARGEST-N
PERFORM INVALIDN
WHEN I-MAX > 2
PERFORM CASEGREATERTHAN2
WHEN I-MAX = 2
PERFORM CASE2
WHEN I-MAX = 1
PERFORM CASE1
WHEN I-MAX = 0
PERFORM CASE0
WHEN OTHER
PERFORM INVALIDN
END-EVALUATE.
STOP RUN.
*> THE CASE FOR WHEN N = 0
CASE0.
MOVE N0 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 1
CASE1.
PERFORM CASE0
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 2
CASE2.
PERFORM CASE1
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N > 2
CASEGREATERTHAN2.
PERFORM CASE1
PERFORM VARYING I FROM 1 BY 1 UNTIL I = I-MAX
ADD N0 TO N1 GIVING SWAP
MOVE N1 TO N0
MOVE SWAP TO N1
MOVE SWAP TO RESULT
DISPLAY RESULT
END-PERFORM.
*> PROVIDE ERROR FOR INVALID INPUT
INVALIDN.
DISPLAY 'INVALID N VALUE. THE PROGRAM WILL NOW END'.
*> END THE PROGRAM WITH A MESSAGE
ENDFIB.
DISPLAY "THE PROGRAM HAS COMPLETED AND WILL NOW END".
END PROGRAM FIB.
*> From https://github.com/KnowledgePending/COBOL-Fibonacci-Sequence/blob/master/fib.cbl
Noctis Hibernus
******************************************************************
* Author: Bryan Flood
* Date: 25/10/2018
* Purpose: Compute Fibonacci Numbers
* Tectonics: cobc
******************************************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. FIB.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
01 N0 BINARY-C-LONG VALUE 0.
01 N1 BINARY-C-LONG VALUE 1.
01 SWAP BINARY-C-LONG VALUE 1.
01 RESULT PIC Z(20)9.
01 I BINARY-C-LONG VALUE 0.
01 I-MAX BINARY-C-LONG VALUE 0.
01 LARGEST-N BINARY-C-LONG VALUE 92.
PROCEDURE DIVISION.
*> THIS IS WHERE THE LABELS GET CALLED
PERFORM MAIN
PERFORM ENDFIB
GOBACK.
*> THIS ACCEPTS INPUT AND DETERMINES THE OUTPUT USING A EVAL STMT
MAIN.
DISPLAY "ENTER N TO GENERATE THE FIBONACCI SEQUENCE"
ACCEPT I-MAX.
EVALUATE TRUE
WHEN I-MAX > LARGEST-N
PERFORM INVALIDN
WHEN I-MAX > 2
PERFORM CASEGREATERTHAN2
WHEN I-MAX = 2
PERFORM CASE2
WHEN I-MAX = 1
PERFORM CASE1
WHEN I-MAX = 0
PERFORM CASE0
WHEN OTHER
PERFORM INVALIDN
END-EVALUATE.
STOP RUN.
*> THE CASE FOR WHEN N = 0
CASE0.
MOVE N0 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 1
CASE1.
PERFORM CASE0
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 2
CASE2.
PERFORM CASE1
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N > 2
CASEGREATERTHAN2.
PERFORM CASE1
PERFORM VARYING I FROM 1 BY 1 UNTIL I = I-MAX
ADD N0 TO N1 GIVING SWAP
MOVE N1 TO N0
MOVE SWAP TO N1
MOVE SWAP TO RESULT
DISPLAY RESULT
END-PERFORM.
*> PROVIDE ERROR FOR INVALID INPUT
INVALIDN.
DISPLAY 'INVALID N VALUE. THE PROGRAM WILL NOW END'.
*> END THE PROGRAM WITH A MESSAGE
ENDFIB.
DISPLAY "THE PROGRAM HAS COMPLETED AND WILL NOW END".
END PROGRAM FIB.
*> From https://github.com/KnowledgePending/COBOL-Fibonacci-Sequence/blob/master/fib.cbl
Noctis Lilac
******************************************************************
* Author: Bryan Flood
* Date: 25/10/2018
* Purpose: Compute Fibonacci Numbers
* Tectonics: cobc
******************************************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. FIB.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
01 N0 BINARY-C-LONG VALUE 0.
01 N1 BINARY-C-LONG VALUE 1.
01 SWAP BINARY-C-LONG VALUE 1.
01 RESULT PIC Z(20)9.
01 I BINARY-C-LONG VALUE 0.
01 I-MAX BINARY-C-LONG VALUE 0.
01 LARGEST-N BINARY-C-LONG VALUE 92.
PROCEDURE DIVISION.
*> THIS IS WHERE THE LABELS GET CALLED
PERFORM MAIN
PERFORM ENDFIB
GOBACK.
*> THIS ACCEPTS INPUT AND DETERMINES THE OUTPUT USING A EVAL STMT
MAIN.
DISPLAY "ENTER N TO GENERATE THE FIBONACCI SEQUENCE"
ACCEPT I-MAX.
EVALUATE TRUE
WHEN I-MAX > LARGEST-N
PERFORM INVALIDN
WHEN I-MAX > 2
PERFORM CASEGREATERTHAN2
WHEN I-MAX = 2
PERFORM CASE2
WHEN I-MAX = 1
PERFORM CASE1
WHEN I-MAX = 0
PERFORM CASE0
WHEN OTHER
PERFORM INVALIDN
END-EVALUATE.
STOP RUN.
*> THE CASE FOR WHEN N = 0
CASE0.
MOVE N0 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 1
CASE1.
PERFORM CASE0
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 2
CASE2.
PERFORM CASE1
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N > 2
CASEGREATERTHAN2.
PERFORM CASE1
PERFORM VARYING I FROM 1 BY 1 UNTIL I = I-MAX
ADD N0 TO N1 GIVING SWAP
MOVE N1 TO N0
MOVE SWAP TO N1
MOVE SWAP TO RESULT
DISPLAY RESULT
END-PERFORM.
*> PROVIDE ERROR FOR INVALID INPUT
INVALIDN.
DISPLAY 'INVALID N VALUE. THE PROGRAM WILL NOW END'.
*> END THE PROGRAM WITH A MESSAGE
ENDFIB.
DISPLAY "THE PROGRAM HAS COMPLETED AND WILL NOW END".
END PROGRAM FIB.
*> From https://github.com/KnowledgePending/COBOL-Fibonacci-Sequence/blob/master/fib.cbl
Noctis Lux
******************************************************************
* Author: Bryan Flood
* Date: 25/10/2018
* Purpose: Compute Fibonacci Numbers
* Tectonics: cobc
******************************************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. FIB.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
01 N0 BINARY-C-LONG VALUE 0.
01 N1 BINARY-C-LONG VALUE 1.
01 SWAP BINARY-C-LONG VALUE 1.
01 RESULT PIC Z(20)9.
01 I BINARY-C-LONG VALUE 0.
01 I-MAX BINARY-C-LONG VALUE 0.
01 LARGEST-N BINARY-C-LONG VALUE 92.
PROCEDURE DIVISION.
*> THIS IS WHERE THE LABELS GET CALLED
PERFORM MAIN
PERFORM ENDFIB
GOBACK.
*> THIS ACCEPTS INPUT AND DETERMINES THE OUTPUT USING A EVAL STMT
MAIN.
DISPLAY "ENTER N TO GENERATE THE FIBONACCI SEQUENCE"
ACCEPT I-MAX.
EVALUATE TRUE
WHEN I-MAX > LARGEST-N
PERFORM INVALIDN
WHEN I-MAX > 2
PERFORM CASEGREATERTHAN2
WHEN I-MAX = 2
PERFORM CASE2
WHEN I-MAX = 1
PERFORM CASE1
WHEN I-MAX = 0
PERFORM CASE0
WHEN OTHER
PERFORM INVALIDN
END-EVALUATE.
STOP RUN.
*> THE CASE FOR WHEN N = 0
CASE0.
MOVE N0 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 1
CASE1.
PERFORM CASE0
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 2
CASE2.
PERFORM CASE1
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N > 2
CASEGREATERTHAN2.
PERFORM CASE1
PERFORM VARYING I FROM 1 BY 1 UNTIL I = I-MAX
ADD N0 TO N1 GIVING SWAP
MOVE N1 TO N0
MOVE SWAP TO N1
MOVE SWAP TO RESULT
DISPLAY RESULT
END-PERFORM.
*> PROVIDE ERROR FOR INVALID INPUT
INVALIDN.
DISPLAY 'INVALID N VALUE. THE PROGRAM WILL NOW END'.
*> END THE PROGRAM WITH A MESSAGE
ENDFIB.
DISPLAY "THE PROGRAM HAS COMPLETED AND WILL NOW END".
END PROGRAM FIB.
*> From https://github.com/KnowledgePending/COBOL-Fibonacci-Sequence/blob/master/fib.cbl
Noctis Minimus
******************************************************************
* Author: Bryan Flood
* Date: 25/10/2018
* Purpose: Compute Fibonacci Numbers
* Tectonics: cobc
******************************************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. FIB.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
01 N0 BINARY-C-LONG VALUE 0.
01 N1 BINARY-C-LONG VALUE 1.
01 SWAP BINARY-C-LONG VALUE 1.
01 RESULT PIC Z(20)9.
01 I BINARY-C-LONG VALUE 0.
01 I-MAX BINARY-C-LONG VALUE 0.
01 LARGEST-N BINARY-C-LONG VALUE 92.
PROCEDURE DIVISION.
*> THIS IS WHERE THE LABELS GET CALLED
PERFORM MAIN
PERFORM ENDFIB
GOBACK.
*> THIS ACCEPTS INPUT AND DETERMINES THE OUTPUT USING A EVAL STMT
MAIN.
DISPLAY "ENTER N TO GENERATE THE FIBONACCI SEQUENCE"
ACCEPT I-MAX.
EVALUATE TRUE
WHEN I-MAX > LARGEST-N
PERFORM INVALIDN
WHEN I-MAX > 2
PERFORM CASEGREATERTHAN2
WHEN I-MAX = 2
PERFORM CASE2
WHEN I-MAX = 1
PERFORM CASE1
WHEN I-MAX = 0
PERFORM CASE0
WHEN OTHER
PERFORM INVALIDN
END-EVALUATE.
STOP RUN.
*> THE CASE FOR WHEN N = 0
CASE0.
MOVE N0 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 1
CASE1.
PERFORM CASE0
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 2
CASE2.
PERFORM CASE1
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N > 2
CASEGREATERTHAN2.
PERFORM CASE1
PERFORM VARYING I FROM 1 BY 1 UNTIL I = I-MAX
ADD N0 TO N1 GIVING SWAP
MOVE N1 TO N0
MOVE SWAP TO N1
MOVE SWAP TO RESULT
DISPLAY RESULT
END-PERFORM.
*> PROVIDE ERROR FOR INVALID INPUT
INVALIDN.
DISPLAY 'INVALID N VALUE. THE PROGRAM WILL NOW END'.
*> END THE PROGRAM WITH A MESSAGE
ENDFIB.
DISPLAY "THE PROGRAM HAS COMPLETED AND WILL NOW END".
END PROGRAM FIB.
*> From https://github.com/KnowledgePending/COBOL-Fibonacci-Sequence/blob/master/fib.cbl
Noctis Obscuro
******************************************************************
* Author: Bryan Flood
* Date: 25/10/2018
* Purpose: Compute Fibonacci Numbers
* Tectonics: cobc
******************************************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. FIB.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
01 N0 BINARY-C-LONG VALUE 0.
01 N1 BINARY-C-LONG VALUE 1.
01 SWAP BINARY-C-LONG VALUE 1.
01 RESULT PIC Z(20)9.
01 I BINARY-C-LONG VALUE 0.
01 I-MAX BINARY-C-LONG VALUE 0.
01 LARGEST-N BINARY-C-LONG VALUE 92.
PROCEDURE DIVISION.
*> THIS IS WHERE THE LABELS GET CALLED
PERFORM MAIN
PERFORM ENDFIB
GOBACK.
*> THIS ACCEPTS INPUT AND DETERMINES THE OUTPUT USING A EVAL STMT
MAIN.
DISPLAY "ENTER N TO GENERATE THE FIBONACCI SEQUENCE"
ACCEPT I-MAX.
EVALUATE TRUE
WHEN I-MAX > LARGEST-N
PERFORM INVALIDN
WHEN I-MAX > 2
PERFORM CASEGREATERTHAN2
WHEN I-MAX = 2
PERFORM CASE2
WHEN I-MAX = 1
PERFORM CASE1
WHEN I-MAX = 0
PERFORM CASE0
WHEN OTHER
PERFORM INVALIDN
END-EVALUATE.
STOP RUN.
*> THE CASE FOR WHEN N = 0
CASE0.
MOVE N0 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 1
CASE1.
PERFORM CASE0
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 2
CASE2.
PERFORM CASE1
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N > 2
CASEGREATERTHAN2.
PERFORM CASE1
PERFORM VARYING I FROM 1 BY 1 UNTIL I = I-MAX
ADD N0 TO N1 GIVING SWAP
MOVE N1 TO N0
MOVE SWAP TO N1
MOVE SWAP TO RESULT
DISPLAY RESULT
END-PERFORM.
*> PROVIDE ERROR FOR INVALID INPUT
INVALIDN.
DISPLAY 'INVALID N VALUE. THE PROGRAM WILL NOW END'.
*> END THE PROGRAM WITH A MESSAGE
ENDFIB.
DISPLAY "THE PROGRAM HAS COMPLETED AND WILL NOW END".
END PROGRAM FIB.
*> From https://github.com/KnowledgePending/COBOL-Fibonacci-Sequence/blob/master/fib.cbl
Noctis Sereno
******************************************************************
* Author: Bryan Flood
* Date: 25/10/2018
* Purpose: Compute Fibonacci Numbers
* Tectonics: cobc
******************************************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. FIB.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
01 N0 BINARY-C-LONG VALUE 0.
01 N1 BINARY-C-LONG VALUE 1.
01 SWAP BINARY-C-LONG VALUE 1.
01 RESULT PIC Z(20)9.
01 I BINARY-C-LONG VALUE 0.
01 I-MAX BINARY-C-LONG VALUE 0.
01 LARGEST-N BINARY-C-LONG VALUE 92.
PROCEDURE DIVISION.
*> THIS IS WHERE THE LABELS GET CALLED
PERFORM MAIN
PERFORM ENDFIB
GOBACK.
*> THIS ACCEPTS INPUT AND DETERMINES THE OUTPUT USING A EVAL STMT
MAIN.
DISPLAY "ENTER N TO GENERATE THE FIBONACCI SEQUENCE"
ACCEPT I-MAX.
EVALUATE TRUE
WHEN I-MAX > LARGEST-N
PERFORM INVALIDN
WHEN I-MAX > 2
PERFORM CASEGREATERTHAN2
WHEN I-MAX = 2
PERFORM CASE2
WHEN I-MAX = 1
PERFORM CASE1
WHEN I-MAX = 0
PERFORM CASE0
WHEN OTHER
PERFORM INVALIDN
END-EVALUATE.
STOP RUN.
*> THE CASE FOR WHEN N = 0
CASE0.
MOVE N0 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 1
CASE1.
PERFORM CASE0
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 2
CASE2.
PERFORM CASE1
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N > 2
CASEGREATERTHAN2.
PERFORM CASE1
PERFORM VARYING I FROM 1 BY 1 UNTIL I = I-MAX
ADD N0 TO N1 GIVING SWAP
MOVE N1 TO N0
MOVE SWAP TO N1
MOVE SWAP TO RESULT
DISPLAY RESULT
END-PERFORM.
*> PROVIDE ERROR FOR INVALID INPUT
INVALIDN.
DISPLAY 'INVALID N VALUE. THE PROGRAM WILL NOW END'.
*> END THE PROGRAM WITH A MESSAGE
ENDFIB.
DISPLAY "THE PROGRAM HAS COMPLETED AND WILL NOW END".
END PROGRAM FIB.
*> From https://github.com/KnowledgePending/COBOL-Fibonacci-Sequence/blob/master/fib.cbl
Noctis Uva
******************************************************************
* Author: Bryan Flood
* Date: 25/10/2018
* Purpose: Compute Fibonacci Numbers
* Tectonics: cobc
******************************************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. FIB.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
01 N0 BINARY-C-LONG VALUE 0.
01 N1 BINARY-C-LONG VALUE 1.
01 SWAP BINARY-C-LONG VALUE 1.
01 RESULT PIC Z(20)9.
01 I BINARY-C-LONG VALUE 0.
01 I-MAX BINARY-C-LONG VALUE 0.
01 LARGEST-N BINARY-C-LONG VALUE 92.
PROCEDURE DIVISION.
*> THIS IS WHERE THE LABELS GET CALLED
PERFORM MAIN
PERFORM ENDFIB
GOBACK.
*> THIS ACCEPTS INPUT AND DETERMINES THE OUTPUT USING A EVAL STMT
MAIN.
DISPLAY "ENTER N TO GENERATE THE FIBONACCI SEQUENCE"
ACCEPT I-MAX.
EVALUATE TRUE
WHEN I-MAX > LARGEST-N
PERFORM INVALIDN
WHEN I-MAX > 2
PERFORM CASEGREATERTHAN2
WHEN I-MAX = 2
PERFORM CASE2
WHEN I-MAX = 1
PERFORM CASE1
WHEN I-MAX = 0
PERFORM CASE0
WHEN OTHER
PERFORM INVALIDN
END-EVALUATE.
STOP RUN.
*> THE CASE FOR WHEN N = 0
CASE0.
MOVE N0 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 1
CASE1.
PERFORM CASE0
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 2
CASE2.
PERFORM CASE1
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N > 2
CASEGREATERTHAN2.
PERFORM CASE1
PERFORM VARYING I FROM 1 BY 1 UNTIL I = I-MAX
ADD N0 TO N1 GIVING SWAP
MOVE N1 TO N0
MOVE SWAP TO N1
MOVE SWAP TO RESULT
DISPLAY RESULT
END-PERFORM.
*> PROVIDE ERROR FOR INVALID INPUT
INVALIDN.
DISPLAY 'INVALID N VALUE. THE PROGRAM WILL NOW END'.
*> END THE PROGRAM WITH A MESSAGE
ENDFIB.
DISPLAY "THE PROGRAM HAS COMPLETED AND WILL NOW END".
END PROGRAM FIB.
*> From https://github.com/KnowledgePending/COBOL-Fibonacci-Sequence/blob/master/fib.cbl
Noctis Viola
******************************************************************
* Author: Bryan Flood
* Date: 25/10/2018
* Purpose: Compute Fibonacci Numbers
* Tectonics: cobc
******************************************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. FIB.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
01 N0 BINARY-C-LONG VALUE 0.
01 N1 BINARY-C-LONG VALUE 1.
01 SWAP BINARY-C-LONG VALUE 1.
01 RESULT PIC Z(20)9.
01 I BINARY-C-LONG VALUE 0.
01 I-MAX BINARY-C-LONG VALUE 0.
01 LARGEST-N BINARY-C-LONG VALUE 92.
PROCEDURE DIVISION.
*> THIS IS WHERE THE LABELS GET CALLED
PERFORM MAIN
PERFORM ENDFIB
GOBACK.
*> THIS ACCEPTS INPUT AND DETERMINES THE OUTPUT USING A EVAL STMT
MAIN.
DISPLAY "ENTER N TO GENERATE THE FIBONACCI SEQUENCE"
ACCEPT I-MAX.
EVALUATE TRUE
WHEN I-MAX > LARGEST-N
PERFORM INVALIDN
WHEN I-MAX > 2
PERFORM CASEGREATERTHAN2
WHEN I-MAX = 2
PERFORM CASE2
WHEN I-MAX = 1
PERFORM CASE1
WHEN I-MAX = 0
PERFORM CASE0
WHEN OTHER
PERFORM INVALIDN
END-EVALUATE.
STOP RUN.
*> THE CASE FOR WHEN N = 0
CASE0.
MOVE N0 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 1
CASE1.
PERFORM CASE0
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 2
CASE2.
PERFORM CASE1
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N > 2
CASEGREATERTHAN2.
PERFORM CASE1
PERFORM VARYING I FROM 1 BY 1 UNTIL I = I-MAX
ADD N0 TO N1 GIVING SWAP
MOVE N1 TO N0
MOVE SWAP TO N1
MOVE SWAP TO RESULT
DISPLAY RESULT
END-PERFORM.
*> PROVIDE ERROR FOR INVALID INPUT
INVALIDN.
DISPLAY 'INVALID N VALUE. THE PROGRAM WILL NOW END'.
*> END THE PROGRAM WITH A MESSAGE
ENDFIB.
DISPLAY "THE PROGRAM HAS COMPLETED AND WILL NOW END".
END PROGRAM FIB.
*> From https://github.com/KnowledgePending/COBOL-Fibonacci-Sequence/blob/master/fib.cbl
Palenight
******************************************************************
* Author: Bryan Flood
* Date: 25/10/2018
* Purpose: Compute Fibonacci Numbers
* Tectonics: cobc
******************************************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. FIB.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
01 N0 BINARY-C-LONG VALUE 0.
01 N1 BINARY-C-LONG VALUE 1.
01 SWAP BINARY-C-LONG VALUE 1.
01 RESULT PIC Z(20)9.
01 I BINARY-C-LONG VALUE 0.
01 I-MAX BINARY-C-LONG VALUE 0.
01 LARGEST-N BINARY-C-LONG VALUE 92.
PROCEDURE DIVISION.
*> THIS IS WHERE THE LABELS GET CALLED
PERFORM MAIN
PERFORM ENDFIB
GOBACK.
*> THIS ACCEPTS INPUT AND DETERMINES THE OUTPUT USING A EVAL STMT
MAIN.
DISPLAY "ENTER N TO GENERATE THE FIBONACCI SEQUENCE"
ACCEPT I-MAX.
EVALUATE TRUE
WHEN I-MAX > LARGEST-N
PERFORM INVALIDN
WHEN I-MAX > 2
PERFORM CASEGREATERTHAN2
WHEN I-MAX = 2
PERFORM CASE2
WHEN I-MAX = 1
PERFORM CASE1
WHEN I-MAX = 0
PERFORM CASE0
WHEN OTHER
PERFORM INVALIDN
END-EVALUATE.
STOP RUN.
*> THE CASE FOR WHEN N = 0
CASE0.
MOVE N0 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 1
CASE1.
PERFORM CASE0
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 2
CASE2.
PERFORM CASE1
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N > 2
CASEGREATERTHAN2.
PERFORM CASE1
PERFORM VARYING I FROM 1 BY 1 UNTIL I = I-MAX
ADD N0 TO N1 GIVING SWAP
MOVE N1 TO N0
MOVE SWAP TO N1
MOVE SWAP TO RESULT
DISPLAY RESULT
END-PERFORM.
*> PROVIDE ERROR FOR INVALID INPUT
INVALIDN.
DISPLAY 'INVALID N VALUE. THE PROGRAM WILL NOW END'.
*> END THE PROGRAM WITH A MESSAGE
ENDFIB.
DISPLAY "THE PROGRAM HAS COMPLETED AND WILL NOW END".
END PROGRAM FIB.
*> From https://github.com/KnowledgePending/COBOL-Fibonacci-Sequence/blob/master/fib.cbl
Pico 8
******************************************************************
* Author: Bryan Flood
* Date: 25/10/2018
* Purpose: Compute Fibonacci Numbers
* Tectonics: cobc
******************************************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. FIB.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
01 N0 BINARY-C-LONG VALUE 0.
01 N1 BINARY-C-LONG VALUE 1.
01 SWAP BINARY-C-LONG VALUE 1.
01 RESULT PIC Z(20)9.
01 I BINARY-C-LONG VALUE 0.
01 I-MAX BINARY-C-LONG VALUE 0.
01 LARGEST-N BINARY-C-LONG VALUE 92.
PROCEDURE DIVISION.
*> THIS IS WHERE THE LABELS GET CALLED
PERFORM MAIN
PERFORM ENDFIB
GOBACK.
*> THIS ACCEPTS INPUT AND DETERMINES THE OUTPUT USING A EVAL STMT
MAIN.
DISPLAY "ENTER N TO GENERATE THE FIBONACCI SEQUENCE"
ACCEPT I-MAX.
EVALUATE TRUE
WHEN I-MAX > LARGEST-N
PERFORM INVALIDN
WHEN I-MAX > 2
PERFORM CASEGREATERTHAN2
WHEN I-MAX = 2
PERFORM CASE2
WHEN I-MAX = 1
PERFORM CASE1
WHEN I-MAX = 0
PERFORM CASE0
WHEN OTHER
PERFORM INVALIDN
END-EVALUATE.
STOP RUN.
*> THE CASE FOR WHEN N = 0
CASE0.
MOVE N0 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 1
CASE1.
PERFORM CASE0
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 2
CASE2.
PERFORM CASE1
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N > 2
CASEGREATERTHAN2.
PERFORM CASE1
PERFORM VARYING I FROM 1 BY 1 UNTIL I = I-MAX
ADD N0 TO N1 GIVING SWAP
MOVE N1 TO N0
MOVE SWAP TO N1
MOVE SWAP TO RESULT
DISPLAY RESULT
END-PERFORM.
*> PROVIDE ERROR FOR INVALID INPUT
INVALIDN.
DISPLAY 'INVALID N VALUE. THE PROGRAM WILL NOW END'.
*> END THE PROGRAM WITH A MESSAGE
ENDFIB.
DISPLAY "THE PROGRAM HAS COMPLETED AND WILL NOW END".
END PROGRAM FIB.
*> From https://github.com/KnowledgePending/COBOL-Fibonacci-Sequence/blob/master/fib.cbl
Shades of Purple
******************************************************************
* Author: Bryan Flood
* Date: 25/10/2018
* Purpose: Compute Fibonacci Numbers
* Tectonics: cobc
******************************************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. FIB.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
01 N0 BINARY-C-LONG VALUE 0.
01 N1 BINARY-C-LONG VALUE 1.
01 SWAP BINARY-C-LONG VALUE 1.
01 RESULT PIC Z(20)9.
01 I BINARY-C-LONG VALUE 0.
01 I-MAX BINARY-C-LONG VALUE 0.
01 LARGEST-N BINARY-C-LONG VALUE 92.
PROCEDURE DIVISION.
*> THIS IS WHERE THE LABELS GET CALLED
PERFORM MAIN
PERFORM ENDFIB
GOBACK.
*> THIS ACCEPTS INPUT AND DETERMINES THE OUTPUT USING A EVAL STMT
MAIN.
DISPLAY "ENTER N TO GENERATE THE FIBONACCI SEQUENCE"
ACCEPT I-MAX.
EVALUATE TRUE
WHEN I-MAX > LARGEST-N
PERFORM INVALIDN
WHEN I-MAX > 2
PERFORM CASEGREATERTHAN2
WHEN I-MAX = 2
PERFORM CASE2
WHEN I-MAX = 1
PERFORM CASE1
WHEN I-MAX = 0
PERFORM CASE0
WHEN OTHER
PERFORM INVALIDN
END-EVALUATE.
STOP RUN.
*> THE CASE FOR WHEN N = 0
CASE0.
MOVE N0 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 1
CASE1.
PERFORM CASE0
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 2
CASE2.
PERFORM CASE1
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N > 2
CASEGREATERTHAN2.
PERFORM CASE1
PERFORM VARYING I FROM 1 BY 1 UNTIL I = I-MAX
ADD N0 TO N1 GIVING SWAP
MOVE N1 TO N0
MOVE SWAP TO N1
MOVE SWAP TO RESULT
DISPLAY RESULT
END-PERFORM.
*> PROVIDE ERROR FOR INVALID INPUT
INVALIDN.
DISPLAY 'INVALID N VALUE. THE PROGRAM WILL NOW END'.
*> END THE PROGRAM WITH A MESSAGE
ENDFIB.
DISPLAY "THE PROGRAM HAS COMPLETED AND WILL NOW END".
END PROGRAM FIB.
*> From https://github.com/KnowledgePending/COBOL-Fibonacci-Sequence/blob/master/fib.cbl
Shades of Purple SD
******************************************************************
* Author: Bryan Flood
* Date: 25/10/2018
* Purpose: Compute Fibonacci Numbers
* Tectonics: cobc
******************************************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. FIB.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
01 N0 BINARY-C-LONG VALUE 0.
01 N1 BINARY-C-LONG VALUE 1.
01 SWAP BINARY-C-LONG VALUE 1.
01 RESULT PIC Z(20)9.
01 I BINARY-C-LONG VALUE 0.
01 I-MAX BINARY-C-LONG VALUE 0.
01 LARGEST-N BINARY-C-LONG VALUE 92.
PROCEDURE DIVISION.
*> THIS IS WHERE THE LABELS GET CALLED
PERFORM MAIN
PERFORM ENDFIB
GOBACK.
*> THIS ACCEPTS INPUT AND DETERMINES THE OUTPUT USING A EVAL STMT
MAIN.
DISPLAY "ENTER N TO GENERATE THE FIBONACCI SEQUENCE"
ACCEPT I-MAX.
EVALUATE TRUE
WHEN I-MAX > LARGEST-N
PERFORM INVALIDN
WHEN I-MAX > 2
PERFORM CASEGREATERTHAN2
WHEN I-MAX = 2
PERFORM CASE2
WHEN I-MAX = 1
PERFORM CASE1
WHEN I-MAX = 0
PERFORM CASE0
WHEN OTHER
PERFORM INVALIDN
END-EVALUATE.
STOP RUN.
*> THE CASE FOR WHEN N = 0
CASE0.
MOVE N0 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 1
CASE1.
PERFORM CASE0
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 2
CASE2.
PERFORM CASE1
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N > 2
CASEGREATERTHAN2.
PERFORM CASE1
PERFORM VARYING I FROM 1 BY 1 UNTIL I = I-MAX
ADD N0 TO N1 GIVING SWAP
MOVE N1 TO N0
MOVE SWAP TO N1
MOVE SWAP TO RESULT
DISPLAY RESULT
END-PERFORM.
*> PROVIDE ERROR FOR INVALID INPUT
INVALIDN.
DISPLAY 'INVALID N VALUE. THE PROGRAM WILL NOW END'.
*> END THE PROGRAM WITH A MESSAGE
ENDFIB.
DISPLAY "THE PROGRAM HAS COMPLETED AND WILL NOW END".
END PROGRAM FIB.
*> From https://github.com/KnowledgePending/COBOL-Fibonacci-Sequence/blob/master/fib.cbl
Synthwave '84
******************************************************************
* Author: Bryan Flood
* Date: 25/10/2018
* Purpose: Compute Fibonacci Numbers
* Tectonics: cobc
******************************************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. FIB.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
01 N0 BINARY-C-LONG VALUE 0.
01 N1 BINARY-C-LONG VALUE 1.
01 SWAP BINARY-C-LONG VALUE 1.
01 RESULT PIC Z(20)9.
01 I BINARY-C-LONG VALUE 0.
01 I-MAX BINARY-C-LONG VALUE 0.
01 LARGEST-N BINARY-C-LONG VALUE 92.
PROCEDURE DIVISION.
*> THIS IS WHERE THE LABELS GET CALLED
PERFORM MAIN
PERFORM ENDFIB
GOBACK.
*> THIS ACCEPTS INPUT AND DETERMINES THE OUTPUT USING A EVAL STMT
MAIN.
DISPLAY "ENTER N TO GENERATE THE FIBONACCI SEQUENCE"
ACCEPT I-MAX.
EVALUATE TRUE
WHEN I-MAX > LARGEST-N
PERFORM INVALIDN
WHEN I-MAX > 2
PERFORM CASEGREATERTHAN2
WHEN I-MAX = 2
PERFORM CASE2
WHEN I-MAX = 1
PERFORM CASE1
WHEN I-MAX = 0
PERFORM CASE0
WHEN OTHER
PERFORM INVALIDN
END-EVALUATE.
STOP RUN.
*> THE CASE FOR WHEN N = 0
CASE0.
MOVE N0 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 1
CASE1.
PERFORM CASE0
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 2
CASE2.
PERFORM CASE1
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N > 2
CASEGREATERTHAN2.
PERFORM CASE1
PERFORM VARYING I FROM 1 BY 1 UNTIL I = I-MAX
ADD N0 TO N1 GIVING SWAP
MOVE N1 TO N0
MOVE SWAP TO N1
MOVE SWAP TO RESULT
DISPLAY RESULT
END-PERFORM.
*> PROVIDE ERROR FOR INVALID INPUT
INVALIDN.
DISPLAY 'INVALID N VALUE. THE PROGRAM WILL NOW END'.
*> END THE PROGRAM WITH A MESSAGE
ENDFIB.
DISPLAY "THE PROGRAM HAS COMPLETED AND WILL NOW END".
END PROGRAM FIB.
*> From https://github.com/KnowledgePending/COBOL-Fibonacci-Sequence/blob/master/fib.cbl
Tokyo Night
******************************************************************
* Author: Bryan Flood
* Date: 25/10/2018
* Purpose: Compute Fibonacci Numbers
* Tectonics: cobc
******************************************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. FIB.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
01 N0 BINARY-C-LONG VALUE 0.
01 N1 BINARY-C-LONG VALUE 1.
01 SWAP BINARY-C-LONG VALUE 1.
01 RESULT PIC Z(20)9.
01 I BINARY-C-LONG VALUE 0.
01 I-MAX BINARY-C-LONG VALUE 0.
01 LARGEST-N BINARY-C-LONG VALUE 92.
PROCEDURE DIVISION.
*> THIS IS WHERE THE LABELS GET CALLED
PERFORM MAIN
PERFORM ENDFIB
GOBACK.
*> THIS ACCEPTS INPUT AND DETERMINES THE OUTPUT USING A EVAL STMT
MAIN.
DISPLAY "ENTER N TO GENERATE THE FIBONACCI SEQUENCE"
ACCEPT I-MAX.
EVALUATE TRUE
WHEN I-MAX > LARGEST-N
PERFORM INVALIDN
WHEN I-MAX > 2
PERFORM CASEGREATERTHAN2
WHEN I-MAX = 2
PERFORM CASE2
WHEN I-MAX = 1
PERFORM CASE1
WHEN I-MAX = 0
PERFORM CASE0
WHEN OTHER
PERFORM INVALIDN
END-EVALUATE.
STOP RUN.
*> THE CASE FOR WHEN N = 0
CASE0.
MOVE N0 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 1
CASE1.
PERFORM CASE0
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 2
CASE2.
PERFORM CASE1
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N > 2
CASEGREATERTHAN2.
PERFORM CASE1
PERFORM VARYING I FROM 1 BY 1 UNTIL I = I-MAX
ADD N0 TO N1 GIVING SWAP
MOVE N1 TO N0
MOVE SWAP TO N1
MOVE SWAP TO RESULT
DISPLAY RESULT
END-PERFORM.
*> PROVIDE ERROR FOR INVALID INPUT
INVALIDN.
DISPLAY 'INVALID N VALUE. THE PROGRAM WILL NOW END'.
*> END THE PROGRAM WITH A MESSAGE
ENDFIB.
DISPLAY "THE PROGRAM HAS COMPLETED AND WILL NOW END".
END PROGRAM FIB.
*> From https://github.com/KnowledgePending/COBOL-Fibonacci-Sequence/blob/master/fib.cbl
Tokyo Night Storm
******************************************************************
* Author: Bryan Flood
* Date: 25/10/2018
* Purpose: Compute Fibonacci Numbers
* Tectonics: cobc
******************************************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. FIB.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
01 N0 BINARY-C-LONG VALUE 0.
01 N1 BINARY-C-LONG VALUE 1.
01 SWAP BINARY-C-LONG VALUE 1.
01 RESULT PIC Z(20)9.
01 I BINARY-C-LONG VALUE 0.
01 I-MAX BINARY-C-LONG VALUE 0.
01 LARGEST-N BINARY-C-LONG VALUE 92.
PROCEDURE DIVISION.
*> THIS IS WHERE THE LABELS GET CALLED
PERFORM MAIN
PERFORM ENDFIB
GOBACK.
*> THIS ACCEPTS INPUT AND DETERMINES THE OUTPUT USING A EVAL STMT
MAIN.
DISPLAY "ENTER N TO GENERATE THE FIBONACCI SEQUENCE"
ACCEPT I-MAX.
EVALUATE TRUE
WHEN I-MAX > LARGEST-N
PERFORM INVALIDN
WHEN I-MAX > 2
PERFORM CASEGREATERTHAN2
WHEN I-MAX = 2
PERFORM CASE2
WHEN I-MAX = 1
PERFORM CASE1
WHEN I-MAX = 0
PERFORM CASE0
WHEN OTHER
PERFORM INVALIDN
END-EVALUATE.
STOP RUN.
*> THE CASE FOR WHEN N = 0
CASE0.
MOVE N0 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 1
CASE1.
PERFORM CASE0
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 2
CASE2.
PERFORM CASE1
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N > 2
CASEGREATERTHAN2.
PERFORM CASE1
PERFORM VARYING I FROM 1 BY 1 UNTIL I = I-MAX
ADD N0 TO N1 GIVING SWAP
MOVE N1 TO N0
MOVE SWAP TO N1
MOVE SWAP TO RESULT
DISPLAY RESULT
END-PERFORM.
*> PROVIDE ERROR FOR INVALID INPUT
INVALIDN.
DISPLAY 'INVALID N VALUE. THE PROGRAM WILL NOW END'.
*> END THE PROGRAM WITH A MESSAGE
ENDFIB.
DISPLAY "THE PROGRAM HAS COMPLETED AND WILL NOW END".
END PROGRAM FIB.
*> From https://github.com/KnowledgePending/COBOL-Fibonacci-Sequence/blob/master/fib.cbl
Tokyo Night Light
******************************************************************
* Author: Bryan Flood
* Date: 25/10/2018
* Purpose: Compute Fibonacci Numbers
* Tectonics: cobc
******************************************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. FIB.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
01 N0 BINARY-C-LONG VALUE 0.
01 N1 BINARY-C-LONG VALUE 1.
01 SWAP BINARY-C-LONG VALUE 1.
01 RESULT PIC Z(20)9.
01 I BINARY-C-LONG VALUE 0.
01 I-MAX BINARY-C-LONG VALUE 0.
01 LARGEST-N BINARY-C-LONG VALUE 92.
PROCEDURE DIVISION.
*> THIS IS WHERE THE LABELS GET CALLED
PERFORM MAIN
PERFORM ENDFIB
GOBACK.
*> THIS ACCEPTS INPUT AND DETERMINES THE OUTPUT USING A EVAL STMT
MAIN.
DISPLAY "ENTER N TO GENERATE THE FIBONACCI SEQUENCE"
ACCEPT I-MAX.
EVALUATE TRUE
WHEN I-MAX > LARGEST-N
PERFORM INVALIDN
WHEN I-MAX > 2
PERFORM CASEGREATERTHAN2
WHEN I-MAX = 2
PERFORM CASE2
WHEN I-MAX = 1
PERFORM CASE1
WHEN I-MAX = 0
PERFORM CASE0
WHEN OTHER
PERFORM INVALIDN
END-EVALUATE.
STOP RUN.
*> THE CASE FOR WHEN N = 0
CASE0.
MOVE N0 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 1
CASE1.
PERFORM CASE0
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 2
CASE2.
PERFORM CASE1
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N > 2
CASEGREATERTHAN2.
PERFORM CASE1
PERFORM VARYING I FROM 1 BY 1 UNTIL I = I-MAX
ADD N0 TO N1 GIVING SWAP
MOVE N1 TO N0
MOVE SWAP TO N1
MOVE SWAP TO RESULT
DISPLAY RESULT
END-PERFORM.
*> PROVIDE ERROR FOR INVALID INPUT
INVALIDN.
DISPLAY 'INVALID N VALUE. THE PROGRAM WILL NOW END'.
*> END THE PROGRAM WITH A MESSAGE
ENDFIB.
DISPLAY "THE PROGRAM HAS COMPLETED AND WILL NOW END".
END PROGRAM FIB.
*> From https://github.com/KnowledgePending/COBOL-Fibonacci-Sequence/blob/master/fib.cbl
Winter is Coming
******************************************************************
* Author: Bryan Flood
* Date: 25/10/2018
* Purpose: Compute Fibonacci Numbers
* Tectonics: cobc
******************************************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. FIB.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
01 N0 BINARY-C-LONG VALUE 0.
01 N1 BINARY-C-LONG VALUE 1.
01 SWAP BINARY-C-LONG VALUE 1.
01 RESULT PIC Z(20)9.
01 I BINARY-C-LONG VALUE 0.
01 I-MAX BINARY-C-LONG VALUE 0.
01 LARGEST-N BINARY-C-LONG VALUE 92.
PROCEDURE DIVISION.
*> THIS IS WHERE THE LABELS GET CALLED
PERFORM MAIN
PERFORM ENDFIB
GOBACK.
*> THIS ACCEPTS INPUT AND DETERMINES THE OUTPUT USING A EVAL STMT
MAIN.
DISPLAY "ENTER N TO GENERATE THE FIBONACCI SEQUENCE"
ACCEPT I-MAX.
EVALUATE TRUE
WHEN I-MAX > LARGEST-N
PERFORM INVALIDN
WHEN I-MAX > 2
PERFORM CASEGREATERTHAN2
WHEN I-MAX = 2
PERFORM CASE2
WHEN I-MAX = 1
PERFORM CASE1
WHEN I-MAX = 0
PERFORM CASE0
WHEN OTHER
PERFORM INVALIDN
END-EVALUATE.
STOP RUN.
*> THE CASE FOR WHEN N = 0
CASE0.
MOVE N0 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 1
CASE1.
PERFORM CASE0
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 2
CASE2.
PERFORM CASE1
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N > 2
CASEGREATERTHAN2.
PERFORM CASE1
PERFORM VARYING I FROM 1 BY 1 UNTIL I = I-MAX
ADD N0 TO N1 GIVING SWAP
MOVE N1 TO N0
MOVE SWAP TO N1
MOVE SWAP TO RESULT
DISPLAY RESULT
END-PERFORM.
*> PROVIDE ERROR FOR INVALID INPUT
INVALIDN.
DISPLAY 'INVALID N VALUE. THE PROGRAM WILL NOW END'.
*> END THE PROGRAM WITH A MESSAGE
ENDFIB.
DISPLAY "THE PROGRAM HAS COMPLETED AND WILL NOW END".
END PROGRAM FIB.
*> From https://github.com/KnowledgePending/COBOL-Fibonacci-Sequence/blob/master/fib.cbl
Winter is Coming Light
******************************************************************
* Author: Bryan Flood
* Date: 25/10/2018
* Purpose: Compute Fibonacci Numbers
* Tectonics: cobc
******************************************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. FIB.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
01 N0 BINARY-C-LONG VALUE 0.
01 N1 BINARY-C-LONG VALUE 1.
01 SWAP BINARY-C-LONG VALUE 1.
01 RESULT PIC Z(20)9.
01 I BINARY-C-LONG VALUE 0.
01 I-MAX BINARY-C-LONG VALUE 0.
01 LARGEST-N BINARY-C-LONG VALUE 92.
PROCEDURE DIVISION.
*> THIS IS WHERE THE LABELS GET CALLED
PERFORM MAIN
PERFORM ENDFIB
GOBACK.
*> THIS ACCEPTS INPUT AND DETERMINES THE OUTPUT USING A EVAL STMT
MAIN.
DISPLAY "ENTER N TO GENERATE THE FIBONACCI SEQUENCE"
ACCEPT I-MAX.
EVALUATE TRUE
WHEN I-MAX > LARGEST-N
PERFORM INVALIDN
WHEN I-MAX > 2
PERFORM CASEGREATERTHAN2
WHEN I-MAX = 2
PERFORM CASE2
WHEN I-MAX = 1
PERFORM CASE1
WHEN I-MAX = 0
PERFORM CASE0
WHEN OTHER
PERFORM INVALIDN
END-EVALUATE.
STOP RUN.
*> THE CASE FOR WHEN N = 0
CASE0.
MOVE N0 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 1
CASE1.
PERFORM CASE0
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 2
CASE2.
PERFORM CASE1
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N > 2
CASEGREATERTHAN2.
PERFORM CASE1
PERFORM VARYING I FROM 1 BY 1 UNTIL I = I-MAX
ADD N0 TO N1 GIVING SWAP
MOVE N1 TO N0
MOVE SWAP TO N1
MOVE SWAP TO RESULT
DISPLAY RESULT
END-PERFORM.
*> PROVIDE ERROR FOR INVALID INPUT
INVALIDN.
DISPLAY 'INVALID N VALUE. THE PROGRAM WILL NOW END'.
*> END THE PROGRAM WITH A MESSAGE
ENDFIB.
DISPLAY "THE PROGRAM HAS COMPLETED AND WILL NOW END".
END PROGRAM FIB.
*> From https://github.com/KnowledgePending/COBOL-Fibonacci-Sequence/blob/master/fib.cbl
Winter is Coming Dark
******************************************************************
* Author: Bryan Flood
* Date: 25/10/2018
* Purpose: Compute Fibonacci Numbers
* Tectonics: cobc
******************************************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. FIB.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
01 N0 BINARY-C-LONG VALUE 0.
01 N1 BINARY-C-LONG VALUE 1.
01 SWAP BINARY-C-LONG VALUE 1.
01 RESULT PIC Z(20)9.
01 I BINARY-C-LONG VALUE 0.
01 I-MAX BINARY-C-LONG VALUE 0.
01 LARGEST-N BINARY-C-LONG VALUE 92.
PROCEDURE DIVISION.
*> THIS IS WHERE THE LABELS GET CALLED
PERFORM MAIN
PERFORM ENDFIB
GOBACK.
*> THIS ACCEPTS INPUT AND DETERMINES THE OUTPUT USING A EVAL STMT
MAIN.
DISPLAY "ENTER N TO GENERATE THE FIBONACCI SEQUENCE"
ACCEPT I-MAX.
EVALUATE TRUE
WHEN I-MAX > LARGEST-N
PERFORM INVALIDN
WHEN I-MAX > 2
PERFORM CASEGREATERTHAN2
WHEN I-MAX = 2
PERFORM CASE2
WHEN I-MAX = 1
PERFORM CASE1
WHEN I-MAX = 0
PERFORM CASE0
WHEN OTHER
PERFORM INVALIDN
END-EVALUATE.
STOP RUN.
*> THE CASE FOR WHEN N = 0
CASE0.
MOVE N0 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 1
CASE1.
PERFORM CASE0
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N = 2
CASE2.
PERFORM CASE1
MOVE N1 TO RESULT.
DISPLAY RESULT.
*> THE CASE FOR WHEN N > 2
CASEGREATERTHAN2.
PERFORM CASE1
PERFORM VARYING I FROM 1 BY 1 UNTIL I = I-MAX
ADD N0 TO N1 GIVING SWAP
MOVE N1 TO N0
MOVE SWAP TO N1
MOVE SWAP TO RESULT
DISPLAY RESULT
END-PERFORM.
*> PROVIDE ERROR FOR INVALID INPUT
INVALIDN.
DISPLAY 'INVALID N VALUE. THE PROGRAM WILL NOW END'.
*> END THE PROGRAM WITH A MESSAGE
ENDFIB.
DISPLAY "THE PROGRAM HAS COMPLETED AND WILL NOW END".
END PROGRAM FIB.
*> From https://github.com/KnowledgePending/COBOL-Fibonacci-Sequence/blob/master/fib.cbl