Aufgaben. Objektorientierte Programmierung

Ähnliche Dokumente
Aufgaben. Objektorientierte Programmierung

Greenfoot: Verzweigungen Nicolas Ruh und Dieter Koch

PROGRAMMIEREN. Kapitel 1 Erste Schritte

Greenfoot: Verzweigungen

Kapitel 1: Die ersten Schritte 1

Kapitel 1: Die ersten Schritte Thema: Programmieren Seite: 1

Kapitel 2: Programmfluss steuern

3. Das erste eigene Programm mit Greenfoot: Litte Crab

Vererbung. Generalisierung und Spezialisierung Vererbung und Polymorphismus

Probeklausur: Programmierung WS04/05

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

Aufgabe 1: Quer durch Java (4 Punkte) super abstract abstract protected

Vererbung, Polymorphismus

Objektorientierte Modellierung (1)

1 Klassen und Objekte

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Einführung in das objektorientierte Modellieren und Implementieren mit Java

Konzept und Umsetzung

Objektorientierte Programmierung III

Universität zu Lübeck Institut für Telematik. Prof. Dr. Stefan Fischer

Computeranwendung und Programmierung (CuP)

3. Bedingte Anweisungen

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

Inhaltsverzeichnis. Kurseinheit 1. Kurseinheit 2

1. Teilklausur Gruppe A. Bitte in Druckschrift leserlich ausfüllen!

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH

Die Unified Modeling Language (UML)

Algorithmen und Datenstrukturen 06

Vorlesung Programmieren

Gliederung der Folien

UML (Unified Modelling Language) von Christian Bartl

ÜBUNGEN ZUR OBJEKTORIENTIERTEN MODELLIERUNG

Objektorientierte Programmierung (OOP)

Programmierung Nachklausurtutorium

7. Übung Informatik II - Objektorientierte Programmierung

Fakultät IV Elektrotechnik/Informatik

Algorithmen und Programmierung III WS 05/06

Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung

Polymorphie und UML Klassendiagramme

Objektorientierung. Marc Satkowski 20. November C# Kurs

Einführung in die Programmierung

UNIVERSITÄT SIEGEN Fachbereich 12, Elektrotechnik und Informatik Fachgruppe Betriebssysteme / verteilte Systeme

Intensivübung zu Algorithmen und Datenstrukturen

Klausur Grundlagen der Programmierung

Probeklausur Java Einführung in die Informatik. Wintersemester 2016/2017

OOSE 01 JAVA MIT BLUEJ UND UML-BY-EXAMPLE

7. Arrays. Beim Deklarieren und Initialisieren der Liste bräuchte man oft zueinander sehr ähnlichen Code:

Vererbung P rogram m ieren 2 F örster/r iedham m er K apitel 11: V ererbung 1

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

Programmierung für Mathematik (HS13)

Javakurs für Anfänger

Vorkurs Informatik WiSe 15/16

Beispiel: Zwischen der Oberklasse und der abgeleiteten Klasse besteht eine ist ein Beziehung. Eine abgeleitete Klasse stellt eine Spezialisierung der

Algorithmen und Datenstrukturen Wintersemester 2008/ Übung Abgabe bis , 10:00 Uhr

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus:

124 Kompetenzorientierte Aufgaben im Informatikunterricht

Institut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke

EF Q1 Q2 Seite 1

Realität zu modellieren eine

Einführung in die Programmierung mit BlueJ

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0

Objektorientierung. Objekte

Javakurs für Anfänger

15 Unified Modeling Language (UML) 7 UML und Java Informatik 2 (SS 07) 595

Objektorientierte Programmierung Studiengang Medieninformatik

Institut für Programmierung und Reaktive Systeme 2. Februar Programmieren I. Übungsklausur

Gierhardt. 1 import javakara. JavaKaraProgram ; 3 public class Playit1 extends JavaKaraProgram. 4 { // Anfang von Playit1. 6 void gehezumbaum ( ) 7 {

Institut für Programmierung und Reaktive Systeme 25. Januar Programmieren I. Übungsklausur

Aufgabe 1: Programmieren in Java mit Greenfoot Ballonabschießen

Grundlegende Programmierkonzepte: Abläufe mit Wiederholungen (Schleifen)

Probeklausur Java Einführung in die Informatik. Wintersemester 2014/2015

Software Entwicklung 1

1. Klausur - Probeklausur

Greenfoot Tutorial. german/deutsch, passend zum Greenfoot System, Version 2.1. Autor: Michael Kölling

2. Vererbung und Kapselung

Rückblick: Benutzerdefinierte Datentypen Definition der Klasse Vektor als Container für 2-dimensionale Vektoren

Betreutes Programmieren Vorlesung Informatik II, Blatt 4

III.1 Prinzipien der funktionalen Programmierung - 1 -

Anwendungsentwicklung mit Java. Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie

7. Objektorientierung. Informatik II für Verkehrsingenieure

14. Java Objektorientierung

Große Übung Praktische Informatik 1

Silke Trißl Wissensmanagement in der Bioinformatik. Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: Farbe Hubraum Tank...

6. Globalübung (zu Übungsblatt 8)

14. Java Objektorientierung. Klassen, Vererbung, Kapselung

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

Inhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1

Vererbung I. Kfz Eigenschaften und Methoden der Klasse Kfz Lkw. Pkw. Eigenschaften und Methoden der Klasse Kfz

ABITURPRÜFUNG 2007 LEISTUNGSFACH INFORMATIK

2.13 Vererbung. Rainer Feldmann Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/ Article

Einführung in die Programmierung. (K-)II/Wb17

14. Java Objektorientierung

1. Einführung. Programmieren 1 / Algorithmen und Datenstrukturen. Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt Sommersemester 2010

Pakete Software Entwicklung 1

Programmieren in Java

99 - Struktogramme - 2. Sequenz I

Modularisierung in Java: Pakete Software Entwicklung 1

Probeklausur Java Einführung in die Informatik. Wintersemester 2017/2018

Praktische Informatik 1

Transkript:

Aufgaben Objektorientierte Programmierung

1. Baue in die Klasse Wombat eine Methode turnright() ein, damit sich der Wombat auch im Uhrzeigersinn drehen kann

2. Notiere alle Befehle (Stift und Blatt Papier oder Methode act() in Klasse Wombat), die bewirken, dass der Wombat alle Blätter nacheinander isst

UML - Unified Modelling Language einfach wie bei Greenfoot gut für Übersichten

UML - Unified Modelling Language Buch mittel Variablen Methoden anzahlseiten titel aktuelleseite gibaktuelleseitean

UML - Unified Modelling Language Buch komplex Typen int anzahlseiten String titel int aktuelleseite int gibaktuelleseitean()

UML - Unified Modelling Language Buch Sichtbarkeit + int anzahlseiten + String titel - int aktuelleseite + int gibaktuelleseitean()

Sichtbarkeit Klasse Paketklasse Unterklasse andere Klassen public + + + + protected # # # package ~ ~ private -

3 In einer Obstgärtnerei werden auf Karteikarten zu den Apfelbäumen die Maximalhöhe, die Blütedauer und der Wasserbedarf pro Woche notiert. Des weiteren interessiert den Betrieb, dass der Baum zuerst blühen und dann Obst tragen kann. Erstelle ein Klassendiagramm der Klasse Apfelbaum

4 Gegeben ist das nebenstehende UML- Diagramm. Erkläre anhand dieses Diagramms die Begriffe Klasse, Objekt,Attribut und Methode mit eigenen Worten Grenze insbesondere die Begriffe Klasse und Objekt voneinander ab

5 Gegeben sind die Klassen Personenfahrzeug (PKW), Lastfahrzeug (LKW), Landfahrzeug, Kraftfahrzeug und Motorrad. a) Entwickle ein geeignetes Klassendiagramm, das diese Struktur unter Zuhilfenahme der Vererbung abbildet b) Erweitern Sie die Vererbungshierarchie um Wasser- und Luftfahrzeuge mit diversen Unterklassen c) Erläutern Sie anhand des Beispiels aus Teilaufgabe a) und b) die Spezialisierung und deren Vorteile

6. Zeichne das Klassendiagramm der Klasse Wombat (mittlere Detailstufe) 7. Beschreibe umgangssprachlich, was der Wombat kann (Methoden) und welche Informationen seine Attribute beinhalten 8. Gib an welche Attribute sich durch Anwendung welcher Methoden ändern 9. Erstelle das Klassendiagramm der Klasse Leaf 11. Beschreibe, was dir im Vergleich zur Wombatklasse auffällt

12. Ermittle die Anzahl der Zustände, in denen sich ein Wombat in der gegebenen Wombatwelt befinden kann Die Zustandsermittlung soll sich dabei auf die x- und y-koordinate sowie auf die Drehung beziehen. 13. Erläutere die Beziehung zwischen Klasse, Objekt und Identität 14. Nimm Stellung zur These, dass Objekte unterschiedlicher Klassen nicht den gleichen Zustand besitzen können

Vorteile des objektorientierten Paradigmas Wiederverwertbarkeit Eine Klasse Wombats ermöglicht beliebig viele Objekte dieses Typs.

Vorteile des objektorientierten Paradigmas Aufteilung in überschaubare Einzelteile Das Szenario (die Software) Wombat besteht aus den Klassen World, WombatWorld,Actor, Wombat und Leaf.

Vorteile des objektorientierten Paradigmas Erweiterungsmöglichkeit Wombat erbt von Actor = Wombat erweitert Actor Leaf erbt von Actor = Leaf erweitert Actor WombatWorld erbt von bzw. erweitert World einfache Möglichkeit für eigene Erweiterungen

Vorteile des objektorientierten Paradigmas Sicherheit durch Geheimnisprinzip Erweiterbarkeit ist auch möglich, wenn nur die übersetzte Datei (*.class), der Bytecode, weiter gegeben wird.

Bedingte Anweisung - zweiseitig

Bedingte Anweisung - zweiseitig

Bedingte Anweisung - zweiseitig if (Bedingung) { Anweisungsblock1 } else { Anweisungsblock2 }

Bedingte Anweisung - zweiseitig if (baumvorne()) { turnleft(); move(); turnright(); } else { move(); }

Bedingte Anweisung - einseitig

Bedingte Anweisung - einseitig

Bedingte Anweisung - einseitig if (Bedingung) { Anweisungsblock }

Bedingte Anweisung - einseitig if (baumrechts()) { turnleft(); move(); turnright(); }

Bedingte Anweisung - mehrseitig switch (ausdruck) { case wert1:anweisung1; case wert2:anweisung2; case wert3:anweisung3;... case wertn:anweisungn; default:anweisungsonst; }

Bedingte Anweisung - Java, Greenfoot 15. Programmiere folgende Vorgaben: a. Der Wombat soll sich bewegen, wenn rechts von ihm ein Baum ist. Sonst soll er nichts tun. b. b. Wenn LinksVonWombatBaum dann WombatLinksDrehen sonst WombatRechtsDrehen

UND-Verknüpfung Die UND-Verknüpfung ist nur dann wahr, wenn alle Teilaussagen wahr sind. Aussage a Aussage b a & b WAHR WAHR WAHR WAHR FALSCH FALSCH FALSCH WAHR FALSCH FALSCH FALSCH FALSCH

ODER-Verknüpfung Die ODER-Verknüpfung ist nur dann falsch, wenn alle Teilaussagen falsch sind. Aussage a Aussage b a b WAHR WAHR WAHR WAHR FALSCH WAHR FALSCH WAHR WAHR FALSCH FALSCH FALSCH

16.Was passiert? if (foundleaf() && baumlinks()) { eatleaf(); move(); haufenablegen(); } else { move(); }

17.Was passiert? if (foundleaf() && baumlinks()) { eatleaf(); move(); haufenablegen(); } else { move(); }

18.Was passiert? if (foundleaf() && baumlinks()) { eatleaf(); move(); haufenablegen(); } else { } haufenablegen();

UND/ODER-Verknüpfung 19. Programmiere folgende Vorgabe Ein Wombat bewegt sich eine gerade Reihe von Feldern entlang. Dort liegende Blätter soll er essen, wenn a. links und rechts von ihm ein Baum ist b. links oder rechts von ihm ein Baum ist c. links und rechts von ihm ein Baum oder vor ihm ein Stein ist

Bedingte Anweisung - Java 20.Welche Ausgabe erhält man, wenn der Wert von x zu Beginn x=-1 (x=3; x=5) ist? if (x>0) if (x>4) x=0; else x=10; System.out.println(x);

Bedingte Anweisung - Java 21.Welche Ausgabe erhält man, wenn der Wert von x zu Beginn x=-1 (x=3; x=5) ist? if (x>0) { } else if (x>4) x=0; x=10; System.out.println(x);

NOT-Verknüpfung Die NOT-Verknüpfung ist dann wahr, wenn die (eigentliche) Aussage falsch ist. Aussage a a WAHR FALSCH FALSCH WAHR

22. Gib an, bei welchen Situationen sich der Wombat dreht if (foundleaf() baumlinks() baumvorne() baumrechts()) { turnright(); }

23. Gib an, bei welchen Situationen sich der Wombat dreht if (foundleaf() && baumlinks() && baumvorne() && baumrechts()) { turnright(); }

24. Gib an, bei welchen Situationen sich der Wombat dreht if (foundleaf() && baumlinks() baumvorne() baumrechts()) { turnright(); }

25. Programmiere folgende Vorgabe Ein Wombat soll gerade bis zu einem Baum laufen. Bis dorthin soll er alle Blätter, die sich auf Feldern befinden, die er betritt, essen. Befindet sich kein Blatt auf einem Feld, soll er dort einen Haufen hinterlassen. Stelle den Algorithmus in einem PAP oder Struktogramm dar Implementiere ihn

26. Programmiere folgende Vorgabe Ein Wombat sucht ein Blatt. Es befindet sich in derselben Zeile wie der Wombat. Er muss nur die Bäume umlaufen. Grundaufgabe: Bäume stehen immer einzeln. Erweiterung: Bäume können auch nebeneinander stehen.

27. Programmiere folgende Vorgabe In der Wombatwelt gibt es Rundgänge folgender Art: Jedes Feld hat genau zwei freie Nachbarfelder. Eines davon liegt vor, links oder rechts vom Wombat. Ein Blatt ist im Labyrinth, dieses soll gesucht werden.