Klausurdeckblatt. Name: Studiengang: Matrikelnummer:
|
|
- Heini Simen
- vor 5 Jahren
- Abrufe
Transkript
1 Klausurdeckblatt Name der Prüfung: Objektorientierte Programmierung mit C++ Datum und Uhrzeit: 2. März 2017, Uhr Prüfer: Dr. Andreas F. Borchert Bearbeitungszeit: 120 Min. Institut: Numerische Mathematik Vom Prüfungsteilnehmer auszufüllen: Name: Studiengang: Matrikelnummer: Vorname: Abschluss: Datum, Unterschrift des Prüfungsteilnehmers Probeklausur Hiermit erkläre ich, dass ich prüfungsfähig bin. Sollte ich aufgrund fehlender Anmeldung über das Hochschulportal oder über das Studiensekretariat nicht auf der Liste der angemeldeten Studierenden aufgeführt sein, dann nehme ich hiermit zur Kenntnis, dass diese Prüfung nicht gewertet werden wird. Hinweise zur Prüfung: siehe nächstes Blatt Bitte dieses Feld für den Barcode freilassen! Erlaubte Hilfsmittel: Bis zu fünf handgeschriebene Blätter. Vom Prüfer auszufüllen: Erreichte Punkte: Note: Datum, Unterschrift Prüfer (Dr. Andreas F. Borchert)
2 Prüfen Sie zu Beginn, ob Ihre Klausur vollständig ist beginnend von der Aufgabe 1 auf Seite 0(!) bis zur letzten Seite 22. Für Ihre Lösungen verwenden Sie bitte den freigelassenen Platz nach der Aufgabenstellung, die gegenüberliegende Seite der jeweiligen Aufgabe oder die angehängte leere Seite unter Angabe der Aufgabennummer. Nennen Sie möglichst alle Annahmen, die Sie gegebenenfalls für die Lösung einer Aufgabe treffen! Sofern nichts anderes angegeben ist, können Sie bei den Programmier-Aufgaben auf die Angabe der notwendigen #include-anweisungen verzichten. Wenn es bezüglich der Aufgabenstellung Unklarheiten gibt, dann scheuen Sie sich bitte nicht, jemanden von der Aufsicht zu befragen. Wenn wir während der Klausur feststellen, dass eine Aufgabenstellung missverständlich ist, werden wir an der Tafel einen klärenden Hinweis für alle sichtbar hinschreiben. Hinweise zu der Bewertung: Punktzahlen für Teilaufgaben werden nur ganzzahlig vergeben. Wenn notwendig, wird abgerundet. Bei Aufgaben, bei denen Antworten anzukreuzen sind, löscht ein falsches Kreuz ein korrektes Kreuz aus. Negative Punkt für Teilaufgaben werden jedoch nicht vergeben, schlimmstenfalls sind es nur 0 Punkte.
3 Nr Max Bewertung 1 8 xxxxx (a) 4 xxxxx (b) 4 xxxxx 2 18 xxxxx (a) 1 xxxxx (b) 1 xxxxx (c) 1 xxxxx (d) 1 xxxxx (e) 6 xxxxx (f) 2 xxxxx (g) 3 xxxxx (h) 3 xxxxx 3 10 xxxxx 4 10 xxxxx (a) 4 xxxxx (b) 2 xxxxx (c) 4 xxxxx 5 17 xxxxx (a) 3 xxxxx (b) 3 xxxxx (c) 3 xxxxx (d) 2 xxxxx (e) 6 xxxxx Nr Max Bewertung 6 14 xxxxx (a) 2 xxxxx (b) 2 xxxxx (c) 2 xxxxx (d) 2 xxxxx (e) 2 xxxxx (f) 4 xxxxx 7 10 xxxxx (a) 1 xxxxx (b) 3 xxxxx (c) 2 xxxxx (d) 2 xxxxx (e) 2 xxxxx 8 13 xxxxx (a) 2 xxxxx (b) 2 xxxxx (c) 2 xxxxx (d) 1 xxxxx (e) 2 xxxxx (f) 4 xxxxx Summe 100
4 0 Aufgabe 1 (8 Punkte) (a) 4 Punkte Schreiben Sie ein übersetzbares C++-Programm, das eine ganze Zahl einliest und dessen Quadrat ausgibt. Bitte geben Sie bei dieser Aufgabe auch die #include-anweisungen mit an. (b) 4 Punkte Wählen Sie einen der in Ihrer Lösung verwendeten Operatoren aus: Welche Datentypen haben die Operanden und welcher Datentyp wird von dem Operator zurückgeliefert?
5 1
6 2 Aufgabe 2 (18 Punkte) Umsetzung von Klassendiagrammen in C++ * Maze number_of_rooms: unsigned int rooms: Room[number_of_rooms] get_number_of_rooms() get_room(room_index) add_room(room) Room 1 * number_of_neighbors: unsigned int * neighbors: Room[number_of_neighbors] get_number_of_neighbors() get_neighbor(neighbor_index) add_neighbor(room) (a) 1 Punkte Charakterisieren Sie kurz die Beziehung zwischen den Klassen Maze und Room. (b) 1 Punkte Welche der beiden Klassen ist für die Beziehung zwischen Maze und Room verantwortlich? (c) 1 Punkte Kann ein Objekt der Klasse Room mit mehreren Objekten der Klasse Maze in Beziehung stehen?
7 3 (d) 1 Punkte Ist number_of_rooms in der Klasse Maze öffentlich zugänglich? (e) 6 Punkte Schreiben Sie die vollständige Header-Datei für Room.hpp mitsamt allen notwendigen Präprozessor-Direktiven, in der die Klasse Room wie im Klassendiagramm beschrieben vollständig deklariert wird. D.h. dass bei den Methoden nur die Signaturen anzugeben sind und die jeweilige Implementierung wegfällt. (f) 2 Punkte Welche Präprozessor-Anweisungen benötigen Sie zu Beginn in Room.cpp?
8 4 (g) 3 Punkte Implementieren Sie die Methode get_number_of_neighbors. (h) 3 Punkte Implementieren Sie die Methode add_neighbor.
9 5
10 6 Aufgabe 3 (10 Punkte) Erstellung eines Klassendiagramms Erstellen Sie ein UML-Klassendiagramm zu folgender Beschreibung: Zu einem Blog gehören beliebig viele Beiträge und beliebig viele Autoren. Jeder Beitrag gehört nur zu einem Blog, aber ein Autor kann an mehr als einem Blog mitwirken. Jeder Beitrag hat genau einen Autor und beliebig viele Kommentare. Jeder Kommentar gehört genau zu einem Beitrag und stammt genau von einem Autor. Ein Autor kann beliebig viele Beiträge und Kommentare verfassen. Bitte legen Sie im Klassendiagramm die Verantwortlichkeiten für folgende Navigationswege fest: Ausgehend von einem Blog sollte es möglich sein, an sämtliche Beiträge und sämtliche darin aktiv gewordene Autoren zu gelangen. Ausgehend von einem Autor sollten alle von ihm verfassten Beiträge und Kommentare zu finden sein. Ausgehend von einem Beitrag sollte der Autor und alle Kommentare abfragbar sein. Zu jedem Kommentar sollte der Autor nachgefragt werden können. Zeichnen Sie nur die Klassen und ihre Beziehungen mitsamt den Komplexitätsgraden. Die jeweiligen Verantwortlichkeiten für die Beziehungen sollten aus dem Diagramm hervorgehen. Methoden oder Datenfelder müssen Sie nicht angeben.
11 7
12 8 Aufgabe 4 (10 Punkte) Iteratoren (a) 4 Punkte Definieren Sie den Begriff Iterator. Nennen Sie insbesondere die wesentlichen Eigenschaften, die einen Iterator in C++ ausmachen. Welche Operatoren werden unterstützt? Es genügt, einen einfachen vorwärts laufenden Iterator (ForwardIterator) zu beschreiben. (b) 2 Punkte Sie haben einen sich an die üblichen Konventionen haltenden Container c, bei dem zu einem Zeitpunkt c.begin()== c.end() gilt. Was können Sie dann über den Container aussagen?
13 9 (c) 4 Punkte Gegeben sei der bereits mit Werten gefüllte Vektor a: std::vector<double> a; Schreiben Sie folgenden Programmtext so um, dass auf die explizite Indizierung des Vektors verzichtet wird, um sämtliche Werte des Vektors zu verdoppeln: for (std::size_t i = 0; i < a.size(); ++i) { a[i] * = 2; }
14 10 Aufgabe 5 (17 Punkte) Dynamische Datenstrukturen (a) 3 Punkte In welche drei Speicherbereiche können in C++ Variableninhalte abgelegt werden? (b) 3 Punkte Gegeben sei folgende Klasse Person: class Person { public: Person(const std::string& name) : name(name) { } const std::string& get_name() const { return name; } private: std::string name; }; Zeigen Sie an einem Programmtextbeispiel, wie in einem Block zwei Person-Objekte erzeugt werden, die in zwei verschiedenen Speicherbereichen leben, und wie diese Objekte bei oder vor dem Verlassen des umgebenden Blocks wieder korrekt freigegeben werden. Bei beiden Objekten sollte kurz kommentiert werden, in welche der drei Speicherbereiche sie leben.
15 11 (c) 3 Punkte Was ist ein Speicherleck? Zeigen Sie an einem Programmtextbeispiel, wie ein Speicherleck entstehen kann. (d) 2 Punkte Erklären Sie kurz den Sinn der std::shared_ptr-template-klasse. (e) 6 Punkte Definieren Sie eine Klasse Pedigree, bei der jedes Objekt eine Person repräsentiert, die einen Namen hat (analog zu oben) und, sofern bekannt, std::shared_ptr-zeiger auf Pedigree-Objekte liefert, die die Mutter bzw. den Vater repräsentieren.
16 12 Aufgabe 6 (14 Punkte) Templates (a) 2 Punkte Werden Templates in C++ zur Übersetzzeit oder zur Laufzeit instantiiert? (b) 2 Punkte Sie haben ein Template, das Sie mit unterschiedlichen Parametern mehrfach instantiieren. Führt das zu einem höheren generierten Code-Umfang oder bleibt dieser davon unberührt? (c) 2 Punkte Was ist der Unterschied zwischen dem Inclusion- und dem Cfront-Modell? Welches davon wird durch den aktuellen Standard (C++11) garantiert unterstützt?
17 13 (d) 2 Punkte Gegeben sei folgende Template-Klasse: #include <cassert> template<typename Item, unsigned int size> class Array { public: Array() {} std::size_t get_size() const { return size; } Item& operator[](std::size_t index) { assert(index < size); return a[index]; } private: Item a[size]; }; Deklarieren Sie auf Basis dieser Template-Klasse Array ein Array a mit 20 Elementen des Typs int. (e) 2 Punkte Wäre es auch möglich, auf Basis dieser Template-Klasse ein Array mit Elementen des Typs Person (Aufgabe 5b, Seite 10) zu deklarieren? Wenn nein, warum nicht?
18 14 (f) 4 Punkte Schreiben Sie ein Funktions-Template initialize_array, mit dem ein auf der obigen Template- Klasse Array basierendes Array mit Hilfe eines Lambda-Ausdrucks initialisiert werden kann, der jeweils den aktuellen Index als Parameter erhält. Sei a das oben deklarierte Array, dann sollte es beispielsweise mit initialize_array(a, [](std::size_t i){ return i * i; }); möglich sein, das Array mit den Quadratzahlen 0 2,..., 19 2 zu füllen.
19 15
20 16 Aufgabe 7 (10 Punkte) STL (a) 1 Punkte Nennen Sie eine beliebige STL-Container-Klasse aus dem C++11-Standard Ihrer Wahl. (b) 3 Punkte Beschreiben Sie mindestens drei wesentliche Eigenschaften des Containers. Gehen Sie dabei insbesondere auf den Zugriff und das Hinzufügen von Elementen ein. (c) 2 Punkte Welche Komplexität hat das Hinzufügen eines Objekts in dem genannten Container, wenn bereits n Objekte enthalten sind?
21 17 (d) 2 Punkte Nennen Sie ein Anwendungsszenario, für das der von Ihnen gewählte Container nicht geeignet ist. (e) 2 Punkte Welche STL-Container-Klasse wäre geeignet, um Schlüssel-Werte-Paare unterzubringen, bei denen ein Schlüssel mehrfach vorkommen kann, bei denen es auf eine schnelle Suche über den Schlüssel ankommt und bei dem die Schlüssel sortiert angeordnet sind? Welche Komplexität hat hier das Hinzufügen eines Paares, wenn bereits n Paare enthalten sind?
22 18 Aufgabe 8 (13 Punkte) Traits Gegeben sei folgendes Programm: #include <iostream> #include <list> template <typename T> struct AverageTraits { using Value = T; }; template <typename ForwardIterator, typename AT = AverageTraits<typename ForwardIterator::value_type> > struct Average { using Value = typename AT::Value; static Value average(forwarditerator begin, ForwardIterator end) { Value sum = Value(); Value count = Value(); for (ForwardIterator it = begin; it!= end; ++it) { sum += * it; ++count; } return sum / count; } }; template <typename ForwardIterator> inline typename AverageTraits<typename ForwardIterator::value_type>::Value average(forwarditerator begin, ForwardIterator end) { return Average<ForwardIterator>::average(begin, end); } int main() { std::list<int> values; for (int i = 1; i < 3; ++i) { values.push_back(i); } std::cout << "avg = " << average(values.begin(), values.end()) << std::endl; }
23 19 (a) 2 Punkte Was wird unter dem Begriff Traits in C++ verstanden? (b) 2 Punkte Mit welchem Datentyp für den Template-Parameter ForwardIterator wird in main() die Template-Funktion average instantiiert? (c) 2 Punkte Welchem Datentyp entspricht dann ForwardIterator::value_type? (d) 1 Punkte Wenn in Folge des Aufrufs von average die Template-Klasse struct Average instantiiert wird, welchen Datentyp erhält dann Value?
24 20 (e) 2 Punkte Welche Ausgabe erzeugt das Programm? (f) 4 Punkte Wie könnte die Template-Konstruktion rund um average ergänzt werden, so dass die Anwendung in main ein geeigneteres Resultat liefert? Hinweis: Es ist nur eine Deklaration hinzuzufügen. Welche Ausgabe wird dann erzeugt?
25 21
26 22
Probeklausur. Klausurdeckblatt. Name der Prüfung: Objekt-orientierte Programmierung mit C++ Datum und Uhrzeit: 26. Februar 2015, Uhr
Probeklausur Klausurdeckblatt Name der Prüfung: Objekt-orientierte Programmierung mit C++ Datum und Uhrzeit: 26. Februar 2015, 14 16 Uhr Bearbeitungszeit: 120 Min. Institut: Angewandte Informati- Prüfer:
MehrProbeklausur. Klausurdeckblatt. Name der Prüfung: Objekt-orientierte Programmierung mit C++
Probeklausur Klausurdeckblatt Name der Prüfung: Objekt-orientierte Programmierung mit C++ Datum und Uhrzeit: 23. Februar 2013, 10-12 Uhr Institut: Angewandte Informationsverarbeitung Bearbeitungszeit:
MehrProbeklausur. Klausurdeckblatt. Name der Prüfung: Objekt-orientierte Programmierung mit C++ Datum und Uhrzeit: 26. Februar 2015, Uhr
Probeklausur Klausurdeckblatt Name der Prüfung: Objekt-orientierte Programmierung mit C++ Datum und Uhrzeit: 26. Februar 2015, 14 16 Uhr Bearbeitungszeit: 120 Min. Institut: Angewandte Informati- Prüfer:
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
MehrPolymorphismus 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
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
MehrPolymorphe for-anweisung 237
Polymorphe for-anweisung 237 Beginnend mit C++11 wird for (for-range-declaration : expression) statement durch den Übersetzer zu folgendem Programmtext expandiert: { auto&& range = (expression); for (auto
MehrObjektorientierte Anwendungsentwicklung
Name, Vorname Matrikelnummer Klausur zur Vorlesung Objektorientierte Anwendungsentwicklung Krefeld, 16. März 2012 Hinweise: Schreiben Sie Ihren Namen und Ihre Matrikelnummer auf dieses Deckblatt. Die Aufgabenstellung
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
MehrObjektorientierte Anwendungsentwicklung
Name, Vorname Matrikelnummer Klausur zur Vorlesung Objektorientierte Anwendungsentwicklung Krefeld, 2. Juli 2014 Hinweise: Schreiben Sie Ihren Namen und Ihre Matrikelnummer auf dieses Deckblatt. Tragen
MehrC-Arrays vs. C++-Container
C-Arrays vs. C++-Container In C verwendet man (mangels Alternativen) sehr häufig das C-Array (= Feld): im Speicher hintereinander abgelegte Elemente vom gleichen Typ. Arrays haben einen Basistyp (Typ des
MehrGrundlagen der Informatik
Grundlagen der Informatik Klausur 1. August 2008 1. Dynamische Datenstrukturen und objektorientierte Programmierung (45 Punkte) Gegeben sei eine Datenstruktur mit folgendem Aufbau struct lelem { int w;
Mehr1. Teilklausur Gruppe A. Bitte in Druckschrift leserlich ausfüllen!
Objektorientierte Programmierung & Modellierung WS 2007/8 Universität Koblenz-Landau Institut für Informatik Prof. Dr. Ralf Lämmel Dr. Manfred Jackel 1. Teilklausur 07.12.2007 Gruppe A Bitte in Druckschrift
MehrEinführung in die STL
Einführung in die STL Fimberger Lucia lfimberg@cosy.sbg.ac.at Nidetzky Marion mnidetzk@cosy.sbg.ac.at Was ist die STL? Abkürzung für Standard Template Library Eine generische Bibliothek Ist kaum objektorientiert,
MehrMapra: 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
MehrAssoziative Container in C++ Christian Poulter
Assoziative Container in C++ Christian Poulter Seminar: Die Sprache C++ Mat-Nr.: 53 03 129 EMail: inf@poulter.de Christian Poulter Assoziative Container in C++ Seite 1/10 Inhalt 1. Einleitung: Container...
MehrC-Arrays vs. C++-Container
C-Arrays vs. C++-Container In C verwendet man (mangels Alternativen) sehr häufig das C-Array (= Feld): im Speicher hintereinander abgelegte Elemente vom gleichen Typ. Arrays haben einen Basistyp (Typ des
MehrObjektorientierte Programmierung II
Objektorientierte Programmierung II OOP I Erlaubt Entwicklers, im Problemraum zu denken und zu arbeiten. Das Problem wird in eine Menge von Objekten zerlegt. Objekte wirken aufeinander, um das Problem
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,
MehrVerschlü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
MehrC++ 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)
MehrProbeklausur. Musterlösung
Programmierkurs Probeklausur Dr. Steffen Müthing Abgabe 08. Februar 2019 IWR, Universität Heidelberg ipk-exercises:2018-ws-55-gc187ae0 Allgemeine Hinweise: Probeklausur Dieses Übungsblatt wird nicht bewertet.
MehrKlausur Kompaktkurs Einführung in die Programmierung Dr. T. Weinzierl & M. Sedlacek 25. März 2011
Kompaktkurs Einführung in die Programmierung Klausur Seite 1/10 Name, Vorname, Unterschrift: Matrikelnummer: Wichtig: Klausur Kompaktkurs Einführung in die Programmierung Dr. T. Weinzierl & M. Sedlacek
MehrProgrammieren in C/C++ und MATLAB
Programmieren in C/C++ und MATLAB Sven Willert Sabine Schmidt Christian-Albrechts-Universität zu Kiel CAU 5-1 Übung Schreiben Sie ein Programm, das die Zahl π durch π = 4 4 4 4 4 4 + + +... 3 5 7 9 11
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,
MehrC++ 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
MehrEinfü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
MehrKlausur "ADP" SS 2015
PD Dr. J. Reischer 20.7.2015 Klausur "ADP" SS 2015 Nachname, Vorname Abschluss (BA, MA, FKN etc.) Matrikelnummer, Semester Versuch (1/2/3) Bitte füllen Sie zuerst den Kopf des Angabenblattes aus! Die Klausur
MehrK L A U S U R D E C K B L A T T
K L A U S U R D E C K B L A T T Name der Prüfung: Einführung in die Robotik Datum und Uhrzeit: 25.02.2014 um 11Uhr Bearbeitungszeit: : Institut: Neuroinformatik Prüfer: Oubbati Vom Prüfungsteilnehmer auszufüllen:
MehrObjektorientierte Programmierung mit C++ (WS 2016/2017)
Institut für Numerische Mathematik Dr. Andreas F. Borchert und Dr. Michael C. Lehn 26. Januar 2017 Blatt 12 Objektorientierte Programmierung mit C++ (WS 2016/2017) Abgabe bis zum 2. Februar 2017, 16:00
MehrNachholklausur zur Vorlesung: Einführung in die objektorientierte Programmierung mit Java WS1415
Nachholklausur zur Vorlesung: Einführung in die objektorientierte Programmierung mit Java WS1415 Alexander Bazo 10. April 2015 Allgemeine Hinweise 1. Die Bearbeitungszeit beträgt 60 Minuten. Sie könne
Mehrkurze Wiederholung class templates
kurze Wiederholung class templates Ein class template ist ein Template, dass mit einem oder mehreren typename -Parametern implementiert wird. Um solch ein Template zu benutzen, übergibt man dem Template
Mehr9. 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
MehrPrüfung A Informatik D-MATH/D-PHYS :15 14:55
Prüfung A Informatik D-MATH/D-PHYS 17. 12. 2013 13:15 14:55 Prof. Bernd Gartner Kandidat/in: Name:. Vorname:. Stud.-Nr.:. Ich bezeuge mit meiner Unterschrift, dass ich die Prufung unter regularen Bedingungen
MehrGenerische Deklarationen 179
Generische Deklarationen 179 Generische Klassen und Funktionen, in C++ templates genannt, sind unvollständige Deklarationen bzw. Definitionen, die von Parametern abhängen. Überwiegend handelt es sich dabei
MehrProgrammierkurs C++ Templates & STL (1/2)
Programmierkurs C++ Templates & STL (1/2) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck https://www.itm.uni-luebeck.de/people/fischer #2 Templates Die wichtigsten objekt-orientierten
MehrKlausurdeckblatt. Name: Studiengang: Matrikelnummer:
Klausurdeckblatt Name der Prüfung: Systemnahe Software II Datum und Uhrzeit: 21. Juli 2016, 10-12 Uhr Prüfer: Dr. Andreas F. Borchert Bearbeitungszeit: 120 Min. Institut: Numerische Mathematik Vom Prüfungsteilnehmer
MehrKlausur: Grundlagen der Informatik I, am 27. März 2009 Gruppe: F 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 ( / 15 Pkt.) Was liefert
MehrEinführung in die Programmierung
Name, Vorname Matrikelnummer Probeklausur zur Vorlesung Einführung in die Programmierung WS 2008/09 Dauer: 2 Stunden Hinweise: Schreiben Sie Ihren Namen und Ihre Matrikelnummer auf dieses Deckblatt und
MehrMetaprogrammierung 372
Metaprogrammierung 372 thales$ g++ -c -fpermissive -DLAST=30 Primes.cpp 2>&1 fgrep In instantiation Primes.cpp: In instantiation of void Prime_print::f() [with int i = 29] : Primes.cpp: In instantiation
MehrProgrammieren in C++ Templates
Programmieren in C++ Templates Inhalt Templates Funktions- und Klassen-Templates Spezialisierung von Templates Generische Klassen Einbinden von Templates Instantiierung (implizit und explizit) Templates
MehrK L A U S U R D E C K B L A T T
K L A U S U R D E C K B L A T T Name der Prüfung: Einführung in die Robotik Datum und Uhrzeit: 16.04.2014 um 11Uhr Bearbeitungszeit: : Institut: Neuroinformatik Prüfer: Oubbati Vom Prüfungsteilnehmer auszufüllen:
MehrKlausur Programmieren 2 WS 2017/18
Klausur Programmieren 2 WS 2017/18 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
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: Grundlagen der Informatik I, am 27. März 2009 Gruppe: E 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 ( / 15 Pkt.) Was liefert
MehrPrüfung Algorithmen und Datenstrukturen I
Hochschule für angewandte Wissenschaften München Fakultät für Informatik und Mathematik Studiengruppe IF 3 B Wintersemester 2014/15 Prüfung Algorithmen und Datenstrukturen I Datum : 20.01.2015, 10:30 Uhr
MehrProf. Dr. Uwe Schmidt. 17. August Aufgaben zur Klausur C und Objektorientierte Programmierung im SS 2010 (WI h103, II h105, MI h353)
Prof. Dr. Uwe Schmidt 17. August 2010 Aufgaben zur Klausur C und Objektorientierte Programmierung im SS 2010 (WI h103, II h105, MI h353) Zeit: 150 Minuten erlaubte Hilfsmittel: keine Bitte tragen Sie Ihre
MehrSchriftlicher Test (120 Minuten) VU Einführung ins Programmieren für TM. 23. Januar 2017
Familienname: Vorname: Matrikelnummer: Aufgabe 1 (3 Punkte): Aufgabe 2 (1 Punkt): Aufgabe 3 (2 Punkte): Aufgabe 4 (4 Punkte): Aufgabe 5 (2 Punkte): Aufgabe 6 (2 Punkte): Aufgabe 7 (4 Punkte): Aufgabe 8
MehrImplementieren 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
MehrInformatik 1 ( ) D-MAVT F2010. Schleifen, Felder. Yves Brise Übungsstunde 5
Informatik 1 (251-0832-00) D-MAVT F2010 Schleifen, Felder Nachbesprechung Blatt 3 Aufgabe 1 ASCII... A > a Vorsicht: Lösen Sie sich von intuitiven Schlussfolgerungen. A ist nicht grösser als a, denn in
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
MehrProgrammierung und Angewandte Mathematik
Programmierung und Angewandte Mathematik C++ /Scilab Programmierung und Einführung in das Konzept der objektorientierten Anwendungen zu wissenschaftlichen Rechnens SS 2012 Inhalt Compiler/Editor Klassendeklaration
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
MehrUniversität Augsburg, Institut für Informatik Sommersemester 2001 Prof. Dr. Martin Ester 08. Oktober Klausur II
Universität Augsburg, Institut für Informatik Sommersemester 2001 Prof. Dr. Martin Ester 08. Oktober 2001 Stefan Holland Informatik II Hinweise: Klausur II Verwenden Sie für Ihre Lösungen ausschließlich
MehrPrüfung Informatik D-MATH/D-PHYS :00 17:00
Prüfung Informatik D-MATH/D-PHYS 9. 8. 0 5:00 7:00 Prof. Bernd Gartner Kandidat/in: Name:. Vorname:. Stud.-Nr.:. Ich bezeuge mit meiner Unterschrift, dass ich die Prufung unter regularen Bedingungen ablegen
MehrInformatik 1 ( ) D-MAVT F2010. Rekursion, Signaturen. Yves Brise Übungsstunde 8
Informatik 1 (251-0832-00) D-MAVT F2010 Rekursion, Signaturen Nachbesprechung Blatt 6 Aufgabe 1 - Strukturen und Zeiger Genau die Variablen angeben, die sich geändert haben. Implizite Initialisierung ergänzt
MehrAngewandte 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
MehrEinführung in die Programmierung Wintersemester 2016/17
Einführung in die Programmierung Wintersemester 2016/17 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : Gültigkeitsbereiche Inhalt Lokale und globale
MehrProbeklausur zur Vorlesung: Einführung in die objektorientierte Programmierung mit Java im Wintersemester 2017/18
Probeklausur zur Vorlesung: Einführung in die objektorientierte Programmierung mit Java im Wintersemester 2017/18 Alexander Bazo Januar 2018 Allgemeine Hinweise 1. Die Bearbeitungszeit beträgt 60 Minuten.
MehrWo und wie lange leben Objekte? globale Objekte lokale Objekte dynamische Objekte
Wo und wie lange leben Objekte? globale Objekte lokale Objekte dynamische Objekte entstehen durch... globale Objektvereinbarung: T o; blocklokale Objektvereinbarung: {.. T o;.. durch expliziten Aufruf
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
MehrProbeklausur zur Vorlesung
Dr. Jochen Hoenicke Alexander Nutz Probeklausur zur Vorlesung Einführung in die Informatik Sommersemester 2014 Die Klausur besteht aus diesem Deckblatt und elf Blättern mit den Aufgaben, sowie einem Blatt
MehrPrüfung Softwareentwicklung II (IB)
Hochschule für angewandte Wissenschaften München Fakultät für Informatik und Mathematik Studiengruppe IB 2 B, IB 2 C Sommersemester 2013 Prüfung Softwareentwicklung II (IB) Datum : 11.07.2013, 08:30 Uhr
MehrPrüfung Informatik D-MATH/D-PHYS :00 11:00
Prüfung Informatik D-MATH/D-PHYS 24. 1. 2014 09:00 11:00 Prof. Bernd Gartner Kandidat/in: Name:... Vorname:... Stud.-Nr.:... Ich bezeuge mit meiner Unterschrift dass ich die Prufung unter regularen Bedingungen
MehrDynamische Datenstrukturen in C++ 150
Dynamische Datenstrukturen in C++ 150 In allen bisherigen Beispielen belegten die Objekte entweder statischen Speicherplatz oder sie lebten auf dem Stack. Dies vermied bislang völlig den Aufwand einer
MehrGrundlagen der Informatik
Grundlagen der Informatik Musterklausur 1. Dynamische Datenstrukturen und objektorientierte Programmierung Zur Verwaltung einer digitalen Fotogalerie sollen Techniken der objektorientierten Programmierung
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
MehrUniversität zu Lübeck Institut für Telematik. Prof. Dr. Stefan Fischer
Universität zu Lübeck Institut für Telematik Prof. Dr. Stefan Fischer Probeklausur im Fach Programmieren Hinweise zur Bearbeitung: Es sind keinerlei Hilfsmittel zugelassen. Diese Klausur umfasst 18 Seiten.
MehrTechnische Universität Braunschweig Institut für Programmierung und Reaktive Systeme
Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Programmieren I Dr. Werner Struckmann 6. März 2013 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr Studiengang:
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
MehrInformatik 1 ( ) D-MAVT F2010. Letzte Übungsstunde. Yves Brise Übungsstunde 12
Informatik 1 (251-0832-00) D-MAVT F2010 Letzte Übungsstunde Evaluation S3 Frage zu Assistierenden INFK Anz. Der/die Assistent/in war fachlich k.ä. 0 kompetent 1 0 2 0 3 0 4 23% 3 5 77% 10 MW = 4.8 SA =
MehrProbeklausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 12. April 2007, Uhr Bearbeitungszeit: 105 Minuten
Probeklausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 12. April 2007, 13.00-14.45 Uhr Bearbeitungszeit: 105 Minuten Schalten Sie ihr Mobiltelefon aus. Bei der Klausur ist als einziges
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
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
MehrKlausur: Informatik, am 13. August 2015 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:
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 ( / 15 Pkt.) a) Geben
MehrWintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 29
Kapitel 2 Einführung in C++ Seite 1 von 29 C++ Zeichensatz - Buchstaben: a bis z und A bis Z. - Ziffern: 0 bis 9 - Sonderzeichen: ; :,. # + - * / % _ \! < > & ^ ~ ( ) { } [ ]? Seite 2 von 29 Höhere Elemente
MehrUNIVERSITÄT SIEGEN Fachbereich 12, Elektrotechnik und Informatik Fachgruppe Betriebssysteme / verteilte Systeme
UNIVERSITÄT SIEGEN Fachbereich 12, Elektrotechnik und Informatik Fachgruppe Betriebssysteme / verteilte Systeme Musterklausur zur Einführung in die Informatik II 1. Teilklausur, 23.06.2006 Bitte lesen
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
MehrFH Ravensburg-Weingarten Schriftlich Prüfung Programmieren
FH Ravensburg-Weingarten Schriftlich Prüfung Programmieren Prof. Dr. M. Zeller Datum, Zeit Aufgabenblätter erreichbare Punktzahl zugelassene Hilfsmittel, 0800 1000 Uhr (120 min) 16 Seiten (einschl. Deckblatt)
MehrUniversität Augsburg, Institut für Informatik Sommersemester 2001 Prof. Dr. Martin Ester 16. Juli Klausur
Universität Augsburg, Institut für Informatik Sommersemester 2001 Prof. Dr. Martin Ester 16. Juli 2001 Stefan Holland Informatik II Hinweise: Klausur Verwenden Sie für Ihre Lösungen ausschließlich den
Mehr19. Dynamische Datenstrukturen II. Verkettete Listen, Vektoren als verkettete Listen
636 19. Dynamische Datenstrukturen II Verkettete Listen, Vektoren als verkettete Listen Anderes Speicherlayout: Verkettete Liste 638 Kein zusammenhängender Speicherbereich und kein wahlfreier Zugriff 638
MehrObjektorientierte Programmierung mit C Datentypen (Strukturtypen)! p.name = "Willibald Wusel";
1.2. Datentypen (Strukturtypen) p.name = "Willibald Wusel"; Kombination mit Zeigern (dynamische Strukturobjekte) Person* anewperson = new Person; anewperson->age = 32; // short hand for: (* anewperson).age
Mehr5. Lesen Sie vor der Bearbeitung einer Aufgabe den gesamten Aufgabentext sorgfältig durch!
Wir begrüßen Sie zur Nachklausur zum Kurs 1618 Einführung in die objektorientierte Programmierung. Bitte lesen Sie die folgenden Hinweise sorgfältig und vollständig durch, bevor Sie mit der Bearbeitung
MehrKlausur in Programmieren
Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Winter 2009/2010, 18. Februar 2010 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt) Name:
MehrKlausur Grundlagen der Programmierung
Klausur Grundlagen der Programmierung Aufgabenstellung: Martin Schultheiß Erreichte Punktzahl: von 60 Note: Allgemeine Hinweise: Schreiben Sie bitte Ihren Namen auf jedes der Blätter Zugelassene Hilfsmittel
MehrViel Erfolg bei der Bearbeitung der Aufgaben!
Musterlösung Name:... 1 2 3 4 5 Gesamt Note 12 8 10 15 11 56 Bitte tragen Sie auf dem Deckblatt Ihr Namen und Ihre Matrikelnummer ein und auf allen weiteren Seiten nur noch Ihre Matrikelnummer. Lösungen
Mehr1.2. Datentypen (Konstantentypen)
1.2. Datentypen (Konstantentypen) Referenzen (selbst) sind implizit const, es gibt jedoch Referenzen auf Konstantentypen Wichtigste Anwendung: call by reference in-parameter T t; void foo(t& pt) { pt.change();
Mehr1. Testklausur Sommersemester 2013 Datenstrukturen und Algorithmen 24. Mai 2013
Hochschule Bonn-Rhein-Sieg University of Applied Sciences Fachbereich Informatik Prof. Dr. Peter Becker 1. Testklausur Sommersemester 2013 Datenstrukturen und Algorithmen 24. Mai 2013 Bevor Sie mit der
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
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
MehrLambda-Funktionen. Lambda-Funktionen. Lambda-Funktionen sollen
Lambda-Funktionen Lambda-Funktionen sind Funktionen ohne Namen. definieren ihre Funktionalität an Ort und Stelle. können wie Daten kopiert werden. können ihren Aufrufkontext speichern. Lambda-Funktionen
MehrInstitut für Programmierung und Reaktive Systeme 2. Februar Programmieren I. Übungsklausur
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 2. Februar 2017 Hinweise: Klausurtermine: Programmieren I Übungsklausur Programmieren I: 13. März
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
MehrTeilklausur I in Informatik TEL09GR2 Lewandowski
Teilklausur I in Informatik TEL09GR2 Lewandowski Es sind insgesamt 84 Punkte zu erreichen (80 Punkte werden als 100% gewertet) (Jeder Punkt entspricht einer Bearbeitungszeit von etwa 1 Minute) Aufgabe
Mehr1 Klassen und Objekte
1 Klassen und Objekte Datentyp - Spezifikation des Typs von Datenobjekten Datenstruktur - logische Ordnung von Elementen eines Datentyps - zur (effizienten) Speicherung, Verwaltung, Zugriff - auf die Elemente
Mehr