Übung Datenstrukturen. Objektorientierung in C++

Ähnliche Dokumente
EPROG 2.Teilprüfung. Aufgabe 1:

Einstieg in die Informatik mit Java

Klassen als Datenstrukturen

Einstieg in die Informatik mit Java

Informatik I (D-MAVT)

Einstieg in die Informatik mit Java

Zeichenketten. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java. 16.

A&R TECH C++ Chess Challenge

Institut für Informatik und Angewandte Kognitionswissenschaften

SS Björn Berezowski B.Sc. Marco Münch B.Sc. Michael Roth B.Sc. Repetitorium PG 1. Übungsblatt. 1 Übung - Probeklausur SS 2010 Typ Prof.

Übungskomplex Reelle Zahlen. Rechnen mit Gleitkommazahlen

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

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

1.2 Attribute und Methoden Aufbau einer Java-Klasse:

Durch die Möglichkeit, Ein- und Ausgaben auf der Konsole durchzuführen, kann man auch systematisch das Verhalten von Klassen analysieren.

Institut für Informatik

Klausur "C#" WS 2012/2013

Felder - Arrays. Typ feldname[] = new Typ[<ganze Zahl >]; Beispiel: double vektor[] = new double[5]; auch eine Initialisierung ist möglich.

Projekt 3 Variablen und Operatoren

Die Klasse java.lang.object. Thorsten Treffer

Einführung in die Programmierung für NF MI. Übung 07

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren

Wissenschaftliches Rechnen

11. Java Klassen. Klassen - Technisch. Klassen - Beispiel: Erdbebendaten. Klassen - Konzeptuell

Repetitorium Informatik (Java)

Sommersemester Jewgeni Rose. Technische Universität Braunschweig

Vorlesung Datenstrukturen

Einführung in die Programmierung 1

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

Informatik 1 MaVt FS Übung 10

String s1, s2; Eine Zuweisung geschieht am einfachsten direkt durch Angabe des Strings eingeschlossen in doppelte Hochkommata:

Praktikum 3: Klassen im Zusammenspiel

Der Datentyp String. Stringvariable und -vergleiche

Aufgabe 1 (Programmanalyse, Punkte)

Institut für Informatik

Institut für Informatik

JAVA für Nichtinformatiker - Probeklausur -

3.3 Konstruktoren und Destruktoren

Programmieren in Haskell Einstieg in Haskell

Übungsblatt Programmierung und Software-Entwicklung Generizität, Interfaces, Listen, Sortieralgorithmen & JUnit

Einführung in die Programmierung für NF MI. Übung 04

Programmieren in Haskell

Objektorientierung (OO)

Klausur Software-Entwicklung März 01

Institut für Programmierung und Reaktive Systeme 20. November Programmieren I. 4. Übungsblatt

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

C++ Teil 12. Sven Groß. 18. Jan Sven Groß (IGPM, RWTH Aachen) C++ Teil Jan / 11

3.3. Objektorientierung

Standard.lib. Inhalt. WAGO-I/O-PRO 32 Bibliothek

In diesen Canvas können Punkte an gültigen Koordinaten gezeichnet werden.

5.1 Mehr Basistypen. (Wie viele Werte kann man mit n Bit darstellen?)

JAVA-Datentypen und deren Wertebereich

Probeklausur: Programmierung WS04/05

Fakultät Angewandte Informatik Lehrprofessur für Informatik

einlesen n > 0? Ausgabe Negative Zahl

Dieses Dokument enthält alle Teilaufgaben zur Java-Pflichtaufgabe für das Sommersemester Aufgabe 1 (Vier Gewinnt 1. Teil)

IT 2 WS 2014/2015 Übungsblatt 3

IT 2 WS 2013/2014 Übungsblatt 3

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

Probeklausur Informatik 2 Sommersemester 2013

Objekttypen. Referenzen, Objekte, Gleichheit, Wrapper, Arrays, mehr-dimensionale Arrays, Bildbearbeitung, krumme Arrays

Begriffe 1 (Wiederholung)

Einstieg in die Informatik mit Java

boolean, char, byte, short, int, long long, float, double

Umsetzung einer Klassenkarte in einer Programmiersprache

Folienpaket 7 Themenschwerpunkte: Methoden in OOP /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

Organisatorisches. drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50

Ausgabe: :00 Abgabe: :00. Sie müssen bei Ihren Lösungen eine maximale Zeilenbreite von 120 Zeichen einhalten.

Organisatorisches. Neue Übungsblätter: Nur mehr elektronisch? Abgabe Di, , 14 Uhr bis Do, , 8Uhr

Programmierkurs Java

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

Javakurs für Anfänger

Hilfsblatt für C++ Prüfungen im 5. Semester

Grafik-Programmierung

Informatik 10 Objektorientiertes Modellieren und Programmieren mit Java

Funktionale Programmierung. der direkte Weg vom Modell zum Programm

Praktikum 3: Klassen im Zusammenspiel

Java Datentypen und Variablen

Am Anfang werden die Attribute deklariert public class Kreis {

Einführung in die Praktische Informatik. Übungsblatt 10. Dr. U. Köthe Heidelberg, 11. Januar 2017

Funktionen in JavaScript

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

Zeichendarstellung. Zeichen sind Zahlen (in C) Zeichen und switch

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

Klausur: Java (Liste P)

Programmierkurs Java

Felder. M. Jakob. 28. April Gymnasium Pegnitz

Kapitel 3: Variablen

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

Computeranwendung und Programmierung (CuP)

Einführung in die Programmierung

12. Java Klassen. Klassen - Technisch. Beispiel: Erdbebendaten. Klassen - Konzeptuell

Programmieren in Java -Eingangstest-

7. Organisation von Informationen

Klassen und Objekte. Klassen sind Vorlagen für Objekte. Objekte haben. Attribute. Konstruktoren. Methoden. Merkblatt

C++ - Objektorientierte Programmierung Konstante und statische Elemente

Intensivübung zu Algorithmen und Datenstrukturen

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

Angewandte Mathematik und Programmierung

Funktionen in JavaScript

Transkript:

Übung Datenstrukturen Objektorientierung in C++

Aufgabe 1a - Farben Schreiben Sie eine Klasse COLOR zur Beschreibung von Farben. Eine Farbe werde hierbei additiv durch ihren Rot-, Grün- und Blauanteil definiert. Der Anteil jeder Farbe soll durch eine ganze Zahl im Intervall [0,255] ausgedrückt werden. Bei Erzeugung eines Objektes ist sicherzustellen, dass ein Farbwert im erlaubten Bereich liegt. Unterschreitet er diesen, ist der Farbanteil auf 0 zu setzen und bei Überschreitung auf 255. Definieren Sie einen Standardkonstruktor, der sowohl Rot- als auch Grün- und Blauanteil mit 0 initialisiert. Ergänzen Sie einen parametrisierten Konstruktor, bei dem Sie die jeweiligen Farbanteile direkt festlegen können. Schreiben Sie eine Methode print(), die die Werte aller Farbanteile auf dem Bildschirm ausgibt

Aufgabe 1b - Punkte Erzeugen Sie eine Klasse POINT zur Darstellung von Punkten im zweidimensionalen Raum! Definieren Sie einen Standardkonstruktor, der x- und y-koordinaten mit 0 initialisiert. Ergänzen Sie einen parametrisierten Konstruktor, der x- und y-koordinaten mit den angegebenen Werten initialisiert. Schreiben Sie Getter-Methoden, die die Werte der Koordinaten einzeln zurückliefern Schreiben Sie eine Methode print(), die die Werte der Koordinaten auf dem Bildschirm ausgibt Schreiben Sie eine Methode double distance(), die den Abstand Ihres Punktes vom Koordinatenursprung berechnet und als Funktionswert zurückliefert. Hinweise Sie dürfen zur Abstandsberechnung die Funktion sqrt() aus <math.h> verwenden Der Datentyp für die Koordinaten ist nicht vorgeschrieben. Sie können auch int verwenden

Aufgabe 1c - 3D-Punkte Leiten Sie von POINT eine Klasse POINT3D zur Darstellung von Punkten im dreidimensionalen Raum ab! Welche Änderungen müssen Sie an der Klasse POINT vornehmen, damit Sie Struktur und Funktionalität aus POINT sinnvoll in POINT3D wiederverwenden können? Definieren Sie einen Standardkonstruktor, der die x-, y- und z-koordinaten mit 0 initialisiert. Ergänzen Sie einen parametrisierten Konstruktor, der x-, y- und z-koordinaten mit den angegebenen Werten initialisiert. Schreiben Sie Getter-Methoden, die die Werte der Koordinaten einzeln zurückliefern Schreiben Sie eine Methode print(), die die Werte aller Koordinaten auf dem Bildschirm ausgibt Schreiben Sie eine Methode double distance(), die den Abstand Ihres Punktes zum Koordinatenursprung berechnet und als Funktionswert zurückliefert. Hinweise Versuchen Sie grundsätzlich Struktur und bereits implementierte Funktionalität der Oberklasse weitestgehend wiederzuverwenden!

Aufgabe 1d - Farbige Punkte Erstellen Sie eine Klasse COLORPOINT, mit deren Hilfe Sie farbige Punkte im zweidimensionalen Raum beschreiben können sowie eine Klasse COLORPOINT3D, um farbige Punkte im dreidimensionalen Raum beschreiben zu können! Definieren Sie einen Standardkonstruktor, der sowohl die Punktkoordinaten als auch die Farbanteile mit 0 initialisiert Ergänzen Sie einen parametrisierten Konstruktor, der die Koordinaten und Farbanteile mit den angegebenen Werten initialisiert. Schreiben Sie eine Methode print(), die die Koordinaten und die Farbanteile auf dem Bildschirm ausgibt Hinweise Objekte der beiden zu erzeugenden Klassen sollen auch über Getter-Methoden für die Koordinaten sowie die distance()-methode verfügen. Versuchen Sie grundsätzlich bereits implementierte Strukturen und Funktionalität weitestgehend wiederzuverwenden!

Aufgabe 1e - Anwendung Sie möchten N beliebige Punkte (Objekte der in den Aufgaben 1b bis 1d erstellten Klassen) in einem Feld mit N Elementen abspeichern. Welchen Typ muss das Feld haben? Schreiben Sie eine Funktion, die für ein solches Feld die durchschnittliche Distanz aller Punkte zum Koordinatenursprung berechnen kann. Erzeugen Sie ein solches Feld mit acht Elementen und füllen Sie es mit je zwei Vertretern der erzeugen Punktklassen, jeweils einmal mit Standardkonstruktor und einmal mit parametrisiertem Konstruktor (mit beliebigen Werten) initialisiert. Geben Sie alle Punkte des Feldes sowie deren Entfernung vom Koordinatenursprung auf dem Bildschirm aus! Berechnen Sie die durchschnittliche Entfernung aller Punktobjekte Ihres Feldes zum Koordinatenursprung und geben Sie diese auf dem Bildschirm aus!

Zusatzaufgabe Schreiben Sie eine Klasse LINE zur Darstellung von Strecken im zweidimensionalen Raum. Eine Strecke werde hierbei durch zwei Punkte der Klasse POINT begrenzt. Realisieren Sie einen Standardkonstruktor, der die Koordinaten der beteiligten Punkte mit 0 initialisiert. Implementieren Sie einen parametrisierten Konstruktor, der die beiden Punkte mit den übergebenen Koordinaten initialisiert. Entwickeln Sie eine Methode length(), die die Länge der Strecke berechnet sowie eine Methode print(), um die Koordinaten der beteiligten Punkte auszugeben. Schreiben Sie eine Klasse COLORLINE zur Darstellung von farbigen Strecken mit gleichem Funktionsumfang. Hinweise Sie dürfen zur Abstandsberechnung die Funktion sqrt() aus <math.h> verwenden Versuchen Sie auch hier, bereits implementierte Strukturen und Funktionalität weitestgehend wiederzuverwenden!

Aufgabe 2a - String Erstellen Sie eine Klasse String, zur Darstellung und Verarbeitung von Zeichenketten und implementieren Sie folgende Methoden: Standardkonstruktor, der einen leeren String initialisiert Kopierkonstruktor Parametrisierter Konstruktor mit C-Zeichenkette als Argument Destruktor Zuweisungsoperator (=), der einem String sowohl eine C-Zeichenkette als auch den Inhalt eines anderen Strings zuweisen kann isequal - Vergleicht den Inhalt zweier Strings und gibt bei Übereinstimmung true zurück und sonst false getstr - liefert den Inhalt des Strings als C-Zeichenkette zurück getlength - liefert die Anzahl der Zeichen des Strings zurück print - gibt den String auf dem Bildschirm aus

Aufgabe 2 String Leiten Sie von der Klasse String eine Klasse UpperString ab, die die gleiche Funktionalität wie String aufweist, in deren Instanzen jedoch alle Kleinbuchstaben durch Großbuchstaben ersetzt sind. Sorgen Sie dafür, dass Zuweisungen und Vergleiche zwischen den Klassen String und UpperString möglich sind. Testen Sie die Funktionalität beider Klassen!