ebook img

Programmierung mit PASCAL PDF

249 Pages·1986·7.837 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 Programmierung mit PASCAL

Thomas Ottmann/Peter Widmayer Programmierung mit PASCAL Programmierung mit PASCAL Von Prof. Dr. rer. nat. Thomas Ottmann Universität Freiburg und Prof. Dr. rer. pol. Peter Widmayer Eidg. Technische Hochschule Zürich 6. Auflage EI3 B. G. Teubner Stuttgart 1995 Prof. Dr. rer. nat. Thomas Ottmann Geboren 1943 in Magdeburg. Studium der Mathematik, Physik und Mathematischen Logik in Münster; 1969 Lehramtsprüfung in Mathematik, 1971 Promotion in Mathema tischer Logik bei D. Rödding und Lehramtsprüfung in Physik. Von 1969 bis 1973 wiss. Assistent am Institut für MathematIsche Logik der Universität Münster. Von 1973 bis 1975 wiss. Assistent am Institut für Angewandte Informatik und Formale Beschrei bungsverfahren der Universität Karlsruhe. 1975 Habilitation im Fach Informatik. 1976 Wissenschaftlicher Rat und Professur. Von 1980 bis 1987 Inhaber des Lehrstuhls für Angewandte Informatik an der Universität Karlsruhe. Seit Oktober 1987 Inhaber eines Lehrstuhls für Informatik an der Universität Freiburg. Prof. Dr. rer. pol. Peter Widmayer Geboren 1953 in Sindelfingen. Studium des Wirtschaftsingenieurwesens an der Uni versität Karlsruhe; 1979 Diplom in Wirtschaftsingenieurwesen; 1983 Promotion bei Th. Ottmann. Von 1979 bis 1983 wiss. Mitarbeiter am Institut für Angewandte Infor matIk und Formale Beschreibungsverfahren der Universität Karlsruhe. Von 1983 bis 1984 Gastwissenschaftler am IBM T. J. Watson Research Center. Von 1984 bis 1988 Hochschulassistent am Institut für Angewandte Informatik und Formale Beschrei bungsverfahren der Universität Karlsruhe; 1986 Habilitation im Fach Angewandte Infor matik, 1988 Inhaber eines Lehrstuhls für Informatik an der UnIversität Freiburg. Seit 1992 Professor an der Eidg. Technischen Hochschule Zürich. Die Deutsche Bibliothek - CIP-Einheitsaufnahme Ottmann. Thomas: Programmierung mit PASCAL / von Thomas Ottmann und Peter Widmayer. - 6. Aufl. - Stuttgart : Teubner, 1995 NE: Widmayer, Peter: ISBN 978-3-519-12282-1 ISBN 978-3-322-99367-0 (eBook) DOI 10.1007/978-3-322-99367-0 Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Jede Verwer tung außerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimfllung des Verlages unzulässig und strafbar. Das gilt besonders für Vervielfältigungen, Uber setzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektroni schen Systemen. © B. G. Teubner Stuttgart 1986 Vorwort Die Programmiersprache Pascal ist inzwischen zur bevorzugten Sprache für die Einführung in das Programmieren an Universitäten geworden. Das ist natürlich kein Zufall, sondern eine Folge der Überzeugung, daß diese Sprache durch ihre klare und verhältnismäßig einfache Struktur das Programmieren als systematische Disziplin sehr gut unterstützt und damit eine positiv prägende Auswirkung auf das für die gesamte Informatik wichtige algorithmische Denken besitzt. Dieses Skript ist hervorgegangen aus Kursen an der Universität Karlsruhe für künftige Diplom-Wirtschaftsingenieure. Die dabei gesammelten Erfahrungen haben ihren Nie derschlag in diesem Buch gefunden. Es hat sich gezeigt, daß eine der Struktur der Sprache entsprechende systematische Darstellung der syntaktischen und semantischen "Features" zwar für einen erfahrenen Programmierer, der bereits andere Programmier sprachen kennt, die beste Einführung, für einen Anfänger aber unverdaulich ist. Wir haben daher versucht, eine Einführung in das Programmieren mit Pascal zu geben, die auch für Anfänger ohne Informatikkenntnisse verständlich ist. Das Programmieren in jeder Sprache verlangt ein dem Anfä.nger völlig ungewohntes Maß an Abstraktion und formaler Präzision. Es genügt aber unserer Erfahrung nach keineswegs, nur den mit dem Programmieren verbundenen Formalisierungsprozeß zu erklären. Eine ge naue Formulierung und weitgehend programmiersprachen unabhängige algorithmische Lösung von Problemen gehören unbedingt dazu. Neben der eher praktischen Schwierigkeit, die unsere Studenten mit der Ein-und Aus gabe von Daten hatten, konnten wir eine Reihe begrifflicher Verständnisschwierigkeiten beobachten. Die wichtigsten sind mit den Stichworten Blockstruktur, lokale und glo bale Namen, Rekursion, verschiedene Arten von Parametern in Prozeduren und Funk tionen, und schließlich Zeigertypen genannt. Wir haben die Syntax der Sprache Pascal nicht nur rein verbal, sondern auch formal präzise beschrieben. Daß wir dazu nicht - wie heute vielfach üblich - Syntaxdia gramme, sondern eine erweiterte BNF-Notation genommen haben, hat keine inhaltli chen, sondern rein schreibtechnische Gründe. Die Anregung zu diesem Buch verdanken wir Herrn W. Stucky, der auch viele wertvolle Hinweise gab. Unser Dank gilt vor allem Herrn L. Wegnerfür eine kritische Durchsicht des Rohmanuskripts, Herrn H.W. Six für zahlreiche Diskussionen, Frl. S. Reiniger für das Testen der Programmb eispiele und insbesondere Frau G. Hartlieb für das Schreiben des Rohmanuskripts und die sorgfältige Anfertigung der Druckvorlage. Karlsruhe, im August 1980 Th.Ottmann P. Widmayer 6 Vorwort zur 2. Auflage Bei der 2. Auflage handelt es sich im wesentlichen um einen unveränderten Nachdruck der 1. Auflage. Neben der Beseitigung der bekanntgewordenen Druckfehler ist diese Auflage lediglich um ein Schlagwortregister erweitert worden. Karlsruhe, im März 1982 Th.Ottmann P. Widmayer Vorwort zur 3. Auflage Bei Büchern wie diesem werden in der Regel die Druckvorlagen von den Autoren angefertigt, oft nur mit herkömmlichen Schreibmaschinen oder gar einfachen Ma trixdruckern. Daraus ergibt sich eine typographische Armut, die sich gerade bei Lehrbüchern besonders unangenehm bemerkbar macht. Das Resultat unserer steti gen Bemühungen, diesen Mangel an optischer Struktur zu beheben, liegt jetzt vor Ihnen. Es ist nicht nur ein Buch über Pascal, sondern auch eines, das mit Hilfe eines Pascal-Programms gestaltet wurde. Dieses Programm, TEX, unterstützt die typographisch anspruchsvolle Gestaltung von Dokumenten, insbesondere technisch-naturwissenschaftlichen Inhalts. TEX ist unter Federführung von D. Knuth entwickelt worden und hat sich im akademischen Bereich schnell verbreitet. Es ist bereits auf Mikrorechnern verfügbar und damit hoffentlich bald vielen Autoren zugänglich. TEX erzeugt eine druckerunabhängige Beschreibung des Dokuments; diese wird dann von einem hochauflösenden grafikfähigen Drucker ausgegeben. Wir haben die Druckvorlage für dieses Buch mittels TEX angefertigt. Das Buch ist durch fotografische Reproduktion unserer Druckvorlage hergestellt worden. Wir hoffen, daß Setzereien bald mit TEX angefertigte Beschreibungen von Dokumenten direkt zur Steuerung ihrer Druckmaschinen akzeptieren werden; damit ließe sich die Qualität der Druckausgabe sicherlich noch beträchtlich steigern. Mit der Verwendung von TEX haben wir die in früheren Auflagen zur Beschreibung der Syntax gewählte erweiterte BNF- Notation durch die optisch suggestiveren Syn taxdiagramme ablösen können. Seit der letzten Auflage hat sich ein Standard für Pascal etabliert (ISO 7185), und Mikrorechner mit Pascal-Übersetzern sind inzwischen weit verbreitet. Entsprechend übertrifft die Bedeutung des interaktiven Betriebs von Rechnern die der Stapelverar beitung bei weitem, gerade im Ausbildungsbereich. Wir haben beiden Punkten Rechnung getragen, indem wir den ISO-Standard in dieses Buch eingearbeitet und alle Programme auf Dialogbetrieb umgestellt haben. Die 7 Möglichkeit der Stapelverarbeitung wird dennoch exemplarisch diskutiert. Wir haben nicht versucht, die verschiedenen auf Mikrorechnern verfügbaren Pascal-Dialekte dar zustellen, oder Spezialitäten von Compilern zu erläutern. Das Ziel dieses Buchs bleibt es, die Grundsätze des Schreibens guter Pascal-Programme zu illustrieren. Die Hörer und die Tutoren der Pascal-Vorlesungen für Wirtschaftsingenieurstudenten an der Universität Karlsruhe und unsere Kollegen am Institut für Angewandte Informa tik und Formale Beschreibungsverfahren haben durch Kommentare und Diskussionen zum gegenwärtigen Inhalt dieses Buches beigetragen. Herr H. Kleine Büning und Herr W. Stucky haben uns auf kritische Punkte und Alternativen hingewiesen. Frau B. Beck hat den Text auf einem Rechner komplett neu erfasst und mit TEX-Kommandos aus gestattet. Frau M. Stanzel hat das Rohmanuskript dann mit äußerster Sorgfalt in seine endgültige Form gebracht. Frau A. Bruggemann-Klein hat dabei nicht nur ihr Expertenwissen in TEX zur Verfügung gestellt, sondern auch die 'lEX-Kommandos (Makros) für die Definition von Syntaxdiagrammen beigesteuert. Als Vorlage dazu hat ein Makropaket für Syntaxdiagramme gedient, das uns Herr M. Plass, XEROX PARC, überlassen hat. Den Hinweis auf die Existenz dieses Makropakets gab uns Herr M. Schrapp. Ihnen allen gebührt unser Dank. Ohne ihre tatkräftige Mitarbeit könnte dieses Buch nicht in seiner gegenwärtigen Form vor Ihnen liegen. Karlsruhe, im Januar 1986 Th.Ottmann P. Widmayer Vorwort zur 5. Auflage Diese Auflage ist im wesentlichen gegenüber der dritten Auflage unverändert. Wir haben lediglich einige Kommentare und Anregungen eingearbeitet, für die wir uns bei den Studierenden und Kollegen an der FernUniversität Hagen bedanken. Freiburg, im Februar 1992 Th.Ottmann P. Widmayer Vorwort zur 6. Auflage Die vorliegende Auflage ist ein unveränderter Nachdruck der 5. Auflage. Freiburg Th.Ottmann Zürich, im Februar 1995 P. Widmayer Inhaltsverzeichnis Vorwort 5 Inhaltsverzeichnis 9 1. Allgemeine Eigenschaften von Algorithmen und Programmen 13 1.1 Intuitives zu Algorithmen und Programmen 13 1.2 Schritte zur algorithmischen Lösung von Problemen 16 1.3 Historisches zur Sprache Pascal 23 2. Grundlagen und Struktur von Pascal-Programmen 25 2.1 Zur Beschreibung der Syntax 25 2.2 Struktur von Pascal-Programmen 27 2.3 Die Beschreibung der Daten 29 2.3.1 Konstanten und Literale 29 2.3.2 Variablen und Datentypen 32 2.3.2.1 Der Datentyp integer 32 2.3.2.2 Der Datentyp real 35 2.3.2.3 Der Datentyp boolean 36 2.3.2.4 Der Datentyp char 38 2.4 Die Beschreibung der Aktionen 40 2.4.1 Einige einfache Anweisungen 41 2.4.2 Standardein- und -ausgabe 44 3. Die Steuerung der Ausführung von Anweisungen 53 3.1 Die bedingte Anweisung (if-statement) 53 3.2 Wiederholungsanweisungen 60 3.2.1 Das repeat-statement 61 3.2.2 Das while-statement 70 3.2.3 Das for-statement 74 10 4. Selbstdefinierbare Datentypen und die Fallunterscheidung 81 4.1 Der Aufzählungstyp 82 4.2 Der Ausschnittstyp 84 4.3 Die Fallunterscheidung (case-statement) 86 4.4 Der array-Typ 87 4.4.1 Eindimensionale arrays 87 4.4.2 Mehrdimensionale arrays 96 4.5 Besonderheiten; gepackte Darstellung 100 5. Funktionen und Prozeduren; Blockstruktur 105 5.1 Funktionen 105 5.1.0 Zum Funktionsbegriff 105 5.1.1 Funktionen in Pascal 108 5.1.2 Beispiele 110 5.2 Blockstruktur, lokale und globale Größen 113 5.3 Rekursiv definierte Funktionen 122 5.4 Beispiele für rekursiv deklarierte Funktionen 128 5.4.1 Direkte Rekursion 128 5.4.2 Indirekte Rekursion 136 5.5 Prozeduren 139 5.6 Rekursive Prozeduren 148 5.6.1 Türme von Brahma 152 5.7 Funktionen und Prozeduren als Parameter 156 5.8 Besonderheiten 160 6. Weitere strukturierte Datentypen; das with-statement 165 6.1 Der set-Typ 166 6.2 Der record-Typ 171 6.2.1 Records ohne Varianten 171 6.2.2 Das with-statement 175 6.2.3 Records mit Varianten 179 6.3 Der file-Typ 183 6.3.1 Die Beschreibung und Manipulation von files im allgemeinen 184 6.3.2 Text files 191 11 7. Der Zeigertyp 199 8. Marken und Sprünge 221 9. Anhang 227 9.1 Syntax 227 9.2 Schlüsselworte 243 9.3 Standardnamen 243 9.4 Sonderzeichen 244 9.5 Schlagwortregister 245 Literaturverzeichnis 255 1. Allgemeine Eigenschaften von Algorithmen und Programmen 1.1 Intuitives zu Algorithmen und Programmen Programmiersprachen sind künstl!ch gesci1affene Sprachen zur Formulierung von Al gorithmen. Das wird auch ausgedrückt durch den Namen der Programmiersprache ALGOL, die als Vorläufer der in diesem Buch behandelten Programmiersprache Pas cal angesehen werden kann. ALGOL ist eine Abkürzung für Algorithmic Language. (Pascal dagegegen ist kein Kunstwort, sondern erinnert an den französischen Philoso phen, Mathematiker und Physiker Blaise Pascal, der von 1623 bis 1662 lebte.) Die Notwendigkeit zur Formulierung von Algorithmen in künstlich geschaffenen Spra chen wie ALGOL oder Pascal ergab sich erst aus dem Wunsch, Algorithmen durch Computer ausführen zu lassen. Eine Programmiersprache ist damit eine Sprache, in der man einem Computer einen Algorithmus mitteilt. Algorithmen haben allerdings vor allem in der Mathematik schon immer eine wichtige Rolle gespielt, lange bevor die ersten elektronischen Rechenanlagen gebaut wurden. Eine intuitive Definition des Algorithmenbegriffs könnte etwa so lauten: Ein Algorithmus ist ein Verfahren zur systematischen, schrittweisen Lösung ei nes Problems. Allgemein bekannt sind Verfahren zur Addition und Multiplikation zweier Dezimal zahlen. Mancher Leser erinnert sich vielleicht auch noch an den Euklidischen Al gorithmus zur Bestimmung des größten gemeinsamen Teilert~ zweier Zahlen, an ein Näherungsverfahren zur Bestimmung der Quadratwurzel einer Zahl oder an ein Ver fahren zum Lösen quadratischer Gleichungen. Diese und andere Verfahren sind in vielen Schulbüchern in deutscher Sprache unter zusätzlicher Verwendung einiger ma thematischer Sonderzeichen beschrieben. Manchmal wird ein Algorithmus auch nur mündlich durch den Lehrer erläutert und so lange an Beispielen erklärt, bis die Schüler wissen, wie sie einen bisher nicht behandelten Spezialfall eines Problems mit Hilfe des Algorithmus lösen können. Außer in der Mathematik begegnen wir auch in anderen Bereichen des Lebens Al gorithmen ganz unterschiedlicher Art, ohne daß wir uns dessen bewußt sind. Diese Algorithmen sind i.a. in der deutschen Umgangssprache formuliert. Wir geben einige Beispiele: - Ärztliche Verordnung: Nimm dreimal täglich 15 Tropfen Asperix vor den Mahl zeiten. - Waschanleitung: Bei 60° waschen; Waschmittelzugabe in Abhängigkeit von der Wasserhärte nach Angaben des Waschmittelherstellers.

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.