ebook img

Pascal Tools: Strukturierte Programmierung mit Beispielen zur Textverarbeitung PDF

236 Pages·1986·6.74 MB·German
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Pascal Tools: Strukturierte Programmierung mit Beispielen zur Textverarbeitung

Matthias Blumenfeld Pascal Tools Stukturierte Programmierung mit Beispielen zur Textverarbeitung Matthias Blumenfeld Antonius Steinkamp Pascal Tools Strukturierte Programmierung mit Beispielen zur Textverarbeitung .___-- Programmiersprachen ----------------... Einflihrung in die Programmiersprache Ada, von M. Nagl Einflihrung in ALGOL 68, von H. Feldmann Einflihrung in die Programmiersprache BASIC, von W.-D. Schwill und R. Weibezahn BASIC in der medizinischen Statistik, von H. Ackermann EinfUhrung in die Programmiersprache COBOL, von W.-M. Kahler Einflihrung in die Programmiersprache FORTRAN 77, von G. Lamprecht FORTRAN-TRAINER, von H. Kohler Einflihrung in die Programmiersprache PASCAL, von K.-H. Becker und G. Lamprecht Pascal Tools, von M. Blumenfeld und A. Steinkamp PEARL, Process and Experiment Automation Realtime Language, von w. Werum und H. Windauer Einflihrung in die Programmiersprache PL/I, von H. Kamp und H. Pudlatz Einflihrung in die Programmiersprache SIMULA, von G. Lamprecht Einflihrung in das Datenanalysesystem SPSS, von W.-M. Kahler GUM, von H.-J. Andre6 '---VIeweg-------------------~ Matthias Blumenfeld Antonius Steinkamp Pascal Tools Strukturierte Programmierung mit Beispielen zur Textverarbeitung Springer Fachmedien Wiesbaden GmbH CIP-Kurztitelaufnahme der Deutschen Bibliothek Blumenfeld, Matthias: Pascal-Tools: strukturierte Programmierung mit Beispielen zur Textverarbeitung / Matthias Blumenfeld; Antonius Steinkamp. - Braunschweig; Wiesbaden: Vieweg, 1986. NE: Steinkamp, Antonius: Das in diesem Buch enthaltene Programm-Material ist mit keiner Verpflichtung oder Garantie irgend einer Art verbunden. Die Autoren und der Verlag iibernehmen infolgedessen keine Verantwortung und werden keine daraus folgende oder sonstige Haftung iibernehmen, die auf irgendeine Art aus der Benutzung dieses Programm-Materials oder Teilen davon entsteht. 1986 Aile Rechte vorbehalten © Springer Fachmedien Wiesbaden 1986 Ursprlinglich erschienen bei Friedr. Vieweg & Sohn Verlagsgesellschaft mbH, Braunschweig 1986. Das Werk einschliej),lich aller seiner Teile ist urheberrechtlich geschiitzt. Jede Verwertung auj),erhalb der engen Grenzen des Urh eberrechtsgesetzes ist ohne Zustimmung des Verlags unzuJassig und strafbar. Das gilt insbesondere fiir Vervielfiiltigungen, Ubersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen. Umschlaggestaltung: Peter Lenz, Wiesbaden ISBN 978-3-528-04453-4 ISBN 978-3-663-13993-5 (eBook) DOI 10.1007/978-3-663-13993-5 v Vorwort Warum noch ein Pascal-Buch? So werden wir stets gefragt, wenn wir von unserem Buchprojekt erzahlen. Die Antwort ist recht einfach: Weil es ein solches Pascal-Buch noch nicht gibt! Es solI • sich nicht an Programrnieranfanger wenden, sondern an Leser, die schon etwas Erfah rung mit BASIC oder Pascal haben; • sich nicht auf kleine Beispielprogramme beschranken, sondern auch groBere mit mehr als zehn Seiten behandeln; • sich auf einen Themenkreis konzentrieren, die Textverarbeitung; • vor allem Themen wie strukturierte Programmierung, Modularisierung und Software Tools behandeln • und schlieBlich die erarbeiteten Programme auf Diskette zuganglich machen. Wie entstand dieses Buch? Der erste Verfasser (M. B.) hat in den Jahren 1977 bis 1985 mehrfach die Zyklen Programmieren I, II und III an der Freien Universitat gehalten und der zweite (A. S.) war als Tutor mit dabei. So entstand im Laufe der Zeit ein reicher Schatz an Beispielpro grammen, den es zu heben galt. Unsere Sichtweise ist stark beeinfluBt worden von den Buchern "Software Tools" und "Software Tools in Pascal" von Kernighan und Plauger aus den Jahren 1976 und 1981. Der einleitende Satz dieser Bucher: "This book teaches how to write good programs that are good tools." ist daher auch ein passendes Motto flir unser Buch. Was sind Tools? Kernighan und Plauger verstehen darunter Programmteile, die eine allgemeine Auf gabe erftillen und die man daher einmal definiert und dann universell einsetzt - anstatt flir jeden Spezialfall ein passendes Programmstuck zu entwerfen. Diese Zielsetzung stand ubrigens am Anfang des UNIX-Projektes, und die Routinen des "Software Tools"-Buches entsprechen zum guten Teil den unter UNIX in der Sprache C realisierten Routinen. VI Vorwort Wir gehen jedoch wesentlich liber den von Kernighan und Plauger gesteckten Rahmen hinaus: Sie definieren z. B. an vielen Stellen des Buches Felder, Listen oder Baume, urn Zeichenketten oder andere Objekte ordnend einzufligen, ohne auf deren gemeinsame Auf gabenstellung einzugehen. Unser Ziel ist es, auch flir derartige Situationen Werkzeuge anzubieten. Diese bestehen haufig aus mehreren Routinen, die auf einer dem Benutzer moglicherweise unbekannten Datenstruktur operieren. So etwas nennt man in der Informatik "abstrakte Datenstruk turen", und man realisiert sie durch sogenannte Moduln. Leider steht dieses Sprachmittel erst in den Sprachen Modula-2 und ADA zur Verfligung und mu£ in Pascal simuliert werden. Au£erdem flihlen wir uns der Idee der Strukturierten Programmierung verpflichtet, d. h. wir schreiben gro£ere Programme in Ebenen, in denen die oberen auf den Befehls vorrat der unteren zuriickgreifen. Ein gutes Beispiel daflir ist das Inventarisierungspro gramm aus Abschnitt IDA, Seite 127 Lagerhaltung I Ebene 3: Dict-Modul I Ebene 2: Item-Modul I Ebene 1: String-Modul Wie ist das Buch aufgebaut? Kapitel 1 behandelt die Standard-Datentypen integer, real, boolean und char und die dazugehorigen Operatoren und Standardfunktionen. Kapitel2 fiihrt einfache Kontrollstrukturen ein, wie die WHILE-Schleife und die IF-An weisung, und erklart das Konzept der Text-Dateien in Pascal. Kapitel3 diskutiert, wie man strukturiert programmiert, insbesondere die GOTO-Proble matik und die Methodik der Schrittweisen Verfeinerung. Kapitel4 hat selbstdefinierte Datentypen zum Inhalt: Aufzahltypen, Unterbereichs typen und Felder. Kapitel5 ftihrt weitere Kontrollstrukturen ein, wie die FOR-Schleife, die REPEAT Schleife und die CASE-Anweisung. Kapitel6 behandelt selbstdefinierte Funktionen und Prozeduren mit einfachen (Wert-) Parametern und diskutiert rekursive Routinen. Kapitel 7 ist das erste der thematischen Kapitel: Es vergleicht drei Sortierroutinen. Kapitel8 fiihrt weitere Datentypen ein, wie den RECORD und Mengen. Bis auf die dynamischen Datenstrukturen (Kapitel 11) sind damit alle Elemente von Pascal ein gefiihrt. Die letzten sechs Kapitel sind wieder thematisch: Sie beschaftigen sich mit der Modularisierung von • Lagerhaltung • Text-Formatierung • Worthaufigkeit • Programm-Formatierung und • Cross-Referenz-Liste • Makro-Substitution. Vorwort VII Kapite19 diskutiert das Konzept der Modularisierung und definiert Schnittstellen flir Str(ing)-, I tem-und Dict(ionary )-Moduln_ KapitellO liefert eine erste Realisierung der Moduln mit Hilfe von Feldern. Kapitelll flihrt dynamische Datenstrukturen ein, wie Listen, Binarbaume und B-Baume und diskutiert ihre Vor-und Nachteile. Kapitel12 behandelt Strings: Realisierungen und Anwendungen. Kapitel13 beschaftigt sich mit den verschiedenen Formen der Formatierung: Seitenum bruch, Zeilenumbruch und das Formatieren von Pascal-Programmen. Kapitel14, das letzte Kapitel, ist dem Pascal-Priiprozessor gewidmet, mit dem es gelingt, in Standard-Pascal modular zu programmieren. Was befindet sich auf den Disketten? Die Disketten enthalten in Quellformat die Programme des Buches und daruber hinaus auch noch alle Lbsungen der Aufgaben. Sie sind in zwei Diskettenformaten erhaltlich: 1. flir TURBO-Pascal im IBM-PC (360 KB) Diskettenformat und 2. flir TURBO-Pascal flir CP/M im Apple-Diskettenformat. Nun bleibt noch allen zu danken, die bei der Entstehung des Buches geholfen haben: Matthias Bergk, Kilian Golm, Christian Penzlin, Arnold KUhnel, Johannes Seib, Klaus Thull, urn einige zu nennen, denen wir Anregungen und Hilfe beim Kontrollesen zu verdanken haben -- und, nicht zu vergessen, der TEX-und LATEX-Formatiersoftware, siehe [Knuth- 84] und [Lamport86], auf einem Rechner des Fachbereichs Mathematik der Freien Universitat Berlin. Berlin, Juni 1986 Matthias Blumenfeld Antonius Steinkamp VIII Inhaltsverzeichnis 1 Einfache Programme mit Standard-Datentypen ............... . 1.1 Ein erstes Pascal-Programm ............................. . 1.2 Bezeichner ......................................... 3 1.3 Standard-Datentypen und ihre Werte ... . . . . . . . . . . . . . . . . . . . . . 5 1.4 Arithmetische Operatoren und Standardfunktionen .............. 8 1.5 Der Aufbau eines Programms ............................. 11 2 Einfache Kontrollstrukturen .............................. 15 2.1 IF-Anweisung und WHILE-Schleife ......................... 15 2.2 Die Ein-und Ausgabe von Zeichen ......................... 18 2.3 Logische Ausdriicke ................................... 20 2.4 Einlesen von Text-Dateien ...... . . . . . . . . . . . . . . . . . . . . . . . .. 23 2.5 Ausgabe auf Text-Dateien ............................... 25 3 Strukturierte Programmierung ............................ 30 3.1 Programrnierstil...................................... 31 3.1.1 Kommentare................................... 32 3.1.2 Die auBere Form des Programms . . . . . . . . . . . . . . . . . . . . .. 33 3.2 Die GOTO-Anweisung und ihre Verwendung . . . . . . . . . . . . . . . . . .. 36 3.3 Parameterlose Prozeduren ............................... 41 3.4 Systematisches Programmieren . . . . . . . . . . . . . . . . . . . . . . . . . . .. 42 4 Selbstdefinierte Datentypen .............................. 49 4.1 Konstanten......................................... 49 4.2 Einfache Datentypen .................................. 52 4.2.1 Aufzahltypen .................................. 53 4.2.2 Unterbereichstypen .............................. 54 4.3 Der ARRA Y-Datentyp ................................. 56 4.4 Strings in Pascal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 60 5 Weitere Kontrollstrukturen .............................. 63 5.1 Die FOR-Schleife . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 63 5.2 Die REPEAT-Schleife .............. . . . . . . . . . . . . . . . . . . .. 67 5.3 Die CASE-Anweisung .................................. 68 6 Selbstdefinierte Funktionen und Prozeduren . . . . . . . . . . . . . . . . .. 72 6.1 Einfache Funktionen .................................. 72 6.2 Der Giiltigkeitsbereich von Variablen ... . . . . . . . . . . . . . . . . . . . .. 73 Inhaltsverzeichnis IX 6.3 Rekursion ......................................... 75 6.4 Ein Backtrack-Algorithmus fUr das Acht-Damen-Problem .......... 79 6.5 Variablen-Parameter................................... 83 7 Sortierverfahren........................................ 89 7.1 Eine Testumgebung fUr Sortierverfahren .................... " 89 7.2 InsertionSort ....................................... 91 7.3 ShellSort .......................................... 92 7.4 QuickSort ......................................... 93 7.5 Ein Vergleich der Sortierverfahren .............. ,.......... 94 8 Weitere strukturierte Datentypen .......................... 95 8.1 RECORD-Typen ..................................... 95 8.2 Die WITH-Anweisung .................................. 97 8.3 Mengen ........................................... 98 9 Modularisierung........................................ 102 9.1 Vier Aufgaben und ihre Gemeinsamkeiten .................... 102 9.2 Die Schnittstelle des Item-Moduls .......................... 105 9.3 Die Schnittstelle des Dict-Moduls .......................... 107 9.4 Die Problematik von Strings in Pascal ....................... 110 9.5 Die Schnittstelle des Str-Moduls ........................... 112 9.6 Drei String-Hilfsroutinen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 114 10 Erste Realisierung der Moduln ............................ 117 10.1 Eine erste Realisierung des Str-Moduls ....................... 117 10.2 Ein Item-Modul fUr die Lagerhaltung ........................ 121 10.3 Eine erste Realisierung des Dict-Moduls ...................... 123 10.4 Das komplette Lagerhaltungsprogramm ...................... 127 11 Dynarnische Datenstrukturen . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 129 11.1 Dynamische Variable .................................. 129 11.2 Verkettete Listen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 131 11.3 Binarbliume ........................................ 135 11.4 B-Baume .......................................... 139 11.5 Vergleich der Dict-Module ......................... . . . . .. 145 12 Strings: Realisierungen und Anwendungen ................... 146 12.1 Strings als Zeichenlisten ................................ 146 12.2 Eine Kachelverarbeitung fUr Strings .... . . . . . . . . . . . . . . . . . . . .. 151 12.3 Vergleich der String-Imp1ementationen ...................... 156 12.4 Weitere Hilfsroutinen fUr Strings . . . . . . . . . . . . . . . . . . . . . . . . . .. 157 12.5 Lexikalische Analyse fUr Pascal . . . . . . . . . . . . . . . . . . . . . . . . . . .. 161 12.6 Die Cross-Referenz Aufgabe . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 165

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.