====== COBOL: Fakultät ======
Programm zur Fakultätsberechnung in COBOL. Es wird das FIXED-Format verwendet.
===== Programmcode =====
IDENTIFICATION DIVISION.
***************************
PROGRAM-ID. FAKULT.
* AUTHOR: Stefan Naumann
* DATA: 27.09.2015
ENVIRONMENT DIVISION.
************************
CONFIGURATION SECTION.
SOURCE-COMPUTER. IBM-PC.
OBJECT-COMPUTER. IBM-PC.
DATA DIVISION.
*****************
WORKING-STORAGE SECTION.
01 N PIC IS 99 VALUE IS 1.
01 N-OUT PIC IS Z9.
* 10^18 ist die maximal darstellbare Zahl in COBOL (74)
01 FAK PIC IS 9(18) VALUE IS 1.
01 FAK-OUT PIC IS Z(17)9.
01 N-ENDE PIC IS 99.
PROCEDURE DIVISION.
**********************
anfang.
display "Wie weit?".
accept N-ENDE.
fakultaet.
multiply N by FAK, ON SIZE ERROR go to size-error.
move FAK to FAK-OUT.
move N to N-OUT.
display "N=",N-OUT, " : N!=", FAK-OUT.
add 1 to N.
if (N>N-ENDE)
go to ende.
go to fakultaet.
size-error.
display "Die Zahl passt nicht mehr in 10 ^ 18 Ziffern".
go to ende.
ende.
STOP RUN.
===== Kompilierung =====
Mittels open-cobol:
cobc -x -Wall fak.cob
===== Ausgabe =====
Das Programm wird zunächst den Endpunkt abfragen, und bis zu diesem N die Fakultät von N berechnen.
Wie weit?
12
N= 1 : N!= 1
N= 2 : N!= 2
N= 3 : N!= 6
N= 4 : N!= 24
N= 5 : N!= 120
N= 6 : N!= 720
N= 7 : N!= 5040
N= 8 : N!= 40320
N= 9 : N!= 362880
N=10 : N!= 3628800
N=11 : N!= 39916800
N=12 : N!= 479001600