Programmieren mit COBOL

Wirtschaftsinformatik: Datenverarbeitung Klaus Arzdorf Programmieren mit COBOL 4., völlig neu bearbeitete Auflage Vogel Buchverlag Inhaltsverzeich...
54 downloads 2 Views 244KB Size
Wirtschaftsinformatik: Datenverarbeitung Klaus Arzdorf

Programmieren mit COBOL 4., völlig neu bearbeitete Auflage

Vogel Buchverlag

Inhaltsverzeichnis

Vorwort

5

Urhebernachweis

7

Vom Problem zum Programm 15 1.1 Grundlagen 15 1.1.1 Umwelt des Programmierers 15 1.2 Grundlagen der Sprache COBOL 17 1.2.1 Struktur eines Programms 21 1.2.2 Definitionen 26 1.2.3 Eigentliches Programm 26 1.2.4 Zeichenvorrat der COBOL-Sprache 27 1.2.5 Aufgliederung der Wörter in der COBOL-Sprache 30 1.2.5.1 Schlüsselwörter ,..-rf.T. 30 1.2.5.2 Wahlwörter 32 1.2.5.3 Paragraphennamen 33 1.2.5.4 Kapitelnamen (SECTION) 34 1.2.5.5 Datennamen 34 1.2.5.6 Datensatznamen 35 1.2.5.7 Dateinamen 35 1.2.5.8 Bedingungsnamen 36 1.2.6 Konstante 37 1.2.6.1 Alphanumerische Konstante 37 1.2.6.2 Numerische Konstante 38 1.2.6.3 Hexadezimale Konstante 39 1.2.6.4 Figurative Konstante 40 1.2.7 Interpunktion 42 1.3 Aufbau eines COBOL-Programms 44 1.3.1 Die vier Hauptteile (DIVISION) eines COBOL-Programms44 1.3.2 Aufbau des Befehlsteils 46 1.3.2.1 Befehlsaufbau Beispiel 46 1.3.2.2 Beispielprogramm Aufgabenstellung 47 1.3.2.3 Beispielprogramm Struktogramm 49 1.3.2.4 Beispielprogramm Codierung 50 1.3.2.5 Übung zum Befehlsteil 52 1.4 Benötigte Befehle in Kapitel 1 54 1.4.1 Format der COBOL-Befehle 54 1.4.2 OPEN-Befehl 56

1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.9

1.5

1.6

1.7 2

3

READ-Befehl WRITE-Befehl CLOSE-Befehl DISPLAY-Befehl ACCEPT-Befehl MOVE-Befehl PERFORM-Befehl (Inline-PERFORM) 1.4.9.1 Bedingungen 1.4.9.2 Beispiele für PERFORM UNTIL-Befehle 1.4.10 STOP-Befehl Schreiben des Programms 1.5.1 COBOL-Formular 1.5.2 Programmvorbereitung 1.5.3 Übersichtliche Programmierung Aufgaben zu Kapitel 1 1.6.1 Aufgabe la: Eingeben und Drucken von Daten 1.6.2 Aufgabe lb: Eingeben und Speichern von Daten 1.6.3 Aufgabe lc: Lesen und Drucken von Daten Lösungen zu Kapitel 1 „

58 60 62 63 64 65 66 68 69 71 72 72 74 79 82 82 83 84 86

Das Stufenkonzept t... 2.1 Aufbau der DATA DIVISION 2.2 Definition von Daten 2.2.1 Stufennummern (01 bsi 49 und 77) 2.2.2 Beschreibung der Daten 2.2.2.1 PICTURE-Klausel (für nicht druckaufbereitete Felder) 2.2.2.2 Alphanumerische und alphabetische Daten 2.2.2.3 Numerische Daten 2.2.2.4 VALUE-Klausel 2.2.2.5 JUSTIFIED-Klausel 2.3 FILE SECTION 2.3.1 Wichtige Parameter der FD-Beschreibung 2.4 Aufgaben zu Kapitel 2 2.4.1 Aufgabe 2a: Erstellen einer strukturierten Datei 2.4.2 Aufgabe 2b: Drucken einer Adreßliste 2.5 Lösungen zu Kapitel 2

95 97 98 99 102 104 105 107 107 108 110

Drucken, Rechnen, Vergleichen 3.1 Aufbereitung von Daten zum Drucken 3.1.1 Alphabetische/alphanumerische Druckaufbereitung • 3.1.2 Numerische Druckaufbereitung 3.1.2.1 Spezielle Einfügung 3.1.2.2 Einfache Einfügung

119 119 120 120 121 122

10

91 91 92 92 95

3.1.2.3 Unterdrücken und Ersetzen 3.1.2.4 Feste Einfügung 3.1.2.5 Gleitende Einfügung 3.1.3 Regeln für PIC-Klauseln USAGE-Klausel 3.2.1 Darstellungsform bei USAGE IS DISPLAY 3.2.2 Darstellungsform bei USAGE IS BINARY 3.2.3 Darstellungsform bei USAGE IS PACKED-DECIMAL.... Rechenbefehle für die vier Grundrechenarten 3.3.1 ADD-Befehl 3.3.2 Zusatz ROUNDED in Rechenbefehlen 3.3.3 Zusatz ON SIZE ERROR in Rechenbefehlen 3.3.4 Zusatz NOT ON SIZE ERROR in Rechenbefehlen 3.3.5 SUBTRACT-Befehl 3.3.6 MULTIPLY-Befehl 3.3.7 DIVIDE-Befehl 3.3.8 Allgemeine Regeln für Rechenbefehle Vergleichsbefehl IF 3.4.1 Einseitige Selektion „ 3.4.2 Zweiseitige Selektion „.-•£ 3.4.3 Weitere Beispiele für den IF-Befehl S.. Stufennummer 88 3.5.1 Verwendung der Stufennummer 88 ENVIRONMENT DIVISION 3.6.1 CONFIGURATION SECTION 3.6.2 INPUT-OUTPUT SECTION 3.6.3 Zusammenhang von Dateinamen im Programm Aufgabe zu Kapitel 3 3.7.1 Aufgabe 3: Drucken einer Umsatzliste Lösungen zu Kapitel 3

123 125 127 130 130 131 133 135 137 137 139 140 141 142 144 146 149 151 155 156 157 159 160 164 165 166 168 170 170 172

Unterprogramme und Tabellen 4.1 Definitions-Erweiterungen 4.1.1 «BLANK WHEN ZERO«-Klausel 4.1.2 REDEFINES-Klausel 4.2 Tabellenverarbeitung 4.2.1 OCCURS-Klausel 4.2.2 Ansprechen von Tabellenfeldern 4.2.3 Verarbeiten von Tabellen 4.2.3.1 Tabellenfüllen bei vorgegebenem Index 4.2.3.2 Tabellenfüllen bei sortierter Eingabe 4.2.3.3 Tabellenfüllen bei unsortierter Eingabe 4.2.3.4 Programmschleife bei der Tabellenverarbeitung 4.2.3.5 Füllen und Verarbeiten von alphanumerischen Tabellen

179 179 179 181 184 186 187 190 190 192 194 197

3.2

3.3

3.4

3.5 3.6

3.7 3.8 4

11

199

4.3

4.4 4.5 4.6 4.7 4.8

Befehlserweiterungen 200 4.3.1 ACCEPT-Befehl für Datum, Wochentag und/oder Uhrzeit 200 4.3.2 Ergänzungen zum IF-Befehl 203 4.3.2.1 IF-Befehl (Klassentest) 203 4.3.2.2 IF-Befehl (Vorzeichentest) 204 4.3.2.3 Arithmetische Ausdrücke 205 4.3.2.4 Mehrfachbedingungen 206 4.3.2.5 Verschachtelte IF-Befehle 209 4.3.3 Erweiterungen des PERFORM-Befehls 210 4.3.3.1 Einfacher PERFORM-Befehl und die Ergänzung TIMES 210 4.3.3.2 PERFORM-UNTIL-Befehl 214 4.3.3.3 Vorzeitiges Verlassen von Unterprogrammen .. 215 4.3.3.4 PERFORM-VARYING-Befehl 217 COMPUTE-Befehl 220 Qualifizieren von Namen 221 «MOVE CORRESPONDING»-Befehl 223 Aufgabe zu Kapitel 4 ...,.-: 226 4.7.1 Aufgabe 4: Verarbeitung einer eindimensionalen Tabelle 226 Lösungen zu Kapiel 4 .'. 227

Mehrdimensionale Tabellen und Datenmanipulationen 5.1 Mehrdimensionale Tabellen 5.1.1 Definition mehrdimensionaler Tabellen 5.1.2 Erstellen einer ldimensionalen Tabellen 5.1.3 Definieren und Ansprechen einer 2dimensionalen Tabelle 5.1.4 Definieren und Ansprechen einer 3dimensionalen Tabelle 5.1.5 Arbeiten mit 2dimensionalen Tabellen 5.2 Erweiterung des «PERFORM VARYING»-Befehls 5.2.1 Arbeitsweise bei 2stufiger Tabelle 5.2.2 Arbeitsweise bei 3stufiger Tabelle 5.2.3 Anwendung des mehrdimensionalen «PERFORM VARYING»-Befehls 5.3 Datenmanipulationsbefehle 5.3.1 EXAMINE-Befehl 5.3.2 INSPECT-Befehl 5.4 Zusammenfassen und Trennen von Daten 5.4.1 STRING-Befehl 5.4.2 UNSTRING-Befehl 5.5 Aufgabe zu Kapitel 5 5.5.1 Aufgabe 5: Zweidimensionale Tabellenverarbeitung 5.6 Lösungen zu Kapitel 5

12

235 235 236 237 239 241 242 247 248 248 250 250 250 253 257 257 259 262 262 263

Direktzugriff zu Dateien 271 6.1 Allgemeine Betrachtungen 272 6.1.1 Sequentielle Dateien 272 6.1.2 Dateien mit direktem Zugriff 273 6.1.2.1 Relative Dateien 273 6.1.2.2 Indizierte Dateien 273 6.2 Befehle und Anweisungen für Direkte Dateien 274 6.2.1 SELECT-Anweisung für direkte Dateien 274 6.2.1.1 SELECT-Anweisung für relative Dateien 274 6.2.1.2 SELECT-Anweisung für indizierte Dateien 276 6.2.2 OPEN-Anweisung für direkte Dateien 278 6.2.3 START-Befehl 279 6.2.4 READ-Befehl für direkte Dateien 280 6.2.5 WRITE-Befehl für direkte Dateien 282 6.2.6 REWRITE-Befehl 283 6.2.7 DELETE-Befehl 285 6.2.8 Beispiele für die Verarbeitung von indizierten Dateien .. 286 6.2.8.1 Laden einer indizierten Datei 286 6.2.8.2 Sequentielles Lesen einer indizierten Datei 288 6.2.8.3 Sequentielles Lesen einer Indizierten Datei mit START-Anweisung S. 290 6.2.8.4 Wahlfreies Lesen einer indizierten Datei 292 6.2.8.5 Wahlfreier und sequentieller Zugriff auf eine indizierte Datei 294 6.3 «GO TO ... DEPENDING ON»-Befehl 301 6.4 Gruppenverarbeitung 302 6.5 Aufgabe zu Kapitel 6 305 6.5.1 Aufgabe 6: Verarbeiten von Gruppen mit einer indizierten Datei 305 6.6 Lösungen zu Kapitel 6 307 Externe Unterprogramme/Sortdateien 7.1 Externe Unterprogramme 7.1.1 CALL-Anweisung 7.1.2 LINKAGE SECTION 7.1.2 CALL-Aufruf: Beispiel 7.1.4 PROCEDURE DIVISION im Unterprogramm 7.1.5 Rücksprung in das Hauptprogramm 7.1.6 Unterprogramm: Beispiel 7.2 Sortdateien 7.2.1 SD-Eintragung 7.2.2 SORT-Befehl 7.2.3 RELEASE-Befehl 7.2.4 RETURN-Befehl

313 313 314 314 315 316 317 317 318 319 319 321 321

13

7.2.5

7.3 7.4 8

Verarbeitungsweise des SORT-Befehls 7.2.5.1 Sortieren mit USING/GIVING 7.2.5.2 Sortieren mit INPUT/OUTPUT PROCEDURE.. 7.2.6 COBOL-Sort: Beispiel Aufgabe zu Kapitel 7 7.3.1 Aufgabe 7: Sortieren einer Datei mit Unterprogramm .... Lösungen zu Kapitel 7

322 322 324 325 327 327 328

Fehlerbehandlung und Ergänzungen 335 8.1 Ergänzende Anweisungen und Befehle 335 8.1.1 COPY-Anweisung 335 8.1.2 SIGN-Klausel 337 8.2 Allgemeine Fehlerbehandlung von Dateien 337 8.2.1 «FILE STATUS«-Klausel 338 8.2.2 Fehlerbehandlung mit der USE-Anweisung 339 8.3 Tabellenverarbeitung mit Indexnamen 341 8.3.1 Zusatz INDEXED BY in Tabellen 341 8.3.2 Definition von weiteren Indexfeldern 342 8.3.3 SET-Anweisung ,.-. 343 8.3.4 SEARCH-Befehl ..,.-.{.. 344 8.4 Fehlersuche mit Hilfe der DEBUG-Zeilen ' 345 8.5 Beispiele für Bildschirmprogrammierung 348 8.5.1 Programm zur Erstellung von Testdaten auf einem PC .. 348 8.5.2 Programm zur Bildschirmverarbeitung 351 Anhang Reservierte COBOL-Wörter

363

Literaturhinweise

367

Stichwortverzeichnis

369

14