• Keine Ergebnisse gefunden

VorbereitendeAufgaben Wintersemester2017/18 Besprechung:18.–22.12.2017(KW51) Einf¨uhrungindieInformatikf¨urLogWiIngsundWiMas ¨Ubungsblatt9 Praktikumzu Fakult¨atf¨urInformatikLehrstuhl14LarsHildebrand

N/A
N/A
Protected

Academic year: 2021

Aktie "VorbereitendeAufgaben Wintersemester2017/18 Besprechung:18.–22.12.2017(KW51) Einf¨uhrungindieInformatikf¨urLogWiIngsundWiMas ¨Ubungsblatt9 Praktikumzu Fakult¨atf¨urInformatikLehrstuhl14LarsHildebrand"

Copied!
5
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Fakult¨at f¨ur Informatik Lehrstuhl 14 Lars Hildebrand

Praktikum zu

Einf¨ uhrung in die Informatik f¨ ur LogWiIngs und WiMas Wintersemester 2017/18

Ubungsblatt 9¨

Besprechung:

18.–22.12.2017 (KW 51)

Vorbereitende Aufgaben

Aufgabe 9.1: B¨aume

In dieser Aufgabe sollen Sie sich mit B¨aumen besch¨aftigen.

a) Quizfragen:

• Wie nennt man den Knoten ohne Vorg¨anger?

• Wie nennt man einen Knotenx, der direkter Nachfolger eines Knoten y ist?

• Wie nennt man einen Knoten ohne Nachfolger?

b) Gegeben sei ein bin¨arer Baum in Form eines Arrays:

5 3 7 2 4 9 8

Geben Sie die grafische Repr¨asentation des Baumes an:

c) Handelt es sich bei diesem Baum um einen Heap? Wenn nein, warum nicht?

Ubungsblatt 9¨ Seite 1 von 5

(2)

Pr¨ asenzaufgaben

Aufgabe 9.2: Heaps

In dieser Aufgabe sollen Sie ihre Kenntnisse ¨uber Heaps anwenden, um eine sortierte Folge von Zahlen auszugeben.

Leeren Sie den angegebenen Heap vollst¨andig, indem Sie, wie in der Vorlesung (Kapitel 5.2) beschrieben, das jeweils kleinste Element entfernen.

Geben Sie eine Baumrepr¨asentation des Heaps nach jeder Extraktion des Minimums und nach jedem Tausch w¨ahrend der Heapify-Operation an:

1

6

9 8

3

5 4

Ubungsblatt 9¨ Seite 2 von 5

(3)

Aufgabe 9.3: Einf¨uhrung in die Objektorientierung

In dieser Aufgabe sollen Sie ein Fahrzeug mit Hilfe objektorientierter Programmierung modellieren.

Beantworten Sie zuvor die folgende Frage:

Mit welchem Schl¨usselwort k¨onnen neue Objekte mit ihrem Konstruktor instanziiert werden?

Gegeben ist die Klasse Vehicle. Diese beschreibt ein beliebiges Fahrzeug. Erg¨anzen Sie die vermerk- ten Stellen im Quellcode der Klasse, indem Sie den Inhalt zuerst in einer eigenen Quelldatei im Paketblatt09 ¨ubernehmen und dann anpassen.

1 package blatt09;

2

3 public class Vehicle { 4

5 private int wheels;

6 private String fuel;

7

8 public Vehicle(int inWheels, String inFuel) { 9 wheels = inWheels;

10 /* Restliche Attribute Ergaenzen */

11 }

12

13 public int getWheels() {

14 /* Ergaenzen: Die Anzahl der Reifen zurueckgeben */

15 }

16

17 public void print() {

18 /* Ergaenzen: Den verwendeten Treibstoff und 19 * die Anzahl der Reifen ausgeben */

20 }

21 }

Ubungsblatt 9¨ Seite 3 von 5

(4)

Aufgabe 9.4: Klassen selbst definieren

In dieser Aufgabe sollen Sie PKW mit Hilfe objektorientierter Programmierung modellieren.

• Erstellen Sie eine Klasse namens Carim Paket blatt09. Diese repr¨asentiert einen PKW.

• Deklarieren Sie die String-Attribute manufacturer und model sowie ein Integer-Attribut namens horsePower, die Hersteller, Modell und die Pferdest¨arken des Motors repr¨asentieren sollen.

• Deklarieren Sie folgende Konstante:

public static final double WATT_PER_HORSEPOWER = 735.5;

• Schreiben Sie einen ¨offentlichen Konstruktor, der drei Parameter f¨ur die drei Attribute entgegen nimmt und diese auf die ¨ubergebenen Werte setzt.

• Schreiben Sie eine ¨offentliche Methode namensgetPower(), die die Pferdest¨arken des Autos in Watt umrechnet und alsdouble zur¨uckgibt.

• Schreiben Sie eine Methode namens print(), die nichts zur¨uckgibt und den Hersteller, das Modell und die Leistung ausgibt. Als Beispiel kann die Ausgabe folgendermaßen aussehen:

VW-Bus von Volkswagen mit 18387.5 Watt Leistung

Aufgabe 9.5: Klassentest

In dieser Aufgabe sollen Sie das Testen und die Verwendung von Klassen in separaten Testklassen erproben.

Bisher sollten Sie in keiner der erstellten Klassen eine main-Methode geschrieben haben. Entspre- chend konnten Sie Ihren Quellcode noch nicht ausf¨uhren.

• Schreiben Sie eine KlasseVehicleTest im Paket blatt09mit einermain-Methode.

• Deklarieren und initialisieren Sie in der main-Methode folgende Objekte:

– Drei Fahrzeuge mit den Namen

”bike“,

”plane“,

”spaceship“, der Reifenzahl 2, 3 und 0 sowie der Treibstoffart

”feet“,

”gasoline“ und

”deuterium“

– Drei Autos, zwei davon vom Hersteller

”Ford“ und den Modellen

”Fiesta“ und

”Model T“

und einen

”Toyota Aygo“. Denken Sie sich interessante Werte f¨ur die Pferdest¨arke und die Variablenbezeichner aus.

• Rufen Sie die print()-Methoden der Objekte auf.

• Lassen Sie die Leistung der Motoren in Watt berechnen und geben Sie diese aus.

Ubungsblatt 9¨ Seite 4 von 5

(5)

Erg¨ anzende Aufgaben

Aufgabe 9.6: Vergleichende Methoden

In dieser Aufgabe sollen Sie Methoden programmieren, die die bisher geschriebenen Objekte miteinander vergleichen k¨onnen.

Erg¨anzen Sie die beiden Klassen Vehicleund Carum jeweils eine ¨offentliche Methoden mit dem Namencompare und dem R¨uckgabetyp int. Die Methoden sollen jeweils ein Objekt des gleichen Typs entgegennehmen und das Objekt, auf dem diecompare-Methode aufgerufen wurde mit dem

¨

ubergebenen Objekt vergleichen:

• Das Vergleichskriterium f¨ur Vehikel ist ihre Reifenzahl.

• Das Vergleichskriterium f¨ur Autos ist ihre Motorleistung.

• Die Methoden sollen einen Wert gr¨oßer 0 zur¨uckgeben, wenn das aufrufende Objekt mehr Reifen bzw. Leistung hat, als das andere.

• Die Methoden sollen einen Wert kleiner 0 zur¨uckgeben, wenn das aufrufende Objekt weniger Reifen bzw. Leistung hat als das andere.

• Die Methoden sollen 0 zur¨uckgeben, wenn die Objekte gleich viele Reifen bzw. Leistung haben.

Ubungsblatt 9¨ Seite 5 von 5

Referenzen

ÄHNLICHE DOKUMENTE

In dieser Aufgabe wollen wir uns mit der Implementierung einer Wiederholung mit Hilfe einer while-Schleife vertraut machen. Daf¨ ur betrachten wir die Collatz-Folge.. b) Wir wollen

Schreiben Sie eine Funktion brakingDistance vom Typ double, die die Sensorwerte meters und seconds als Parameter nimmt und den Bremsweg in Metern zur¨ uckgibt. Geben Sie

Wenn Sie einen Scanner verwenden wollen, m¨ ussen Sie eine neue Variable vom Typ Scanner anlegen und mit der.. Anweisung new

” ist ein“-Beziehung zueinander. Kopieren Sie die Quellcode-Dateien der beiden Klassen in das Paket blatt11 und ¨ andern Sie die Klasse Car so ab, dass sie von Vehicle erbt.

a) Implementieren Sie eine Methode remove, die einen Index n entgegennehmen und das n-te Element aus der Liste entfernen soll. Dabei soll der Wert des entfernten Objektes

• Deklarieren und initialisieren Sie eine int-Variable mit dem Namen collatz mit einem beliebigen, positiven Wert als Startwert der Collatz-Folge.. • Implementieren Sie

a) Da das Umrechnen von Geschwindigkeiten eine sehr allgemeine Aufgabe ist, die an vielen Stellen n¨ utzlich sein kann, wollen wir eine Funktion schreiben, die diese Umrechnung f¨

Diese Seite soll Ihnen eine ¨ Ubersicht ¨ uber das Einlesen von Eingaben ¨ uber die Tastatur und das Importieren von anderen Programmen in Ihr eigenes Programm geben.. Sie k¨ onnen