Präsenzübung zum Kurs Algorithmische Mathematik II

Größe: px
Ab Seite anzeigen:

Download "Präsenzübung zum Kurs Algorithmische Mathematik II"

Transkript

1 Präsenzübung zum Kurs Algorithmische Mathematik II Averkov, Zeile, Jost Fakultät für Mathematik Otto-von-Guericke-Universität Magdeburg Sommersemester April / 33

2 Inhalt I Organisatorisches Scheinkriterien Sonstiges und Fragen Das Klassenkonzept in C++ Zeiger und Referenzen Graphentheorie: Einführung 2 / 33

3 Scheinkriterien Ähnlich wie bei Algorithmischer Mathematik 1, Homepage: 3 / 33

4 Scheinkriterien Ähnlich wie bei Algorithmischer Mathematik 1, Homepage: Teil 1: voraussichtlich 10 Übungsblätter, (mind. 50 % der Punkte) (mindestens) 1 Übungsaufgabe korrekt an der Tafel Abgabe in 2er Gruppen Üblicherweise 4 Aufgaben: eine Programmieraufgabe, drei Beweisaufgaben. Für die Programmieraufgabe(n) gelten die Hinweise aus dem ersten Semester, Abgaben an algomath1718@ovgu.de 4 / 33

5 Scheinkriterien Ähnlich wie bei Algorithmischer Mathematik 1, Homepage: Teil 1: Teil 2: voraussichtlich 10 Übungsblätter, (mind. 50 % der Punkte) (mindestens) 1 Übungsaufgabe korrekt an der Tafel Abgabe in 2er Gruppen Üblicherweise 4 Aufgaben: eine Programmieraufgabe, drei Beweisaufgaben. Für die Programmieraufgabe(n) gelten die Hinweise aus dem ersten Semester, Abgaben an algomath1718@ovgu.de Mitte/Ende Mai Ausgabe Programmierprojekt Bearbeitung in 3er Gruppen Mitte/Ende Juni Abgabe. Um den Schein zu erhalten muss das Programmierprojekt erfolgreich präsentiert werden. 5 / 33

6 Sonstiges und Fragen 1. Übungsblatt nach der Vorlesung am 5. April Übungsaufgaben werden immer 1 Woche nach Abgabe besprochen Übung am 1. Mai wird am 3. Mai als Großübung nachgeholt Wann wollt ihr mit der Übung beginnen? Andere Fragen? Mail-Adressen: felix.jost@ovgu.de, clemens.zeile@ovgu.de 6 / 33

7 Datentyp class Zusätzlich zu den vordefinierten Datentypen (int, double usw.) kann man mit Klassen (Schlüsselwort class) eigene Typen definieren. 7 / 33

8 Datentyp class Zusätzlich zu den vordefinierten Datentypen (int, double usw.) kann man mit Klassen (Schlüsselwort class) eigene Typen definieren. Diese bezeichnet man als Objekte, da Klassen nicht nur Daten enthalten sondern auch Methoden, um diese zu verarbeiten und weiterzugeben. 8 / 33

9 Datentyp class Zusätzlich zu den vordefinierten Datentypen (int, double usw.) kann man mit Klassen (Schlüsselwort class) eigene Typen definieren. Diese bezeichnet man als Objekte, da Klassen nicht nur Daten enthalten sondern auch Methoden, um diese zu verarbeiten und weiterzugeben. Beispiele: Auto Hund Matrix Kunden einer Bank... 9 / 33

10 Motivation Realität ist objektorientiert Vereinfachung und Kapselung Wiederverwendbarkeit Leichte Erweiterbarkeit Parallelisierbarer Entwicklungsprozess 10 / 33

11 Aufbau und Eigenschaften eines Objekts von Außen Objekt hat öffentliche Eigenschaften (Attribute) Objekt besitzt öffentlich definierte Funktionen (Methoden), welche sich auf seine Eigenschaften auswirken 11 / 33

12 Aufbau und Eigenschaften eines Objekts von Außen Objekt hat öffentliche Eigenschaften (Attribute) Objekt besitzt öffentlich definierte Funktionen (Methoden), welche sich auf seine Eigenschaften auswirken von Innen Verarbeiten der über Funktionsaufrufe eingehenden Befehle (Botschaft) zur Änderungen der Eigenschaften Interne Funktionen und Eigenschaften, zur Wahrnehmung der äußeren Funktion 12 / 33

13 Aufbau und Eigenschaften des Objekts Auto von Außen zugänglich Attribut Geschwindigkeit (nur lesend) Attribut Farbe: Rot Attribut Leistung: 160 kw Methoden beschleunigen und bremsen definierte Funktionsweise Aufruf der Methoden verändert die Geschwindigkeit von Innen Wird beschleunigen aufgerufen, mehr Kraftstoff an den Motor liefern Wird bremsen aufgerufen, Bremsanlage betätigen 13 / 33

14 Folgen dieses Aufbaus für das Objekt Auto Für den externen Benutzer von Auto ist es vollkommen egal was passiert wenn er beschleunigen möchte Jedes Auto -Objekt MUSS die Methoden beschleunigen und bremsen verstehen Der Aufruf der Methode beschleunigen ist von der konkreten Implementierung von Auto vollkommen unabhängig Auto -Objekte können innerhalb des Programms beliebig ausgetauscht werden 14 / 33

15 Begriffe: Objekt Klasse Instanz Bei der Arbeit mit Objekten unterscheidet man: Klasse: Zusammenfassung von ähnlichen Objekten, welche sich nur in Ihren Attributen unterscheiden Charakterisiert die Objekte Schablone / Prototyp Instanz Konkretes Objekt das bestimmte Attributwerte aufweist 15 / 33

16 Beispiel class Dog 1 #i n c l u d e <i o s t r e a m> 2 3 using namespace std ; c l a s s Dog 7 { 8 p u b l i c : 9 i n t GetAge ( ) ; 10 v o i d SetAge ( i n t age ) ; 11 p r i v a t e : 12 i n t i t s A g e ; 13 }; i n t Dog : : GetAge ( ) 16 { 17 r e t u r n itsage ; 18 } v o i d Dog : : SetAge ( i n t age ) 21 { 22 i t s A g e = age ; 23 } i n t main ( ) 26 { 27 Dog Nero ; 28 Nero. SetAge ( 3 ) ; 29 cout << Nero i s t << Nero. GetAge ( ) << J a h r e a l t. << e n d l ; 30 r e t u r n 0 ; 31 } 16 / 33

17 Erstellen und Zerstören Konstruktor: Dienen der Erstinitialisierung von Daten einer Klasse Klassenmethode, kein Rückgabewert, Name wie Klasse selbst Standardkonstruktor (ohne Argumente), Parameterkonstruktor (Übergabe Parameter),... Compiler erzeugt automatisch Standardkonstruktor Automatisch aufgerufen, wenn ein Objekt erzeugt wird 17 / 33

18 Erstellen und Zerstören Konstruktor: Dienen der Erstinitialisierung von Daten einer Klasse Klassenmethode, kein Rückgabewert, Name wie Klasse selbst Standardkonstruktor (ohne Argumente), Parameterkonstruktor (Übergabe Parameter),... Compiler erzeugt automatisch Standardkonstruktor Automatisch aufgerufen, wenn ein Objekt erzeugt wird Destruktor: Jede Klasse besitzt genau einen Destruktor Hauptaufgabe: Freigeben von dynamischem Speicherplatz der Klasse Hat den Namen der Klasse, wobei Tilde ( ) vorangestellt Keine Argumente, keinen Rückgabewert Compiler erzeugt automatisch Standarddestruktor 18 / 33

19 Beispiel Konstruktor/Destruktor 1 #i n c l u d e <i o s t r e a m> 2 u s i n g namespace s t d ; 3 4 c l a s s Dog 5 { 6 p u b l i c : 7 Dog ( i n t i n i t i a l A g e ) ; 8 Dog ( ) ; 9 v o i d setage ( i n t age ) 10 { 11 i t s A g e=age ; 12 }; i n t getage ( ) 15 { 16 r e t u r n itsage ; 17 } p r i v a t e : 20 i n t i t s A g e ; 21 }; Dog : : Dog ( i n t i n i t i a l A g e ){ // E r s e t z e S t a n d a r d k o n s t r u k t o r 24 i t s A g e = i n i t i a l A g e ; 25 }; Dog : : Dog ( ) {}; i n t main ( ) { 30 Dog Nero (10) ; 31 cout << Nero i s t << Nero. getage ( ) << J a h r e a l t. << e n d l ; 32 Nero. setage ( 3 ) ; 33 cout << Nero i s t << Nero. getage ( ) << J a h r e a l t. << e n d l ; 34 r e t u r n 0 ; 35 }; 19 / 33

20 Zeiger Variable, die Speicheradresse enthält Berücksichtigung des dort abgelegten Datentyps, Beispiel: int * p; Eindeutig addressierten Speicherstelle für jede Variable eines Programms Ermittlung der Adresse einer Variable mittels &, Beispiel: p = &a; Dereferenzoperator (Zugriffsoperator) *<pointer> erlaubt (indirekten) Zugriff auf Daten auf welche der Pointer zeigt Zeiger auf Strukturen/Klassen: (*p).attribut und p->attribut äquivalent 20 / 33

21 Zeiger-Beispiel 1 // P o i n t e r o p e r a t o r s 2 #i n c l u d e <i o s t r e a m> 3 using namespace std ; 4 5 i n t main ( ) 6 { 7 8 i n t i, j, p i n t ; 9 10 i= 1 0 ; // i = p i n t = &i ; // p o i n t e r i n i t i a l i z a t i o n 12 j= p i n t ; // a c c e s s on i n t // cout << Adresse von i : << &i << endl ; 15 // cout << I n h a l t von p i n t ( a d r e s s e a u f i ) : << p i n t << e n d l ; 16 // cout << Zeiger von p i n t : << p i n t << endl ; // i = 5 ; // cout << Zeiger von p i n t : << p i n t << endl ; // cout << j : << j << e n d l ; p i n t = 0 ; // i= 0 25 cout << i : << i << e n d l ; 26 cout << j : << j << e n d l ; p i n t += 2 ; // i += r e t u r n 0 ; 31 } 21 / 33

22 Dynamische Speicherallokation: new und delete Keyword new: Neue Objekte auf dem Freispeicher erzeugen Rückgabewert ist eine Speicheradresse, welcher man einem Zeiger zuweisen muss Beispiel: int* px = new int; delete gibt den Speicherbereich wieder frei (bei Programmende, Geltungsbereichende oder expliziter Aufruf) Für jeden Aufruf von new korrespondierender Aufruf von delete Dynamische Speicherallokation: Größe wird erst später festgelegt Beispiel: Matrix 22 / 33

23 Matrix-Beispiel 1 // Dynamic a r r a y 2D 2 #i n c l u d e <i o s t r e a m> 3 using namespace std ; 4 5 i n t main ( ) 6 { 7 i n t n,m, i, j ; 8 d o u b l e b ; // p o i n t e r a t p o i n t e r s a t d o u b l e 9 10 cout << Eingabe Z e i l e n n : ; c i n >> n ; 11 cout << Eingabe Spalten m : ; cin >> m; b = new d o u b l e [ n ] ; // A l l o c a t e row p o i n t e r s f o r ( i = 0 ; i < n ; i ++) { 16 b [ i ] = new d o u b l e [m] ; // A l l o c a t e rows 17 } f o r ( i = 0 ; i < n ; i++ ) { // i n i t i a l i z e b 20 f o r ( j = 0 ; j < m; j ++) { 21 b [ i ] [ j ] = ( i +1) ( j +1) ; 22 } 23 } 24 // f o r ( i = n 1; i >= 0 ; i ) { 26 d e l e t e [ ] b [ i ] ; // D e a l l o c a t e rows 27 } 28 d e l e t e [ ] b ; // D e a l l o c a t e row p o i n t e r s r e t u r n 0 ; 31 } 23 / 33

24 Klassen-Beispiel 1 c l a s s tdatum { 2 p u b l i c : 3 tdatum ( ) ; 4 tdatum ( ) ; 5 }; 6 tdatum : : tdatum ( ) { 7 i n t Tag=0; 8 i n t Monat=0; 9 i n t Jahr =0; 10 }; 11 tdatum : : tdatum ( ) { 12 }; 13 // a l t e r n a t i v e i m p l e m e n t i e r u n g 14 c l a s s tdatum{ 15 p u b l i c : 16 tdatum ( ) { 17 i n t Tag=0; 18 i n t Monat=0; 19 i n t Jahr =0; 20 }; 21 tdatum ( ) { 22 }; 23 }; 24 i n t main ( ) { 25 tdatum heute ; 26 tdatum morgen ; // k e i n K o n s t r u k t o r a u f r u f! 27 tdatum Urlaub ; // auch k e i n K o n s t r u k t o r a u f r u f 28 morgen = new tdatum ; // aber h i e r wird er aufgerufen 29 Urlaub = new tdatum [ 1 4 ] ; // 14 Konstruktoraufrufe 30 d e l e t e morgen ; // h i e r D e s t r u k t o r a u f r u f 31 d e l e t e [ ] U rlaub ; // 14 D e s t r u k t o r a u f r u f e 32 } // h i e r D e s t r u k t o r von h e u t e 24 / 33

25 Referenzen Alias (Pseudoname) für eine Variable Kann genauso wie Variable benutzt werden Deklaration mit Hilfe des & Operators Adresse der Referenz identisch mit Adresse des Ziels der Referenz Kein zusätzlicher Speicher Verwendung u.a. zur Parameterübergabe an Funktionen und Vereinfachung komplizierter Datenstrukturen 25 / 33

26 Referenzen-Beispiel 1 #i n c l u d e <i o s t r e a m> 2 3 using namespace std ; 4 i n t main ( ) 5 { 6 i n t a, b ; 7 i n t & r e f = a ; // Referenzen muessen auf etwas zeigen 8 a = 5 ; // r e f = a = 5 9 b = 6 ; cout << r e f : << r e f << a : << a << b : << b << e n d l ; a = 8 ; 14 cout << r e f : << r e f << a : << a << b : << b << e n d l ; r e f = b ; 18 cout << r e f : << r e f << a : << a << b : << b << e n d l ; b=7; 21 cout << r e f : << r e f << a : << a << b : << b << e n d l ; r e t u r n 0 ; 24 } 26 / 33

27 Aufgabe 2 1 // 1. ) Welcher F e h l e r i s t h i e r e i n g e b a u t? 2 // 2. ) Welche Werte haben a, b, c, d am Ende? #i n c l u d e <i o s t r e a m> 6 7 using namespace std ; 8 9 i n t main ( ) 10 { 11 i n t a ; 12 i n t& b = a ; 13 i n t& c = b ; 14 i n t d = &c ; 15 a = 6 ; 16 b = 7 ; 17 d = 8 ; r e t u r n 0 ; 20 } 27 / 33

28 Weitergehende Konzepte Vererbung (Oberklasse Landfahrzeug, Klasse PKW erbt Eigenschaften von Klasse Landfahrzeug) Befreundete Klassen (Gewähre einer Nicht-Member-Funktion der Klasse matrix Zugriff auf den privaten Teil einer Klasse vektor) Templates (Eine Klasse mit einem variablen Typen, der vom Nutzer selbst definiert wird sobald er das Template benutzt) Smart pointer (abstrakter Datentyp, der einen Zeiger nachbildet und zusätzlich weitere Fähigkeiten besitzt, wie automatische Speicherverwaltung) / 33

29 Definition Graph Definition 4.1 Ein Graph G ist ein geordnetes Paar (V, E), wobei V eine Menge von Knoten (englisch vertex/vertices, oft auch Ecken genannt) und E eine Menge von Kanten (engl. edge/edges, manchmal auch Bögen genannt) bezeichnet und E V V erfüllt sein soll. 29 / 33

30 Definition Graph Definition 4.1 Ein Graph G ist ein geordnetes Paar (V, E), wobei V eine Menge von Knoten (englisch vertex/vertices, oft auch Ecken genannt) und E eine Menge von Kanten (engl. edge/edges, manchmal auch Bögen genannt) bezeichnet und E V V erfüllt sein soll. Bemerkung: Unterscheidung zwischen gerichteten und ungerichteten Graphen 30 / 33

31 Definition Graph Definition 4.1 Ein Graph G ist ein geordnetes Paar (V, E), wobei V eine Menge von Knoten (englisch vertex/vertices, oft auch Ecken genannt) und E eine Menge von Kanten (engl. edge/edges, manchmal auch Bögen genannt) bezeichnet und E V V erfüllt sein soll. Bemerkung: Unterscheidung zwischen gerichteten und ungerichteten Graphen Beispiele: Knoten sind verschiedene Städte, Kanten Straßen. U-Bahn-Netz: Stationen und Verbindungen / 33

32 Adjazenzmatrix Definition 4.2 Sei G = (V, E) ein Graph. Die zugehörige Adjazenzmatrix A = (a i,j ), i, j V ist durch seine Einträge definiert als a i,j = { 1, falls (i, j) E, 0, sonst. (4.1) 32 / 33

33 Übungsaufgabe 3 Implementieren Sie den Klassentyp Graph. Überlegen Sie sich sinnvolle Variablen und Methoden. Insbesondere soll es möglich sein Kanten über eine Adjazenzmatrix zu definieren und diese wiederum ausgeben zu lassen. 33 / 33

7. Übung Informatik II - Objektorientierte Programmierung

7. Übung Informatik II - Objektorientierte Programmierung 7. Übung Informatik II - Objektorientierte Programmierung 29. Mai 2015 Inhalt 1 2 3 Übersicht 1 2 3 Idee Menschen nehmen die Welt in Form von Objekten wahr manche Objekte haben gleiche Eigenschaften, hierüber

Mehr

Grundkurs C++ Einführung

Grundkurs C++ Einführung Grundkurs C++ Einführung Martin Knopp 26.04.2017 Folie 1/34 GK C++: Einführung Martin Knopp 26.04.2017 Martin Knopp Martin.Knopp@tum.de Büro Z934 Folie 2/34 GK C++: Einführung Martin Knopp 26.04.2017 Warum

Mehr

Grundkurs C++ Einführung

Grundkurs C++ Einführung Grundkurs C++ Einführung Martin Knopp & Johannes Feldmaier 13.04.2016 Folie 1/34 GK C++: Einführung Martin Knopp & Johannes Feldmaier 13.04.2016 Martin Knopp Martin.Knopp@tum.de Büro Z934 Johannes Feldmaier

Mehr

Klassen. Kapitel Klassendeklaration

Klassen. Kapitel Klassendeklaration Kapitel 4 Klassen Wir kommen nun zu einem sehr wichtigen Aspekt der OOT: zu den Klassen. Eine Klasse ist eine vom Benutzer definierte Datenstruktur, eine Sammlung von Variablen (unterschiedlichen Typs)

Mehr

Grundkurs C++ Einführung

Grundkurs C++ Einführung Grundkurs C++ Einführung Martin Knopp, Martin Gottwald, Stefan Röhrl 11.04.2018 Folie 1/34 GK C++: Einführung Martin Knopp, Martin Gottwald, Stefan Röhrl 11.04.2018 Das Team Martin Knopp Martin.Knopp@tum.de

Mehr

Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Einführung

Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Einführung Grundkurs C++ Einführung Tim Habigt tim@tum.de Büro Z949 Julian Habigt jh@tum.de Büro Z941 Grundkurs C++ 2 Warum C++? Sprache Rechenzeit Memory KB C++ GNU g++ 5,74 182.244 Java 6 26,34 686.076 Python 3

Mehr

Einführung in die Programmierung mit C++

Einführung in die Programmierung mit C++ 1 Seite 1 Einführung in die Programmierung mit C++ Teil III - Objektorientierte Programmierung 9. Klassen und Methoden Was sind Klassen? Seite 2 sprachliches Mittel von C++ um objektorientierte Programmierung

Mehr

C++ - Objektorientierte Programmierung Konstante und statische Elemente

C++ - Objektorientierte Programmierung Konstante und statische Elemente C++ - Objektorientierte Programmierung Konstante und statische Elemente hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja

Mehr

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja Aue

Mehr

Thema heute: Vererbung und Klassenhierarchien. Abgeleitete Klassen. Vererbung von Daten und Funktionen. Virtuelle Funktionen

Thema heute: Vererbung und Klassenhierarchien. Abgeleitete Klassen. Vererbung von Daten und Funktionen. Virtuelle Funktionen 1 Thema heute: Vererbung und Klassenhierarchien Abgeleitete Klassen Vererbung von Daten und Funktionen Virtuelle Funktionen 2 Vererbung oft besitzen verschiedene Datentypen einen gemeinsamen Kern Beispiel:

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

Aufbau von Klassen. class punkt {...

Aufbau von Klassen. class punkt {... Einführung in C++ Aufbau von Klassen Eine wird mit dem Schlüsselwort class eingeleitet, und endet mit einem Semikolon. Der Inhalt wird zwischen geschweiften Klammern geschrieben. class punkt {... ; Im

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

Objektorientierte Programmierung und Klassen

Objektorientierte Programmierung und Klassen Objektorientierte Programmierung und Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 16.5.07 G. Bohlender (IANM UNI Karlsruhe) OOP

Mehr

Implementieren von Klassen

Implementieren von Klassen Implementieren von Klassen Felder, Methoden, Konstanten Dr. Beatrice Amrhein Überblick Felder/Mitglieder (Field, Member, Member-Variable) o Modifizierer Konstanten Methoden o Modifizierer 2 Felder und

Mehr

8. Referenzen und Zeiger

8. Referenzen und Zeiger 8. Referenzen und Zeiger Motivation Variable werden in C++ an speziellen Positionen im Speicher abgelegt. An jeder Position befindet sich 1 Byte. Sie sind durchnummeriert beginnend bei 0. Diese Positionen

Mehr

Grundlagen Polymorphismus Eigenschaften virtueller Klassen Mehrfachvererbung bei ROOT. Mehrfache Vererbung. Daniel Beneckenstein. 21.

Grundlagen Polymorphismus Eigenschaften virtueller Klassen Mehrfachvererbung bei ROOT. Mehrfache Vererbung. Daniel Beneckenstein. 21. Mehrfache Vererbung Daniel Beneckenstein 21. August 2006 Mehrfache Vererbung Ableitung einer Klasse von beliebig vielen Basisklassen: class A {... }; class B {... }; class C {... }; class D: public A,

Mehr

Angewandte Mathematik und Programmierung

Angewandte Mathematik und Programmierung Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu wissenschaftlichen Rechnens mit C++ und Matlab SS2013 Inhalt Bis jetzt: Heute: Entwicklungsumgebung

Mehr

7.2 Dynamischer Speicher in Objekten/Kopierkonstruktor

7.2 Dynamischer Speicher in Objekten/Kopierkonstruktor 7.2 Dynamischer Speicher in Objekten/Kopierkonstruktor Das Programmbeispiel aus dem letzten Abschnitt läßt sich bisher nicht zufriedenstellend zu Ende bringen. Unerklärliche Abstürze und Fehlverhalten

Mehr

6 ZEIGER UND REFERENZEN - ALLGEMEINES

6 ZEIGER UND REFERENZEN - ALLGEMEINES 6 ZEIGER UND REFERENZEN - ALLGEMEINES Leitideen: Zeiger sind Adressen mit zusätzlicher Typinformation über das dort gespeicherte Objekt. Die Vereinbarungssyntax soll der Ausdruckssyntax entsprechen und

Mehr

C++ Notnagel. Ziel, Inhalt. Programmieren in C++

C++ Notnagel. Ziel, Inhalt. Programmieren in C++ C++ Notnagel Ziel, Inhalt Ich versuche in diesem Dokument noch einmal die Dinge zu erwähnen, die mir als absolut notwendig für den C++ Unterricht und die Prüfungen erscheinen. C++ Notnagel 1 Ziel, Inhalt

Mehr

DAP2-Programmierpraktikum Einführung in C++ (Teil 2)

DAP2-Programmierpraktikum Einführung in C++ (Teil 2) DAP2-Programmierpraktikum Einführung in C++ (Teil 2) Carsten Gutwenger 18. April 2008 Lehrstuhl 11 Algorithm Engineering Fakultät für Informatik, TU Dortmund Überblick Dynamischer Speicher Klassen und

Mehr

Tag 7 Repetitorium Informatik (Java)

Tag 7 Repetitorium Informatik (Java) Tag 7 Repetitorium Informatik (Java) Dozent: Patrick Kreutzer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Informatik-Repetitorium

Mehr

C++ - Objektorientierte Programmierung Vererbung

C++ - Objektorientierte Programmierung Vererbung C++ - Objektorientierte Programmierung Vererbung Personen Kunden Mitarbeiter Verwaltung Verkäufer Leibniz Universität IT Services Anja Aue Vererbung Definition von Klassen auf Basis von bestehenden Klassen.

Mehr

3.3 Konstruktoren und Destruktoren

3.3 Konstruktoren und Destruktoren Konstruktoren eine spezielle Form von Methoden gleicher Name wie Klasse kein Rückgabewert Aufgabe: Instanzen einrichten (konstruieren), Anfangswerte setzen, Werte übernehmen, an Instanzvariablen übergeben

Mehr

C++ Teil 6. Sven Groß. 27. Mai Sven Groß (IGPM, RWTH Aachen) C++ Teil Mai / 14

C++ Teil 6. Sven Groß. 27. Mai Sven Groß (IGPM, RWTH Aachen) C++ Teil Mai / 14 C++ Teil 6 Sven Groß 27. Mai 2016 Sven Groß (IGPM, RWTH Aachen) C++ Teil 6 27. Mai 2016 1 / 14 Themen der letzten Vorlesung Musterlösung A2 Wdh.: Zeiger und Felder Kopieren von Feldern Dynamische Speicherverwaltung

Mehr

9. Vektoren. (auch Felder/array)

9. Vektoren. (auch Felder/array) 9. Vektoren (auch Felder/array) Motivation Hat man mehrere Objekte gleichen Datentyps, so kann man sie explizit deklarieren, wenn die Anzahl bekannt ist double x1,x2,x3,x4; Nachteile: versagt, -wenn die

Mehr

Vorkurs C++ Programmierung

Vorkurs C++ Programmierung Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:

Mehr

Grundkurs C++ IDE Klassenhierarchien

Grundkurs C++ IDE Klassenhierarchien Grundkurs C++ IDE Klassenhierarchien Martin Knopp 03.05.2017 Folie 1/34 GK C++: IDE, Klassenhierarchien Martin Knopp 03.05.2017 IDE Integrated Development Environment Wir empfehlen: Qt Creator (Bestandteil

Mehr

Grundkurs C++ IDE Klassenhierarchien

Grundkurs C++ IDE Klassenhierarchien Grundkurs C++ IDE Klassenhierarchien Martin Knopp & Johannes Feldmaier 20.04.2016 Folie 1/35 GK C++: IDE, Klassenhierarchien Martin Knopp & Johannes Feldmaier 20.04.2016 IDE Integrated Development Environment

Mehr

C++ Teil 5. Sven Groß. 12. Nov IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Nov / 16

C++ Teil 5. Sven Groß. 12. Nov IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Nov / 16 C++ Teil 5 Sven Groß IGPM, RWTH Aachen 12. Nov 2014 Sven Groß (IGPM, RWTH Aachen) C++ Teil 5 12. Nov 2014 1 / 16 Themen der letzten Vorlesung Eingabestrom, Verhalten von cin Namensräume Live Programming

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

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 39 Einstieg in die Informatik mit Java Objektorientierte Programmierung und Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 39 1 Überblick:

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 27 Einstieg in die Informatik mit Java Klassen als Datenstrukturen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 27 1 Überblick: Klassen als Datenstruktur 2 Vereinbarung

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Objektorientierung in C++ (3) Aspekte der Vererbung (1) Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 546 Zuweisung bei Vererbung Dr. Frank Seifert Vorlesung

Mehr

C++ Teil 5. Sven Groß. 13. Mai Sven Groß (IGPM, RWTH Aachen) C++ Teil Mai / 18

C++ Teil 5. Sven Groß. 13. Mai Sven Groß (IGPM, RWTH Aachen) C++ Teil Mai / 18 C++ Teil 5 Sven Groß 13. Mai 2016 Sven Groß (IGPM, RWTH Aachen) C++ Teil 5 13. Mai 2016 1 / 18 Themen der letzten Vorlesung Funktionen Funktionsüberladung, Signatur Rekursion const-deklaration Referenzen

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 03: Wiederholung Klassen & Objekte Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda Wiederholung Klassen, Objekte, Attribute und Methoden Das Schlüsselwort

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

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 02: Klassen & Objekte Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Klassen Grundstruktur einer Java-Klasse Eigenschaften (Attribute) Variablen

Mehr

Programmierwerkstatt. Arrays, Pointer und Referenzen

Programmierwerkstatt. Arrays, Pointer und Referenzen Programmierwerkstatt Arrays, Pointer und Referenzen Zum Inhalt Wir wollen Euch: das Wesentliche vermitteln Fehlerquellen verdeutlichen Verständnis ist uns wichtig programming by coincidence vermeiden Themen

Mehr

Informatik 1 MaVt FS Übung 10

Informatik 1 MaVt FS Übung 10 Informatik 1 MaVt FS 2010 Übung 10 Claudia Kuster ckuster@inf.ethz.ch Mittwoch 13-15h HG E 27 http://graphics.ethz.ch/~ckuster/teaching/mavt_info1_2010.html Vorlesung Objektorientierte Programmierung Konstruktoren

Mehr

C++ Teil 7. Sven Groß. 30. Nov Sven Groß (IGPM, RWTH Aachen) C++ Teil Nov / 13

C++ Teil 7. Sven Groß. 30. Nov Sven Groß (IGPM, RWTH Aachen) C++ Teil Nov / 13 C++ Teil 7 Sven Groß 30. Nov 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 7 30. Nov 2015 1 / 13 Themen der letzten Vorlesung Zeiger, Felder (Wdh.) dynamische Speicherverwaltung Sven Groß (IGPM, RWTH Aachen)

Mehr

Klassen als Datenstrukturen

Klassen als Datenstrukturen Einstieg in die Informatik mit Java, Vorlesung vom 27.11.07 Übersicht 1 Klassen als Datenstruktur 2 Vereinbarung von Klassen 3 Erzeugen von Objekten - Instanzen einer Klasse 4 Zugriff auf Attribute 5 Initialisierung

Mehr

C++ - Einführung in die Programmiersprache Zeiger, Referenzen und Strukturen. Leibniz Universität IT Services Anja Aue

C++ - Einführung in die Programmiersprache Zeiger, Referenzen und Strukturen. Leibniz Universität IT Services Anja Aue C++ - Einführung in die Programmiersprache Zeiger, Referenzen und Strukturen Leibniz Universität IT Services Anja Aue Zeiger (Pointer) Verweis auf eine Speicherstelle. Speicherung einer Speicheradresse.

Mehr

Java Vererbung. Inhalt

Java Vererbung. Inhalt Java Vererbung Inhalt 1 Zielsetzung... 2 1.1 Bewertung... 2 2 Grundlagen der Vererbung... 2 2.1 Super und Subklassen... 2 3 Überladen von Methoden... 4 3.1 Unterschiedliche Parameter... 4 3.2 Gleiche Parameter

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 24 Einstieg in die Informatik mit Java Klassen als Datenstrukturen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 24 1 Klassen als Datenstruktur 2 Vereinbarung von

Mehr

Dynamische Datentypen. Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren

Dynamische Datentypen. Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren Dynamische Datentypen Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren Probleme mit Feldern (variabler Länge) man kann sie nicht direkt kopieren und zuweisen Probleme mit

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

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

Programmieren in C/C++ und MATLAB

Programmieren in C/C++ und MATLAB Programmieren in C/C++ und MATLAB Christian-Albrechts-Universität zu Kiel CAU 8-1 Objektorientiertes Programmieren Die Programme, die bisher in diesem Kurs verwendet wurden, sind alle klein und überschaubar

Mehr

Grundzüge der objektorientierten Programmierung

Grundzüge der objektorientierten Programmierung BERGISCHE UNIVERSITÄT GESAMTHOCHSCHULE WUPPERTAL GAUSS-STRASSE 20 42097 WUPPERTAL (Korrespondenzanschrift) 42119 WUPPERTAL (Lieferanschrift) TELEX 8 592 262 bughw TELEFAX (0202) 439-2901 TELEFON (0202)

Mehr

Objektorientierte Programmierung mit C++ SS 2007

Objektorientierte Programmierung mit C++ SS 2007 Objektorientierte Programmierung mit C++ SS 2007 Andreas F. Borchert Universität Ulm 5. Juni 2007 Polymorphismus #include Function.h class Function { public: virtual ~Function() {}; virtual std::string

Mehr

Übungen zur Vorlesung EidP (WS 2015/16) Blatt 6

Übungen zur Vorlesung EidP (WS 2015/16) Blatt 6 Andre Droschinsky Ingo Schulz Dortmund, den 0. Dezember 2015 Übungen zur Vorlesung EidP (WS 2015/16) Blatt 6 Block rot Es können 4 + 1 Punkte erreicht werden. Abgabedatum: 10. Dezember 2015 2:59 Uhr Hinweise

Mehr

Informatik I (D-MAVT)

Informatik I (D-MAVT) Informatik I (D-MAVT) Übungsstunde 9 simon.mayer@inf.ethz.ch Distributed Systems Group, ETH Zürich Ablauf Nachbesprechung Übung 7 Besprechung/Vertiefung der Vorlesung Vorbesprechung Übung 9 Aufgabe 1:

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dynamische Datenobjekte Pointer/Zeiger, Verkettete Liste Eigene Typdefinitionen 1 Zeigeroperatoren & und * Ein Zeiger ist die Speicheradresse irgendeines Objektes. Eine

Mehr

Programmierstarthilfe SS 2008 Fakultät für Ingenieurwissenschaften und Informatik 8. Blatt Für den 16. und

Programmierstarthilfe SS 2008 Fakultät für Ingenieurwissenschaften und Informatik 8. Blatt Für den 16. und Programmierstarthilfe SS 2008 Fakultät für Ingenieurwissenschaften und Informatik 8. Blatt Für den 16. und 17.6.2008 Organisatorisches Um auf die Mailingliste aufgenommen zu werden schicke einfach eine

Mehr

C++ Teil 9. Sven Groß. 17. Juni Sven Groß (IGPM, RWTH Aachen) C++ Teil Juni / 17

C++ Teil 9. Sven Groß. 17. Juni Sven Groß (IGPM, RWTH Aachen) C++ Teil Juni / 17 C++ Teil 9 Sven Groß 17. Juni 2016 Sven Groß (IGPM, RWTH Aachen) C++ Teil 9 17. Juni 2016 1 / 17 Themen der letzten Vorlesung Objektorientierung und Klassen Attribute / Datenelemente Methoden / Elementfunktionen

Mehr

C++ Teil 6. Sven Groß. 23. Nov Sven Groß (IGPM, RWTH Aachen) C++ Teil Nov / 15

C++ Teil 6. Sven Groß. 23. Nov Sven Groß (IGPM, RWTH Aachen) C++ Teil Nov / 15 C++ Teil 6 Sven Groß 23. Nov 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 6 23. Nov 2015 1 / 15 Themen der letzten Vorlesung const-deklaration Referenzen Zeiger Felder Sven Groß (IGPM, RWTH Aachen) C++

Mehr

Thema heute: Vererbung und Klassenhierarchien. Abgeleitete Klassen. Vererbung von Daten und Funktionen. Virtuelle Funktionen

Thema heute: Vererbung und Klassenhierarchien. Abgeleitete Klassen. Vererbung von Daten und Funktionen. Virtuelle Funktionen 1 Thema heute: Vererbung und Klassenhierarchien Abgeleitete Klassen Vererbung von Daten und Funktionen Virtuelle Funktionen 2 Vererbung oft besitzen verschiedene Datentypen einen gemeinsamen Kern Beispiel:

Mehr

Gliederung. Algorithmen und Datenstrukturen II. Java: Objektorientierung. Java: Objektorientierung. Objektorientierung in JAVA. D.

Gliederung. Algorithmen und Datenstrukturen II. Java: Objektorientierung. Java: Objektorientierung. Objektorientierung in JAVA. D. Gliederung Algorithmen und Datenstrukturen II in JAVA D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2009, 4. Mai 2009, c

Mehr

Algorithmen und Datenstrukturen II

Algorithmen und Datenstrukturen II Algorithmen und Datenstrukturen II in JAVA D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2009, 4. Mai 2009, c 2009 D.Rösner

Mehr

Polymorphismus 179. Function.h. #include <string>

Polymorphismus 179. Function.h. #include <string> Polymorphismus 179 #include Function.h class Function { public: virtual ~Function() {}; virtual std::string get_name() const = 0; virtual double execute(double x) const = 0; }; // class Function

Mehr

C++ Klassen weitere Funktionen

C++ Klassen weitere Funktionen C++ Klassen weitere Funktionen Übersicht static Elemente const Elemente Zusätzliches zu Konstruktoren Kopier-Konstruktor Konvertierung-Konstruktor Initialisierungslisten Friend Funktionen 2 Statische Klassenkomponenten

Mehr

Programmierung mit C Zeiger

Programmierung mit C Zeiger Programmierung mit C Zeiger Zeiger (Pointer)... ist eine Variable, die die Adresse eines Speicherbereichs enthält. Der Speicherbereich kann... kann den Wert einer Variablen enthalten oder... dynamisch

Mehr

Verschlüsseln eines Bildes. Visuelle Kryptographie. Verschlüsseln eines Bildes. Verschlüsseln eines Bildes

Verschlüsseln eines Bildes. Visuelle Kryptographie. Verschlüsseln eines Bildes. Verschlüsseln eines Bildes Verschlüsseln eines Bildes Visuelle Kryptographie Anwendung von Zufallszahlen Wir wollen ein Bild an Alice und Bob schicken, so dass Alice allein keine Information über das Bild bekommt Bob allein keine

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 03: Wiederholung Klassen & Objekte Kyrill Schmid Lehrstuhl für Mobile und Verteilte Systeme Wiederholung Heutige Agenda Klassen, Objekte, Attribute und Methoden Das Schlüsselwort

Mehr

Rückblick: Benutzerdefinierte Datentypen Definition der Klasse Vektor als Container für 2-dimensionale Vektoren

Rückblick: Benutzerdefinierte Datentypen Definition der Klasse Vektor als Container für 2-dimensionale Vektoren Rückblick: Benutzerdefinierte Datentypen Definition der Klasse Vektor als Container für 2-dimensionale Vektoren class Vektor public: double k1, k2; // Deklaration der Klasse Vektor // Elementvariablen

Mehr

HSR Rapperswil 2001 Markus Rigling. Programmieren: Vererbung. 1 Variante 2

HSR Rapperswil 2001 Markus Rigling. Programmieren: Vererbung. 1 Variante 2 HSR Rapperswil 2001 Markus Rigling Programmieren: Vererbung 1 Variante 2 Inhaltsverzeichnis: 1. Was ist Vererbung...3 2. Anwendung...3 3. Realisierung...3 4. Vorgehensweise zur Erstellung einer Kind-Klasse...3

Mehr

Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++

Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Grundkurs C++ IDE Implementierung von Klassenhierarchien Compiler, Linker Buildsysteme Tim Habigt tim@tum.de Büro Z949 Julian Habigt jh@tum.de Büro Z941 Grundkurs C++ 2 Warum C++? Sprache Rechenzeit Memory

Mehr

Vererbung I. Kfz Eigenschaften und Methoden der Klasse Kfz Lkw. Pkw. Eigenschaften und Methoden der Klasse Kfz

Vererbung I. Kfz Eigenschaften und Methoden der Klasse Kfz Lkw. Pkw. Eigenschaften und Methoden der Klasse Kfz Einführung in C++ Vererbung I Durch Vererbung können aus bereits bestehenden Klassen neue Klassen konstruiert werden. Die neue abgeleitete Klasse erbt dabei die Daten und Methoden der sog. Basisklasse.

Mehr

Hydroinformatik I: Referenzen und Zeiger

Hydroinformatik I: Referenzen und Zeiger Hydroinformatik I: Referenzen und Zeiger Prof. Dr.-Ing. habil. Olaf Kolditz 1 Helmholtz Centre for Environmental Research UFZ, Leipzig 2 Technische Universität Dresden TUD, Dresden Dresden, 06. Januar

Mehr

Mapra: C++ Teil 4. Felix Gruber. 6. Mai IGPM, RWTH Aachen. Felix Gruber (IGPM, RWTH Aachen) Mapra: C++ Teil 4 6.

Mapra: C++ Teil 4. Felix Gruber. 6. Mai IGPM, RWTH Aachen. Felix Gruber (IGPM, RWTH Aachen) Mapra: C++ Teil 4 6. Mapra: C++ Teil 4 Felix Gruber IGPM, RWTH Aachen 6. Mai 2015 Felix Gruber (IGPM, RWTH Aachen) Mapra: C++ Teil 4 6. Mai 2015 1 / 22 Themen vom letzten Mal Kompilieren mit Makefiles Ein-/Ausgabe über Dateien

Mehr

Objektorientiertes Programmieren mit C++ für Fortgeschrittene

Objektorientiertes Programmieren mit C++ für Fortgeschrittene BEREICH DATENTECHNIK I CQ 300 00 TH 02 Objektorientiertes Programmieren mit C++ für Fortgeschrittene Kapitel 3 3. Mehrfachvererbung 3.1. Eigenschaften und Problematik 3.2. Virtuelle Basisklassen BEREICH

Mehr

Programmieren in C++ Klassen

Programmieren in C++ Klassen Programmieren in C++ Klassen Inhalt Klassen (vertieft) Destruktor Konstruktoren Move-Semantik und Rechtswert-Referenzen (C++11) C++11 Features Prof. Dr. C. Stamm Programmieren in C++, FS 13 4-2 Implementierung

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 08: Mehr zu Klassen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme 1. Teil: Wiederholung Heutige Agenda Verwendung der ArrayList 2. Teil: Weitere Aspekte der OO

Mehr

6. Globalübung (zu Übungsblatt 8)

6. Globalübung (zu Übungsblatt 8) 6. Globalübung (zu Übungsblatt 8) Inhalt: Klassenhierarchien Verdecken von Attributen Überschreiben von Methoden Codeanalyse Analyse von JAVA-Programmen Semestralklausur Klausurtermin: Mittwoch 11.01.2006

Mehr

Programmieren II Abstrakte Klassen / Virtuelle Methoden. Programmieren II Abstrakte Klassen / Virtuelle Methoden

Programmieren II Abstrakte Klassen / Virtuelle Methoden. Programmieren II Abstrakte Klassen / Virtuelle Methoden Einleitende Bemerkungen Einleitende Bemerkungen Aspekte Aufbau von sinnvollen Klassenhierarchien Verwaltung von Objekten unterschiedlichen Typs Mitarbeiter Besonderheiten der Anwendung jeder Angehörige

Mehr

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny 9. Zeiger Arbeitsspeicher / Adressen Der Arbeitsspeicher des Computers (RAM) besteht aus einem Feld von Speicherzellen, beginnend bei Adresse

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

Mehr

Kapitel 6: Dynamische Speicherverwaltung

Kapitel 6: Dynamische Speicherverwaltung Kapitel 6: Dynamische Speicherverwaltung Dieses Kapitel beschreibt die Operatoren new und delete, mit denen dynamisch Speicher reserviert und freigegeben wird. Außerdem wird im Detail eingegangen auf:

Mehr

Crashkurs C++ - Teil 1

Crashkurs C++ - Teil 1 Crashkurs C++ - Teil 1 Intro Speicherverwaltung Variablen, Pointer, Referenzen Felder statische & dynamische Allozierung Birgit Möller & Denis Williams AG Bioinformatik & Mustererkennung Institut für Informatik

Mehr

Objektorientierte Programmierung Studiengang Medieninformatik

Objektorientierte Programmierung Studiengang Medieninformatik Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 1 15.03.2017 Objektorientierte Programmierung (Studiengang Medieninformatik) Form: Prüfung:

Mehr

Wissenschaftliches Rechnen

Wissenschaftliches Rechnen Institut für Numerische und Angewandte Mathematik 11.04.2012 FB Mathematik und Informatik der Universität Münster Prof. Dr. Christian Engwer, Dipl. Math. Dipl. Inf. Sebastian Westerheide Übung zur Vorlesung

Mehr

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass: OOP (Java), 22. Aufzählungstypen 1/20 Objektorientierte Programmierung Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester

Mehr

Programmierkurs C++ Konstruktor, Statische Methoden Namespaces

Programmierkurs C++ Konstruktor, Statische Methoden Namespaces Programmierkurs C++ Konstruktor, Statische Methoden Namespaces Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Initialisierung von Datenstrukturen

Mehr

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) Wintersemester 2005/06 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich Informatik Lehrstuhl

Mehr

Zeiger und dynamischer Speicher

Zeiger und dynamischer Speicher Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14 Zuletzt aktualisiert: 09.12.2013, 07:49 Uhr

Mehr

Konzepte der Programmiersprachen

Konzepte der Programmiersprachen Konzepte der Programmiersprachen Sommersemester 2010 4. Übungsblatt Besprechung am 9. Juli 2010 http://www.iste.uni-stuttgart.de/ps/lehre/ss2010/v_konzepte/ Aufgabe 4.1: Klassen in C ++ Das folgende C

Mehr

Visuelle Kryptographie. Anwendung von Zufallszahlen

Visuelle Kryptographie. Anwendung von Zufallszahlen Visuelle Kryptographie Anwendung von Zufallszahlen Verschlüsseln eines Bildes Wir wollen ein Bild an Alice und Bob schicken, so dass Verschlüsseln eines Bildes Wir wollen ein Bild an Alice und Bob schicken,

Mehr

Javakurs 2013 Objektorientierung

Javakurs 2013 Objektorientierung Javakurs 2013 Objektorientierung Objektorientierte Programmierung I Armelle Vérité 7 März 2013 Technische Universität Berlin This work is licensed under the Creative Commons Attribution-ShareAlike 3.0

Mehr

Vorlesungsprüfung Programmiersprache 1

Vorlesungsprüfung Programmiersprache 1 Vorlesungsprüfung Programmiersprache 1 Termin der Prüfung: 1) Di 20.03.2018 16:15 17:00 HSB 3 2) Di 15.05.2018 16:15 17:00 HSB 3 3) Di 12.06.2018 16:15 17:00 HSB 3 Stoffgebiete: 1) Ganzzahltypen: char,

Mehr

Polymorphismus 44. Function.hpp. #include <string>

Polymorphismus 44. Function.hpp. #include <string> Polymorphismus 44 #include Function.hpp class Function { public: virtual ~Function() {}; virtual const std::string& get_name() const = 0; virtual double execute(double x) const = 0; }; // class

Mehr

Fakultät IV Elektrotechnik/Informatik

Fakultät IV Elektrotechnik/Informatik Fakultät IV Elektrotechnik/Informatik Probeklausur Einführung in die Informatik I Hinweis: Diese Probeklausur ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der Teilleistung TL 2 (Programmiertest)

Mehr

Methoden und Wrapperklassen

Methoden und Wrapperklassen Methoden und Wrapperklassen CoMa-Übung IV TU Berlin 06.11.2012 CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 06.11.2012 1 / 24 Themen der Übung 1 Methoden 2 Wrapper-Klassen CoMa-Übung IV (TU Berlin)

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 12

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf  Seite 1 von 12 Kapitel 18 Konstruktor / Destruktor einer Klasse Seite 1 von 12 Konstruktoren - Zur Initialisierung der Eigenschaften einer Klasse werden Konstruktoren verwendet. - Der Konstruktor wird bei der Definition

Mehr

Vokabeln. 4.1 Benutzer definierte Datentypen. Kapitel 4. Prof. Dr. Gerhard Berendt C++ oop? SS 2002 Arbeitsblatt 4

Vokabeln. 4.1 Benutzer definierte Datentypen. Kapitel 4. Prof. Dr. Gerhard Berendt C++ oop? SS 2002 Arbeitsblatt 4 4.1 Benutzer definierte Datentypen C++ unterstützt die Einführung benutzer definierter Datentypen (auch Abstrakte Datentypen (ADT) genannt). ADTs bieten einen guten Einstieg in das Paradigma der objekt

Mehr

Einführung in die Programmiersprache C

Einführung in die Programmiersprache C Einführung in die Programmiersprache C 4 Storage classes Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät Compilation units Compilierung eines mehrteiligen Programms:

Mehr

Vererbung und Polymorphie

Vererbung und Polymorphie Vererbung und Polymorphie Marc Satkowski, Sascha Peukert 29. September 2016 C# Kurs Gliederung 1. Methodenüberladung 2. Vererbung Polymorphie Methoden- & Eigenschaftsüberschreibung Weitere Schlüsselwörter

Mehr

Einführung in die Programmiersprache C

Einführung in die Programmiersprache C Einführung in die Programmiersprache C 4 Storage classes Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät Compilation units Compilierung eines mehrteiligen Programms:

Mehr