Roland Schneider Prozedurale Programmlerung Die Reihe nLehrbuch", orientiert an den Lehrinhalten des Studiums an Fach hochschulen und Universitaten, bietet didaktisch gut ausgearbeitetes Know-how nach dem State-of-the-Art des Faches fUr Studenten und Dozen ten gleichermaJ3en. Unter anderem sind erschienen: Stochastlk Software Engineering von Gerhard Hubner von Reiner Dumke Neuronale Netze Grundlagen der Theoretlschen von Andreas Scherer Infonnatlk mit Anwendungen von Gottfried Vossen und Rechnerverblndungs Kurt-Ulrich Witt strukturen von Bernd Schurmann Grundlagen und Konzepte der Infonnatlk Rechnerarchltektur von Hartmut Ernst von Paul Herrmann Von Pascal zu Assembler Konstruktlon von Peter Kammerer dlgltaler Systeme von Fritz Mayer-Lindenberg Prozedurale Programmlerung SPSS fUr Windows von Roland Schneider von Wolf-Michael Kahler PASCAL von Doug Cooper und Michael Clancy Programmleren mit JAVA von Andreas Solymosi und Ilse Schmiedecke Baustelnbaslerte Software von GUnther Bauer Anwendungsorlentlerte Wirtschaftslnfonnatlk von Paul Alpar, Heinz Lothar Grob, Peter Weimann und Robert Winter Roland Schneider Prozed rale Program .... ierung Grundlagen der Programmkonstruktion Die Deutsche Bibliothek - CIP-Einheitsaufnahme Ein Titeldatensatz fUr diese Publikation ist bei Der Deutschen Bibliothek erhliltlich. 1. Auflage April 2002 Aile Rechte vorbehalten © Friedr. Vieweg & Sohn Verlagsgesellschaft mbH, BraunschweigIWiesbaden, 2002 Der Vieweg Verlag ist ein Unternehmen der Fachverlagsgruppe BertelsmannSpringer. www.vieweg.de Das Werk einschlie8lich aller seiner Teile ist urheberrechtlich geschiitzt. Jede Verwertung au8erhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlags unzullissig und strafbar. Das gilt insbesondere fUr Vervielfrutigungen, Ubersetzungen, Mikroverfilmungen und die Einspei cherung und Verarbeitung in elektronischen Systemen. Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Werk berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichen-und Markenschutz-Gesetzgebung als frei zu betrachten waren und daher von jedermann benutzt werden diirften. Konzeption und Layout des Umschlags: Ulrike Weigel, www.CorporateDesignGroup.de Gedruckt auf sliurefreiem und chlorfrei gebleichtem Papier. ISBN-13: 978-3-528-05653-7 e-ISBN-13: 978-3-322-87247-0 DOl: 10.1007/978-3-322-87247-0 Vorwort Dieses Lehrbuch vermittelt eine Einfuhrung in das Entwerfen und Konstruieren von Programmen fur prozedurale Programmierung. Es kann zur Unterstiitzung und Begleitung von Lehrveranstaltungen dienen und ist zum Selbststudium geeignet. Das Lehrbuch ist aus dem Begleitmaterial zu Lehrveranstaltungen entstanden, die ich viele Jahre an der Fachhochschule Dortmund und an der Universitat Stettin gehalten habe. Der Inhalt dieses Lehrbuches umfasst den Stoff der Vorlesungen und Obungen zur Programmkonstruktion, also zur Entwicklung von ProgrammablaufpIanen. Auf die Umsetzung der ProgrammablaufpHine in ablauffahige Programme wird nicht naher eingegangen. Die Lehrveranstaltung wird von einem Praktikum begleitet, in dem beispielhafte Programme auf der Grundlage des Programmablaufplanes mit prozeduralen Programmiersprachen realisiert werden. Dem Leser dieses Buches empfehle ich, mehrere Obungsaufgaben nach Erarbeitung des Programmablaufplanes mit einer geeigneten prozeduralen Programmiersprache zu realisieren urn so den Stoff zu vertiefen und die LOsungen durch Tests iiberpriifen zu konnen. Hauptgegenstand des Lehrbuches sind Stapelverarbeitungs- und Dialog-Programme, die mehrere Dateien bearbeiten. Als Beispiele werden Programme aus dem Bereich der betriebswirtschaftlichen Anwendungen benutzt. Dortmund, im Februar 2002 Prof. Dr. Roland Schneider v Inhaltsverzeichnis InhaHsverzeichnls ......................................................................................... VI Abbildungen ................................................................................................... X 1 Grundlagen ............................................................................................ 1 1.1 Grundgedanken und Zielsetzungen ............................................... 1 1.1.1 Prozedurale Programmierung .......................................... 1 1.1.2 Ziele der Konstruktionslehre ............................................. 2 1.1.3 Vorgehensweise zum Erreichen der Ziele ........................ 2 1.1.4 Der ideale Losungsweg .................................................... 3 1.1.5 Der praktische Weg zu den Programm-Modellen ............. 4 1.1.6 Einphasenprogramme ...................................................... 5 1.1.7 Mehrphasenprogramme ................................................... 5 1.1.8 Die vier Programm-Modelle im Oberblick ......................... 6 1.2 Symbole und Konstrukte .............................................................. 10 1.2.1 Anweisung oder Anweisungsfolge .................................. 10 1.2.2 Bedingte Verzweigung .................................................... 10 1.2.3 ZusammenfOhrung ......................................................... 11 1.2.4 Zusammengesetzte Konstrukte ...................................... 11 1.3 Grundbegriffe und Definitionen .................................................... 12 1.3.1 Feld ................................................................................. 12 1.3.2 Satz und Zeile ................................................................. 12 1.3.3 Datei ............................................................................... 12 1.4 Pseudocode ................................................................................. 14 1.4.1 Grundfunktionen ............................................................. 14 1.4.2 Erweiterungen ................................................................ 20 1.4.3 Blattwechselmechanik .................................................... 23 2 Programm-ModeIl1, Kopleren ........................................................... 27 2.1 Entwicklung des Programm-Modells ............................................ 27 2.1.1 Grundaufgabe Kopieren ................................................. 27 2.1.2 Losung fOr die Grundaufgabe Kopieren ......................... 28 2.1.3 Modellbildung fOr Programm-ModeIl1, Kopieren ........... 29 VI Inhaltsverzeichnis 2.2 Anwendung des Kopier-Modells .................................................. 30 2.2.1 Aufgabe Druckprogramm mit Blattwechselmechanik ..... 30 2.2.2 Aufgabe Wertbestandsliste mit Summenzeilen .............. 33 2.2.3 Obungsaufgabe Umsatzliste ........................................... 36 2.3 Andere Darstellungen des Kopier-Modells ................................... 37 3 Programm-Modell 2, Abbildung von Satzgruppen .......................... 40 3.1 Entwicklung des Programm-Modells ............................................ 40 3.1.1 Grundaufgabe der Abbildung von Satzgruppen, grobe Formulierung " ...................................................... 40 3.1.2 VorOberiegungen, Begriffe und Definitionen ................... 41 3.1.3 Grundaufgabe der Abbildung von Satzgruppen, genaue Formulierung ..................................................... 48 3.1.4 Losung fUr die Grundaufgabe der Abbildung von Satzgruppen ................................................................... 49 3.1.5 Gruppensteuerung fUr 3 Rangstufen .............................. 54 3.1.6 Obungsaufgabe Gruppensteuerung ............................... 60 3.1.7 Modellbildung fUr Programm-Modell2, Abbildung von Satzgruppen ............................................................ 60 3.2 Anwendung des Programm-Modells ............................................ 62 3.2.1 Summenbildung bei Satzgruppen ................................... 62 3.2.2 Aufgabe Drucken Umsatzstatistik ................................... 64 3.3 Kombination der Programm-Modelle 1 und 2 .............................. 72 3.3.1 Ein-und Ausgabe mit unterschiedlichen Satzgruppen ... 72 3.3.2 Filtem von Satzen ........................................................... 72 3.3.3 Das verkOrzte Modell 2 ................................................... 74 3.3.4 Obungsaufgabe Umsatzstatistik aus 3.2.2 ..................... 78 4 Programm-ModeIl3, Mischen ............................................................ 79 4.1 Entwicklung des Programm-Modells ............................................ 80 4.1.1 Grundaufgabe Mischen .................................................. 80 4.1.2 LOsung fUr die Grundaufgabe Mischen .......................... 82 4.1.3 Modellbildung fUr Programm-Modell 3, Mischen ............ 89 4.2 Anwendung des Mischens, Teil1, Dateivergleiche ...................... 90 4.2.1 Dateivergleich und Paarigkeit.. .... " ................................. 91 4.2.2 Aufgabe Dateivergleich Artikel-Umsatze ........................ 96 4.2.3 Obungsaufgabe Dateivergleich ..................................... 103 VII Inhaltsverzeichnis 4.3 Kombination von Modell 3 mn dem verkurzten Modell 2. ........... 103 4.3.1 Aufgabe Drucken Umsatzstatistik aus 3.2.2 ................. 103 4.3.2 Obungsaufgabe Verifizierung von HAUPT-A und UPRO-A ................................................................. 107 4.4 Anwendung des Mischens, Teil2, Dateifortschreibungen ......... 108 4.4.1 Aufgabe Sequenzielle Dateifortschreibung ................... 108 4.4.2 M6glichkenen und Grenzen des Misch-Modells ........... 112 4.4.3 Obungsaufgabe Indexsequenzielle Dateifortschreibung ...................................................... 113 5 Programm-Modell 4, Mischprinzip zur Abbildung von Satzgruppen ............................................................................... 115 5.1 Entwicklung des Programm-Modells .......................................... 115 5.1.1 Grundaufgabe Mischprinzip zur Abbildung von Satzgruppen ................................................................. 115 5.1.2 Losung der Grundaufgabe Mischprinzip zur Abbildung von Satzgruppen ......................................... 117 5.1.3 Modellbildung fur Programm-Modell 4. ......................... 120 5.1.4 Obungsaufgabe Satzauswahl ....................................... 122 5.2 Anwendung des Programm-Modells 4 ....................................... 122 5.2.1 Aufgabe Vergleich von Umsatzsummen ....................... 123 5.2.2 Modellwahl und PrioritAtenwahl bei Programm-Modellen 3 und 4 ........................................ 128 6 Alternativlosungen mit Mehrphasenprogrammen ......................... 131 6.1 Stuckweise sequenziell Lesen ................................................... 131 6.1.1 Aufgabe Stuckweise sequenzielles Lesen einer Satzgruppe ................................................................... 133 6.1.2 Satzberenstellung mit Funktion Lesen direkt mn Keybedingung .................................... 135 6.1.3 Satiberenstellung mn Funktion Start mn Keybedingung ................................................ 139 6.2 Anwendung des StUckweise sequenziellen Lesens ................... 139 6.2.1 Aufgabe Drucken Umsatzstatistik aus 3.2.2 ................. 140 6.3 Symbolik zur Darstellung von Mehrphasenprogrammen ........... 142 6.4 Anwendung der Symbolik .......................................................... 147 VIII Inhaltsverzeichnis 7 Olalogprogramme als Mehrphasenprogramme ............................. 149 7.1 Der Eingabedatenstrom als Entwurfsgrundlage ......................... 149 7.2 Der Bildschirrn mit Tastatur als virtuelle DateL .......................... 152 7.2.1 Aufgabe A: Bildschirrn als Direktzugriffsdatei ............... 153 7.2.2 Aufgabe B: Bildschirrn als sequenzielle Eingabedatei .. 156 7.3 Der Entwurf von Dialogprogrammen .......................................... 159 7.3.1 Aufgabe C: Drucken Umsatzstatistik mit zwei Betriebsforrnen ............................................................. 162 8 Mehrphasenprogramme mit vlrtuellen Oatelen .............................. 173 8.1 Beispielaufgabe fOr mogliche Mehrphasenlosungen ................. 174 8.1.1 Aufgabe Umsatzvergleich ............................................. 175 8.2 Mehrphasenprogramm mit realer Zwischendatei ....................... 178 8.3 Mehrphasenprogramm mit virtueller Zwischendatei .................. 178 8.3.1 Alternative 1, Oberphase Ausgabe - Unterphase Eingabe ................ 180 8.3.2 Alternative 2, Oberphase Eingabe - Unterphase Ausgabe ................ 181 8.3.3 Symbolische Darstellung der Alternativen .................... 185 9 Sortlerprogramme als Mehrphasenprogramme ............................. 188 9.1 Losungs·Modell fOr isolierte Sortierung ...................................... 188 9.1.1 Mehrphasenprogramm als Losungsansatz ................... 189 9.1.2 Vorsortierphase VS ...................................................... 189 9.1.3 Mischphasen M-1 bis M-k ............................................. 190 9.1.4 Letzte Mischphase M-(k+ 1) .......................................... 192 9.1.5 Anzahl der Mischphasen .............................................. 192 9.1.6 Steuerprogramm fOr isolierte Sortierung ...................... 193 9.2 Erwenerung zur integrierten Sortierung (I-O-Sort) ..................... 195 9.2.1 Einfache Aufgabenstellung fOr integrierte Sortie rung ... 196 9.2.2 Integrierte Sortie rung - COBOL-Modell ...................... 197 9.2.3 Integrierte Sortierung - PU1-Modell ........................... 202 Sachwortverzeichnis ................................................................................ 208 IX Abbildungen Bild 1.01 Datenflussplane dar vier Programm-Modelle ................................. 8 Bild 1.02 Konstrukt Anweisung oder Anweisungsfolge ................................ 10 Bild 1.03 Konstrukt 8edingte Verzweigung .................................................. 10 Bild 1.04 Konstrukt ZusammenfOhrung ....................................................... 11 Bild 1.05 Zusammengesetzte Konstrukte .................................................... 11 Bild 1.06 Funktion Lesen sequenziel/ .......................................................... 17 Bild 1.07 Lese-und Schreib-Funktionen fOr Direktzugriffsdateien ............... 20 Bild 1.08 Lesefunktionen mit Keybedingung ................................................ 22 Bild 1.09 BWM Einfache Version ................................................................. 24 Bild 1.10 BWM Komfortable Version ........................................................... 26 Bild 2.01 Grundaufgabe Kopieren ............................................................... 27 Bild 2.02 PAP Kopierprogramm ................................................................... 28 Bild 2.03 Programm-Modelll, Kopieren ...................................................... 29 Bild 2.04 Druckprogramm mit BWM ............................................................ 30 Bild 2.05 Listbild Bestandsliste .................................................................... 31 Bild 2.06 Datenfluss Druckprogramm .......................................................... 31 Bild 2.07 PAP Druckprogramm .................................................................... 33 Bild 2.08 Ustbild Wertbestandsliste ............................................................. 34 Bild 2.09 Obungsaufgabe Umsatzliste ......................................................... 36 Bild 2.10 Ustbild Umsatzliste ....................................................................... 36 Bild 2.11 Kopier-ModeU, Schleife mit Unterbrechung .................................. 38 Bild 2.12 Kopier-Modell, Schleife kopfgesteuert .......................................... 39 Bild 2.13 Kopier-Modell, Schleife fuBgesteuert ............................................ 39 Bild 3.01 Grundaufgabe Abbildung von Satzgruppen .................................. 41 Bild 3.02 Beispiel fOr Satzgruppen ............................................................... 42 Bild 3.03 Gruppierwortfolge ......................................................................... 43 Bild 3.04 Erweiterte Gruppierwortfolge ........................................................ 44 Bild 3.05 Satzgruppen und Gruppenwechsel fOr 3 Range ........................... 48 Bild 3.06 PAP zur L6sung dar Grundaufgabe .............................................. 51 Bild 3.07 Satzbereitstellung ......................................................................... 52 Bild 3.08 Matrix Gruppensteuerung fOr 3 Range ......................................... 54 Bild 3.09 PAP Gruppensteuerung, Version A. ............................................. 58 Bild 3.10 PAP Gruppensteuerung, Version B. ............................................. 59 Bild 3.11 Programm-ModeIl2, Abbildung von Satzgruppen ........................ 61 Bild 3.12 Drucken Umsatzstatistik ............................................................... 64 Bild 3.13 Ustbild Umsatzstatistik ................................................................. 65 Bild 3.14 PAP Umsatzstatistik ..................................................................... 71 Bild 3.15 Filtem mit Zwischendatei .............................................................. 73 Bild 3.16 Filtem im Block Satzbereitstellung ................................................ 74 x