Aufgaben. Objektorientierte Programmierung

Ähnliche Dokumente
Aufgaben. Objektorientierte Programmierung

PROGRAMMIEREN. Kapitel 1 Erste Schritte

Kapitel 1: Die ersten Schritte 1

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

Greenfoot: Verzweigungen Nicolas Ruh und Dieter Koch

Greenfoot: Verzweigungen

Kapitel 2: Programmfluss steuern

3. Das erste eigene Programm mit Greenfoot: Litte Crab

Probeklausur: Programmierung WS04/05

Objektorientierte Programmierung

Vererbung. Generalisierung und Spezialisierung Vererbung und Polymorphismus

3. Bedingte Anweisungen

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. Java 7. Markus Reschke

124 Kompetenzorientierte Aufgaben im Informatikunterricht

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH

UML / Fujaba. Generierung von Java-Quellcode aus UML-Diagrammen. Marcel Friedrich

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

Programmierung für Mathematik (HS13)

Einführung in die Programmierung mit BlueJ

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

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

Computeranwendung und Programmierung (CuP)

14. Java Objektorientierung. Klassen, Vererbung, Kapselung

1 Klassen und Objekte

ÜBUNGEN ZUR OBJEKTORIENTIERTEN MODELLIERUNG

1. Klausur - Probeklausur

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

Objektorientierte Programmierung III

Aufgabe 1: Programmieren in Java mit Greenfoot Ballonabschießen

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

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

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

Intensivübung zu Algorithmen und Datenstrukturen

Inhaltsverzeichnis. Kurseinheit 1. Kurseinheit 2

Javakurs für Anfänger

Vorkurs Informatik WiSe 15/16

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

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

Vererbung, Polymorphismus

Objektorientierung. Objekte

Objektorientiertes Programmieren (Java)

Betreutes Programmieren Vorlesung Informatik II, Blatt 4

Aufgabe: Programmieren in Java mit Greenfoot Herzchen-Pong (65 Punkte)

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

Javakurs für Anfänger

Nachholklausur zur Vorlesung: Einführung in die objektorientierte Programmierung mit Java WS1415

Objektorientierte Modellierung (1)

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

4.4 Imperative Algorithmen Verzweigung und Iteration

1 Aufgaben 1.1 Objektorientiert: ("extended-hamster") Sammel-Hamster

Welche Informatik-Kenntnisse bringen Sie mit?

14. Java Objektorientierung

Languages and Tools for Object-Oriented Development Klausur Wintersemester 2007/2008

14. Java Objektorientierung

Java Ablaufsteuerung (Beispiele)

1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays)

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

Einstieg in die Informatik mit Java

Schwerpunkte. 12. Vom Entwurf zur Implementation. Entwicklungsprozess des Programms 'Maus im Labyrinth' Vom Problem zum Programm: Maus im Labyrinth

Konzept und Umsetzung

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

Girls Day 2017 Programmierung

Fakultät IV Elektrotechnik/Informatik

9 Türme von Hanoi Bewege Stapel von links nach rechts. In jedem Zug darf genau ein Ring bewegt werden. Es darf nie ein größerer auf einen kleine

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

Anleitung Anleitung Anleitung Anleitung Anleitung Anleitung Anleitung Anleitung Anleitung

Realität zu modellieren eine

Objektorientierte Programmierung (OOP)

Universität Augsburg, Institut für Informatik Sommersemester 2001 Prof. Dr. Martin Ester 16. Juli Klausur

Wuerfel - augenzahl: int + Wuerfel() + wuerfeln() + gibaugenzahl(): int

Ersetzbarkeit und Verhalten

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

Gliederung. n Teil I: Einleitung und Grundbegriffe. n Teil II: Imperative und objektorientierte Programmierung

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

Abschnitt 5. Grundlagen der funktionalen & imperativen Programmierung

III.1 Prinzipien der funktionalen Programmierung - 1 -

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

Programmierung Nachklausurtutorium

Fragenkatalog ESOP WS 16/17

Algorithmen und Datenstrukturen Sommersemester Übung Abgabe bis , 10:00 Uhr

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

7. Übung Informatik II - Objektorientierte Programmierung

Die Welt in unseren Programmen false -1.4E-12. false. Klassen

Einstieg in die Informatik mit Java

Client-Server-Beziehungen

Objektorientierung. Marc Satkowski 20. November C# Kurs

Java Anweisungen und Ablaufsteuerung

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

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

Grundlagen. Übungen. Klassen, Attribute, Assoziationen, Methoden. Grundlagen_Klassen_Attribute_Assoziationen_Methoden.odt. Christine Janischek

ABITURPRÜFUNG 2007 LEISTUNGSFACH INFORMATIK

Die Unified Modeling Language (UML)

Transkript:

Aufgaben Objektorientierte Programmierung

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

2. Notiere alle Befehle (Stift und Blatt Papier oder Methode act() in Klasse Hase), die bewirken, dass der Hase alle Möhrchen nacheinander isst

3. Gegeben ist folgende Methode: /** * Guck mal, liegt Steinchen da vor mir? */ public boolean steinvorne() { if (richtung==1 && this.getoneobjectatoffset(1, 0, Stein.class)=null) //Osten return true; if (richtung==0 && this.getoneobjectatoffset(0, -1, Stein.class)=null) //Norden return true; if (richtung==2 && this.getoneobjectatoffset(0, 1, Stein.class)=null) //Sueden return true; if (richtung==3 && this.getoneobjectatoffset(-1, 0, Stein.class)=null) //Westen return true; return false; } Entwickle daraus die Methoden steinlinks und steinrechts

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

UML - Unified Modelling Language - mittel + Variablen + Methoden

UML - Unified Modelling Language - komplex +Typen + Sichtbarkeit

4. 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

5. 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

6. 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

7. Zeichne das Klassendiagramm der Klasse Wombat (mittlere Detailstufe) 8. Beschreibe umgangssprachlich, was der Wombat kann (Methoden) und welche Informationen seine Attribute beinhalten 9. Gib an welche Attribute sich durch Anwendung welcher Methoden ändern 10. 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 Hase soll sich bewegen, wenn rechts von ihm ein Stein ist. Sonst soll er nichts tun. b. Wenn LinksVonHaseEinStein dann HaseLinksDrehen sonst HaseRechtsDrehen

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 (karottegefunden() && steinlinks()) { essekarotte(); laufe(); haufenablegen(); } else { laufe(); }

17.Was passiert? if (karottegefunden() && steinlinks()) { essekarotte(); laufe(); haufenablegen(); } else { laufe(); }

18.Was passiert? if(karottegefunden() && steinlinks()) { essekarotte(); laufe(); haufenablegen(); } else { haufenablegen(); }

UND/ODER-Verknüpfung 19. Programmiere folgende Vorgabe Ein Hase bewegt sich eine gerade Reihe von Feldern entlang. Dort liegende Möhren soll er essen, wenn a. links und rechts von ihm ein Stein ist b. links oder rechts von ihm ein Stein ist c. links und rechts von ihm ein Stein oder vor ihm eine Tüte Pommes 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 (karottegefunden() steinlinks() steinvorne() steinrechts()) { rechtsdrehen(); }

23. Gib an, bei welchen Situationen sich der Wombat dreht if (karottegefunden() && steinlinks() && steinvorne() && steinrechts()) { rechtsdrehen(); }

24. Gib an, bei welchen Situationen sich der Wombat dreht if (karottegefunden() && steinlinks() steinvorne() steinrechts()) { rechtsdrehen(); }

25. Programmiere folgende Vorgabe Ein Hase soll gerade bis zu einem Stein laufen. Bis dorthin soll er alle Karotten, die sich auf Feldern befinden, die er betritt, essen. Befindet sich keine Karotte 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 Hase sucht eine Möhre. Sie befindet sich in derselben Zeile wie der Hase. Er muss nur die Steine umlaufen. Grundaufgabe: Die Steine liegen immer einzeln. Erweiterung: Steine können auch nebeneinander liegen.

27. Programmiere folgende Vorgabe In der Hasenwelt gibt es Rundgänge folgender Art: Jedes Feld hat genau zwei freie Nachbarfelder. Eines davon liegt vor, links oder rechts vom Hasen. Eine Möhre ist im Labyrinth, diese soll gesucht und gefuttert werden.