Das siebte Buch: Objektorientierung mit C++ Von Prof. Dr. rer. nat. Ernst-Erich Doberkat Universitat Dortmund

Größe: px
Ab Seite anzeigen:

Download "Das siebte Buch: Objektorientierung mit C++ Von Prof. Dr. rer. nat. Ernst-Erich Doberkat Universitat Dortmund"

Transkript

1 Das siebte Buch: Objektorientierung mit C++ Von Prof. Dr. rer. nat. Ernst-Erich Doberkat Universitat Dortmund EI3 B.G.Teubner Stuttgart Leipzig Wiesbaden 2000

2 Prof. Dr. rer. nat. Ernst-Erich Doberkat Geboren 1948 in Breckerfeld/Westfalen. Studium der Mathematik und Philosophie an der Ruhr-Universitat Bochum, 1973 Diplom in Mathematik Promotion zum Dr. rer. nat. im Fach Mathematik an der Universitat Paderborn, 1979 venia /egendi for das Fach Informatik an der FernUniversitat Hagen. Von 1981 bis 1985 Associate Professor of Mathematics and Computer Science am Clarkson College of Technology, Potsdam (New York); LehrstOhle an den Universitaten Hildesheim und Essen, seit 1993 Inhaber des Lehrstuhls for Software-Technologie an der Universitat Dortmund. Vie 1- faltige Arbeitsgebiete in der Softwaretechnik, daneben BemOhungen um den Technologie-Transfer und um Multimedia in der akademischen Ausbildung. 1. Auflage August 2000 Die Deutsche Bibliothek - CIP-Einheitsaufnahme Ein Titelsatz for diese Publikation ist bei Der Deutschen Bibliothek ermltlich. Aile Rechte vorbehalten B. G. Teubner Stuttgart Leipzig' Wiesbaden 2000 Der Verlag Teubner ist ein Unternehmen der Fachverlagsgruppe BertelsmannSpringer. Das Werk einschlieblich aller seiner Teile ist urheberrechtlich geschotzt. Jede Verwertung auberhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlages unzulassig und strafbar. Das gilt besonders for Vervielfaltigungen, Ubersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen. Konzeption und Layout des Einbands: Peter Pfitz, Stuttgart ISBNI-13: : / e-isbn-13:

3 Dieses Such ist Dr. Rudolf Peter gewidmet.

4 Inhaltsverzeichnis o {/ / Vorvort 1 Die Hofzwerge in der Wiener Hotburg 1.1 Die Hierarchie der Hofzwerge 1.2 Die Analyse 1.3 Aufgaben. 2 Erste Schritte 2.1 Die Vorgehensweise bei der Programmkonstruktion 2.2 Zur Ubersetzung von Programmen 2.3 Das erste Programm Die include-anweisung Elementare Datentypen Einfacbe Ein- und Ausgabe 2.7 Eine Anmerkung zum Thema Variablen 2.8 Anhang: Schliisselwiirter und reservierte Symbole in C Aufgaben Einige Beispiele 3.1 Ein einfacher Text Noch ein einfacher Text; Felder 3.3 Ausblick. 3.4 Aufgaben Funktionen und lokale Variable 4.1 Funktionen Zuriick zum Problem. 4.3 Zeichenketten. 4.4 Der?-Operator 4.5 Aufgaben... 5 Vereinbarung von Namen 5.1 Definitionen, Deklarationen und externe Variable 5.2 Giiltigkeit von Deklarationen und Definitionen 5.3 Namensanalyse Statische Variablen. 5.5 Aufgaben.... ix v

5 INHALTSVERZEICHNIS 6 Zeiger: Oh! Jetzt wird es lustig 6.1 Adressen Die Funktion Tausch Felder und Zeiger Funktionen als Parameter 6.5 Mehrdimensionale Felder. 6.6 Aufgaben Zusammengesetzte Strukturen 7.1 struct als Konstruktion. 7.2 Verkettete Listen 7.3 Aufgaben Binare Biiume und Suche 8.1 Eine Suchstruktur Binii.re Baume Definition von binaren Suchbaumen 8.4 Aufgaben Einfache Dateibehandlung 9.1 Dateien Dateien: Lesen und Schreiben 9.3 Handhabung: Einzelheiten. 9.4 Aufgaben Funktionale Komponenten und Abstrakte Datentypen 10.1 Die Neujahrsansprache Tiefensuche in binii.ren Baumen 10.3 Breitensuche Zugriffsspezifikationen Warteschlangen als Abstrakte Datentypen 10.6 Zuriick zur Breitensuche 10.7 Statische Komponenten 10.8 Was haben wir gelernt? 10.9 Aufgaben Prioritiitswarteschlangen 11.1 Der Abstrakte Datentyp Prioritatswarteschlange 11.2 Heaps Noch einmal: Einfiigen in einen Heap Der Sortieralgorithmus Heapsort 11.5 Ein kurzer Riickblick 11.6 Aufgaben vi

6 INHALTSVERZEICHNIS 12 Graphen 12.1 Zur Definition von Graphen Zur abstrakten Realisierung ungerichteter Graphen 12.3 Der Abstrakte Datentyp UndirGraph Pausenmusik Der Datentyp Knoten Rcalisierung des Graphen 12.7 Beispielprogramm 12.8 Aufgaben Klassen - Konstruktionen und Beispiele 13.1 Die Klasse Punkt Uberladen von Methoden 13.3 Konstruktoren Destruktoren Regeln fur die Anwendung von Konstruktoren und Destruktoren 13.6 Aufgaben Einfache Vererbung 14.1 Ein einfuhrendes Beispiel zur Vererbung 14.2 Vererbung: das neue Zauberwort Neues Problem: Manner und Frauen 14.4 Abstrakte Klassen 14.5 Aufgaben Virtuelle Methoden und andere Prazisierungen 15.1 Obst, Friichte und andere Agrarprodukte 15.2 Rein virtuelle Methoden 15.3 Aufgaben Zuriick zu den Hofzwergen: die Implementierung 16.1 Zum Programmentwurf Die Klasse Hofarbeiter als Wurzel Die nachste Ebene Was haben wir denn jetzt daraus gelernt? 16.5 Der Zahlmeister der Hofburg Nachtrag: inline-vereinbarungen Hashing: die etwas andere Suchtechnik 17.1 Suchoperationen oder: Die Idee beim Hashing 17.2 Was ist zu tun? Der Datentyp IntListe Hashing Realisierung der Klasse HashTafel 17.6 Eine erste Verallgemeinerung 17.7 Was lernen wir daraus? 17.8 Aufgaben vii

7 INHALTSVERZEICHNIS 18 Schablonen 18.1 Einfiihrendes Beispiel: komplexe Zahlen 18.2 Zwischeniiberlegung Einfache Listenkonstruktionen Hashing fiir beliebige Datentypen Hashtafeln als Schablonen Hashing fiir komplexe Zahlen Hashing fiir binii.re Suchbii.ume 18.8 Und jetzt geht' s los Riickblick: Vorgehensweise. 18.lOAufgaben Ausnahmebehandlung 19.1 Ein einfiihrendes Beispiel 19.2 Eine differenzierende Betrachtung Das Kleingedruckte Aufgaben } / /Nachwort Literat urverzeichnis Index viii

8 KapitelO { / / Vorwort Der Werkzeugkasten der Methoden zur objektorientierten Softwarekonstruktion hat sich in der taglichen Praxis des Softwareingenieurs als Kollektion recht wirkungsvoller Hilfsmittel erwiesen. Diese Methoden helfen bei der Konstruktion korrekter, zuverlassiger und wiederverwendbarer Software. Sie begleiten die Konstruktion von der Analyse, also den ersten Ideen eines Programms, tiber den Entwurf bis hin zur Implementierung. Die Objektorientierung dient hierbei anfangs als Richtschnur zur angemessenen Beschreibung der Phanomene, die man modellieren und dann in einem Programm angemessen implementieren mochte. Sie wird in vielen Programmiersprachen durch sprachliche Hilfsmittel untersttitzt - als Schlagworte mogen die Begriffe Klasse, Geheimnisprinzip und Vererbung dienen, so dafi ein objektorientierter Entwurf auch objektorientiert implementiert werden kann. Objektorientierung als Anfang Da sich objektorientierte Methoden bewii.hrt haben, besteht breiter Konsens daruber, dafi die Einfiihrung in die Informatik mit einer objektorientierten Programmiersprache beginnen soli. Das Argument, mit dem Proponenten der Objektorientierung arbeiten, lautet etwa so: Es gelingt, viele Phanomene der natiirlichen Welt mit objektorientierten Hilfsmitteln auf natiirliche Weise zu modellieren, daher sollte eine Einfiihrung in die Informatik fruh mit diesen Methoden vertraut machen. 1m Tandem mit diesem Argument kommt dann auch eine objektorientierte Programmiersprache. Nun mag man diskutieren, ob die Objektorientierung wirklich eine natiirliche Modellierung ist. Sie ist vielen anderen Modellierungsmethoden uberlegen. Warum das so ist, werden Sie in diesem Buch sehen. Der Beifahrer dieser Argumentation, nii.mlich die Programmiersprache, sollte auch objektorientiert sein. Das ist einsichtig, denn man mochte keinen methodischen Bruch zwischen der Modellierung und der Implementierung, also der Realisierung in einem Programm, entstehen lassen. Solche methodischen Bruche fiihren erfahrungsgemiill leicht zu kognitiven Bruchen, so dafi die Vorteile, die man sich muhsam bei der Modellierung erobert hat, bei der Implementierung verloren zu gehen drohen. Gegenwii.rtig werden zwei objektorientierte Programmiersprachen als Sprachen fiir den akademischen Anfangsunterricht bevorzugt, nii.mlich die Sprachen JAVA und C++. Die Programmiersprache JAVA begann im zweiten Drittel der neunziger Jahre des vorigen Jahrhunderts mit ihrem Siegeszug und scheint unbezwingbar zu sein. Ihre vielen Vorteile machen es ihr leicht, ein Anwendungsfeld nach dem anderen zu erobern. Sie kann ihre Abstammung von ix

9 KAPITEL O. {/ I VORWORT c++ und, wenn man genauer hinschaut, von BETA nicht leugnen. Die Programmiersprache C++ hingegen basiert auf der kampferprobten Sprache C, der Basis fur das populiire Betriebssystem UNIX (mit seinen modischen LINux-Varianten). C++ ist die objektorientierte Tochter von C, also eine Spracherweiterung durch objektorientierte Konstruktionen. So entstand dieses Buch Der Verfasser durfte ab WS 97/98 die Dortmunder Erstsemester der Elektrotechnik in die Informatik einfiihren. Auf Bitten der FakuItat fiir Elektrotechnik wurde eine zweisemestrige Veranstaltung Einfuhrung in die InJormatik for Ingenieure IIIJ konzipiert und in einem zweiten Durchlauf vaiidiert. Sie sollte und soil nach den Vorstellungen der Fakultat Algorithmen und Datenstrukturen sowie objektorientierte Konzepte zusammen mit der Programmiersprache C++ lehren. Die Entscheidung, C++ ais Sprache vorzuschlagen, beruhte auf der Beobachtung dab viele Programmkomponenten und Bibliotheken in Coder C++ formuliert sind. Die Studenten werden durch die Veranstaltung unmittelbar in die Lage versetzt, diese Komponenten fur ihre eigene Arbeit zu benutzen (und naturlich eigene Programme zu schreiben). Aus diesen Vorlesungen ist das vorliegende Buch entstanden. Es richtet sich an Nebenfachler der Informatik und an solche Leserinnen und Leser, die sich mit der objektorientierten Programmierung und mit C++ vertraut machen wollen. Das Buch wurde so konzipiert, dab auch geistes- und sozialwissenschaftlich orientierte Leser den Ausfiihrungen mit Gewinn folgen konnen. Der Verfasser hat dazu bewubt Beispiele gewahlt, die nicht dem typischen Umkreis des Ingenieurs oder des Informatikers entstammen, sich vielmehr bemuht, die weitgespannten Anwendungsmoglichkeiten der objektorientierten Modellierung und Programmierung exemplarisch zu zeigen. Das schlii.gt sich auch in den Aufgaben nieder. Der Ton dieses Buchs wurde bewubt nicht-technisch gehalten. Der gelegentlich unausstehliche Jargon, der sich in der Programmierung breitgemacht hat, soil soweit als moglich vermieden werden. Die Objektorientierung und die Programmiersprache C++ stehen zwar im Vordergrund dieses Buches, wir beginnen jedoch mit einer Einfiihrung in diejenigen Teile von C++, die aus der Sprache C stammen. Wir fangen auch beim Programmieren nicht gleich mit der Objektorientierung an. Der didaktische Ansatz dieses Buches geht vielmehr von der objektbasierte Programmierung in C aus. Objektbasiert bedeutet hier, dab mit Instanzen Abstrakter Datentypen gearbeitet wird, also mit Instanzen von K apseln, die Daten und die Prozeduren auf diesen Daten in einer gemeinsamen Hulle einschlieben. Der Begriff des Abstrakten Datentypen wird sehr friih eingefiihrt, urn dem Leser moglichst friih Gelegenheit zu geben, Datenabstraktionen gemeinsam mit Funktionsabstraktionen zu benutzen. Technisch sieht das so aus, dab die Vorstufe von Klassen, niirnlich zusammengesetzte Strukturen, urn funktionale Komponenten erweitert werden. Damit ist eine objektbasierte Grundlage fiir die weiteren Diskussionen gelegt. Sie wird weidlich genutzt. Wir zeigen an Beispielen, dab dieses Konzept sehr tragfii.hig ist, und sich schon zur ReaIisierung recht mii.chtiger Anwendungen eignet. Erst dann, wenn diese sprachlichen Hilfsmittel eingefiihrt und ausreichend an Beispielen erprobt worden sind, werden objektorientierte Konzepte eingefiihrt. Klassen erscheinen als Auspragung zusammengesetzter Strukturen, Vererbung und die damit verbundenen Moglichkeiten der Polymorphie werden dann ebenfalls eingefiihrt und an Beispielen erprobt. Die Tragfii.higkeit des Konzepts erweist sich dann an einem groberen Beispiel, das x

10 recht ausfiihrlich diskutiert wird. Das Buch schliefit mit einer Diskussion von Schablonen (die im eigentlichen Sinne ja nieht mehr objektorientiert sind) und einer kurzen Diskussion der A usnahmebehandlung. Und das steht in diesem Buch Eine kurze Darstellung des Inhalts soli folgen. Fast aile Kapitel beginnen mit der Diskussion einer konkreten Problemstellung, die eine Erweiterung der sprachlichen Miiglichkeiten vorschlagt. Die neuen Ausdrucksmiiglichkeiten werden auf ihre Belastbarkeit gepriift, meist aueh erweitert und auf andere Probleme angewendet. Fast jedes Kapitel enthalt Ubungsaufgaben, die in Anspruch und Umfang von leiehten Etuden zur Einiibung der neuen Techniken bis hin zu kleinen Projekten reichen. Insgesamt sind es 120 Aufgaben geworden. Kapitel 1: Hofzwerge Das Buch beginnt mit der Geschiehte der Hofzwerge in der Wiener Hofburg. Diese Hofzwerge. genauer: ihre Besoldungsstruktur - werden nach einigen Seiten hin untersucht. Die Eigenschaften der Hofzwergbesoldung werden als Klassifikationshierarchie gefaj3t. Damit hat der Leser bereits am Anfang ohne jegliche Programmierkenntnisse einen wichtigen Entwurfsschritt getan. Der so aufgespannte Bogen dehnt sich weit. Er findet erst im letzten Viertel des Buchs sein (anderes) Ende, wenn namlich die Klassifikationshierarchie mit allen ihren dynamischen Aspekten implementiert wird. Der Verfasser mochte auf diese Weise zeigen, dab es durchaus moglich ist, objektorientierte Konzepte einzufiihren, ohne tiefergehende Eigenschaften einer Programmiersprache benutzen zu miissen. DaB dies moglieh ist, belegt die Tragfahigkeit des Konzepts der Objektorientierung. Dieser Bogen dient naturlich auch dazu, das Buch zusammenzuhalten: Die Hofzwerge schauen immer mal wieder um die Ecke und tauchen in der einen oder anderen Ubungsaufgabe auf, bringen sich also in Erinnerung, um die interessanten Eigenschaften, die dieses ulkige Volckehen hat, auch wirklich zurn Funkeln zu bringen. Kapitel 2, 3: C, elementar Die Programmiersprache C wird in ihren elementaren Komponenten eingefiihrt. Die sprachlichen Konzepte werden an stetig komplexer werdenden Problemstellungen eingefiihrt. In diesen beiden einfiihrenden Kapiteln wird die Philosophie der Vorgehensweise deutlich: Konstruktionen werden nicht urn ihrer selbst willen eingefiihrt, vielmehr sollen konkret vorliegende Probleme damit geliist werden. Solehe einfiihrenden Kapitel sind fast immer ziemlich langweilig, aber diese Durststrecke will uberwunden sein. Der Leser so lite dieses Kapitel vielleicht iiberfliegen, urn bei Bedarf spater nachschlagen zu konnen. Kapitel 4: Funktionen Hier werden Funktionen eingefiihrt. Sie werden als wichtige Strukturierungsmiigliehkeit fiir Programme diskutiert, die dariiber hinaus auch die Moglichkeit geben, die Lokalitat von Namen einzufiihren und zu erkunden. Kapitel 5: Separate Ubersetzung Das Thema der Strukturierung von Programmen wird in diesem Kapitel noch einmal aufgenommen. Hier geht es namlich darum, ein umfangreiches Prograrnm so zu zerlegen, dab die einzelnen Teile in getrennten Dateien aufbewahrt werden konnen. Dazu mub man etwas uber Namensraume wissen, und sie stehen darum in diesem Kapitel im Vordergrund. xi

11 KAPITEL o. {/ / VORWORT Kapitel 6: Zeiger Zeiger, also ein Aspekt von C, der besondere Sorgfalt in seiner Verwendung bedarf, werden in diesem Kapitel eingefiihrt. Die Dua.litiit von Zeigern und Feldern wird hier auch behandelt, und wir werfen einen kurzen Seitenblick auf die Verzeigerung von Funktionen sowie auf mehrdimensiona.le Felder a.ls Zeiger auf Zeiger. Aber so richtig interessant wird es erst, wenn man zusammengesetzte Strukturen mit Zeigern kombiniert, um zu dynamischen Datenstrukturen zu kommen. Und das passiert irn nii.chsten Kapitel. Kapitel 7: Verkettete Listen Die Grundbegriffe fiir dynamische Datenstrukturen werden in diesem Kapitel erarbeitet. Hier findet sich auch eine Diskussion von verketteten Listen und von elementaren Operationen auf diesen Listen. Kapitel 8: Bliume Mochte man mit dynamischen Strukturen arbeiten, die nicht linear sind, so greift man gerne zu Biiumen, und die hier hervorspringende Spezies sind die biniiren Biiume. Biniire Biiume werden eingefiihrt, es wird auch gleich gezeigt, wie man mit diesen biniiren Biiumen in der Geschma.cksrichtung biniire Suchbiiume Suchoperationen effizient unterstiitzen kann. Die elementaren Operationen hierzu werden eingefiihrt. Kapitel 9: Dateibehandlung oder Die Neujahrsansprache Wir stellen uns dem Problem, die Neuja.hrsansprache 1998/99 des Bundeskanzlers zu analysieren: Welche Worter kommen wie hiiufig darin vor? Das gibt AniaB dazu, Dateien zur Aufbewahrung von Daten einzufiihren und die Operationen der einfachen Dateibehandlung zu diskutieren. Kapitell0: Abstrakte Datentypen Der BegrifI Abstrnkter Datentyp wird hier a.ls zentrales Konzept eingefiihrt. Vordergriindig geht es darum, Daten zusammen mit den Operationen darauf in einem logischen Behii.lter aufzubewahren. Das fiihrt zu funktionalen Komponenten in Strukturen. Dieser Zugang ergeben sich auf recht natiirliche Art z. B. dann, wenn man biniire Biiume durchlaufen mochte, und hier insbesondere bei der Breitensuche. Abstrakte Datentypen dienen an dieser Stelle dazu, Warteschlangen vorzustellen und ihre Eigenschaften zu untersuchen. Kapitel 11: Prioritlitswarteschlangen Prioritiitswarteschlangen werden eingefiihrt und zunii.chst als Abstrakte Datentypen beschrieben. Das dient auch dazu, ein wenig Ubung in der neuen Sprechweise zu bekommen. Die Datenstruktur Heap wird entwickelt und mit ihren Operationen einigermai3en ausfiihrlich ausgebreitet. Sie erlaubt die R.ealisierung des bekannten Sortieralgorithmus Heapsort, der ebenfalls in diesem Kapitel beschrieben wird. Kapitel12: Graphen Graphen stellen eine wichtige verkettete Struktur dar. Sie werden a.ls Verallgemeinerung von Biiumen betracbtet. Wie man Graphen rea.lisiert, wird hier dargestellt. Es finden sich ebenfalls einige eher element are Anwendungen. Konzeptionell findet hier ein Schnitt statt: Der objektbasierte Zugang findet seine Grundlegung durch die Einfiihrung Abstrakter Datentypen. Die Objektorientierung verlangt jetzt ihr Recht. Kapitel13: Klassen Klassen werden eingefiihrt, die elementaren Konstruktionen auf ihnen werden diskutiert. Hierzu gehoren auch Konstruktoren und Destruktoren, die als kanonische Operationen zu jeder Klasse gehoren. xii

12 Kapitel 14, 15: Vererbung und dynamisches Binden Die Vererbung als wichtigste Relation auf Klassen wird in Kapitel 14 eingefiihrt und an Beispielen erlautert. Einige Phanomene bei der Vererbung, etwa das Redefinieren von Methoden, werden ausfiihrlich diskutiert, denn es zeigt sich im akademischen Unterricht, dab mit diesen Begriffen einige Schwierigkeiten verbunden sind, die sich am besten durch Beispiele iiberwinden lassen. Mit der Vererbung ist die Frage des dynamischen Bindens (oder der Polymorphie) verbunden, der Kapitel15 gewidmet ist. Kapitel 16: Noch einmal die Hofzwerge Jetzt stehen alle sprachlichen Hilfsmittel zur Verfiigung, um die Hierarchie der Hofzwerge in Code zu gie6en. Die Diskussion iiber den objektorientierten Zugang zeigt, dab er flexibler als der prozedurale Weg ist; die Anderungsfreundlichkeit der Vorgehensweise wird durch ein Beispiel demonstriert. Es erweist sich als geschickt, die Implementierung ciniger Methoden inline vorzunehmen. Auch das wird hier diskutiert. Kapitel 17: Hashing Dieses Kapitel widmet sich dem Hashing. Das ist ein Suchverfahren, das eine Alternative zu binaren Suchbaumen bietet, wenn man keine Ordnungsrelation auf den Elementen hat. Das wird ausfiihrlich diskutiert, auch mit dem Hintergedanken, die Struktur der Vorgehensweise herauszuarbeiten. Damit sind wir in der Lage, dab wir uns vom Typ der Elemente, die wir der Suche zugrunde legen, moglichst weit 100en konnen. Kapitel 18: Schablonen Hier fiihren wir dann diesen Punkt genauer aus, denn wir stellen Typparameter in den Vordergrund. Schablonen werden analog zu Funktionen eingefiihrt: Sie arbeiten erst dann ordentlich, wenn sie mit den richtigen aktuellen Parametern gefiittert werden. Beispiele zu Schablonen zeigen, dab man auch binare Suchbaume verhashen kann. Kapitel 19: Ausnahmen Die Diskussion wird mit einem kurzen Blick auf die Ausnahmebehandlung abgeschlossen. Es wird besprochen, wie man sich verhalten kann (und welche sprachlichen Moglichkeiten die Sprache C++ bietet), wenn Klassen sich nicht so verhalten, wie sie eigentlich sollten. Kapitel 20: Tja... In diesem letzten Kapitel wird aufgefiihrt, was alles nicht in diesem Buch behandelt wurde. Es wird aber auch kurz auf weiterfiihrende Aspekte eingegangen, insbesondere versucht der Verfasser, ein AnschluBstiick an die Softwaretechnik anzuschrauben. Stukturierungsmoglichkeiten Soweit cine Ubersicht iiber den Inhalt der einzelnen Kapite!. Die Abbildung 1 gibt einen kurzen Uberblick und zeigt, wie die einzelnen Kapitel zusammenhangen. Das Buch kann in mindestens drei Varianten gelesen werden: Die Kapitel 1-10 kiinnen als Einfiihrung in die objektbasierte Programmierung und die Verwendung von Abstrakten Datentypen gelesen werden. Kapitel 11 und Kapitel 12 zeigen, was man in konkreten und recht komplexen Situationen bereits mit diesen Abstrakten Datentypen anfangen kann. xiii

13 KAPITEL O. {/ / VORWORT Kapitel 1 bietet zusammen mit den Kapiteln eine kurzgefatite Einfiihrung in die objektorientierte Programmierung. Das gesamte Buch kann als element are Einfiihrung in die objektorientierte Konstruktion von Software mit C++ und als Einfiihrung in die Sprache dienen. Zur Literatur Als Anmerkung zur verwendeten Literatur sei vermerkt, dati sich der Verfasser an die Folklore in diesem Gebiet gehalten hat, sich also an den gangigen Beispielen orientieren konnte. Daher sind also meist nicht die Quellen angegeben. Der Verfasser hat sich insbesondere gern von den Lehrbuchern [AHU73, AHU82, Die96, SK97, Knu94, Knu93a, Knu93b, MN99, OW90, Dij76, CC82, DD99j1 inspirieren lassen und seine eigenen Variationen angebracht. Diese Texte waren bei der Suche nach Ideen fur Ubungsaufgaben hilfreich. Materialien Dieses Buch ist aus Vorlesungen hervorgegangen, und die Vorlesungsmaterialien stehen zur Verfiigung. Sie umfassen etwa 630 animierte und anotierte Powerpoint-Folien sowie etwa 300 Folien mit Programmtexten und die Programmtexte selbst. Der Verfasser hat sie im urspriinglichen Zustand belassen; Sie konnen unter everlage. de darauf zugreifen. Wie das genau geht, sehen Sie, wenn Sie sich auf jener Seite befinden. Unter dieser Adresse finden Sie auch eine Schnupperversion und eine volle Version des vorliegenden Buchs. Die Programmausschnitte in diesem Buch sind direkt aus den Programmtexten der oben genannten Folien in das Manuskript kopiert worden. Die Programme sind ohne Ausnahme mit dem C++-Compiler von BORLAND in der Version ubersetzt worden; Stichproben haben gezeigt, dati auch der GNU-Compiler die Programme ohne Probleme iibersetzen konnte. Die Programme sind in der Vorlesung zu Demonstrationszwecken ausgefiihrt worden, deshalb ist der Verfasser zuversichtlich, dati sich dort nicht allzu viele Fehler finden. Danksagungen Fiir die freundliche Hilfe, die mir angeboten wurde, bin ich vielen Kollegen und Studenten dankbar; gern habe ich die Moglichkeiten, uber das Konzept des Buchs zu diskutieren, angenommen. Kritische und konstruktive Anregungen kamen insbesondere von Frau Prof. Dr. Sigrid Schubert, die das Manuskript aus der Sicht der Informatik-Didaktikerin gelesen und kommentiert hat. Mein Dortmunder Kollege Prof. Dr. Gisbert Dittrich war ein hilfreicher Sparringspartner, wenn es um den Zugang ging; auch er hat Anmerkungen zum Manuskript gemacht. Einige Anregungen und Hinweise kamen von Prof. Dr. Hermann Stever (Landau) und Prof. Dr. Udo Kelter (Siegen). Dr. Stefan Difimann, bewahrter Koautor, hat in vielen Diskussionen mit und ohne Kaffee (d.h.: er ohne, ich mit) dabei geholfen, das didaktische Konzept zu scharf en und auf sichere Fiille zu stellen. Heiko Falk, Dr. Eike Riedemann, Stefan Steinke und Hamza Tatliturk waren hilfreiche Gesprachspartner, auf die auch die Idee zu der einen oder anderen Ubungsaufgabe zuruckgeht. Prof. Dr. Klaus Schumacher sorgte als aufmerksamer und kritischer Kollege dafiir, dati die Student en der Elektrotechnik praktische Aspekte nicht vernachlassigten. I Angaben in eckigen Klammern beziehen sich auf das Literaturverzeichnis, das auf Seite 322 beginnt. xiv

14 AHa Stankjawitschene schrieb den Text und wunderte sich oft, dab manche Satzkaskade doch noch zum AbschluB kam. Klaus Alfert half mir dabei, meine rostigen fb.'iex-kenntnisse zu aktualisieren und iiberzeugte mich von den Vorteilen von Emacs (so dab ich den Satz des Buchs in einer angenehmen Umgebung durchflihren konnte). Julia Kathrin Doberkat war eine wichtige und angenehme Hilfe bei den redaktionehen Arbeiten; der frische Blick der jungen Geisteswissenschaftlerin hat manche verkorkste Formulierung ins Lot gebracht. Ihnen allen m&:hte ich meinen herzlichen Dank sagen: Probleme, Schreibfehler oder logische Pannen liegen ausschlieblich in meiner Verantwortung. Bedanken mochte ich mich auch und nicht zuletzt bei Dr. Peter Spuhler flir die wie gewohnt gute Zusammenarbeit mit dem Verlag. Und bei Constantin & Maximilian. Bochum und Dortmund, Pfingsten 2000 xv

15 > cr' cr' s:.:: I:l 0<1... N.:: til ><!3 '" ::::.!3 (1) I:l p- 0<1 P- (1)... -E... Hofzwerge I elementares C! Funktionen sepa Obersetzung Zeiger verkettete Implementation der Hofzwerge " Vererbung, dynamisches Binden,-, Listen B / ' "- awne '"... Abstrakte. Datentypen -_\ Graphen Prlorltatswarteschlangen 1 I i \ I > 'ii tot <: o

Software-Praktikum. Ein praxisorientiertes Vorgehen zur Software-Erstellung

Software-Praktikum. Ein praxisorientiertes Vorgehen zur Software-Erstellung Software-Praktikum Ein praxisorientiertes Vorgehen zur Software-Erstellung Von Stefan DiBmann, Universităt Dortmund Volker Zurwehn, Universităt Dortmund 83 SPRINGER FACHMEDIEN WIESBADEN GMBH 1988 Dipl.-Inform.

Mehr

Grundkurs Software- Entwicklung mit C++

Grundkurs Software- Entwicklung mit C++ Dietrich May Grundkurs Software- Entwicklung mit C++ Praxisorientierte Einführung mit Beispielen und Aufgaben- Exzellente Didaktik und Übersicht Mit 30 Abbildungen 2., überarbeitete und erweiterte Auflage

Mehr

Objektorientiertes Programmieren in C++

Objektorientiertes Programmieren in C++ Nicolai Josuttis Objektorientiertes Programmieren in C++ Von der Klasse zur Klassenbibliothek D-64289 Darmstadt ADDISON-WESLEY PUBLISHING COMPANY Bonn Paris Reading, Massachusetts Menlo Park, California

Mehr

Leitfäden und Monographien der Informatik. K. Kiyek/F. Schwarz Mathematik für Informatiker 1

Leitfäden und Monographien der Informatik. K. Kiyek/F. Schwarz Mathematik für Informatiker 1 Leitfäden und Monographien der Informatik K. Kiyek/F. Schwarz Mathematik für Informatiker 1 Leitfäden und Monographien der Informatik Herausgegeben von Prof. Dr. Hans-Jürgen Appelrath, Oldenburg Prof.

Mehr

TEIL I: OBJEKTORIENTIERUNG UND GRUNDKURS JAVA GRUNDLAGEN DER PROGRAMMIERUNG... 4

TEIL I: OBJEKTORIENTIERUNG UND GRUNDKURS JAVA GRUNDLAGEN DER PROGRAMMIERUNG... 4 Inhaltsverzeichnis TEIL I: OBJEKTORIENTIERUNG UND GRUNDKURS JAVA... 1 1 GRUNDLAGEN DER PROGRAMMIERUNG... 4 1.1 Das erste Java-Programm... 4 1.2 Programme und ihre Abläufe... 6 1.3 Entwurf mit Nassi-Shneiderman-Diagrammen...

Mehr

Inhaltsverzeichnis. Einführende Bemerkungen 11. Das Fach Informatik 11 Zielsetzung der Vorlesung Grundbegriffe

Inhaltsverzeichnis. Einführende Bemerkungen 11. Das Fach Informatik 11 Zielsetzung der Vorlesung Grundbegriffe Inhaltsverzeichnis Einführende Bemerkungen 11 Das Fach Informatik 11 Zielsetzung der Vorlesung 12 1. Grundbegriffe 1 3 1.1 1.2 1.3 1.4 1.5 1.6 1.7 Information und Nachricht 1.1.1 Information 1.1.2 Nachricht

Mehr

Software-Praktikum. Überblick und Zeitplan

Software-Praktikum. Überblick und Zeitplan Standort Hagen Fachbereich Technische Betriebswirtschaft Software-Praktikum Überblick und Zeitplan Andreas de Vries und Volker Weiß Version: 26. September 2016 Inhaltsverzeichnis 1 Einführung und Überblick

Mehr

Jorg Witte. Programmieren in C#

Jorg Witte. Programmieren in C# Jorg Witte Programmieren in C# Jorg Witte Programmieren in C# Von den ersten Gehversuchen bis zu den Sieben-Meilen-Stiefeln Teubner B. G. Teubner Stuttgart Leipzig Wiesbaden Bibliografische Information

Mehr

Inhaltsverzeichnis. 1 Grundlagen 1. 2 Einfache Programme 21

Inhaltsverzeichnis. 1 Grundlagen 1. 2 Einfache Programme 21 xi 1 Grundlagen 1 1.1 Daten und Befehle......................................... 2 1.2 Algorithmen............................................. 4 1.3 Variablen................................................

Mehr

Stickel Datenbankdesign

Stickel Datenbankdesign Stickel Datenbankdesign Praxis der Wirtschaftsinformatik Herausgeber Prof. Dr. Karl-Heinz-Rau und Prof. Dr. Eberhard Stickel, Berufsakademie Stuttgart Bisher erschienene Bücher Eberhard Stickel DATENBANKDESIGN

Mehr

Hans-Jürgen Appelrath, Dietrich Boles, Volker (laus, Ingo Wegener. Starthilfe Informatik

Hans-Jürgen Appelrath, Dietrich Boles, Volker (laus, Ingo Wegener. Starthilfe Informatik Hans-Jürgen Appelrath, Dietrich Boles, Volker (laus, Ingo Wegener Starthilfe Informatik Hans-Jürgen Appelrath, Dietrich Boles, Volker Claus, Ingo Wegener Starthilfe Informatik 2., durchgesehene Auflage

Mehr

und -implementierungstechniken, Datenbanken & Java.

und -implementierungstechniken, Datenbanken & Java. Gunter Saake ist Professor für Datenbanken und Informationssysteme an der Uni Magdeburg und forscht unter anderem auf den Gebieten Datenbankintegration, digitale Bibliotheken, objektorientierte Informationssysteme

Mehr

Linux-Treiber entwickeln

Linux-Treiber entwickeln Linux-Treiber entwickeln Eine systematische Einführung in Gerätetreiber für den Kernel 2.6 von Jürgen Quade, Eva K Kunst überarbeitet Linux-Treiber entwickeln Quade / Kunst schnell und portofrei erhältlich

Mehr

C für Java-Programmierer

C für Java-Programmierer Carsten Vogt C für Java-Programmierer ISBN-10: 3-446-40797-9 ISBN-13: 978-3-446-40797-8 Inhaltsverzeichnis Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-40797-8 sowie im

Mehr

Gradle. Ein kompakter Einstieg in modernes Build-Management. Joachim Baumann. Joachim Baumann, Gradle, dpunkt.verlag, ISBN

Gradle. Ein kompakter Einstieg in modernes Build-Management. Joachim Baumann. Joachim Baumann, Gradle, dpunkt.verlag, ISBN D3kjd3Di38lk323nnm Joachim Baumann Gradle Ein kompakter Einstieg in modernes Build-Management Joachim Baumann joachim.baumann@codecentric.de Lektorat: René Schönfeldt Copy Editing: Sandra Gottmann, Münster-Nienberge

Mehr

Überblick. 5. Objekt und Klasse, Elementfunktionen

Überblick. 5. Objekt und Klasse, Elementfunktionen Überblick 1. Einführung C++ / Entwicklung/ Sprachfamilie 2. Nicht objektorientierte Erweiterungen von C 2.1 Das Ein-/Ausgabekonzept von C++ 2.2 Referenzen in C++ 2.3 Heap-Allokatoren in C++ 3. Grundlagen

Mehr

Repetitorium Informatik (Java)

Repetitorium Informatik (Java) Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen

Mehr

Software Engineering

Software Engineering Software Engineering Gustav Pomberger, Wolfgang Pree Architektur-Design und Prozessorientierung ISBN 3-446-22429-7 Weitere Informationen oder Bestellungen unter http://www.hanser.de/3-446-22429-7 sowie

Mehr

Werner Poguntke. Keine Angst vor Mathe

Werner Poguntke. Keine Angst vor Mathe Werner Poguntke Keine Angst vor Mathe Werner Poguntke Keine Angst vor Mathe Hochschulmathematik für Einsteiger 2., überarbeitete und erweiterte Auflage Bibliografische Information der Deutschen Bibliothek

Mehr

Praktische Informatik I

Praktische Informatik I Praktische Informatik I WS 2005/2005 Prof. Dr. Wolfgang Effelsberg Lehrstuhl für Praktische Informatik IV Universität Mannheim 1. Einführung 1-1 Inhaltsverzeichnis (1) 1. Einführung 1.1 Was ist Informatik?

Mehr

EIDI 1 Einführung in die Informatik 1. PGdP Praktikum Grundlagen der Programmierung. Harald Räcke 2/217

EIDI 1 Einführung in die Informatik 1. PGdP Praktikum Grundlagen der Programmierung. Harald Räcke 2/217 EIDI 1 Einführung in die Informatik 1 PGdP Praktikum Grundlagen der Programmierung Harald Räcke 2/217 Wie löst man Probleme mithilfe von Computern? 0 Harald Räcke 3/217 Inhalte: EIDI 1 1. Was ist das Problem?

Mehr

Objektorientierte Programmierung mit Java

Objektorientierte Programmierung mit Java David J. Barnes Michael Kölling Objektorientierte Programmierung mit Java Eine praxisnahe Einführung mit BlueJ Übersetzt von Axel Schmolitzky, Universität Hamburg PEARSON Studium ein Imprint von Pearson

Mehr

Werner Achte rt DATA BECKER

Werner Achte rt DATA BECKER Werner Achte rt. DATA BECKER Inhaltsverzeichnis 1. Einführung 21 1.1 Entwurf von Anwendungssystemen 23 1.2 Entwicklung eines Programms 25 1.3 Objektorientierte Programmierung 29 1.4 Darstellung objektorientierter

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens aw@awilkens.com Überblick Grundlagen Definitionen Eigene Entwicklungen Datenstrukturen Elementare Datentypen Abstrakte Datentypen Elementare

Mehr

Informationsverarbeitung im Bauwesen

Informationsverarbeitung im Bauwesen 1/21 Informationsverarbeitung im Bauwesen Einführung in das Programmieren mit C++ Markus Uhlmann Institut für Hydromechanik Karlsruher Institut für Technologie www.ifh.kit.edu WS 2010/2011 Vorlesung 8

Mehr

Die Big Five und ihre Auswirkungen auf das Gründungsverhalten

Die Big Five und ihre Auswirkungen auf das Gründungsverhalten Nadine Schlabes Die Big Five und ihre Auswirkungen auf das Gründungsverhalten Eine konzeptionelle Studie Bachelorarbeit Schlabes, Nadine: Die Big Five und ihre Auswirkungen auf das Gründungsverhalten.

Mehr

Werner Poguntke. Keine Angst vor Mathe

Werner Poguntke. Keine Angst vor Mathe Werner Poguntke Keine Angst vor Mathe Werner Poguntke Keine Angst vor Mathe Hochschulmathematik für Einsteiger 3., überarbeitete Auflage STUDIUM Bibliografische Information der Deutschen Nationalbibliothek

Mehr

Java-Programmierung mit NetBeans

Java-Programmierung mit NetBeans Java-Programmierung mit NetBeans Klassen, Objekte, Alternativen Dr. Henry Herper Otto-von-Guericke-Universität Magdeburg - WS 2012/13 Grundlegende Definitionen - Objekt Ein Objekt ist allgemein ein Gegenstand

Mehr

Alfred Böge I Walter Schlemmer. Lösungen zuraufgabensammlung Technische Mechanik

Alfred Böge I Walter Schlemmer. Lösungen zuraufgabensammlung Technische Mechanik Alfred Böge I Walter Schlemmer Lösungen zuraufgabensammlung Technische Mechanik Lehr- und Lernsystem Technische Mechanik Technische Mechanik (Lehrbuch) von A. Böge Aufgabensammlung Technische Mechanik

Mehr

magnum C++ WALTER SAUMWEBER kompakt komplett kompetent

magnum C++ WALTER SAUMWEBER kompakt komplett kompetent magnum C++ WALTER SAUMWEBER kompakt komplett kompetent Quickview... 5 Liebe Leserin, lieber Leser... 13 Teil 1 Grundlagen... 15 1 Was ist Programmieren?... 17 1.1 Was ist eigentlich ein Computerprogramm?...

Mehr

Informatik für Ingenieure

Informatik für Ingenieure Informatik für Ingenieure Eine Einführung Von Prof. Dr. rer. nat. Wolfgang Merzenich Universität-Gesamthochschule Siegen und Prof. Dr.-Ing. Hans Christoph Zeidler Universität der Bundeswehr Hamburg B.

Mehr

Programmieren I. Überblick. Institut für Angewandte Informatik. KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft

Programmieren I. Überblick.  Institut für Angewandte Informatik. KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft Programmieren I Überblick KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Übersicht Programmieren Programmieren I (1. Semester) 4 Vorlesungs- und Übungsstunden / Woche 7,5 (!) Stunden

Mehr

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen Kapitel 9 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Attribute von Klassen, Methoden und Variablen Interfaces WS 07/08 1/ 18 2/ 18

Mehr

Informatik. Christian Kuhn. Web 2.0. Auswirkungen auf internetbasierte Geschäftsmodelle. Diplomarbeit

Informatik. Christian Kuhn. Web 2.0. Auswirkungen auf internetbasierte Geschäftsmodelle. Diplomarbeit Informatik Christian Kuhn Web 2.0 Auswirkungen auf internetbasierte Geschäftsmodelle Diplomarbeit Bibliografische Information der Deutschen Nationalbibliothek: Bibliografische Information der Deutschen

Mehr

Programmierung 1 für Wirtschaftsinformatik Wintersemester 2015/16

Programmierung 1 für Wirtschaftsinformatik Wintersemester 2015/16 Programmierung 1 für Wirtschaftsinformatik Wintersemester 2015/16 Prof. Dr.-Ing. habil. Peter Sobe Fakultät Informatik / Mathematik Programmierung 1: Programmierung 1 - Ziele Vermittlung von Grundkenntnissen

Mehr

Sandor Vajna Reinhard Ledderbogen. CATIAV5 - kurz und bündig

Sandor Vajna Reinhard Ledderbogen. CATIAV5 - kurz und bündig Sandor Vajna Reinhard Ledderbogen CATIAV5 - kurz und bündig Aus dem Programm Maschinenelemente und Konstruktion Lehrwerk RolofffMatek Maschinenelemente von D. Muhs, H. Wittel, D. Jannasch, M. Becker und

Mehr

Logistik: Transport. Grundlagen, lineare Transportund Umladeprobleme. Von Dr. Wolfgang Domschke. o. Professor für Betriebswirtschaftslehre

Logistik: Transport. Grundlagen, lineare Transportund Umladeprobleme. Von Dr. Wolfgang Domschke. o. Professor für Betriebswirtschaftslehre Logistik: Transport Grundlagen, lineare Transportund Umladeprobleme Von Dr. Wolfgang Domschke o. Professor für Betriebswirtschaftslehre Zweite, ergänzte Auflage TECHNISCH!: MOC cchule DARiviSTAOT j P e

Mehr

Lösungen zur Aufgabensammlung Technische Mechanik

Lösungen zur Aufgabensammlung Technische Mechanik Lösungen zur Aufgabensammlung Technische Mechanik Lehr- und Lernsystem Technische Mechanik Technische Mechanik (Lehrbuch) von A. Böge Aufgabensammlung Technische Mechanik von A. Böge und W. Schlemmer Lösungen

Mehr

Einführung in die Informatik I (autip)

Einführung in die Informatik I (autip) Einführung in die Informatik I (autip) Dr. Stefan Lewandowski Fakultät 5: Informatik, Elektrotechnik und Informationstechnik Abteilung Formale Konzepte Universität Stuttgart 24. Oktober 2007 Was Sie bis

Mehr

Schwerpunkte. Verkettete Listen. Verkettete Listen: 7. Verkettete Strukturen: Listen. Überblick und Grundprinzip. Vergleich: Arrays verkettete Listen

Schwerpunkte. Verkettete Listen. Verkettete Listen: 7. Verkettete Strukturen: Listen. Überblick und Grundprinzip. Vergleich: Arrays verkettete Listen Schwerpunkte 7. Verkettete Strukturen: Listen Java-Beispiele: IntList.java List.java Stack1.java Vergleich: Arrays verkettete Listen Listenarten Implementation: - Pascal (C, C++): über Datenstrukturen

Mehr

Algorithmic Trading. Johannes Gomolka. Analyse von computergesteuerten Prozessen im Wertpapierhandel unter Verwendung der Multifaktorenregression

Algorithmic Trading. Johannes Gomolka. Analyse von computergesteuerten Prozessen im Wertpapierhandel unter Verwendung der Multifaktorenregression Algorithmic Trading Johannes Gomolka Algorithmic Trading Analyse von computergesteuerten Prozessen im Wertpapierhandel unter Verwendung der Multifaktorenregression Universitätsverlag Potsdam Bibliografische

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 11 (4.6.2014) Binäre Suchbäume II Algorithmen und Komplexität Binäre Suchbäume Binäre Suchbäume müssen nicht immer so schön symmetrisch sein

Mehr

Wilfried Weißgerber. Elektrotechnik für Ingenieure Klausurenrechnen

Wilfried Weißgerber. Elektrotechnik für Ingenieure Klausurenrechnen Wilfried Weißgerber Elektrotechnik für Ingenieure Klausurenrechnen Aus dem Programm Elektrotechnik Formeln und Tabellen Elektrotechnik herausgegeben von W. Böge und W. Plaßmann Vieweg Handbuch Elektrotechnik

Mehr

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.

Mehr

Programmiersprachen. Organisation und Einführung. Berthold Hoffmann. Studiengang Informatik Universität Bremen

Programmiersprachen. Organisation und Einführung. Berthold Hoffmann. Studiengang Informatik Universität Bremen Organisation und Einführung Studiengang Informatik Universität Bremen Sommersemester 2010 (Vorlesung am Montag, der 12. April 2010) (Montag, der 12. April 2008) 1 Vorstellung 2 Organisation 3 Einführung

Mehr

Band II Heinz-Hermann Krüger Einführung in Theorien und Methoden der Erziehungswissenschaft

Band II Heinz-Hermann Krüger Einführung in Theorien und Methoden der Erziehungswissenschaft Einführungskurs Erziehungswissenschaft Herausgegeben von Heinz-Hermann Krüger Band II Heinz-Hermann Krüger Einführung in Theorien und Methoden der Erziehungswissenschaft Die weiteren Bände Band I Heinz-Hermann

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 34 Einstieg in die Informatik mit Java Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 34 1 Definition von Klassen 2 Methoden 3 Methoden

Mehr

Programmieren I. Überblick. Institut für Angewandte Informatik. KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft

Programmieren I. Überblick.  Institut für Angewandte Informatik. KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft Programmieren I Überblick KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Übersicht Programmieren Programmieren I (1. Semester) 4 Vorlesungs- und Übungsstunden / Woche 1 Stunde

Mehr

Vorlesung Programmierung

Vorlesung Programmierung - 1 - Vorlesung Programmierung Inhalt der Vorlesung Was ist ein Programm? Was sind grundlegende Programmierkonzepte? Wie konstruiert (entwickelt) man ein Programm? Welche Programmier-Paradigmen gibt es?

Mehr

Knasmüller.book Seite vii Mittwoch, 28. März 2001 11:11 11. vii. Inhaltsverzeichnis

Knasmüller.book Seite vii Mittwoch, 28. März 2001 11:11 11. vii. Inhaltsverzeichnis Knasmüller.book Seite vii Mittwoch, 28. März 2001 11:11 11 vii 1 Einführung 1 1.1 Motivation.................................... 1 1.2 Vorteile der neuen Techniken...................... 3 1.3 Aufbau des

Mehr

Bemerkung: Termine und Orte für die einzelnen Lehrveranstaltungen sind dem Stundenplan zu entnehmen.

Bemerkung: Termine und Orte für die einzelnen Lehrveranstaltungen sind dem Stundenplan zu entnehmen. Allgemeine Modulbeschreibungen für das erste Semester Bachelor Informatik 1. Objektorientierte Programmierung Bestehend aus - Vorlesung Objektorientierte Programmierung (Prof. Zimmermann) - Übung zu obiger

Mehr

Fremdfinanzierung als Einflussfaktor bei der entscheidungs- und marktorientierten Unternehmensbewertung

Fremdfinanzierung als Einflussfaktor bei der entscheidungs- und marktorientierten Unternehmensbewertung Wirtschaft Albert Astabatsyan Fremdfinanzierung als Einflussfaktor bei der entscheidungs- und marktorientierten Unternehmensbewertung Eine Analyse der Prämissen und der resultierenden Wertunterschiede

Mehr

Einführung in die Blinden- und Sehbehindertenpädagogik

Einführung in die Blinden- und Sehbehindertenpädagogik Renate Walthes Einführung in die Blinden- und Sehbehindertenpädagogik Mit 46 Abbildungen, 14 Tabellen und 21 Übungsaufgaben 2. Auflage Ernst Reinhardt Verlag München Basel Prof. Dr. Renate Walthes ist

Mehr

Objektorientiertes Software-Engineering

Objektorientiertes Software-Engineering Objektorientiertes Software-Engineering TIT99BPE/TIT99CPE BA Mannheim WS 2001/2 F. Schönleber Organisatorisches Kurs 1: TIT99BPE 6.Studienhalbjahr Termin Mo. 13.00 14.30 Raum: 037B Kurs 1: TIT99CPE 6.Studienhalbjahr

Mehr

Klientenzentrierte Gesprächsführung in der Physiotherapie:

Klientenzentrierte Gesprächsführung in der Physiotherapie: Medizin Heike Hoos-Leistner Klientenzentrierte Gesprächsführung in der Physiotherapie: Entwicklung einer Unterrichtskonzeption zum Klientenzentrierten Ansatz nach Carl Rogers Diplomarbeit Bibliografische

Mehr

Berichte aus der Informatik. Dieter Pawelczak. Start in die C-Programmierung

Berichte aus der Informatik. Dieter Pawelczak. Start in die C-Programmierung Berichte aus der Informatik Dieter Pawelczak Start in die C-Programmierung Shaker Verlag Aachen 2012 Inhaltsverzeichnis Inhaltsverzeichnis i 1 Einleitung 1 1.1 Umfeld und Aufbau des Buches 1 Die Programmiersprache

Mehr

Meffert/Bruhn. Fallstudien zum Marketing

Meffert/Bruhn. Fallstudien zum Marketing Meffert/Bruhn. Fallstudien zum Marketing Prof. Dr. Heribert Meffert Prof. Dr. Manfred Bruhn Fallstudien zum Marketing Fallbeispiele und Aufgaben fiir das Mar keting -Studium GABLER CIP-Kurztitelaufnahme

Mehr

Operations Research I

Operations Research I Operations Research I Lineare Programmierung Prof. Dr. Peter Becker Fachbereich Informatik Hochschule Bonn-Rhein-Sieg Sommersemester 2015 Peter Becker (H-BRS) Operations Research I Sommersemester 2015

Mehr

Anhang zum Buch. Was sagt Clementine zur lila Kuh? Fernsehwerbung analysieren und interpretieren. Nicola Berger

Anhang zum Buch. Was sagt Clementine zur lila Kuh? Fernsehwerbung analysieren und interpretieren. Nicola Berger Nicola Berger Was sagt Clementine zur lila Kuh? Fernsehwerbung analysieren und interpretieren. Anhang zum Buch Universitätsverlag Rhein-Ruhr, Duisburg Zugl.: Universität Duisburg-Essen, Magisterarbeit,

Mehr

Willkommen zur Vorlesung. Algorithmen und Datenstrukturen

Willkommen zur Vorlesung. Algorithmen und Datenstrukturen Willkommen zur Vorlesung Algorithmen und Datenstrukturen Mein Name: Andreas Berndt Zum Dozenten Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen Derzeitige Sprachen:

Mehr

ADS. 1. Vorlesung. Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm

ADS. 1. Vorlesung. Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm ADS 1. Vorlesung Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm 6.10.2016 ORGANISATORISCHES Algorithmen & Datenstrukturen Prof. Dr. Wolfgang Schramm Der Dozent 2 Prof. Dr. Wolfgang Schramm

Mehr

Christoph Schulz AutoCAD-Praktikum

Christoph Schulz AutoCAD-Praktikum Christoph Schulz AutoCAD-Praktikum AutoCAD Praktikum Von Prof. Dr. Christoph Schulz Fachhochschule Wiesbaden 83 B. G. Teubner Stuttgart 1992 Autodesk, AutoCAD und AutoLiSP sind eingetragene Warenzeichen

Mehr

WIN Team. Abschluss-Prüfungen für Steuerfachangestellte

WIN Team. Abschluss-Prüfungen für Steuerfachangestellte WIN Team. Abschluss-Prüfungen für Steuerfachangestellte WINTeam Abschluss-Prüfungen rur Steuerfachangestellte 12 Original-Prüfungen mit ausfiihrlichen Lösungshinweisen GABLER Die Deutsche Bibliothek -

Mehr

The New Grove Die großen Komponisten. Herausgeber: Stanley Sadie Deutsche Redaktion: Uwe Schweikert

The New Grove Die großen Komponisten. Herausgeber: Stanley Sadie Deutsche Redaktion: Uwe Schweikert The New Grove Die großen Komponisten Herausgeber: Stanley Sadie Deutsche Redaktion: Uwe Schweikert The New Grove Die großen Komponisten Haydn The New Grove Die großen Komponisten Jens Peter Larsen/Georg

Mehr

OOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik

OOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik WS 2011/12 Inhalt Test-Besprechung! Ziele verdeutlichen Große Bild von OOP Wiederholung: Einbettung als Technik

Mehr

Programmieren I. Überblick. Institut für Angewandte Informatik. KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft

Programmieren I. Überblick.  Institut für Angewandte Informatik. KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft Programmieren I Überblick KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Übersicht Modul Programmieren Programmieren I (1. Semester) 4 Vorlesungs- und Übungsstunden / Woche 1 Stunde

Mehr

Ralf Bohnsack Rekonstruktive Sozialforschung

Ralf Bohnsack Rekonstruktive Sozialforschung Ralf Bohnsack Rekonstruktive Sozialforschung Ralf Bohnsack Rekonstruktive Sozialforschung Einführung in Methodologie und Praxis qualitativer Forschung 3., überarbeitete und erweiterte Auflage Springer

Mehr

Inhaltsverzeichnis VII

Inhaltsverzeichnis VII VII Teil 1: Grundlagen für die Entwicklung eines Software-Entwicklungs-Systems 1 1. Problemstellung und Aufbau der Arbeit 1 2. Begriffliche Abgrenzungen 4 2.1 Software 4 2.2 Software-Engineering (Prinzipien

Mehr

Informatik 1. für Studiengänge Nachrichten-/Multimediatechnik und Mechatroniksysteme/Fahrzeugmechatronik. Wintersemester 2014/15

Informatik 1. für Studiengänge Nachrichten-/Multimediatechnik und Mechatroniksysteme/Fahrzeugmechatronik. Wintersemester 2014/15 Informatik 1 für Studiengänge Nachrichten-/Multimediatechnik und Mechatroniksysteme/Fahrzeugmechatronik Wintersemester 2014/15 Prof. Dr.-Ing. habil. Peter Sobe Fakultät Informatik / Mathematik Informatik-Ausbildung

Mehr

Einführung in die Montessori-Pädagogik

Einführung in die Montessori-Pädagogik Ingeborg Hedderich Einführung in die Montessori-Pädagogik Theoretische Grundlagen und praktische Anwendung 3., aktualisierte Auflage Mit 49 Abbildungen Ernst Reinhardt Verlag München Basel Prof. Dr. päd.

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 25 Einstieg in die Informatik mit Java Objektorientierte Programmierung und Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 25 1 Die Philosophie 2 Definition

Mehr

Fortschritte der Psychotherapie Manuale für die Praxis

Fortschritte der Psychotherapie Manuale für die Praxis Fortschritte der Psychotherapie Manuale für die Praxis herausgegeben von Prof. Dr. Dietmar Schulte, Prof. Dr. Klaus Grawe Prof. Dr. Kurt Hahlweg, Prof. Dr. Dieter Vaitl Band 14 Borderline-Störung von Martin

Mehr

Einführung in die Programmierung Wintersemester 2008/09

Einführung in die Programmierung Wintersemester 2008/09 Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering (LS 11) Fakultät für Informatik TU Dortmund Gliederung Organisatorisches Technisches

Mehr

Hans-Georg Schumann. Visual Basic Inklusive DVD-ROM

Hans-Georg Schumann. Visual Basic Inklusive DVD-ROM Hans-Georg Schumann Visual Basic 2010 Inklusive DVD-ROM Hans-Georg Schumann Visual Basic 2010 für Kids Bibliografische Information der Deutschen Nationalbibliothek Die Deutsche Nationalbibliothek verzeichnet

Mehr

Aufsatztraining Deutsch Band 6: Übungsbuch zur gezielten Vorbereitung auf Prüfungen mit Kopiervorlagen. Erich und Hildegard Bulitta.

Aufsatztraining Deutsch Band 6: Übungsbuch zur gezielten Vorbereitung auf Prüfungen mit Kopiervorlagen. Erich und Hildegard Bulitta. Deutsch Erich und Hildegard Bulitta Aufsatztraining Deutsch Band 6: Übungsbuch zur gezielten Vorbereitung auf Prüfungen mit Kopiervorlagen Übungsheft Bibliografische Information der Deutschen Nationalbibliothek:

Mehr

Institut für Informatik und Angewandte Kognitionswissenschaften

Institut für Informatik und Angewandte Kognitionswissenschaften Grundlegende Programmiertechniken (»Programmierung«), WS 2007/2008 Übungsblatt 5 Präsenzaufgaben: 11, 12, 13 Hausaufgabe: 14 Aufgabe 11 STRING- UND OBJEKT-VERGLEICH String s1 = new String("Test String");

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Binäre Suchbäume Einführung und Begriffe Binäre Suchbäume 2 Binäre Suchbäume Datenstruktur für dynamische Mengen

Mehr

Was Mathematiker schon vor Jahrhunderten erfunden haben, gibt es jetzt endlich in ihrer Programmiersprache:

Was Mathematiker schon vor Jahrhunderten erfunden haben, gibt es jetzt endlich in ihrer Programmiersprache: Kapitel 8 Operatoren Was Mathematiker schon vor Jahrhunderten erfunden haben, gibt es jetzt endlich in ihrer Programmiersprache: Operatoren definieren Es ist in C++ möglich, Operatoren wie +, oder für

Mehr

Inhaltsverzeichnis. Danksagungen... 11

Inhaltsverzeichnis. Danksagungen... 11 Danksagungen............................................ 11 Einführung............................................... 13 Über dieses Buch.......................................... 15 Voraussetzungen...................................

Mehr

Matrikelnr. Name. Vorname

Matrikelnr. Name. Vorname Fakultät für Wirtschaftswissenschaft Matrikelnr. Name Vorname KLAUSUR: Entwurf und Implementierung von Informationssystemen (32561) TERMIN: 14.09.2016, 14:00 16:00 Uhr PRÜFER: Univ.-Prof. Dr. rer. pol.

Mehr

4. Objektorientierte Programmierung mit C++

4. Objektorientierte Programmierung mit C++ 4. Objektorientierte Programmierung mit C++ Einführung C++ / Entwicklung/ Sprachfamilie Nicht objektorientierte Erweiterungen von C Grundlagen des Typkonzepts von C++ Ziele der Objektorientierung Objekt

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 22 Einstieg in die Informatik mit Java Generics Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Überblick Generics 2 Generische Klassen 3 Generische Methoden 4

Mehr

Einführung in die Wirtschaftsinformatik

Einführung in die Wirtschaftsinformatik Einführung in die Wirtschaftsinformatik Übersicht zu den Inhalten der Vorlesung Die Inhalte der Vorlesung wurden primär auf Basis der angegebenen Literatur erstellt. Darüber hinaus finden sich ausgewählte

Mehr

Felix Huth. Straßenkinder in Duala

Felix Huth. Straßenkinder in Duala Felix Huth Straßenkinder in Duala VS COLLEGE Reviewed Research. Auf den Punkt gebracht. VS College richtet sich an hervorragende NachwuchswissenschaftlerInnen. Referierte Ergebnisse aus Forschungsprojekten

Mehr

Einführung in die Pädagogik bei Verhaltensstörungen

Einführung in die Pädagogik bei Verhaltensstörungen Clemens Hillenbrand Einführung in die Pädagogik bei Verhaltensstörungen Mit 25 Abbildungen, 6 Tabellen und 45 Übungsaufgaben 4., überarbeitete Auflage Ernst Reinhardt Verlag München Basel Prof. Dr. Clemens

Mehr

Erziehung - Kunst des Möglichen

Erziehung - Kunst des Möglichen Wolfgang Brezinka Erziehung - Kunst des Möglichen Beiträge zur Praktischen Pädagogik 3., verbesserte und erweiterte Auflage Ernst Reinhardt Verlag München Basel WOLFGANG BREZINKA, geb. 9. 6. 1928 in Berlin.

Mehr

Übungsaufgaben: 1. Objektorientierte Programmierung - Teil 1

Übungsaufgaben: 1. Objektorientierte Programmierung - Teil 1 Übungsaufgaben: 1. Objektorientierte Programmierung - Teil 1 1. Das Objekt Bruch mit einem Standardkonstruktor (initialisieren mit 0), einem allgemeinen Konstruktor (Zähler und Nenner können beliebig vorgegeben

Mehr

C++ Klassen, Vererbung. Philipp Lucas. Sebastian Hack. Wintersemester 2008/09. saarland.

C++ Klassen, Vererbung. Philipp Lucas. Sebastian Hack. Wintersemester 2008/09. saarland. C++ Klassen, Vererbung Philipp Lucas phlucas@cs.uni-sb.de Sebastian Hack hack@cs.uni-sb.de Wintersemester 2008/09 saarland university computer science 1 Inhalt Klassen in C++ Sichtbarkeit Erzeugen von

Mehr

Informatik 1. für Kommunikationstechniker, Mechatroniker. Teil 1 - Wintersemester 2012/13

Informatik 1. für Kommunikationstechniker, Mechatroniker. Teil 1 - Wintersemester 2012/13 Informatik 1 für Kommunikationstechniker, Mechatroniker Teil 1 - Wintersemester 2012/13 Prof. Dr.-Ing. habil. Peter Sobe Fakultät Informatik / Mathematik Dieser Foliensatz wurde z.t. von Herrn Prof. Grossmann

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Binärbaum Suchbaum Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 356 Datenstruktur Binärbaum Strukturrepräsentation des mathematischen Konzepts Binärbaum

Mehr

C++ für Ingenieure. Einführung in die objektorientierte Programmierung. Seite Programmverzeichnis VII HARALD NAHRSTEDT

C++ für Ingenieure. Einführung in die objektorientierte Programmierung. Seite Programmverzeichnis VII HARALD NAHRSTEDT VII HARALD NAHRSTEDT C++ für Ingenieure Einführung in die objektorientierte Programmierung Seite Erstellt am 15.01.2009 Beschreibung VIII 1 Grundlagen der Programmierung 1-1 Struktur einer Header-Datei

Mehr

Gene Zelazny. Wie aus Zahlen Bilder werden

Gene Zelazny. Wie aus Zahlen Bilder werden Gene Zelazny. Wie aus Zahlen Bilder werden Gene Zelazny Wie aus Zahlen Bilder werden Wirtschaftsdaten uberzeugend prasentiert 4. Auflage GABLER Die Deutsche Bibliothek - CIP-Einheitsaufnahme Zelazny, Gene:

Mehr

Regina B. und Rolf B. Baumeister (Hrsg.) dbase III Software Training

Regina B. und Rolf B. Baumeister (Hrsg.) dbase III Software Training Regina B. und Rolf B. Baumeister (Hrsg.) dbase III Software Training - Anwender-Software ------------... Multiplan Software Training Word Software Training Chart Software Training dbase III Software Training

Mehr

Bibliografische Information der Deutschen Nationalbibliothek:

Bibliografische Information der Deutschen Nationalbibliothek: Bibliografische Information der Deutschen Nationalbibliothek: Bibliografische Information der Deutschen Nationalbibliothek: Die Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie;

Mehr

13 OOP MIT DELPHI. Records und Klassen Ein Vergleich

13 OOP MIT DELPHI. Records und Klassen Ein Vergleich 13 OOP MIT DELPHI Delphi war früher "Object Pascal". Dieser Name impliziert eine Funktionalität, welche in der Welt der Programmierung nicht mehr wegzudenken ist: die objektorientierte Programmierung,

Mehr

Vorgaben zu den unterrichtlichen Voraussetzungen für die schriftlichen Prüfungen im Abitur der Bildungsgänge Abendgymnasium und Kolleg im Jahr 2016

Vorgaben zu den unterrichtlichen Voraussetzungen für die schriftlichen Prüfungen im Abitur der Bildungsgänge Abendgymnasium und Kolleg im Jahr 2016 Vorgaben zu den unterrichtlichen Voraussetzungen für die schriftlichen Prüfungen im Abitur der Bildungsgänge Abendgymnasium und Kolleg im Jahr 2016 Vorgaben für das Fach Informatik 1. Richtlinien und Lehrpläne

Mehr

Objektorientierte Programmierung in Java

Objektorientierte Programmierung in Java Objektorientierte Programmierung in Java 1. Auflage Objektorientierte Programmierung in Java schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv Verlag C.H. Beck im Internet:

Mehr

Überblick. 6. Konstruktor und Destruktor - obligatorische Elementfunktionen einer Klasse

Überblick. 6. Konstruktor und Destruktor - obligatorische Elementfunktionen einer Klasse Überblick 1. Einführung C++ / Entwicklung/ Sprachfamilie 2. Nicht objektorientierte Erweiterungen von C 2.1 Das Ein-/Ausgabekonzept von C++ 2.2 Referenzen in C++ 2.3 Heap-Allokatoren in C++ 3. Grundlagen

Mehr

ALGOL 68 im Aspekt einer modernen Programmiersprache???

ALGOL 68 im Aspekt einer modernen Programmiersprache??? ALGOL 68 im Aspekt einer modernen Programmiersprache??? General-purpose-Programmiersprache: Ein sehr wichtiges Kriterium ist die Möglichkeit, alle Algorithmen (=Lösungsverfahren) in einer Programmiersprache

Mehr

~ ~ Springer-Verlag. Lehr- und Forschungstexte Psychologie 37. Annette Claar. Die Entwicklung okonomischer Begriffe im Jugendalter

~ ~ Springer-Verlag. Lehr- und Forschungstexte Psychologie 37. Annette Claar. Die Entwicklung okonomischer Begriffe im Jugendalter Lehr- und Forschungstexte Psychologie 37 Herausgegeben von D. Albert, K. Pawlik, K.-H. Stapf und W. Stroebe Die Entwicklung okonomischer Begriffe im Jugendalter Eine strukturgenetische Analyse ~ ~ Springer-Verlag..'

Mehr