Wendt· COBOL Joachim Wendt COBOL Einfiihrung mit PC-Spracherweiterungen und Ubungen GABlER Der Autor, Dr. Joachim Wendt, ist als Dozent am Arbeitsbereich fUr Betriebswirt schaftliche Datenverarbeitung der Universitat Hamburg tatig. Zu seinem Lehr angebot gehoren COBOL-Programmierkurse fUr Studenten der Wrrtschaftsinfor matik. Die Deutsche Bibliothek - CIP-Einheitsaufnahme Wendt, Joachim: COBOL: Einfiihrung mit PC-Spracherweiterungen und Obungen I Joachim Wendt. -Wiesbaden: Gabler, 1991 ISBN-13: 978-3-409-19726-7 e-ISBN-13: 978-3-322-87615-7 001: 10.1007/978-3-322-87615-7 Der Gabler Verlag ist ein Unternehmen der Verlagsgruppe Bertelsmann International. © Betriebswirtschaftlicher Verlag Dr. Th. Gabler GmbH, Wiesbaden 1991 Softcover reprint of the hardcover 1st edition 1991 Lektorat: Gudrun KnolllJutta Hauser-Fahr Das Werk einschlieBlich a1ler seiner Teile ist urheberrechtlich geschiitzt. Jede Verwertung auBerhaib der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlags unzuliissig und strafbar. Das gilt insbe sondere fUr VervielfaItigungen, Ubersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen. Dieses Buch ist auf siiurefreiem und chlorarm gebleichtem Papier gedruckt. Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen, usw. in diesem Werk berechtigt auch ohne besondere K.ennzeichnung nicht zu der Annahme, daB solche Namen im Sinne der Warenzeichen- und Markenschutz-Gesetzgebung a1s frei zu betrachten waren und daher von jedermann benutzt werden diirften. ISBN-13: 978-3-409-19726-7 Geleitwort COBOL ist heute weltweit die am haufigsten eingesetzte Programmiersprache. Ob wohl die Entwicklung von COBOL bis in die funfziger Jahre zurUckreicht, konnten neuere und yom theoretischen Standpunkt elegantere Sprachkonzepte in der Praxis nur eingeschrankt FuB fassen. Ursachlich ffir die groBe Verbreitung der Sprache dUrften im wesentlichen fUnf Tatbestande sein: COBOL wurde explizit als Programmiersprache ffir betriebswirtschaftlich datenintensive Problemstellungen konzipiert. Solche Anwendungen sind das Haupteinsatzgebiet von EDV -Systemen. Die Sprachdefinition erfolgte mit der Zielsetzung, eine einfache, natfirliche und leicht beherrschbare Sprache zu schaffen. Einer der Griinde fUr den rucklaufigen Einsatz machtigerer Sprachen wie z.B. PL/l dfirfte in der Ver nachlassigung dieser Zielsetzung liegen. Bereits 1968 wurde COBOL yom American National Standards Institute (ANSI) als COBOL-68 genormt. Der aus dieser Normung resultierende Investitionsschutz fUr COBOL-Programme konnte bei den nachfolgenden Uberarbeitungen der Norm durch eine konsequente Aufwanskompatibilitlit der Sprache aufrechterhalten werden. Die betrachtlichen Investitionen in die industriell eingesetzten COBOL-Pro gramme und die damit einhergehende hohe Personalbindung in Wartungs und Pflegeaktivitliten rechtfertigen offensichtlich den Aufwand einer Um stellung auf neuere sprachliche Ausdrucksmittel nicht. Bedingt durch die Verbreitung des COBOL-Einsatzes werden rechnerge stutzte Software-Werkzeuge zur Unterstutzung der Programmentwicklung bevorzugt ffir diese Sprache angeboten. Der 1985 veroffentlichte und derzeit gUltige dritte COBOL-Standard berucksichtigt verstlirkt Anforderungen der Strukturierten Programmierung. Mit dieser Uberar beitung wurden eine Reihe von Sprachanomalien beseitigt, die insbesondere auch ffir Programmieranfanger Stolpersteine auf dem Weg zu fehlerfreien Programmen darstellten. Der feste Platz dieser Sprache im Rahmen des Studiums der Informatik und vor allem der Wirtschaftsinformatik wird daher kunftig neben ihrer Praxis relevanz in der verbesserten Eignung als Ausbildungssprache begrundet sein. Den Kern dieser EinfUhrung in die COBOL-Programmierung bildet eine umfassen de, didaktisch aufbereitete und leicht faBbare Erlliuterung von Sprachelementen der aktuell gUltigen ANSI-Norm. Zahlreiche Programmbeispiele verdeutlichen hier die Funktionen und Einsatzmoglichkeiten sowie das Zusammenwirken von Anweisun gen und Datendefinitionen. Ein deutlicher Schwerpunkt liegt dabei - abgeleitet aus dem Charakter der Sprache und ihrer vorrangigen Nutzung in der Praxis - auf Sprachelementen zur Verarbeitung von Dateien mit sequentieller und indizierter Organisation. Die Ausbildung von Programmieranfangern erfolgt heute vor aHem an Arbeits platzrechnern. Der Autor stellt daher in Erganzung zum ANSI-Standard einige v ausgewahlte Spracherweiterungen fUr die Gestaltung der BenutzeroberfHiche dieser Rechner vor. Die aus dem Scroll-Modus der Bildschirmansteuerung des COBOL Standards resultierenden einschneidenden Restriktionen fUr die Gestaltung benut zerfreundlicher interaktiver Anwendungen werden so aufgehoben. Diese Spracher weiterungen erlauben positionierte Datenein- und Datenausgaben, die Realisierung von Pop-Up- und Pull-Down-MenUs, die farbliche Gestaltung des Bildschirms und z.B. die Auswertung von Funktions- oder Cursor-Tasten fUr Zwecke der Dialog ablaufsteuerung. Der Autor hat erganzend zum Buch ein COBOL-Demonstrationsprogramm COB SYS erstellt, das gegen Erstattung der Disketten- und Versandkosten angefordert werden kann. COBSYS verdeutlicht das jeweilige Lernziel der im letzten Kapitel des Buches zusarnmengefaBten ProgrammierUbungen anschaulich am Bildschirm. Durch Bereitstellung von Testdaten, Bildschirmmasken und Bibliothekselementen wird der Programrnierer zuslitzlich von Routinearbeiten befreit. Mit der Vorlage dieses Werkes hat der Autor ein Standardlehrbuch zur COBOL Schulung geschaffen. Das fachliche Niveau und die damit angestrebten Lernziele Ubertreffen die meisten BUcher Uber Programmiersprachen. 1m Interesse einer we sentlichen Steigerung der Ausbildungsqualitlit auf dem Gebiet der wichtigsten kommerziellen Programmiersprache wUnsche ich diesem Buch eine gr06e Verbrei tung bei allen, die sich mit dem produktiven Einsatz des Computers beschliftigen. Prof Dr. D. B. Pressmar VI Vorwort Programmieranfanger erstellen ihre ersten Programme heute in aller Regel an Personal Computem. Diese Einfuhrung in die COBOL-Programmierung tragt dem Rechnung. Sie ist ffir Studenten wirtschaftswissenschaftlicher Studiengange sowie Haupt- und Nebenfachstudenten der Informatik und Wirtschaftsinformatik gedacht, die sich mit dem Entwurf und der Implementierung auch anspruchsvollerer inter aktiver COBOL-Anwendungen vertraut machen mOchten. Voraussetzung hierffir ist der Zugang zu einem Personal Computer, der mit einem COBOL-Compiler ausge stattet ist. Erfahrungen im Umgang mit Mikrocomputem sowie EDV -Grundlagen kenntnisse sind nutzlich. Sie werden jedoch nicht vorausgesetzt. Dieses Buch ist in drei Teile gegliedert, deren Kapitel und Abschnitte nicht zwin gend in der vorgegebenen Reihenfolge durchzuarbeiten sind: Teil A: Grundlagen und Softwareentwurf Teil B: Standard-COBOL und PC-Spracherweiterungen Teil C: Programmieriibungen mit Losungshinweisen Eine Programmiersprache kann nur durch praktische Ubungen am Rechner erlemt werden. Teil C enthalt eine Sammlung von Programmieriibungen, die aufeinander aufbauen und schrittweise mit COBOL-Sprachelementen vertraut machen. Dieses Buch wurde so konzipiert, daB sich der Leser unmittelbar diesen Ubungen zuwen den kann. Jedem Aufgabentext in Teil C ist ein Gliederungspunkt Texthinweise vorangesteIlt, der auf Abschnitte der Teile A und B verweist. Zur Vorbereitung der praktischen Programmierung sind genau diese Abschnitte durchzuarbeiten. COBOL (Common Business Oriented Language) ist eine Sprache, die uberwiegend zur Losung kommerzieller Anwendungsprobleme eingesetzt wird. Charakteristisch ffir solche Anwendungen ist die Verarbeitung von Daten, die in Dateien auf ex temen Speichermedien wie Magnetplatten oder Disketten abgelegt sind. Die Pro grammieriibungen in Teil C sehen insbesondere auch die Verarbeitung von Dateien vor. Die hierzu erforderlichen Testdatenbestande konnen anhand der jeweiligen Dateibeschreibung z.B. mit Hilfe eines Editors eingerichtet werden. Der zur Dateierstellung erforderliche Zeitaufwand entfaIlt, wenn die erganzend zu diesem Buch lieferbaren COBSYS-Disketten angefordert werden. Auf diesen Dis ketten sind alle Eingabedateien fur die Ubungsprogramme, mehr als 250 COBOL Copy-Strecken, Bildschirmbeschreibungen usw. sowie ausfuhrbare Musterlosungen zu den Programmieriibungen gespeichert. Diese Programme demonstrieren neben dem eigentlichen Ziel einer Ubung auch Eingabedaten und Zwischenergebnisse am Bildschirm. Informationen zu den in zwei Versionen lieferbaren COBSYS-Disket ten enthalt der Abschnitt Einfiihrende Hinweise. AIle Programmiersprachen der 3. Generation verfiigen nur sehr eingeschrankt fiber genormte Sprachelemente, die eine komfortable Bildschirmansteuerung, das Ab fragen von Funktions- und Cursor-Tasten oder den Aufruf von Betriebssystem Kommandos ermoglichen. N ahezu jeder in einer konkreten Rechnerumgebung ein setzbare Compiler sieht fur solche Funktionen Spracherweiterungen vor. Mehr als 95 % der in diesem Buch behandelten Sprachelemente sind dem aktuell giiltigen VII COBOL-Standard ANSI X3.23-1985 zuzurechnen. Erganzend werden ausgewahlte Spracherweiterungen fUr Mikrocomputer erHiutert. die syntaxgleich von den PC Compilern der Firmen IBM (COBOL12). Microsoft (MS-COBOL ab Verso 3.0) und Micro Focus (COBOL/2-Workbench) verarbeitet werden. Auch die Losungs hinweise zu den Programmieriibungen in Teil C nehmen auf diese Ubersetzer Be zug. Falls das Produkt eines anderen Compiler-Herstellers eingesetzt wird. mtissen zu den tiber den COBOL-Standard hinausgehenden Anweisungen Sprachaquivalen te im jeweiligen Compiler-Handbuch aufgefunden werden. Dem Hauptabschnitt zu COBOL-Sprachelementen in Tell B des Buches ist ein einftihrender Teil A zur Systemumgebung der Programmentwicklung und zum Softwareentwurf vorangestellt. Das erSte Kapitel in Teil A macht den mit Hard und Softwarekomponenten eines Mikrocomputers weniger vertrauten Programmier anfanger mit seiner Arbeitsumgebung bekannt. Neben dem funktionellen Verhalten des Rechners stehen hier bedienungsrelevante Aspekte (Tastatur. Disketten. Be triebssystem. Editor. Maskengenerator, Debugger usw.) im Vordergrund. Gegenstand des zweiten Kapitels ist der Entwurf von Anwendungssystemen. Der Leser wird anhand eines Vorgehensmodells in den Top-Down-Entwurf modular ge gliederter Batch- und Dialoganwendungen eingefiihrt. Jede Programmieriibung in Teil C des Buches sieht einen solchen Entwurf vor. Als Hilfsmittel werden u.a. Hierarchiediagramme, Mentibaume, Interaktionsdiagramme, Entscheidungstabellen, Nassi-Shneiderman-Diagramme und N-Square-Charts erlautert. Das Vorgehens modell ermoglicht auch die arbeitsteilige Entwicklung komplexerer Anwendungen und bereitet so auf die Nutzung rechnergesttitzter. integrierter Software-Entwick lungsumgebungen vor. Dr. J. Wendt VIII Inhaltsubersicht Einfiihrende Hinweise 1 TeilA: Grundlagen und Softwareentwurf 1. Systemumgebung der Programmentwicklung 5 2. Methodische Aspekte der Programmentwicklung 71 Teil B: Standard-COBOL und Spracherweiterungen 3. Grundlagen der COBOL-Programmierung 174 4. COBOL-Datenbeschreibung (I) 208 5. Allgemeine COBOL-Anweisungen (I) 223 6. Verarbeiten sequentieller Dateien 285 7. Programmanderungszyklen 333 8. COBOL-Datenbeschreibung (II) 342 9. Allgemeine COBOL-Anweisungen (II) 356 10. Sortieren von Dateien 390 11. Bibliotheken und Programmkommunikation 401 12. Gestaltung von Dialogprogrammen 415 13. COBOL-Datenbeschreibung (m) 457 14. Zeichenverarbeitung und Erganzungen 481 15. Verarbeiten von Direktzugriffsdateien 505 16. Unterprogramme fUr hardware-nahe Funktionen 557 Teil C: Programmierubungen mit Losungshinweisen 17. Obungsaufgaben 571 Anhang 711 Literaturverzeichnis 717 Stichwortverzeichnis 718 Inhaltsverzeichnis Einfuhrende Hinweise 1 Teil A: Grundlagen und Softwareentwurf 1. Systemumgebung der Programmentwicklung 5 1.1 Grundbegriffe der Datenverarbeitung 7 1.1.1 Algorithmen und DV-Prozesse 7 1.1.2 Daten und Datendarstellung 10 1.1.3 Datenorganisation und Dateien 17 1.1.4 Programmiersprachen und Programme 22 1.1.5 Interpreter und Compiler 28 1.2 Hardware von Mikrocomputem 31 1.2.1 Von-Neumann-Architektur 31 1.2.2 Mikroprozessor und Bus-Konzept 34 1.2.3 Eingabegerate 38 1.2.4 Ausgabegerate 41 1.2.5 Disketten und Magnetplatten 44 1.3 Softwareausstattung 48 1.3.1 Betriebssysteme 49 1.3.2 Dateiaufbereiter (Editor) 55 1.3.3 COBOL-Compiler und Linker 57 1.3.4 Maskengenerator 63 1.3.5 Testhilfen (Debugger) 65 1.4 Vemetzung von Mikrocomputem 68 2. Methodische Aspekte der Programmentwicklung 71 2.1 Phasenschema des Software-Lebenszyklus 75 2.2 Nassi-Shneiderman-Diagramme 84 2.3 Darstellungsmittel des Fachinhaltlichen Entwurfs 99 2.3.1 Funktionsubersicht 100 2.3.2 Hierarchische Funktionszerlegung 100 2.3.3 SpezifIkation von Elementarprozessen 104 2.3.4 Entscheidungstabellen 111 2.3.5 Menubaum 118 2.4 Darstellungsmittel des DV -technischen Entwurfs 120 2.4.1 Interaktionsdiagramme 121 2.4.2 Menus und vervollstlindigte Bildschirmmasken 126 2.4.3 Datenorganisation 129 2.4.4 Programmstruktur und Modulabgrenzung 133 2.4.5 N-Square-Charts 149 2.4.6 Nassi-Shneiderman-Diagramme 158 2.5 Entwurfsbeispiel Adre6verwaltung 159 2.5.1 Fachinhaltlicher Entwurf 159 2.5.2 DV-technischer Entwurf 162 2.6 Dokumentation zu Anwendungsprogrammen 172 Teil B: Standard·COBOL und Spracherweiterungen 3. Grundlagen der COBOL-Programmierung 174 3.1 COBOL-Programmstruktur 175 3.1.1 Hauptabschnitte 175 3.1.2 Hierarchische Programmgliederung 177 3.2 COB OL-Zeichenv orrat 179 3.3 COBOL-Zeichenfolgen 181 3.3.1 Reservierte COBOL-Worter 182 3.3.2 Benutzerdefinierte Worter 184 3.3.3 Literale 185 3.3.4 PICTURE-Zeichenfolgen 187 3.3.5 Kommentare 188 3.4 COBOL-Metanotation 189 3.5 COBOL-Codierschema 191 3.6 Trennsymbole und Interpunktionsregeln 195 3.7 Syntax der Hauptabschnitte 198 3.7.1 IDENTIFICATION DIVISION 198 3.7.2 ENVIRONMENT DIVISION 199 3.7.3 DATA DIVISION 202 3.7.4 PROCEDURE DIVISION 204 3.8 COBOL-Programmrahmen 206 4. COBOL-Datenbeschreibung (I) 208 4.1 COBOL-Format der Datenbeschreibung 208 4.1.1 Stufennummem 209 4.1.2 Datennamen 213 4.1.3 PICTURE-Klausel 214 4.1.4 Feldtyp und FeldHinge 216 4.1.5 VA LUE-Klausel 217 XII