====== 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