Created
October 30, 2011 21:55
-
-
Save botic/1326503 to your computer and use it in GitHub Desktop.
COBOL Code aus der guten alten HTL-Zeit.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| IDENTIFICATION DIVISION. | |
| PROGRAM-ID. HASH. | |
| AUTHOR. Philipp Nderer. | |
| DATE-WRITTEN. 02-11-26. | |
| DATE-COMPILED. | |
| ENVIRONMENT DIVISION. | |
| INPUT-OUTPUT SECTION. | |
| FILE-CONTROL. | |
| SELECT HASHREL ASSIGN TO "HASHREL.DAT" | |
| ORGANIZATION IS RELATIVE | |
| ACCESS MODE IS RANDOM | |
| RELATIVE KEY IS HASHKEY | |
| FILE STATUS IS W-IOSTAT. | |
| SELECT HASHOVERFLOW ASSIGN TO "HASHOVERFLOW.DAT" | |
| ORGANIZATION IS SEQUENTIAL | |
| FILE STATUS IS W-IOSTAT. | |
| DATA DIVISION. | |
| FILE SECTION. | |
| FD HASHREL. | |
| 01 HASHSATZ. | |
| 02 HARTNR PIC 999. | |
| 02 HNAME PIC X(15). | |
| FD HASHOVERFLOW. | |
| 01 HOSATZ. | |
| 02 HOARTNR PIC 999. | |
| 02 HONAME PIC X(15). | |
| WORKING-STORAGE SECTION. | |
| 01 HHELP. | |
| 02 HHARTNR PIC 999. | |
| 02 HHNAME PIC X(15). | |
| 01 W-IOSTAT. | |
| 02 W-IOSTAT1 PIC X. | |
| 02 W-IOSTAT2 PIC X. | |
| 01 ARTNUMMER PIC 999. | |
| 01 ARTNAME PIC X(15). | |
| 01 CONTR PIC 9 VALUE 1. | |
| 01 HASHKEY PIC 999. | |
| 01 HELPKEY PIC 99999. | |
| PROCEDURE DIVISION. | |
| INIT. | |
| OPEN I-O HASHREL. | |
| OPEN OUTPUT HASHOVERFLOW. | |
| DATEI-BESCHREIBEN. | |
| PERFORM UNTIL CONTR = 0 | |
| DISPLAY "NUMMER >> " | |
| ACCEPT ARTNUMMER | |
| DISPLAY SPACES | |
| DISPLAY "NAME >> " | |
| ACCEPT ARTNAME | |
| DISPLAY SPACES | |
| DISPLAY "Weiter? (1..JA / 0..NEIN)" | |
| * Variable dient zum Ermitteln, ob der Benutzer fortfahren will | |
| ACCEPT CONTR | |
| DISPLAY SPACES | |
| * Ermitten des verhashten Schuessels indem man einfach den | |
| * Rest einer Division als Schluessel verwendet. | |
| DIVIDE 999 INTO ARTNUMMER | |
| GIVING HELPKEY | |
| REMAINDER HASHKEY | |
| ON SIZE ERROR PERFORM BEENDEN | |
| END-DIVIDE | |
| * Speichern der eingegebenen Daten in die Felder der Dateien | |
| MOVE ARTNUMMER TO HARTNR | |
| MOVE ARTNAME TO HNAME | |
| MOVE ARTNUMMER TO HOARTNR | |
| MOVE ARTNAME TO HONAME | |
| * Man versucht an der durch das Hashverfahren ermittelten | |
| * Stelle einen Lesevorgang durchzufuehren. Falls dieser | |
| * misslingt, wird in die relative Datei geschrieben. | |
| * Bei Erfolg in die sequentielle Datei, da der Platz | |
| * bereits belegt ist. | |
| READ HASHREL RECORD INTO HHELP | |
| INVALID KEY WRITE HASHSATZ END-WRITE | |
| NOT INVALID KEY WRITE HOSATZ END-WRITE | |
| END-READ | |
| END-PERFORM. | |
| BEENDEN. | |
| CLOSE HASHREL. | |
| CLOSE HASHOVERFLOW. | |
| STOP RUN. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| IDENTIFICATION DIVISION. | |
| PROGRAM-ID. | |
| RECHEN. | |
| AUTHOR. | |
| PHILIPP NADERER. | |
| ENVIRONMENT DIVISION. | |
| DATA DIVISION. | |
| WORKING-STORAGE SECTION. | |
| 01 ZAHLA PIC S9(5)V99. | |
| 01 ZAHLB PIC S9(5)V99. | |
| 01 ERGEB PIC -(10)9.99. | |
| 01 RECHE PIC X. | |
| PROCEDURE DIVISION. | |
| EINGEBEN. | |
| *********************************************************************** | |
| * Die Operatoren und das Rechenzeichen werden eingelesen. * | |
| *********************************************************************** | |
| DISPLAY ".: Einfacher Rechner :.". | |
| DISPLAY SPACES. | |
| DISPLAY "OP1 ->". | |
| ACCEPT ZAHLA. | |
| DISPLAY SPACES. | |
| DISPLAY "RZ ->". | |
| ACCEPT RECHE. | |
| DISPLAY SPACES. | |
| DISPLAY "OP2 ->". | |
| ACCEPT ZAHLB. | |
| DISPLAY SPACES. | |
| DISPLAY SPACES. | |
| BERECHNE. | |
| *********************************************************************** | |
| * Die Fallunterscheidung, wo entschieden wird, welche Rechenoperation * | |
| * ausgeführt werden soll. Eine fehlerhafte Eingabe wird durch den * | |
| * letzten ELSE-Zweig abgefangen. * | |
| *********************************************************************** | |
| IF RECHE = "+" THEN | |
| ADD ZAHLA TO ZAHLB GIVING ERGEB | |
| ELSE | |
| IF RECHE = "-" THEN | |
| SUBTRACT ZAHLB FROM ZAHLA GIVING ERGEB | |
| ELSE | |
| IF RECHE = "*" THEN | |
| MULTIPLY ZAHLA BY ZAHLB GIVING ERGEB | |
| ELSE | |
| IF RECHE = "/" THEN | |
| DIVIDE ZAHLB INTO ZAHLA GIVING ERGEB | |
| ELSE | |
| DISPLAY "FEHLERHAFTE EINGABE" | |
| END-IF. | |
| AUSGABE. | |
| *********************************************************************** | |
| * Ausgabe des Ergebnisses * | |
| *********************************************************************** | |
| DISPLAY ERGEB. | |
| DISPLAY SPACES. | |
| STOP RUN. | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| IDENTIFICATION DIVISION. | |
| PROGRAM-ID. TEST06. | |
| ENVIRONMENT DIVISION. | |
| INPUT-OUTPUT SECTION. | |
| FILE-CONTROL. | |
| SELECT KLASSE ASSIGN TO DISK "KLASSE.DAT". | |
| DATA DIVISION. | |
| FILE SECTION. | |
| FD KLASSE. | |
| 01 NAME PIC X(30). | |
| WORKING-STORAGE SECTION. | |
| 01 NAME-EA PIC X(30). | |
| 01 HILFSV PIC 99 BINARY. | |
| 01 QUIT-EA PIC Z(10)9. | |
| 01 QUIT PIC 99 BINARY. | |
| PROCEDURE DIVISION. | |
| EINGABE. | |
| OPEN OUTPUT KLASSE | |
| COMPUTE HILFSV = 0 | |
| PERFORM UNTIL HILFSV > 50 | |
| DISPLAY "Name -> " | |
| ACCEPT NAME-EA | |
| WRITE NAME FROM NAME-EA | |
| DISPLAY "BEENDEN (0 .. Ja / 1 .. Nein)" | |
| ACCEPT QUIT-EA | |
| MOVE QUIT-EA TO QUIT | |
| IF QUIT = 0 THEN | |
| COMPUTE HILFSV = 51 | |
| END-IF | |
| COMPUTE HILFSV = HILFSV + 1 | |
| END-PERFORM. | |
| BEENDE. | |
| CLOSE KLASSE | |
| STOP RUN. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| IDENTIFICATION DIVISION. | |
| PROGRAM-ID. DATEI1. | |
| ENVIRONMENT DIVISION. | |
| INPUT-OUTPUT SECTION. | |
| FILE-CONTROL. | |
| SELECT WAREN-DATEI ASSIGN TO "WAREN.XXX" | |
| ACCESS IS SEQUENTIAL | |
| * ORGANIZATION RELATIVE | |
| * RELATIVE KEY W-NUMMER | |
| FILE STATUS W-IOSTAT. | |
| DATA DIVISION. | |
| FILE SECTION. | |
| FD WAREN-DATEI. | |
| 01 W-SATZ. | |
| 02 W-NAME PIC X(20). | |
| 02 W-ART PIC X(3). | |
| 02 W-BESTAND PIC 9(6). | |
| 02 W-PREISE PIC S9(5)V99 OCCURS 5. | |
| WORKING-STORAGE SECTION. | |
| 01 W-NUMMER PIC 9(5). | |
| 01 W-IOSTAT. | |
| 02 W-IOSTAT-1 PIC X. | |
| 02 W-IOSTAT-2 PIC X. | |
| 01 EINGABE-FELD. | |
| 02 NUMMER PIC 9(5). | |
| 02 AENDER PIC 9. | |
| 02 SATZ. | |
| 03 NAME PIC X(20). | |
| 03 ART PIC X(3). | |
| 03 BESTAND PIC 9(6). | |
| 03 PREISE PIC S9(5)V99 OCCURS 5. | |
| PROCEDURE DIVISION. | |
| DATEI-OEFFNEN. | |
| OPEN OUTPUT WAREN-DATEI. | |
| IF W-IOSTAT NOT = "00" | |
| THEN DISPLAY "OPEN-Fehler: " W-IOSTAT | |
| STOP RUN. | |
| DATEI-BESCHREIBEN. | |
| ACCEPT EINGABE-FELD. | |
| PERFORM UNTIL NUMMER = 99999 | |
| MOVE SATZ TO W-SATZ | |
| MOVE NUMMER TO W-NUMMER | |
| DISPLAY "Waren-Nummer: " W-NUMMER | |
| WRITE W-SATZ | |
| IF W-IOSTAT-1 = "0" | |
| THEN DISPLAY "Satz geschrieben" | |
| ELSE | |
| DISPLAY "WRITE-Fehler: " W-IOSTAT | |
| GO TO DATEI-SCHLIESSEN | |
| END-IF | |
| ACCEPT EINGABE-FELD | |
| END-PERFORM. | |
| DISPLAY "Warendatei erstellt". | |
| DATEI-SCHLIESSEN. | |
| CLOSE WAREN-DATEI. | |
| IF W-IOSTAT NOT = "00" | |
| THEN DISPLAY "CLOSE-Fehler: " W-IOSTAT. | |
| STOP RUN. | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment