c) Zur Ausgabe der Transaktion soll statt print der Operator << verwendet werden.geben Sie die dazu nötigen Änderungen an.

Ähnliche Dokumente
3. Semester : 1. Prüfung

Klausur in Programmieren

2. Semester, 2. Prüfung, Lösung

Methoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only

Grundlagen. Kapitel 1

Einleitung. Informationsquellen: - Webseite zur Vorlesung, Abschnitt Informationen zu C und C++ Kurzeinführung in C/C++

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur

Vergleich verschiedener OO-Programmiersprachen

Verwendung von Klassen in C++

13. Vererbung. Prof. Dr. François E. Cellier Informatik I für D-ITET (HS 2012)

12. Vererbung. Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)

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

Grundlagen der Informatik - 6. Praktikum

Die abgeleiteten Klassen Kreis und Viereck erben die Elemente des Basisklasse und verfügen über zusätzliche Eigenschaften (Seitenlänge,

Einführung in die Programmierung (EPR)

Objektorientierung Grundlagen

Klausur zu Objektorientierter Softwareentwicklung in C++ 4. Februar 2003 (WS 2002/2003) Beispiellösung

Praktikum Betriebssysteme 1. Aufgabe (1)

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

Objektorientiertes Programmieren für Ingenieure

Klausurvorbereitung Lösung

Konstruktoren und Destruktoren Initialisierung von Objekten

Angewandte Mathematik und Programmierung

Hochschule München, FK 03 SS Masterstudiengang Technische Berechnung und Simulation. Programmierung von CAx-Systemen Teil 1

Beispiel 2a Die eigenen ersten Schritte mit dem Gnu-Debugger GDB für Remote-Debugging

Abend 7 Vererbung und Polymorphie, Abstrakte Klassen

C++-Zusammenfassung. H. Schaudt. August 18, 2005

Übung HP Beispielaufgaben 3

Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Gute Lösung:

Ziel, Inhalt. Programmieren in C++ Wir lernen wie man Funktionen oder Klassen einmal schreibt, so dass sie für verschiedene Datentypen verwendbar sind

Einführung in den Einsatz von Objekt-Orientierung mit C++ I

Einführung in die Programmierung (EPR) (Übung, Wintersemester 2014/2015)

Betriebssysteme: Konzepte, Dienste, Schnittstellen (Betriebssysteme und betriebssystemnahe Programmierung)

Vererbung und Polymorphie

Probeklausur: Programmierung WS04/05

Kurzeinführung in C/C++ Elementare Datentypen in C++

Aufbau von Klassen. class punkt {...

Delegatesund Ereignisse

Klausur zur Vorlesung Grundlagen der C++-Programmierung

Probeklausur: Programmierung WS04/05

4. Objektorientierte Programmierung mit C++

Nachklausur Programmieren / Algorithmen und Datenstrukturen 1

Klausur in Programmieren

Zeiger, Arrays und Strings in C und C++

C++ - Eine Ubersicht fur Java-Programmierer

GetName(), GetName(), GetGeschlecht() und AelterWerden().

Programmiertechnik Klassenmethoden

Kapitel 6. Vererbung

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Klassenmethoden

Angewandte Mathematik und Programmierung

Einstieg in die Informatik mit Java

Überladen von Operatoren

Nachname: Vorname: Matr.-Nr.: Punkte: 1. Aufgabe: ( / 25 Pkt.) Gegeben ist das folgende Struktogramm zur Berechnung von sin(x) mit Hilfe einer Reihe.

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

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2014/2015 Wirtschaftsingenieur Bachelor 4. Aufgabe Datenstruktur, Dateieingabe und -ausgabe

Programmieren II Vererbung. Programmieren II Vererbung. Programmieren II Vererbung. Programmieren II Vererbung. Einleitende Bemerkungen

C++ - Lernen und professionell anwenden

Repetitorium Informatik (Java)

Themen. Statische Methoden inline Methoden const Methoden this Zeiger Destruktor Kopierkonstruktor Überladen von Operatoren

Einführung in die Programmierung 1

Objektorientierte Programmierung mit C++ Zusammenfassung der wichtigsten Topics rund um die objektorientierte Programmierung mit C++11

Lösungsvorschlag zum Übungsblatt 1 zur Vorlesung Informatik II / WS2001/02

5.4 Klassen und Objekte

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Grundlagen C und C++ Einheit 03: Grundlagen in C++ Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme

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

Vorkurs C++ Programmierung

Kapitel 6. Vererbung

C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung. Eltern

Einführung in C++ Vererbung und Polymorphismus

Klausur in Programmieren

01. Grundprinzipien der Vererbung

Kapitel 6. Vererbung

1.2 Attribute und Methoden Aufbau einer Java-Klasse:

11.3 Virtuelle Methoden

10. Klassen. Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)

JAVA - Methoden

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe

Informationsverarbeitung im Bauwesen

Klausur C++ #1 Jahr: 2001; Dozent: Dipl.Ing. Sorber

Angewandte Mathematik und Programmierung

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

Vererbung & Schnittstellen in C#

Informatik Repetitorium SS Volker Jaedicke

Einführung in die STL

Übung 1 - Betriebssysteme I

Einführung in das Objektorientierte Programmieren mit C++

Es gibt zwei verschiedene Arten, wie Programme auf dem Rechner ausgeführt werden:

Operatoren und Ausdrücke

Pass by Value Pass by Reference Defaults, Overloading, variable Parameteranzahl

5.5.8 Öffentliche und private Eigenschaften

C++ - Operatoren. Eigene Klassen mit neuen Funktionen

Der C++ Crashkurs v1.0

Einführung in die Programmierung

Prüfung in PROGRAMMIEREN 3 WS 2006/07

Computeranwendung und Programmierung (CuP)

Java Einführung Methoden in Klassen

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Studentische Lösung zum Übungsblatt Nr. 7

Programmieren in C/C++ und MATLAB

Transkript:

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 und verwaltet neben dem eigentlichen uchungsbetrag (Gleitkommazahl) auch eine Kennung für die Währung. In der ufgabe soll die Währungskonvertierung als C++ String repräsentiert sein, mit Werten DM bzw. EUR für Euro. Ein Transaktionsobjekt soll neben etrag und Währungskennung noch folgende Eigenschaften besitzen: - Es kann bei der Definition mit etrag und Währungskennung versehen werden - Mit der Elementfunktion convert lassen sich Währung und damit auch etrag verändern. Sie hat keinen Returnwert und als einzigen Parameter die Kennung der neuen Währung. Für die ufgabe brauchen Sie nur Konvertierungen zwischen DM und Euro zu implementieren (in beide Richtungen), für andere Währungskombinationen hat die Methode keine Wirkung. - Die Elementfunktion print gibt den Zustand des Objekts aus. Die usgabe erfolgt mit genau 2 Nachkommastellen und nachgestellter Währung (z.. 123.45 EUR ). Sie soll aber nicht nur auf der Konsole, sondern z.. auch in eine Datei erfolgen können. Deshalb besitzt die Funktion einen Parameter der das usgabeobjekt festlegt, und als Typ eine geeignete Klasse der Standardbibliothek hat. Geben Sie eine Definition der Klasse Transaktion an, die den Prinzipien der Objektorientierung genügt. Dazu gehören auch die nötigen Include-Files! Hinweis: Definieren Sie eine Elementfunktion innerhalb der Klasse und eine außerhalb! Die Konvertierung zwischen DM und EUR erfolgt nach der Vorschrift: DM-etrag = EUR-etrag*1.95583 b) Geben Sie die kurze Hauptprogramm-nweisungsfolge an, welche eine solche Transaktion mit 10 DM dynamisch erzeugt, sie in EUR konvertiert und dann auf der Konsole ausgibt. c) Zur usgabe der Transaktion soll statt print der Operator << verwendet werden.geben Sie die dazu nötigen Änderungen an.

ufgabe 2 (16 Punkte) Das folgende Quellfile wird gemäß nsi-c++ Sprachstandard compiliert und gelinkt. Welche Fehler treten dabei auf. Markieren Sie die für die Fehler verantwortlichen Stellen und geben Sie neben dem Code oder auf der Rückseite eine kurze stichwortartige Fehlerbeschreibung. Logische oder Laufzeitfehler sind nicht gefragt. #include <iostream> using namespace std; class { int a=2; (int b) { a=b; ; class { ; void f(char& b) { p; p.a=0; void g() { friend class ; virtual void h() { d;.g();

e = new ; char* p = lles ok? ; cout << p; d.f(p); ufgabe 3 (15 Punkte) Es liegt folgender fehlerfreier Programmausschnitt vor: ; class { () { cout << " << endl; virtual * create() { cout << create \n ; return new ; class : public { ; () {cout << << endl; * create() { cout << create \n ; return new ; void f( x) { x.create(); int main() { a; f(a); b;

f(b); a) Welche usgabe erzeugt die uführung von main()? b) Ändern Sie das Programm so ab, dass der Parameter x der Funktion f ein Referenzparameter wird. Schreiben sie alle dafür nötigen Änderungen rechts neben die entsprechenden Zeilen des Programms! Wie lautet jetzt die usgabe des Programms? Lösung: ufgabe 2) 1. using namspace std; <-fehlt 2. int a=2 nicht möglich da elementvariable. 3. p; nicht möglich da kein parameterloser Konstruktor vorhanden ist. 4. p.a =0; nicht möglich da "a" private. friend steht zu weit unten. 5. Class... " ;" fehlt 6. virtual void h() <- virtual ist nur in Klassen erlaubt. 7..g(); <- Klassenmethode bezieht sich nicht auf ein Objekt richtig ->d.g(); 8. e = new ; -> müsste *e = new ; new gibt ein Pointer zurück e ist aber kein Pointer. 9. d.f(p); -> p ist ein pointer die Funktion hat aber einen Referenzparameter. ufgabe 3) a) create create Wieso ist das so? a; -> Konstruktoraufruf von -> cout "" f(a) -> cout "create " -> nun wird mit return new wieder der Konstruktor aufgerufen daher -> cout b; -> ist abgeleitete Klasse von daher wird erst der Konstruktor von Class aufgerufen und daher -> cout nun wird der Konstruktor von aufgerufen -> cout f(b) -> chtung die Funktion hat einen Parameter vom Typ daher wird die Funktion von Class aufgerufen und daher auch selbe usgabe wie f(a) b) void f( &x) Durch den Referenzparameter wird nun &x als das angesehen was übergeben wird in dem Fall x und damit wird nun auch die Funktion von aufgerufen.: create

create Funktion von Class wird aufgerufen dann der Konstruktor von dann von siehe oben.