• Keine Ergebnisse gefunden

Springer-Verlag Berlin Heidelberg GmbH

N/A
N/A
Protected

Academic year: 2022

Aktie "Springer-Verlag Berlin Heidelberg GmbH"

Copied!
10
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Springer-Lehrbuch

(2)

Springer-Verlag Berlin Heidelberg GmbH

(3)

Manfred Broy Bernhard Rumpe

Obungen zur Einflihrung in die Informatik

Strukturierte Aufgabensammlung mit Musterlosungen

2., tiberarbeitete Auflage

Mit 129 Abbildungen, 30 Tabellen und CD-ROM

Springer

(4)

Prof. Dr. Manfred Broy Dr. Bernhard Rumpe Technische Universilat Munchen Inst itut fUr Informatîk

D-80290 MUnchen

E-mail: broy@informatik.tu-muenchen.de rumpe@informatik.lu-muenchen.de Internet : http://www-4.informatîk.tu-muenchen.de

Di~ Deuuehe Bibliothtk - CU'·EinhtiUaufn.hme Obung~n zur Einfuhrung in die Informalik: 51ruklurier!~

Aufgabensammlung mit Mu slerlijsungen I Manfr~d Broy; Bernhard Rump •.

2 .• tiberarb-.Aun .. - Berlin: Heidtlbug; New York: Barcelona: Hongkong;

London; Mai land: Paris; Tokio: Springer 2002 (Springt r·uhrbuch)

ISBN 978-3-540-42065-1 ISBN 978-3-642-56040-8 (eBook) DOI 10.1007/978-3-642-56040-8

ISBN 978-3-540-42065- 1

Dies.-s W.rk ill urheberrKhrlich geschiirzr. Dit dadurch b~grllndere n Rechre. insbesondere die der Oberserzung.

des Naehdruck5. des Vortrags, der Enlnahme von Abbildun ge n und Tab~llen. der Funk s.-ndung, der Mikroverfil·

mung ode r der Vuvielfll!!igung luf Inder~n Wegt n und der Speicherung in Datenverarbeitungsanlagen. bleibtn.

auch bei nur auszugsweiser Vorwertung. vorbeha!!en. Ein. Verviellll!!igung diese, Wtrkes ode< von Teiltn di •• t.

W.rke, in aueh im Einulfall nm in den Grenun dor ge",tzlichen B .. timmungen de, Urheberrec h1SgeSOlZ" dor Bundenepublik DeulKhland vom 9. Septemb .. 1965 in d .. jeweils geltenden FalSung zullssig. Sie iSI grundsiilliich vergOtunglpfl ichtig. Zuwiderhandlungen unterliegen den Strafbestimmungen du Urhtb.rrtchug ... tzes.

httrrj/www,lpring. r.d~

C Springer_Vt rlag Berlin Heidelberg 2001

Oie Wiedergabe von Gebrauch.namen. Hand.llnamen. Wa"nbe .. ichnungen UIW. in di .. em \l'erk b ... chtigr aueh ohn e besondere K~nnzeichnung nichl zu dor Annahme. dafl solche N_men im Sinnt d .. Wa renu;chen. und Mar.

ke nsc"utt·G"~lzg.bung al. frei zu bea_chten wiren und dah .. von jedermann btnutzr werden durften.

Text.Abbildungen und Programme in di esem Buch und der beigel egt~n CO·ROM wurden sorgf:ilti g ... rbtitet. Vor_

lag und AUlo"n kijnnon jodoch fur evenluell "orbliebene fehl erhafte Angaben und der. n Folgen weder ein o juri,·

ti Kh e Verantwonung noch irgend eine Haflung lI~rnehmon.

Satz: Reproduktion,fenige AUlorenvoriage

Umschlaggesta ltung: design ee production Gmbh. Heidel~rg

Gedruckt auf 11u .. {reiem Papi.. SPIN: 10837598 33/31421XO·54 3 2 I O

(5)

Vorwort

Ohne die Bearbeitung konkreter Aufgaben, ohne breit angelegte Ubung kann ein verwertbares Wissen in der Informatik nicht erworben werden. Der Wert und die Funktion eines Ubungsbuches ist deshalb gar nicht hoch genug ein- zuschatzen. Mit Freude haben wir verfolgt, wie intensiv unser Ubungsbuch in den Einfuhrungsvorlesungen der Informatik von Studenten, Ubungsleitern und Dozenten genutzt wurde.

Obwohl mittlerweile der Kern der Informatik in weiten Teilen bemerkens- wert stabil ist und bleibt und damit ein GroBteil der Ubungsaufgaben auf Dauer aktuell ist, mussen sie doch in ihrer Auspragung laufend an die aktu- elle, sich schnell verandernde Situation der Informatik angepaBt werden. Dies betrifft im Fall unseres Ubungsbuches die Anpassung auf zeitgemaBe Pro- grammiersprachen, etwa auf die aktuelle Version von Java und den verfugba- ren Werkzeugen fur Compilerbau und Testmodellierung. In diesem Zusam- menhang haben wir die Nutzung der Programmiersprache Modula-2, die zwar fur padagogische Ziele sehr gut geeignet ist, aber leider nicht die erhoffte Verbreitung gefunden hat, eliminiert. Zusatzlich haben wir neue Aufgaben definiert, noch mehr Musterlosungen beigelegt und einige Fehler und Unge- nauigkeiten beseitigt. Speziell der steigenden Bedeutung von automatisierten Tests und der Modellierung von Softwaresystemen mit der UML wurde mit den neuen Aufgaben Rechnung getragen.

Wir hoffen, daB in der vorliegenden Form dieses Buch noch besser ge- eignet ist, urn Studenten und Interessenten durch aktive Beschaftigung mit Problemstellungen an die Kerninhalte der Informatik heranzufiihren.

Wir bedanken uns bei allen, die bei der 2. Auflage des Ubungsbuchs mit- gewirkt haben, und ohne die eine Uberarbeitung in dieser Form nicht moglich gewesen ware: Tobias Weinzierl, Alexandra Remptke und Gerwin Klein. Be- sonderer Dank gilt in diesem Zusammenhang wieder unserem Verlag, dem Springer-Verlag, und dabei Herrn Engesser, der uns bei der Uberarbeitung hervorragend unterstiitzt hat.

Wir wunschen allen gute Lernerfolge und viel SpaB mit diesem Ubungs- buch. Fur Anregungen und Erganzungen sind wir jederzeit dankbar.

Munchen, im August 2001 Manfred Broy, Bernhard Rumpe

(6)

'II \Torvvort

Vorwort zur ersten Auflage

Informatik ist vor allem Ingenieurvvissenschaft. Beherrschend ist die Aufgabe, praktische, konkrete Problemstellungen mit Mitteln der maschinellen Infor- mationsverarbeitung zu losen. Dies erfordert zvvar - besonders bei komplexen Aufgaben - umfangreiche theoretische Kenntnisse und ein tiefes VersHindnis filr die Strukturen der Informationsverarbeitung, entscheidend ist aber im- mer die Fahigkeit, konkrete praktische Losungen zu erarbeiten. Schon daraus ergibt sich, daB das Studium der Informatik und seine wesentlichen Bestand- teile ohne bestandige Ubungen kaum durchzufilhren sind. Zwar leidet die Informatik wie aile anderen Ingenieurwissenschaften grundsatzlich an dem Problem, daB die Durchfilhrung von Ubungen realistischer GroBenordnung aufgrund der Zeit- und Mittelbeschrankungen innerhalb des Studiums kaum denkbar ist, aber trotzdem milssen Ubungen und das aktive Erarbeiten der Stoffinhalte eine entscheidende Betonung erhalten.

Das vorliegende Buch enthalt Ubungen zu der viersemestrigen Vorlesung

"Einfilhrung in die Informatik", wie sie an vielen deutschen Universitaten, insbesondere an der Technischen Universitat Milnchen und auch an der Uni- versitat Passau gehalten wird. Die Ubungsaufgaben entstammen teilweise den Ubungen, die im Rahmen dieser Vorlesungen in den Jahren von 1983 bis 1989 an der Universitat Passau und von 1989 bis 1997 an der Technischen Universitat Milnchen abgehalten worden sind. Sie wurden aber durch weitere Aufgaben erganzt und aktualisiert.

Damit bildet diese Sammlung von Ubungsaufgaben die ideale Erganzung zu der Einfiihrung eines der Autoren (M. B.), Informatik - Eine grundle- gende Einfilhrung, die in vier Banden von 1991 bis 1995 erschienen ist und deren 2. Auflage in zwei Banden 1997 und 1998 erscheinen wird. Sie soil Dozenten und Ubungsleitern Anregungen geben und Studenten zusatzliche Ubungsmoglichkeiten eroffnen.

Neben den Aufgaben, die die Inhalte der Einfiihrung in die Informatik abdecken, sind eine Reihe erganzender Aufgaben filr eine Vertiefung des Stof- fes und eine Hinfilhrung zum Hauptteil des Informatik-Studiums enthalten.

Erganzend werden insbesondere Programmieraufgaben in den funktionalen, imperativen bzw. objektorientierten Sprachen Gofer, Modula-2 und Java so- wie der Assemblersprache MI angeboten, die die praktische Umsetzung der in der Theorie erarbeiteten Konzepte erlauben. Auf der beigelegten CD-ROM sind Ubersetzer bzw. Interpreter dieser Sprachen und eine Reihe von Pro- grammrahmen und Musterlosungen enthalten.

Mit dem Erscheinen dieses Buches verbinden wir die Hoffnung, daB es mit ihm einfacher wird, sich Teile der Informatik auch im Selbststudium anzueignen. Dies ist gerade deshalb wichtig, weil die Informatik in immer weitere Bereiche unseres Lebens Einzug halt und nur ein tieferes Verstandnis filr die Inhalte der Informatik eine zielgerichtete Informationsverarbeitung ermoglicht.

(7)

Vorwort VII

Wir danken allen, die zum Gelingen dieses Ubungsbandes beigetragen ha- ben. Dies sind insbesondere Ralf Steinbruggen, Marc Sihling, Birgit Schieder, Christian Prehofer, Jan Philipps, David von Oheimb, Werner Meixner, In- golf Kruger, Heinrich Hu13mann, Radu Grosu, Thomas Gritzner, Max Fuchs, Claus Dendorfer und Max Breitling, die mit gro13em Engagement und auch mit Spa13 die jeweiligen Ubungsaufgaben gemeinsam mit uns erarbeitet, Mu- sterlosungen erstellt und diese mit den Studenten durchgearbeitet haben. Fur die Mithilfe bei der Erstellung, Uberarbeitung und Korrektur des Skripts danken wir Peter Scholz, Sascha Molterer, Franz Huber, Saulius Narkevicius, Bert van Heukelom und Christian Basler. Dariiber hinaus gilt unser Dank den Studentinnen und Studenten, die in vielfaltiger Weise interessante Ruck- kopplungen zu den Aufgaben gegeben haben. Nicht zuletzt danken wir dem Springer-Verlag, vor allem Hans Wossner, fUr die bewahrte hervorragende Zusammenarbeit.

Wir wunschen allen gute Lernerfolge und viel Spa13 mit diesem Ubungs- buch. Fur Anregungen und Erganzungen sind wir jederzeit dankbar.

Munchen, im August 1997 Manfred Broy, Bernhard Rumpe

(8)

Inhaltsverzeichnis

1. Einleitende Bemerkungen. . . 1

1.1 Umgang mit den Ubungsaufgaben . . . 1

1.2 Inhalte von CD-ROM und Internetauftritt . . . 2

2. Liste der Aufgaben und Losungen ... . . .. .. . . 5

3. Einfiihrung in Programmiersprachen. . . .. 11

3.1 Gofer... 12

3.1.1 Berechnung von Ausdriicken . . . .. 12

3.1.2 Eigendefinierte Funktionen 13 3.1.3 Ein kleines Beispiel. . . .. 14

3.1.4 Grundlegende Rechenstrukturen in Gofer. . . .. 15

3.1.5 Funktionales Programmieren in Gofer. . . .. 19

3.1.6 Strukturierung von Ausdriicken ... . . .. 22

3.1.7 Sortendeklarationen in Gofer. . . .. 23

3.2 MI Assembler. . . .. 28

3.3 Java... 29

3.3.1 Allgemeines zu Java. . . .. 29

3.3.2 Grundlegende Konzepte . . . .. 30

3.3.3 Programmstruktur, Ubersetzung und Start . . . .. 31

3.3.4 Grundlegende Konstrukte . . . .. 32

3.3.5 Bibliotheksklassenj-operationen... 39

3.3.6 Klassendiagramme in Java. . . .. 43

3.3.7 ProzeBkoordination... 45

3.3.8 Semaphore in Java 48

3.3.9 Compilerbau mit Java 49

(9)

X Inhaltsverzeichnis

AI. Aufgaben zu Teil I:

Problemnahe Programmierung 57

Al.1 Information und ihre Reprasentation . . . .. 57

Al.2 Rechenstrukturen und Algorithmen . . . .. 61

Al.3 Programmiersprachen und Programmierung.. . . . .. . . .. 71

A1.4 Applikative Programmiersprachen . . . .. 72

Al.5 Zuweisungsorientierte Ablaufstrukturen 77 Al.6 Sortendeklarationen 83 Al. 7 Maschinennahe Sprachelemente: Spriinge und Referenzen . . .. 85

Al.8 Rekursive Sortendeklarationen . . . .. 86

Al.9 Objektorientierte Programmierung. . . .. 90

A2. Aufgaben zu Teil II: Rechnerstrukturen und maschinennahe Programmierung 97 A2.1 Codierung und Informationstheorie . . . .. 97

A2.2 Binare Schaltnetze und Schaltwerke. . . .. 99

A2.3 Aufbau von Rechenanlagen 106

A2.4 Maschinennahe Programmstrukturen 109

A3. Aufgaben zu Teil III:

Systemstrukturen und systemnahe Programmierung 115 A3.1 Prozesse, Kommunikation und Koordination

in verteilten Systemen 115

A3.2 Betriebssysteme und Systemprogrammierung 127 A3.3 Interpretation und Ubersetzung von Programmen 128 A4. Aufgaben zu Teil IV:

Theoretische Informatik, Algorithmen und Daten-

strukturen, Logikprogrammierung, Objektorientierung 139

A4.1 Formale Sprachen 139

A4.2 Berechenbarkeit 144

A4.3 Komplexitatstheorie 148

A4.4 Effiziente Algorithmen und Datenstrukturen 150 A4.5 Beschreibungstechniken in der Programmierung 153

(10)

Inhaltsverzeichnis XI

Ll. Losungen zu Teil I:

Problemnahe Programmierung 155

Ll.1 Information und ihre Reprasentation 155

L1.2 Rechenstrukturen und Algorithmen 163

Ll.3 Programmiersprachen und Programmierung " 178

Ll.4 Applikative Programmiersprachen 180

Ll.5 Zuweisungsorientierte Ablaufstrukturen 190

Ll.6 Sortendeklarationen 199

Ll.7 Maschinennahe Sprachelemente: Spriinge und Referenzen 203

Ll.8 Rekursive Sortendeklarationen 204

Ll.9 Objektorientierte Programmierung 210

L2. Losungen zu Teil II:

Rechnerstrukturen und maschinennahe Programmierung 219

L2.1 Codierung und Informationstheorie 219

L2.2 Binare Schaltnetze und Schaltwerke 224

L2.3 Aufbau von Rechenanlagen 238

L2.4 Maschinennahe Programmstrukturen 247

L3. Losungen zu Teil III:

Systemstrukturen und systemnahe Programmierung 257 L3.1 Prozesse, Kommunikation und Koordination

in verteilten Systemen 257

L3.2 Betriebssysteme und Systemprogrammierung 281 L3.3 Interpretation und Ubersetzung von Programmen 286 L4. Losungen zu Teil IV:

Theoretische Informatik, Algorithmen und Daten-

strukturen, Logikprogrammierung, Objektorientierung 315

L4.1 Formale Sprachen 315

L4.2 Berechenbarkeit 333

L4.3 Komplexitatstheorie 347

L4.4 Effiziente Algorithmen und Datenstrukturen 351 L4.5 Beschreibungstechniken in der Programmierung 364

Literatur 367

Index 370

Referenzen

ÄHNLICHE DOKUMENTE

Einflusse der Materialeigenschaften, Ausbreitungskonstanten und Eindringtiefen, Wel- lenllinge und Geschwindigkeit, Wellenwiderstand, POYNTINGvektor, Skineffekt etc. Man

Dazu werden fUr eine imperative, eine funktionale und eine logische Programmierspra- che jeweils eine geeignete abstrakte Maschine angegeben und die Ubersetzung von

Besonderer Wert wird darauf gelegt, die Methoden der Be- schreibung und Verarbeitung zeitdiskreter (digitaler) Signale von vorne- herein mit einzuarbeiten und die engen

Trotzdem glaube ich, daB das Grundwissen zur linearen Algebra und analytischen Geometrie, welches in einer zweisemestrigen Vorlesung behandelt werden sollte, durch

Aus den gegenwärtig verfügbaren Einführungen in das Zivikecht hebt sich die Dar- stellung von Thomas Zerres mehrfach hervor: Zum einen informiert sie kurz und bündig auch über

Gesetz über die Pflichtversicherung für Kraftfahrzeughalter (Pflichtversicherungs- gesetz). Produkthaftungsgesetz Protokolle zum BGB

Es gibt eine Vielzahl deutschsprachiger Bücher zur Statistik, wobei die Autoren unterschiedliche Schwerpunkte gesetzt haben- von der Darstellung spezifischer Lehrinhalte

Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Waren- bezeichnungen usw. in diesem Werk berechtigt auch ohne besondere Kennzeichnung nicht zu der Annabme, daB