Wolf-Michael Kähler Mikrocomputer-COBOL Programmieren von Mikrocomputern Die Bände dieser Reihe geben den Benutzern von Heimcomputern, Hobbycomputern bzw. Personalcomputern über die Betriebsanleitung hinaus zusätzliche Anwendungshilfen. Der Leser findet wertvolle Informationen und Hinweise mit Beispielen zur optimalen Ausnutzung seines Gerätes, besonders auch im Hinblick auf die Entwicklung eigener Programme. Bisher erschienene Bände Band 1 Einführung in BASIC Band 15 Entwerfen von Programmen von W. Schneider (Commodore 64) von G. Oetzmann Band 3 BASIC für Fortgeschrittene von W. Schneider Band 16 Einführung in die Anwendung des Betriebssystems MS-DOS Band 4 Einführung in Pascal von W. Schneider von W. Schneider Band 17 Einführung in die Anwendung des Band 6 BASIC-Programmierbuch zu den UCSD p-Systems grundlegenden Ablaufstrukturen von K. Buckner/M. J. Cookson/ der Datenverarbeitung A. I. Hinxman/A. Tate von E. Kaier Band 18 Mikrocomputer-COSOL Band 7 Lehr-und Übungsbuch für von W. Kähler Commodore-Volkscomputer von G. Oetzmann Band 19 Fortgeschrittene Programmier- techniken in Turbo Pascal Band 9 Einführung in die Anwendung des von E. Hering und K. Scheurer Betriebssystems CP/M von W. Schneider Band 20 Einführung in die Anwendung des Betriebssystems Apple DOS Band 10 Datenstrukturen in Pascal und (Apple II) BASIC von H. R. Behrendt und von D. Herrmann H. Junghans Band 11 Programmierprinzipien in BASIC Band 22 Einführung in Turbo Pascal unter und Pascal CP/M 80 von D. Herrmann von G. Harbeck Band 12 Assembler-Programmierung von Band 23 Pascal mit der Turtle Mikroprozessoren (8080, 8085, von K. und K. H. Beetich Z 80) mit dem ZX Spectrum von P. Kahlig Band 24 Programmieren mit UNIX von G. Martin und M. Trostmann Band 13 Strukturiertes Programmieren in BASIC Band 25 Murmeltierwelt und Pascal von W. Schneider von H. Pinke Band 14 Loge-Programmierkurs für Commodore 64 Logo und Terrapin Logo (Apple II) von B. Schuppar Programmieren von Mikrocomputern Band 18 Wolf-Michael Kähler Mikrocomputer-COBOL Einführung in die Dialog-orientierte COBOL-Programmierung am Mikrocomputer 2., überarbeitete Auflage Springer Fachmedien Wiesbaden GmbH CIP-Kurztitelaufnahme der Deutschen Bibliothek Kăhler, Wolf-Michael: Mikrocomputer-COBOL: Einf. in d.dialogorientierte COBOL-Programmierung am Mikrocomputer I Wolf-Michael Kăhler. - 2., iiberarb. Aufl. - (Programmieren von Mikrocomputern; Bd. 18) ISBN 978-3-528-14438-8 ISBN 978-3-663-14022-1 (eBook) DOI 101007/978-3-663-14022-1 NE:GT Das im Buch enthaltene Programm-Material ist mit keiner Verpflichtung oder Garantie irgendeiner Art verbunden. Der Autor Ubernimmt infolgedessen keine Verantwortung und wird keine daraus folgende oder sonstige Haftung iibernehmen, die auf irgendeine Art aus der Benutzung dieses Programm-Materials oder Teilen davon entsteht. 1. Auflage 1985 2., iiberarbeitete Auflage 1987 Alle Rechte yorbehalten © Springer Fachmedien Wiesbaden 1987 Ursprunglich erschienen bei Friedr. Vieweg & Sohn Verlagsgesellschaft mbH, Braunschweig 1987 Das Werk einschlieBlich aller seiner Teile ist urheberrechtlich geschiitzt. )ede Verwertung auBerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlags unzulăssig und strafbar. Das gilt insbesondere fiir Vervielfăltigungen, Obersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen. Satz: Vieweg, Braunschweig V Vorwort zur 1.Auflage COBOL ist weltweit die am häufigsten eingesetzte problemorientierte Programmier sprache. Die überragende Bedeutung von COBOL hat sich in den letzten Jahren im Zuge der Dezentralisierung des EDV-Einsatzes noch verstärkt, weil COBOL-Kompilierer fur Microcomputer entwickelt wurden, die der Leistungsfähigkeit von Kompilierern auf Großrechnern kaum nachstehen. Neben dem umfangreichen Spektrum von COBOL-Sprachelementen des ANSI-Standards stellen die auf Mikrocomputern verfugbaren Kompilierer dem Anwender - als neue Lei stung- die Möglichkeit der Bildschirm-orientierten Dialog-Verarbeitung zur Verfugung. ln diesem Buch wird die Konzeption dieser Dialog-Verarbeitung dargestellt. An einfachen, aufeinander abgestimmten Beispielen wird erläutert, wie Daten am Mikrocomputer erfaßt, in Disketten-Dateien geeignet abgespeichert und zur Ausgabe auf den Drucker und den Bildschirm weiterverarbeitet werden. Wegen der besonderen Bedeutung der index-sequentiell organisierten Dateien werden die verschiedenen Zugriffs-Methoden ausfuhrlieh dargestellt, wobei auch der Zugriff über Alternativ-Schlüssel beschrieben wird. Ferner wird der Leser unterwiesen, wie die Unter programm-Technik und die Technik der Segmentierung eingesetzt werden müssen, damit umfangreiche COBOL-Programme auf einem Mikrocomputer zum Ablauf gebracht werden können. Die hierfur benötigten Sprachelemente des ANS I-Standards werdt1n ebenfalls beschrieben - allerdings nicht so ausfuhrlich, wie es etwa bei einer Einftihrung in die Programmier sprache COBOL der Fall ist. Insofern sind bei der Lektüre dieses Buches geringe Vor kenntnisse in COBOL wünschenswert. Die Darstellung des Stoffes ist jedoch so gehalten, daß auch der Leser, der über keine Vorkenntnisse in COBOL verfUgt, die Ausfuhrungen verstehen und nachvollziehen kann. Bei der Darstellung der Bildschirm-orientierten Dialog-Verarbeitung wird das Arbeiten mit dem Kompilierer LEVEL II COBOL beschrieben, weil dieserKompiliererunter fast allen auf dem Markt vorhandenen Betriebssystemen für Mikrocomputer ablauffähig ist. Ferner gehört dieser Kompilierer zu den leistungsfähigsten Kompilierern im Hinblick auf die zur Verfugung stehenden Sprachelemente des ANS I-Standards. Die in diesem Buch dargestellte Anleitung fur das Arbeiten mit Mikrocomputern orientiert sich an den Standard-Betriebssystemen MS-DOS und CP/M. Dabei werden die von diesen Betriebssystemen zur Verfugung gestellten Dienste allerdings nur insoweit erläutert, als sie für die Erstellung und die Ausfuhrung von COBOL-Programmen benötigt werden. Der Leser braucht keine Vorkenntnisse über das Arbeiten mit Mikrocomputern zu besitzen. Im Hinblick auf die Forderungen der "Strukturierten Programmierung" werden alle in diesem Buch beschriebenen Problemlösungen zunächst als Struktogramme und anschlie ßend als COBOL-Programme angegeben. VI Vorwort Zur Lernkontrolle werden Übungsaufgaben gestellt, deren Lösungen im Anhang beschrie ben sind. Herrn Prof. Dr. Günther Lamprecht danke ich flir die Anregung zu dieser Niederschrift. Für die kritische Durchsicht und für zahlreiche Verbesserungsvorschläge bin ich meinen Veranstaltungsteilnehmern, mehreren Kollegen und in ganz besonderem Maße Herrn Jürgen Martens zu Dank verpflichtet. Hervorheben möchte ich auch die gewohnt gute Zusammenarbeit mit dem Vieweg Verlag. Ritterhude, im Mai 1985 Wolf-Michael Kähler Vorwort zur 2. Auflage Für die 2. Auflage erfolgte eine Überarbeitung des Kapitels "Sortierte Verarbeitung". Neu aufgenommen wurde die Beschreibung, wie ein COBOL-Programm unter Einsatz des Programmsystems PERSONAL COBOL generiert und zur Ausführung gebracht wird. Dieses von der Firma Micro Focus entwickelte und heutzutage in der Lehre der Program miersprache COBOL sehr verbreitete System erleichtert die Programmentwicklung. Mit PERSONAL COBOL, das flir den Einsatz unter MS-DOS zur Verfügung steht, können COBOL-Programme komfortabel im Rahmen einer durch Bildschirm-Menüs steuerbaren Dialog-Verarbeitung erfaßt, editiert, kompiliert und ausgeführt werden, so daß die Entwick lung von COBOL-Programmen auf Mikrocomputern wirksam unterstützt wird. Die Bedienung dieses Systems wird erläutert, und es wird an einem Beispiel dargestellt, wie Bildschirm-Masken mit Hilfe des in PERSONAL COBOL integrierten Formular-Gene rators entwickelt und in ein COBOL-Quellprogramm aufgenommen werden können. Ritterhude, im März 1987 VII Hinweis Die in diesem einführenden Buch dargestellte Programmiersprache COBOL basiert auf dem Dokument "American National Standard Programming Language COBOL, X.3.23". Daher muß unseren Ausführungen der folgende Hinweise vorangestellt werden: "Any organization interested in reproducing the COBOL report and specifications in whole or in part, using ideas from this report as the basis for an instruction manual or for any other purpose, is free to do so. However, all such organizations are requested to reproduce the following acknowledgement paragraphs in their entirety as part of the preface to any such publication. Any organization using a short passage from this docu ment, such as in a book review, is requested to mention "COBOL" in acknowledgement of the source, but need not quote the acknowledgement. COBOL is an industry language and is not the property of any company or group of companies, or of any organization or group of organizations. No warranty, expressed or implied, is made by any contributor or by the CODASYL Programming Language Committee as to the accuracy functioning of the programming system and language. Moreover, no responsibility is assumed by any contributor, or by the committee, in connection therewith. The authors and copyright holders of the copyrighted material used herein FLOW-MATIC (Trademark of Sperry Rand Corporation), Programming for the UNIVAC (R) I and II, Data Automation Systems copyrighted 1958, 1959, by Sperry Rand Corporation; IBM Commercial Translator Form No. F28-8013, copyrighted 1959 by IBM; FACT, DSI 27 A5260-2760, copyrighted 1960 by Minneapolis-Honeywell have specifically authorized the use of this material in whole or in part, in the COBOL specifications. Such authorization extends to the reproduction and use of COBOL specifi cations in programming manual or similar publications." LEVEL II COBOL und PERSONAL COBOL sind eingetragene Warenzeichen der Firma Micro Focus Ltd. CP/M-86 ist ein eingetragenes Warenzeichen der Firma Digital Research lnc. MS-DOS ist ein eingetragenes Warenzeichen der Firma Microsoft. Intel ist ein einge tragenes Warenzeichen der Firma Intel. VIII Inhaltsverzeichnis 1 Bildschirm-orientierte Dialog-Verarbeitung . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1 Grundlegende Begriffe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1.1 Problemstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1.2 COBOL-Programm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.1.3 Mikrocomputer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1 .1.4 Diskette . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.1.5 Datensatz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.1.6 Datenfeld und Bezeichner . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.1. 7 Datensatz-Beschreibung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.1.8 PICTURE-Kiausel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.1.9 Wiederholungsfaktor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1 .1.1 0 Numerische und alphanumerische Datenfelder . . . . . . . . . . . . . . . 10 1 .1.11 Datei-Beschreibung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.1.12 Programm-Aufbau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.2 Erfassung am Bildschirm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.2.1 Bildschirm-Aufbau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.2.2 FILLER........................................ 14 1.2.3 VALUE-Kiausel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 1.2.4 Struktur der Ein-/ Ausgabebereiche für die Bildschirmverarbeitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 1.2.5 Bedingungsnamen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 1.2.6 Beschreibung der Bildschirmerfassung . . . . . . . . . . . . . . . . . . . . 18 1.2.7 Grundlegende COBOL-Anweisungen . . . . . . . . . . . . . . . . . . . . . 23 1.2.8 REDEFINES-Klausel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 1.2.9 Das COBOL-Programm ERFSSNG . . . . . . . . . . . . . . . . . . . . . . 27 1 .2.1 0 Aufgabe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 1.3 Erfassung, Kompilierung und Ausführung von Programmen . . . . . . . . . . . 29 1.3.1 Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 1 .3.2 Laden des Betriebssystems . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 1.3.3 Tastatur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 1.3.4 Formatieren einer Diskette . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 1.3.5 Erfassung des Quellprogramm . . . . . . . . . . . . . . . . . . . . . . . . . 35 1.3.6 Kompilierung des Quellprogramms . . . . . . . . . . . . . . . . . . . . . . 41 1.3.7 Ausführung des Objektprogramms . . . . . . . . . . . . . . . . . . . . . . . 45 1.3.8 Dynamische Zuweisung von Dateinamen . . . . . . . . . . . . . . . . . . 47 1 .3.9 Einsatz des Programmsystems PERSONAL COBOL unter MS-DOS . . . . . . . . . . . . . . . . . . . . . 47 1.3.1 0 Daten-Eingabe bei der Bildschirm-Erfassung . . . . . . . . . . . . . . . . 53 Inhaltsverzeichnis IX 1.3.11 Cursor-Tasten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 1.3.12 Bildschirm-Eingabe von ganzzahligen Werten . . . . . . . . . . . . . . . . 57 1.3.13 ACCEPT- und DISPLAY-Anweisungen . . . . . . . . . . . . . . . . . . . 57 1.3.14 Der Paragraph SPECIAL-NAM ES . . . . . . . . . . . . . . . . . . . . . . . 64 1.3.15 ACCEPT- und DISPLAY-Anweisungen nach dem ANSI-Standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 1.3.16 Aufgabe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 2 Daten-Ausgabe auf Drucker und Bildschirm . . . . . . . . . . . . . . . . . . . . . . . . 68 2.1 Anlisten einer Disketten-Datei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 2.2 Gestaltung der Druck-Ausgabe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 2.3 Druckaufbereitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 2.4 Datei-Beschreibung der Druck-Datei . . . . . . . . . . . . . . . . . . . . . . . . . 71 2.5 Beschreibung des Programms DRUCK . . . . . . . . . . . . . . . . . . . . . . . . 72 2.6 OPEN-Anweisung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 2.7 CLOSE-Anweisung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 2.8 READ-Anweisung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 2.9 Das COBOL-Programm DRUCK . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 2.1 0 Logische Druckseiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 2.11 Vorbereitung der Druck-Ausgabe . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 2.12 Figurative Konstanten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 2.13 Struktogramm für das Programm DRUCKNEU . . . . . . . . . . . . . . . . . . 81 2.14 Vorschubsteuerung mit der WRITE-Anweisung . . . . . . . . . . . . . . . . . . 82 2.15 Das COBOL-Programm DRUCKNEU . . . . . . . . . . . . . . . . . . . . . . . . . 83 2.16 Steueranweisungen IF und PERFORM . . . . . . . . . . . . . . . . . . . . . . . . 85 2.17 Vereinbarung und Zugriff auf Tabellenelemente . . . . . . . . . . . . . . . . . 86 2.17.1 OCCURS-Kiausel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 2.17.2 PERFORM-Anweisungmit der VARYING-Kiausel . . . . . . . . . . . 88 2.18 Das COBOL-Programm DRUCKBLD . . . . . . . . . . . . . . . . . . . . . . . . . 89 2.19 Aufgabe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 3 Sortierung und ein Beispiel ftir die Verarbeitung sortierter Daten . . . . . . . . . . 92 3.1 Sortierung der Stammdatei mit den Vertreterdaten . . . . . . . . . . . . . . . 92 3.2 Aufgabe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 3.3 Organisation der Einzelverarbeitung von Stamm- und Bewegungssätzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 3.4 Das COBOL-Programm SORTVER . . . . . . . . . . . . . . . . . . . . . . . . . . 101 4 Datei-Verarbeitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 4.1 Sequentielle Datei-Organisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 4.1 .1 Datei-Organisation und Zugriffs-Methode . . . . . . . . . . . . . . . . . 10 6 4.1.2 Zeilen-sequentielle Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . 107 4.1.3 Bearbeitung sequentieller Dateien . . . . . . . . . . . . . . . . . . . . . . 108 4.1.4 FILE STATUS-Klausel ............................. 110
Description: