|
|
DataMuseum.dkPresents historical artifacts from the history of: CP/M |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CP/M Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 5632 (0x1600)
Types: TextFile
Names: »OPG3.LST«
└─⟦c154ac35e⟧ Bits:30002656 COBOL-programmer til undervisning
└─⟦this⟧ »OPG3.LST«
\f
* Level II COBOL V2.1 OPG3.CBL Page 0001
*
* Options:
IDENTIFICATION DIVISION.
PROGRAM-ID. OPG3.
AUTHOR. HOLD 4.
DATE-WRITTEN. 1/10/85.
DATE-COMPILED. 1/10/85.
*
* PROGRAMMET INDLÆSER PERSON DATA FRA SKÆRMEN
* OG DANNER EN FIL -PERSON.TRA-.
* PROGRAMMET STOPPER VED INDTASTNING AF 9(10) I
* PERSON NUMMER FELTET.
*
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. PICCOLINE.
SPECIAL-NAMES. CONSOLE IS CRT.
*
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT UDFIL ASSIGN TO "PERSON.TRA".
*
DATA DIVISION.
FILE SECTION.
FD UDFIL
LABEL RECORD IS STANDARD.
*
01 PERSREG.
02 PERS-NR PIC 9(10).
02 PERS-FNVN PIC X(15).
02 PERS-EFNVN PIC X(20).
02 PERS-GNVN PIC X(20).
02 PERS-POSTNR PIC 9(4).
02 PERS-BYNAVN PIC X(20).
02 PERS-TLFNR PIC 9(8).
*
WORKING-STORAGE SECTION.
01 PERSREG1.
02 PERS-NR1 PIC 9(10).
02 PERS-FNVN1 PIC X(15).
02 PERS-EFNVN1 PIC X(20).
02 PERS-GNVN1 PIC X(20).
02 PERS-POSTNR1 PIC 9(4).
02 PERS-BYNAVN1 PIC X(20).
02 PERS-TLFNR1 PIC 9(8).
*
01 AC-NR PIC 9(10).
01 PERSONNR REDEFINES AC-NR.
02 CIF PIC 9 OCCURS 10 TIMES.
01 TAELLER PIC 999.
01 HELTAL PIC 99.
01 REST PIC 99.
*
*
PROCEDURE DIVISION.
STYRINGS SECTION.
STYR-IND.
PERFORM INIT.
PERFORM BEHANDL1.
PERFORM LUK.
DISPLAY SPACE.
\f
* Level II COBOL V2.1 OPG3.CBL Page 0002
*
DISPLAY "PROGRAM SLUT" AT 1230.
STOP RUN.
STYR-UD.
EXIT.
*
*
INIT SECTION.
INIT-IND.
OPEN EXTEND UDFIL.
PERFORM SKAERM.
INIT-UD.
EXIT.
*
*
BEHANDL1 SECTION.
BEH-IND.
ACCEPT AC-NR AT 0527.
PERFORM BEHANDL2 UNTIL AC-NR = 9999999999.
BEH-UD.
EXIT.
*
*
BEHANDL2 SECTION.
BEH2-IND.
MOVE 1 TO REST.
PERFORM TEST UNTIL REST = 0.
MOVE AC-NR TO PERS-NR1.
PERFORM NAVN.
PERFORM POST UNTIL (PERS-POSTNR1 > 1000)
AND ( PERS-POSTNR1 < 9999 ).
PERFORM BY-TLF.
PERFORM SKRIV.
PERFORM SKAERM.
ACCEPT AC-NR AT 0527.
BEH2-UD.
EXIT.
*
*
SKAERM SECTION.
SK-IND.
DISPLAY SPACE.
MOVE SPACE TO PERSREG1.
DISPLAY "INDTAST PERSONNUMMER: " AT 0501.
DISPLAY "INDTAST FORNAVN: " AT 0701.
DISPLAY "INDTAST EFTERNAVN: " AT 0901.
DISPLAY "INDTAST GADENAVN: " AT 1101.
DISPLAY "INDTAST POSTNUMMER: " AT 1301.
DISPLAY "INDTAST BYNAVN: " AT 1501.
DISPLAY "INDTAST TELEFONNUMMER: " AT 1701.
SK-UD.
EXIT.
*
*
TEST SECTION.
TST-IND.
COMPUTE TAELLER = CIF(1) * 4 + CIF(2) * 3 + CIF(3) * 2
+ CIF(4) * 7 + CIF(5) * 6 + CIF(6) * 5
+ CIF(7) * 4 + CIF(8) * 3 + CIF(9) * 2
+ CIF(10).
\f
* Level II COBOL V2.1 OPG3.CBL Page 0003
*
DIVIDE 11 INTO TAELLER GIVING HELTAL REMAINDER REST.
IF (REST > 0) DISPLAY "GALT NUMMER TAST NYT: "
AT 0542
ACCEPT AC-NR AT 0564.
TST-UD.
EXIT.
*
*
NAVN SECTION.
NAVN-IND.
ACCEPT PERS-FNVN1 AT 0727.
ACCEPT PERS-EFNVN1 AT 0927.
ACCEPT PERS-GNVN1 AT 1127.
NAVN-UD.
EXIT.
*
*
POST SECTION.
POST-IND.
ACCEPT PERS-POSTNR1 AT 1327.
IF (PERS-POSTNR1 < 1000 ) OR (PERS-POSTNR1 > 9998 )
DISPLAY "GALT NUMMER TAST NYT: " AT 1334
ACCEPT PERS-POSTNR1 AT 1355.
POST-UD.
EXIT.
*
*
BY-TLF SECTION.
BYTLF-IND.
ACCEPT PERS-BYNAVN1 AT 1527.
ACCEPT PERS-TLFNR1 AT 1727.
BYTLF-UD.
EXIT.
*
*
SKRIV SECTION.
SKRIV-IND.
MOVE PERSREG1 TO PERSREG.
WRITE PERSREG.
SKRIV-UD.
EXIT.
*
*
LUK SECTION.
LUK-IND.
CLOSE UDFIL.
LUK-UD.
EXIT.
* Level II COBOL V2.1 REVISION 9 URN EY/0011/GA
* Compiler Copyright (C) 1983 Micro Focus Ltd
*
* ERRORS=00000 DATA=01024 CODE=01280 DICT=01019:60788/61807 GSA FLAGS = OFF
«eof»