Prüfung aus PROGRAMMIEREN (2) (C++) (WS 2002/03)
|
|
- Kathrin Kohler
- vor 5 Jahren
- Abrufe
Transkript
1 Fachhochschule München Bereich Datentechnik Fachbereich Elektrotechnik und Informationstechnik A. Irber / R. Thomas Prüfung aus PROGRAMMIEREN (2) (C++) (WS 2002/03) Arbeitszeit 90 Minuten 27.Januar 2003 Beliebige eigene Unterlagen Aufgabenblatt bitte abgeben! **** Viel Erfolg!!! **** 1. Aufgabe (41) Die Klasse Konto, deren unvollständige Definition nachfolgend gegeben ist, dient zur Beschreibung eines einfachen Kontos. class Konto public: //siehe b).//siehe c).//siehe d).//siehe d).//siehe e) private: string m_name; unsigned m_nr; double m_stand; //Name des Kontoinhabers //Kontonummer //Kontostand Der Name des Kontoinhabers ist vom Klassen-Typ string. Diese Klasse ist Teil der ANSI-C++ Standardbibliothek. Sie ähnelt der im Praktikum erstellten Klasse MString bzw. MyString. Zu ihrer Verwendung muss die Headerdatei <string> eingebunden werden. Die Klasse verfügt unter anderem über folgende Konstruktoren : string(); Erzeugt einen leeren String (Länge 0) string(const char* s); Erzeugt einen String der mit dem C-String s initialisiert wird string(const str& str, Erzeugt einen String, der mit n Zeichen ab der Position pos aus dem String size_type pos=0, str initialisiert wird. Der Defaultwert npos bewirkt, dass bis zum letzten size_type n=npos); Zeichen von str kopiert wird. Weiterhin ist neben weiteren Operatorfunktionen auch die folgende Operatorfunktion definiert : string& operator=(const string& str); a) Was passiert beim Anlegen eines Konto-Objektes, falls die Klassendefinition überhaupt keinen Konstruktor enthält? (5) Welche Werte besitzen die 3 Datenkomponenten eines solchen Objektes? b) Deklarieren Sie in der Klassendefinition (auf dem Angabenblatt) einen Default-Konstruktor und implementieren Sie ihn (4) ausserhalb der Klassendefinition (Initialisierung : Name mit Leerstring, Kontonummer und Kontostand mit 0 bzw 0.0) Die Klasse soll über einem weiteren Konstruktor verfügen, mit dem Objekte vom Typ Konto beim Anlegen mit frei wählbaren Werten für den Namen, die Kontonummer und den Kontostand initialisiert werden können. Falls kein Kontostand angegeben wird, soll der Kontostand auf 0.0 gesetzt werden. c) Tragen Sie die benötigte Deklaration des Konstruktors in das Angabenblatt ein. (8) Implementieren Sie den Konstruktor ausserhalb der Klassendefinition. Verwenden Sie hierbei eine Initialisierungsliste.... weiter Seite 2
2 - 2 - Der Zugriff zu den privaten Datenkomponenten soll mit Hilfe von Methoden realisiert werden. Die Methode zur Abfrage des Kontostandes soll nur lesenden Zugriff gestatten d) Erweitern Sie auf dem Angabenblatt die Klassendefinition um je eine Methode zur Abfrage und zum Setzen des (5) Kontostandes. Beiden Methoden sollen innerhalb der Klassendefinition auch definiert werden. Zum Vergleich zweier Konten soll für die Klasse Konto der <-Operator als Memberfunktion überladen werden. Als Vergleichskriterium soll der Kontostand verwendet werden. e) Geben Sie die Deklaration (auf dem Angabenblatt in der Klassendefinition) und die Implementierung (ausserhalb der (6) Klassendefinition) des <-Operators an. In der Funktion main() wird wie nachfolgend gezeigt ein Array vom Typ Konto angelegt und mit 3 Konto-Objekten initialisiert. int main() const in anz =3; Konto kontotab[] = Konto("Maier", 1, 500.0), Konto("Huber", 2 ), Konto("Graf", 3, ) //... Konto maxkonto =...siehe g) //... } Zur Verwaltung einer Anzahl von Konten soll eine freie Funktion suchemaxkonto()realisiert werden. Die Funktion soll aus einem beliebigen Konto-Array das Konto mit dem maximalen Kontostand ermitteln und dieses Konto als Funktionswert zurückliefern. Die Anzahl der Konten (=belegten Einträge) des Arrays ist der Funktion als Parameter zu übergeben. f) Geben Sie die Implementierung der freien Funktion suchemaxkonto() an. (11) g) Ergänzen Sie in der obigen Angabe die Zuweisung an das Objekt maxkonto in der Funktion main()um einen (2) korrekten Funktionsaufruf von suchemaxkonto(). 2. Aufgabe (55) Auf dem Beiblatt ist die Definition der Klasse FGraphObj etwas unvollständig wiedergegeben (Inhalt der Headerdatei "FGraphObj.h" ) Diese Klasse soll als Basisklasse für weitere Klassen dienen, die jeweils unterschiedliche graphische Objekte modellieren (z.b. FKreis, FRechteck, FDreieck, FLinie usw). Jedes graphische Objekt besitzt einen Referenzpunkt, der seine Position in der zweidimensionalen x-y-ebene festlegt. Dieser Referenzpunkt wird in der Datenkomponente m_dref gespeichert. Der Typ Punkt zur Darstellung eines Punktes in der zweidimensionalsen Ebene ist ebenfalls in der Headerdatei "FGraphObj.h" definiert. Die als inline-funktion implementierte Funktion operator<<() zur Ausgabe des Wertes eines Punktes mittels eines Objekts der Klasse ostream ist unvollständig definiert. a) Vervollständigen Sie die Definition der freien Funktion operator<<() auf dem Beiblatt so, dass der Wert eines (3) Punktes in folgendem Format ausgegeben wird (kein Zeilenwechsel!) : (xwert,ywert) Die Datenkomponente m_pctname ist ein Pointer auf den tatsächlichen Typnamen eines Objekts. Dieser Name wird im Konstruktor der jeweiligen Klasse geeignet festgelegt, z.b. im Konstruktor der Klasse FRechteck zu "FRechteck". b) Das Zugriffsrecht der Komponente m_pctname ist in der o.a. Klassendefinition als protected festgelegt. (3) Darf das Zugriffsrecht bei sonst unverändertem public-interface der Klasse statt protected auch private sein? Begründen Sie Ihre Antwort!... weiter Seite 3
3 - 3 - Jedes graphische Objekt soll durch eine eindeutige Objekt-ID vom Typ unsigned int gekennzeichnet sein. Die Objekt-ID ist im Konstruktor der Klasse FGraphObj zu setzen. Beginnend mit einem geeignet festgelegten Anfangswert soll die Objekt-ID jedes neu erzeugten Objekts um 1 höher als die des zuletzt erzeugten Objekts sein. c) Ergänzen Sie auf dem Beiblatt die Definition der Klasse FGraphObj um die Datenkomponente(n), die zur Reali- (3) sierung der Object-ID im vorstehend beschriebenen Sinn benötigt wird (werden). d) Der Anfangswert der Objekt-ID sei (3) Formulieren Sie eine Programmzeile, mit der dieser Anfangswert festgelegt wird. Wo sollte diese Programmzeile sinnvollerweise stehen? Der Konstruktor FGraphObj(Punkt p) - setzt den Referenzpunkt des Objekts auf den übergebenen Parameter p, - setzt die Objekt-ID - und initialisiert die Datenkomponente m_pctname mit einem geeigneten Wert. e) Formulieren Sie diesen Konstruktor. (5) Die Memberfunktion bool sametype(const FGraphObj&) const; liefert den Wert true, falls das aktuelle Objekt und das als Parameter übergebene Objekt vom gleichen Typ sind. Andernfalls liefert sie den Wert false. f) Formulieren Sie die Memberfunktion bool sametype(const FGraphObj&) const. (4) Die Memberfunktion bool equals(const FGraphObj&) const; liefert den Wert true, falls das aktuelle Objekt und das als Parameter übergebene Objekt vom gleichen Typ sind und beide Objekte gleiche Referenz-Punkte besitzen. Andernfalls liefert sie den Wert false. g) Formulieren Sie die Memberfunktion bool equals (const FGraphObj&) const. (5) Die Memberfunktion void show(ostream&) const; dient zur Darstellung eines FGraphObj-Objektes. Sie soll hier als Ersatz für eine graphische Darstellung die Objekt-Eigenschaften mittels des als Parameter übergebenen ostream-objektes in folgendem Format ausgeben (ohne Zeilenwechsel!) : Obj-Id : i...i Type : t...t Ref-Pkt : (x..x,y..y) h) Formulieren Sie die Memberfunktion void show(ostream&) const. (6) Von der Klasse FGraphObj soll die Klasse FKreis abgeleitet werden. Diese Klasse dient zur Beschreibung von Kreisen. Kreise sind durch ihren Mittelpunkt (Referenz-Punkt) und ihren Radius eindeutig definiert. Die Klasse soll über zwei zusätzliche Datenkomponenten verfügen : - eine double-komponente zur Speicherung des Kreis-Radius - eine unsigned-komponente, die die Anzahl der jeweils aktuell existierenden FKreis-Objekte aufnimmt. Sie soll alle virtuellen Funktionen ihrer Basisklasse überschreiben, sowie zusätzlich folgende Memberfunktionen besitzen : - Konstruktor, der den Referenzpunkt und den Radius setzt (beides wird als Parameter übergeben). - Destruktor - eine Funktion unsigned getanz(), die die Anzahl der aktuell existierenden Kreis-Objekte liefert. i) Formulieren Sie die Definition der Klasse FKreis. Die Definition soll die Implementierung der Memberfunktion (10) unsigned getanz() als inline-funktion enthalten. j) Formulieren Sie den Konstruktor der Klasse FKreis. (7) Beachten Sie, dass der Konstruktor u.a. auch den Typ eines FKreis-Objektes festlegen muß (siehe oben). Die Memberfunktion bool equals(...) const, die die entsprechende Funktion der Basisklasse überschreibt, soll den Wert true liefern, wenn der ihr übergebene Parameter ein FKreis-Objekt referiert und dieses Objekt und das aktuelle Objekt den gleichen Referenz-Punkt und den gleichen Radius besitzen. Andernfalls soll sie den Wert false liefern. k) Implementieren Sie diese Funktion. (6) In der Implementierung muß die überschriebene Funktion der Basisklasse aufgerufen werden.... weiter Seite 4
4 Aufgabe (30) Nachfolgend ist die Definition der Klasse FGraphic wiedergegeben. Objekte dieser Klasse dienen zur Beschreibung von Graphiken, die aus mehreren graphischen Objekten i.a. unterschiedlichster Art zusammengesetzt sind. Die verschiedenen graphischen Objekte werden durch geeignete Klassen beschrieben, die alle von der gemeinsamen Basisklasse FGraphObj (Definition s. Beiblatt) abgeleitet sind. #define START_SIZE 10 class FGraphic public : FGraphic(unsigned = START_SIZE); ~FGraphic(); unsigned getanz() const return m_uanz;} void clear(); // Entfernen aller graph. Objekte FGraphic& operator+=(const FGraphObj&); // Hinzufügen eines neuen graph. Objekts FGraphic& operator-=(const FGraphObj&); // Entfernen eines graph. Objekts int contains(const FGraphObj&) const; // Überprüfen, ob graph. Objekt enthalten ist void show(ostream& = cout) const; // Darstellung aller graphischen Objekte private : FGraphObj** m_parts; // Pointer auf Pointer-Array zur Referierung der graph. Objekte unsigned m_uanz; // Anzahl der referierten graph. Objekte unsigned m_usize; // Größe des Pointer-Arrays Die einzelnen in einer Graphik enthaltenen graphischen Objekte werden durch ein dynamisch alloziertes Pointer-Array referiert. Die Anfangsgrösse dieses Arrays wird durch einen dem Konstruktor zu übergebenen Parameter festgelegt. Die Memberfunktion int contains(const FGraphObj&) const überprüft, ob das durch den Parameter referierte graphische Objekt bereits in der durch ein FGraphic-Objekt beschriebenen Graphik enthalten ist. Bei Enthaltensein liefert die Funktion den entsprechenden Index des Pointer-Arrays zurück, andernfalls den Wert 1. Die Memberfunktion operator+=(const FGraphObj&) dient zum Hinzufügen des durch den Parameter referierten graphischen Objekts zu der durch ein FGraphic-Objekt beschriebenen Graphik. Ein bereits enthaltenes graphisches Objekt ist nicht noch einmal hinzuzufügen Sind alle Elemente des die einzelnen graphischen Objekte referierenden Pointer-Arrays bereits belegt, muß die Funktion das Pointer-Array um den Wert START_SIZE vergrößern (Neu-Allokation!). Als Funktionswert ist eine Referenz auf das aktuelle Objekt zurückzugeben. a) Implementieren Sie die Memberfunktion operator+=(const FGraphObj&). (21) Es kann vorausgesetzt werden, dass alle anderen Memberfunktionen der Klasse bereits implementiert sind. Die Memberfunktion void show(ostream&) const dient zur Darstellung aller enthaltenen graphischen Objekte durch Ausgabe der jeweiligen Objekteigenschaften mittels des als Parameter übergebenen ostream-objektes. Jedes Objekt ist in einer neuen Zeile darzustellen. Sind keine graphischen Objekte enthalten, ist stattdessen der Hinweis "FGraphic-Objekt ist leer!" auszugeben. b) Implementieren Sie die Memberfunktion void show(ostream&) const. (9) Sie haben es geschafft!!!
5 Fachhochschule München Bereich Datentechnik Fachbereich Elektrotechnik und Informationstechnik A. Irber /R. Thomas Zur 2. und 3. Aufgabe Prüfung aus PROGRAMMIEREN (2) (C++) (WS 2002/03) Beiblatt Definition der Klasse FGraphObj (enthalten in der Datei "FGraphObj.h") // Header-Datei FGraphObj.h // Definition einer Basisklasse fuer graphische Objekte FGraphObj // Pruefung Programmieren 2 WS 2002/03 #ifndef _FGRAPHOBJ_H #define _FGRAPHOBJ_H #include <iostream> using namespace std; struct Punkt // beschreibt einen Punkt in einer zweidimensionalen Ebene Punkt(double xr=0, double yr=0) x=xr; y=yr;} bool operator == (Punkt v) return x==v.x && y== v.y; } double x; double y; inline ostream& operator << (ostream& out, const Punkt& p) // Ergänzung gemäss Aufgabe 2a) : } //... class FGraphObj public : virtual ~FGraphObj() } void setref(punkt ref) m_dref=ref; } // Setzen des Referenz-Punkts Punkt getref() const return m_dref; } // Rückgabe des Referenz-Punkts unsigned getid() const return m_uobjid; } // Rückgabe der Objekt-Id const char* typename() const return m_pctname; } // Rückgabe des tatsächlichen // Klassennamens bool sametype(const FGraphObj&) const; // Überprüfung auf gleiche Klasse virtual bool equals(const FGraphObj&) const; // Überprüfung auf Objekt-Gleichheit virtual void show(ostream& = cout) const; // Darstellung des Objekts // (Ausgabe der Objekteigenschaften) protected : FGraphObj(Punkt=Punkt()); // Konstruktor (Parameter ist Referenz-Punkt) const char* m_pctname; // tatsächlicher Klassenname private : FGraphObj(const FGraphObj&); // Kopieren von FGraphObj-Objekten FGraphObj& operator=(const FGraphObj&); // soll nicht möglich sein Punkt m_dref; // Referenz-Punkt für Position eines Objekts // Ergänzung gemäss Aufgabe 2c) : // #endif
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:
MehrLösung der OOP-Prüfung WS12/13
2.1.2013 Lösung der OOP-Prüfung WS12/13 1. Aufgabe a) Da der Konstruktor im protected-bereich steht, können keine eigenständigen Objekte der Klasse angelegt werden. Durch den protected-konstruktor wird
MehrObjektorientiertes Programmieren mit C++ für Fortgeschrittene
BEREICH DATENTECHNIK I CQ 400 00 TH 02 Objektorientiertes Programmieren mit C++ für Fortgeschrittene Kapitel 4 4. Ergänzungen zur Laufzeitpolymorphie 4.1. Abstrakte Klassen 4.2. Laufzeittypinformation
MehrÜbungen zu Programmieren 3 (C++) (4-1)
BEREICH DATENTECHNIK U CQ 034 01 TH 02 Übungen zu Programmieren 3 (C++) (4-1) Allgemeines Ziel dieser Praktikumsaufgabe ist die Realisierung eines einfachen Telefonbuch-Verwaltungsprogramms mit dem Namen
MehrÜbungen zu C++ (4-1)
BEREICH DATENTECHNIK Prof. Dr. A. Irber Stand: 7.2.2007 Übungen zu C++ (4-1) Allgemeines Im vorliegenden Versuch soll schrittweise die folgende Klassenhierarchie entwickelt werden : Uhr UhrMitDatum UhrMitWeckerUndDatum
MehrC++ - 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
MehrPrüfung aus PROGRAMMIEREN 3 (SS 2003)
Fachhochschule München Bereich Datentechnik Fachbereich Elektrotechnik und Informationstechnik R. Thomas Prüfung aus PROGRAMMIEREN 3 (SS 2003) Arbeitszeit 90 Minuten 16.Juli 2003 Beliebige eigene Unterlagen
MehrEinfü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
MehrPolymorphismus 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
MehrPraktikum zu OOP/C++ (4)
TECHNISCHE INFORMATIK Stand: 18.11.2012 Allgemeines Praktikum zu OOP/C++ (4) Im vorliegenden Versuch soll schrittweise die folgende Klassenhierarchie entwickelt werden: Bei der Implementierung der einzelnen
MehrObjektorientierte 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
MehrC++ 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
MehrObjektorientiertes 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
MehrMethoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only
Methoden Wie Konstruktoren und Destruktoren zum Auf- und Abbau von Objekten definiert werden, Wie inline-methoden Methoden,, Zugriffsmethoden und Read-Only Only- Methoden einzusetzen sind, Der this-pointer
MehrPraktikum Betriebssysteme 1. Aufgabe (1)
FG TECHNISCHE INFORMATIK U BS 041 01 TH 09 Praktikum Betriebssysteme 1. Aufgabe (1) Es wird ein unter LINUX lauffähiges C++-Programm ptab, mit dem Informationen über die Partitionierung von Festplatten
MehrPrüfung in PROGRAMMIEREN 3 WS 2006/07
Seite 1 von 6 Prüfung in PROGRAMMIEREN 3 WS 2006/07 Arbeitszeit: 90 min 1.02.2007 Hilfsmittel: beliebige eigene Das Aufgabenblatt bitte abgeben! Name: Viel Erfolg! Allgemeines Es ist ein Programm in C++
MehrHochschulprüfung in objektorientiertes Programmieren WS 2014/15
Seite 1 von 8 Hochschulprüfung in objektorientiertes Programmieren WS 2014/15 Arbeitszeit: 90 min 28.01.2015 Hilfsmittel: beliebige eigene Das Aufgabenblatt bitte abgeben! Name: 1. Aufgabe Java (14) Viel
MehrVokabeln. 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
MehrGrundlagen der Informatik
Grundlagen der Informatik Musterklausur 1. Dynamische Datenstrukturen und objektorientierte Programmierung Zur Verwaltung einer digitalen Fotogalerie sollen Techniken der objektorientierten Programmierung
MehrTag 8 Repetitorium Informatik (Java)
Tag 8 Repetitorium Informatik (Java) Dozent: Michael Baer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Informatik-Repetitorium
MehrName: Klausur Informatik III WS 2003/04
1 : Methodenimplementierung ca. 42 Punkte Gegeben ist die Klasse Mitarbeiter. Listing 1: (./Code1/Mitarbeiter.h) using namespace std; // globale Variable fuer Ausgabedatei // kann entsprechend
MehrVorlesungsprü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,
MehrEinführung in das Objektorientierte Programmieren mit C++
BEREICH DATENTECHNIK I CP 700 00 TH 03 Einführung in das Objektorientierte Programmieren mit C++ Kapitel 7 7. Laufzeit-Polymorphie 7.1. Frühes und spätes Binden 7.2. Virtuelle Funktionen FG TECHNISCHE
MehrKlassen. 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)
MehrThemen. Statische Methoden inline Methoden const Methoden this Zeiger Destruktor Kopierkonstruktor Überladen von Operatoren
Themen Statische Methoden inline Methoden const Methoden this Zeiger Destruktor Kopierkonstruktor Überladen von Operatoren Statische Methoden Klassenmethoden Merkmal der Klasse nicht eines einzelnen Objekts
MehrThema 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:
MehrSimpleStat mit Methoden
SimpleStat mit Methoden Als Ausgangspunkt nehmen wir folgende Definition (Version 1) von SimpleStat: double sum2; -Quadrate Dieser Objekttyp verfügt über keine Methoden und alle Datenattribute sind public.
MehrProgrammieren 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
MehrProgrammierkurs C/C++
Blockkurs: "Einführung in C/C++" Programmierkurs C/C++ Donnerstag Sandro Andreotti andreott@inf.fu-berlin.de WS 2008/09 1 Structs Blockkurs: "Einführung in C/C++" 2 Structs sind Bündel von Variablen (unter
MehrC++ - 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
MehrVererbung 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.
MehrDAP2-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
MehrProf.Dr. Alfred Irber Dies ist keine Musterprüfung, sondern eine Sammlung von Aufgaben aus früheren Prüfungen "Programmieren"
Prof.Dr. Alfred Irber 7.6.2012 Dies ist keine Musterprüfung, sondern eine Sammlung von Aufgaben aus früheren Prüfungen "Programmieren" Textformatierung (30 Punkte) Schreiben Sie ein komplettes C-Programm,
MehrC++ - Einführung in die Programmiersprache Header-Dateien und Funktionen. Leibniz Universität IT Services Anja Aue
C++ - Einführung in die Programmiersprache Header-Dateien und Funktionen Leibniz Universität IT Services Anja Aue Modularisierung Logische Gliederung von Programmteilen mit Hilfe von Namensräumen. Aufteilung
MehrC++-Zusammenfassung. H. Schaudt. August 18, 2005
C++-Zusammenfassung H. Schaudt August 18, 2005 1 Datentypen 1.1 Grunddatentypen int (-32xxx bis +32xxx, implementerungs-abhängig) char -128 bis +128 float double bool (C++) int und char sind austauschbar:
MehrComputergrundkenntnisse und Programmieren, WS 07/08, Übung 11: Klassen der Standardbibliothek 2
Computergrundkenntnisse und Programmieren, WS 07/08, Übung 11: Klassen der Standardbibliothek 2 Neben vector ist list die zweite wichtige Containerklasse. Um unsere Kenntnisse von Containerklassen zu erweitern,
MehrObjektorientierung Grundlagen
Prof. Dr.-Ing. Andreas Simon Telefon +49 (0)5331 939 42630 Telefax +49 (0)5331 939 43634 E-Mail a.simon@ostfalia.de Objektorientierung Grundlagen Probeklausur 18. Mai 2015 Name: Mat.-Nr.: Vorname: Login:
MehrKlausur Programmieren 2 SS 2016
Klausur Programmieren 2 SS 2016 Name Gruppe 1 Vorname Dauer 90 min Matrikelnummer Hilfsmittel keine Die Klausur ist mit 50 Punkten sicher bestanden. Hinweise: Formulieren Sie Ihre Lösungen auf dem Aufgabenblatt
MehrEinführung in die Programmierung
Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Semestralklausur Einführung in die Programmierung Semestralklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList
MehrGrundkurs 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
MehrKlausur: Grundlagen der Informatik I, am 06. Februar 2009 Gruppe: A Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.
Seite 1 von 9 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 12 Pkt.) Was liefert
MehrGrundkurs 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
MehrKapitel 13. Abstrakte Methoden und Interfaces. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz
Kapitel 13 Abstrakte Methoden und Interfaces 13. Abstrakte Klassen und Interfaces 1. Abstrakte Klassen 2. Interfaces und Mehrfachvererbung Folie 12.2 Abstrakte Methoden und Klassen Manchmal macht es überhaupt
MehrOOP 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
Mehr5. Behälter und Iteratoren. Programmieren in C++ Überblick. 5.1 Einleitung. Programmieren in C++ Überblick: 5. Behälter und Iteratoren
Programmieren in C++ Überblick 1. Einführung und Überblick 2. Klassen und Objekte: Datenkapselung 3. Erzeugung und Vernichtung von Objekten 4. Ad-hoc Polymorphismus 6. Templates und generische Programmierung
MehrProgrammieren in C++ Überblick
Programmieren in C++ Überblick 1. Einführung und Überblick 2. Klassen und Objekte: Datenkapselung 3. Erzeugung und Vernichtung von Objekten 4. Ad-hoc Polymorphismus 6. Templates und generische Programmierung
MehrC++ - 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.
MehrC++ 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
MehrDynamische 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
Mehrc) Zur Ausgabe der Transaktion soll statt print der Operator << verwendet werden.geben Sie die dazu nötigen Änderungen an.
Klausur OOP SS2001 (Gampp) ufgabe 1 (22 Punkte) a) Während einer bargeldlosen Giro-ank Transaktion können eträge zwischen Währungen konvertiert werden. Eine Klasse Transaktion soll solche uchungen beschreiben
MehrKlausur Programmieren 1 SS 2017
Klausur Programmieren 1 SS 2017 Name Gruppe 1 Vorname Dauer 90 min Matrikelnummer Hilfsmittel keine Die Klausur ist mit 50 Punkten sicher bestanden. Hinweies: Voraussetzung für die Teilnahme ist das Bestehen
MehrFakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012
WS 2011/2012 Fakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012 Prof. Dr. Robert Lorenz Musterlösung zur Vorlesung Informatik I, Extrablatt zu komplexen Datenstrukturen Aufgabe 45 **
MehrGrundlagen der Informatik 12. Strukturen
12. Strukturen Strukturen und deren Komponenten Strukturen im Projekt Dynamisch erstellte Strukturen Strukturen und Operatoren Strukturen und Funktionen Einfach verkettete Liste Grundlagen der Informatik
Mehr7. Ü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
MehrUmsetzung einer Klassenkarte in einer Programmiersprache
Klassen in Java Umsetzung einer Klassenkarte in einer Programmiersprache Objektorientierte Programme bestehen (nur) aus Klassendefinitionen In Klassendefinitionen wird die Struktur der Objekte festgelegt,
MehrGrundlagen der Informatik
Grundlagen der Informatik Polymorphie, Abstrakte Klassen, Mehrfachvererbung Prof. Dr.-Ing. Thomas Wiedemann Prof. Dr. rer.nat. Ralph Großmann Fachgebiet Informatik / Mathematik Überblick zum Inhalt Klassen-3
MehrWas 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
MehrProgrammierkurs C/C++
Blockkurs: "Einführung in C/C++" Programmierkurs C/C++ Freitag Sandro Andreotti andreott@inf.fu-berlin.de WS 2008/09 1 Blockkurs: "Einführung in C/C++" 2 Vererbung Klassen erben die Member von Basisklassen:
MehrProgrammieren 2 C++ Überblick
Programmieren 2 C++ Überblick 1. Einführung und Überblick 2. Klassen und Objekte: Datenkapselung 3. Erzeugung und Vernichtung von Objekten 4. Ad-hoc Polymorphismus 6. Templates und generische Programmierung
MehrCrashkurs C++ Wiederholung
Crashkurs C++ Wiederholung #include int main(void) { int i, j; bool is_prime; for (j = 1; j < 1000; j += 2) { is_prime = true; for (i = 3; i
MehrVerwendung von Klassen in C++
Verwendung von Klassen in C++ Heute: Benutzerdefinierte Datentypen (Konkrete Klassen) Vektoren Komplexe Zahlen Adressdatei Morgen: Objektorientierte Programmierung (Abstrakte Klassen) Vererbung Polymorphie
MehrKlausur: Grundlagen der Informatik I, am 06. Februar 2009 Gruppe: B Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.
Seite 1 von 8 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 12 Pkt.) Was liefert
Mehrvirtual Wertpapier& operator=(const Wertpapier&); // VIRTUELLE ZUWEISUNG protected: static enum {wortfeldlaenge = 20}; char* name_z; double kurs; };
C++ für Anfänger des Programmierens Rieckeheer GSO-Hochschule Nürnberg März 2008 174 a neu Vor Kapitel 24 ist folgender Text einzufügen. Das folgende Programm variiert das Programm VIRTfunktion3.cpp und
MehrEinstieg in die Informatik mit Java
1 / 35 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 35 1 Grundlagen 2 Verdeckte Variablen 3 Verdeckte Methoden 4 Konstruktoren
MehrEinführung in die Programmierung
: Klassen Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund Einführung Konstruktoren / Destruktoren
MehrKlausur: Informatik I am 06. Februar 2009 Gruppe: D Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:
Seite 1 von 10 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 12 Pkt.) Was liefert
MehrVorkurs Informatik: Erste Schritte der Programmierung mit C++
Vorkurs Informatik WS 14/15 Vorkurs Informatik: Erste Schritte der Programmierung mit C++ Tag 3: Objektorientiere Programmierung 8. Oktober 2014 Vorkurs Informatik WS 14/15 > Einführung Agenda 1 Einführung
MehrÜberladen von Operatoren
- Überladen des Indexoperators [] - Überladen des Ausgabeoperators > Programmieren in C++ Informatik FH Trier C++12-1 ähnlich dem Überladen von Funktionen Überladen
MehrAuswahlen (Selektionen)
1 Anhang 10.3 Ein/Ausgaben Eingabe mit Prompt (Beispiel) cout ; // Prompt ohne endl cin
MehrKlassen. C++ Übung am 02. Juni 2016
Klassen C++ Übung am 02. Juni 2016 Klassen - der Kern objektorientierter Programmierung - Festlegung der Daten und Funktionen einer Klasse - Deklaration als public oder private - Konstruktoren erzeugen
MehrProgrammieren in Java -Eingangstest-
Programmieren in Java -Eingangstest- Nummer: 1. Studiengang: Informatik B.Sc. Informatik M.Sc. ESE B.Sc. ESE M.Sc. Sonstiges: Fachsemester: Bitte Fragen, die Sie nicht beantworten können unbedingt mit
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Dynamische Datenobjekte Pointer/Zeiger, Verkettete Liste Eigene Typdefinitionen 1 Zeigeroperatoren & und * Ein Zeiger ist die Speicheradresse irgendeines Objektes. Eine
MehrC++ 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
MehrEinstieg 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
MehrMikrorechentechnik II. Klassen in C++
Mikrorechentechnik II Klassen in C++ class class cfilter { float K; float T; float Ta; public: // Filterverstärkung // Filterzeitkonstante // Tastzeit Zugriffskontrolle: public, protected, private void
MehrTag 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
MehrHSR 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
MehrPraktikum OOP/C++ - Versuch 5
Seite 1 vn 5 Allgemeines Die Elektrifizierung im Autmbilbereich nimmt immer mehr zu. Das heißt, es kmmen immer mehr Elektrmtren und verbraucher zum Einsatz. Es ist ein Prgramm in C++ zu entwickeln, das
MehrEinführung in das Objektorientierte Programmieren mit C++
BEREICH DATENTECHNIK I CP 600 00 TH 03 Einführung in das Objektorientierte Programmieren mit C++ Kapitel 6 6. Abgeleitete Klassen (Vererbung) 6.1. Allgemeines 6.2. Definition abgeleiteter Klassen 6.3.
MehrKlausur Software-Entwicklung März 01
Aufgabe 1: minimaler Punktabstand ( 2+5 Punkte ) Matrikelnr : In einem Array punkte sind Koordinaten von Punkten gespeichert. Ergänzen Sie in der Klasse Punkt eine Klassen-Methode (=static Funktion) punktabstand,
MehrProbeklausur: 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,
MehrGrundzü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)
MehrLösung zur Klausur C++ und Data Mining 16. Juli 2004 (SS 2004)
Lösung zur Klausur C++ und Data Mining 16. Juli 2004 (SS 2004) Bearbeitungszeit: 120 Minuten NICHT MIT BLEISTIFT SCHREIBEN!!! Name: Vorname: Matrikelnummer: E-Mail: Aufgabe 1 2 3 a 3 b 4 5 6 7 8 9 a 9
MehrJava Einführung Klassendefinitionen
Java Einführung Klassendefinitionen Inhalt dieser Einheit Java-Syntax Klassen definieren Objekte instanziieren Instanzvariable deklarieren Klassenvariable deklarieren 2 Klassen definieren In der Problemanalyse
MehrÜberblick. Überblick. Abstrakte Klassen - rein virtuelle Funktionen Beispiele
Ü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
Mehr3D Programmierpraktikum: Einführung in C++ - Teil 2
3D Programmierpraktikum: Einführung in C++ - Teil 2 Praktikum 3D Programmierung Sebastian Boring, Otmar Hilliges Donnerstag, 4. Mai 2006 LMU München Medieninformatik Boring/Hilliges 3D Programmierpraktikum
Mehr6 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
MehrC++ Teil 12. Sven Groß. 18. Jan Sven Groß (IGPM, RWTH Aachen) C++ Teil Jan / 11
C++ Teil 12 Sven Groß 18. Jan 2016 Sven Groß (IGPM, RWTH Aachen) C++ Teil 12 18. Jan 2016 1 / 11 Themen der letzten Vorlesung Wiederholung aller bisherigen Themen: Datentypen und Variablen Operatoren Kontrollstrukturen
MehrVisuelle 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,
MehrVariablen, Konstanten und Datentypen
Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14 Variablen, Konstanten und Datentypen Überblick
MehrC++ 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
MehrObjektorientiertes Programmieren mit C++ für Fortgeschrittene
BEREICH DATENTECHNIK I CQ 200 00 TH 02 Objektorientiertes Programmieren mit C++ für Fortgeschrittene Kapitel 2 2. Ergänzungen zum Überladen von Operatoren 2.1. Increment- und Decrement-Operator 2.2. Funktionsaufruf-Operator
MehrEs ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen.
Ziele sind das Arbeiten mit Funktionen und dem Aufzählungstyp (enum), sowie - einfache Verzweigung (if else) - Alternativen switch case - einfache Schleifen (while oder do while) Aufgabe 3: Diese Aufgabe
MehrSchriftlicher Test (120 Minuten) VU Einführung ins Programmieren für TM. 24. Juni 2016
Familienname: Vorname: Matrikelnummer: Aufgabe 1 (3 Punkte): Aufgabe 2 (4 Punkte): Aufgabe 3 (2 Punkte): Aufgabe 4 (1 Punkt): Aufgabe 5 (3 Punkte): Aufgabe 6 (1 Punkt): Aufgabe 7 (1 Punkt): Aufgabe 8 (2
MehrWintersemester 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
MehrProgrammieren - C++ Templates
Programmieren - C++ Templates Reiner Nitsch 8471 reiner.nitsch@h-da.de Was sind Funktionstemplates? C++ unterscheidet zwischen Funktionstemplates (dieses Kapitel) und Klassentemplates (später). Funktionstemplates
MehrInformatik 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
MehrProgrammieren - C++ Templates
Programmieren - C++ Templates Reiner Nitsch r.nitsch@fbi.h-da.de Was sind Templates? C++ Templates ermöglichen generische Programmierung. Das ist Programmierung unabhängig vom speziellen Objekt-Typ Templates
MehrInformatik 1 ( ) D-MAVT F2011. Klassen, Funktionen. Yves Brise Übungsstunde 9
Informatik 1 (251-0832-00) D-MAVT F2011 Klassen, Funktionen Nachbesprechung Blatt 7, Aufgabe 1 Wenn Funktion void als Rückgabetyp hat, dann ist return nicht notwendig. void swap3(int* a, int* b) { int
MehrVererbung 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