Technische Dokumentation Roboter

Größe: px
Ab Seite anzeigen:

Download "Technische Dokumentation Roboter"

Transkript

1 Technische Dokumentation Roboter

2 Inhaltsverzeichnis 1 EINLEITUNG DIE ROBOTER LOGIK SCHNITTSTELLE AUF DER SIMULATION ROBOTFACTORY MAP::ROBOT SCHNITTSTELLE ZUM RCX ÜBER LEJOS LEJOSRUNTIME LIGHTSENSORLISTENER DIE EINZELNEN WESEN WESEN 1: STREUNEN WESEN 2A: FURCHT WESEN 2B: AGRESSION WESEN 3A/B: LIEBE WESEN 4A: GESCHMACK WESEN 4B: WERTUNG WEITERE WESEN AUS BRAITENBERG VERHALTEN DER WESEN IN DER REALITÄT LICHTSENSOREN MOTOREN VORAUSSETZUNGEN SOURCE CODE ANPASSEN SOURCE CODE MIT LEJOS KOMPILIEREN, LINKEN UND ÜBERTRAGEN Seite 2/11

3 1 Einleitung Zentrale Anforderung an das Projekt war die Implementation unterschiedlichsten Roboter Logiken. Der Source Code für diese Programme müsse sowohl in der Simulation wie auch auf dem RCX Roboter lauffähig sein. 2 Die Roboter Logik Die Logik, welche den Roboter auf die Sensor Werte reagieren lässt und die Motoren steuert, musste unabhängig von der Simulation oder vom RCX programmiert werden. So kann sichergestellt werden, das die Logik universell einsetzbar ist. «interface» Robot::IRobot ~ GetMotorSensor(int) : int[] Eine Roboterlogik muss das Interface IRobot implementieren, welches folgende Methode vorschreibt: int[] GetMotorSensor( int[] sensorvalues ) Als Parameter wird ein Array mit den von den Sensoren erhaltenen Werten übergeben. Auf Basis dieser Angaben kann die Logik beschliessen, mit welcher Geschwindigkeit die Motoren angesteuert werden sollen. Die neuen Werte für die Motoren werden wiederum als int Array zurückgegeben. Da dieser Programmteil auch auf dem RCX laufen soll, muss der Speicherverbrauch minimal gehalten werden. Primär muss vermieden werden, unnötige Objekte zu instanzieren oder ein Array immer neu zu definieren. 3 Schnittstelle auf der Simulation In die Simulation können mehrere Roboter geladen werden, welche von der oben erwähnten Logik gesteuert werden. Object3D Map::Robot Robot:: RobotFactory 3.1 RobotFactory Die einzelnen Dateien mit der kompilierten Roboterlogik liegen als.class Datei in einem bestimmten Verzeichniss. Dieses kann über die Datei Setting.ini festgelegt werden. Mit der Methode GetRobots werden alle verfügbaren Roboter zurückgegeben und mit GetRobot eine Instanz einer konkreter Logik erzeugt. #robot «interface» Robot::IRobot 3.2 Map::Robot Stellt ein Roboter auf der Karte dar. In dieses Objekt kann eine beliebige Logik geladen werden, welche danach das Verhalten in der Simulation bestimmt. Die Simulation berechnet bei jedem Zeitabschnitt die Werte der Sensoren. Diese werden über das Map Objekt an die Logik übergeben. Die dort errechneten Motorgeschwindigkeiten auswertet und entsprechend die Position des Roboters auf der Karte verändert Seite 3/11

4 4 Schnittstelle zum RCX 4.1 Über Lejos Lejos ist ein Betriebssystem für den Lego Mindstorms RCX Baustein. Damit ist es möglich, Java Programme auf dem Lego Controller auszuführen. Mit Lejos wird ein Framework mitgeliefert, welches die Interaktion mit der Lego Hardware ermöglicht. Damit können die Werte der Sensoren gelesen und die Motoren angesteuert werden. LejosRuntime SensorListener LightSensorListener robot «interface» Robot::IRobot Mit einem speziellen Lejos Compiler und zugehörigem Linker werden Binary erstellt, die auf dem RCX lauffähig sind. Obwohl fast alle Java Funktionen zur Verfügung stehen, gibt es auf dem Lego Roboter eine gewichtige Einschränkung: Der geringe Speicher. Um entsprechende Probleme zu vermeiden, sollte man in den Methoden möglichst wenige Variablen definieren und statt dessen auf Objekt Variablen zugreifen. Ansonsten wird der Lego Roboter recht schnell mit einer MemoryException abstürzten. 4.2 LejosRuntime Diese Klasse enthält die Main() Methode, welche beim Starten des RCX aufgerufen wird. Dort werden die Sensoren initialisiert und die LightSensorListener für die beiden Lichtsensoren erstellt. 4.3 LightSensorListener Bei jeder Veränderung der Sensor Werte wird in der Klasse LightSensorListener die Methode statechanged aufgerufen. Wenn dies geschieht, werden die Werte an die Roboterlogik übergeben und die berechneten Motorgeschwindigkeiten an die entsprechenden Lego Antriebe übergeben Seite 4/11

5 5 Die einzelnen Wesen Teil der Aufgabe war die Implementieren der im Buch Künstliche Wesen 1 von Valentin Braitenberg beschriebenen Wesen. Soweit dies möglich war wurden diese Wesen in der von uns definierten Logik umgesetzt. Damit kann deren Verhalten sowohl in der Simulation wie auch direkt auf dem Lego Roboter beobachtet werden. 5.1 Wesen 1: Streunen Hier wird der Wert eines Sensors auf alle Motoren übertragen. Das bedeutet, der Roboter fährt immer gerade aus; je näher am Licht desto schneller. Robots:: Wesen1Streunen motorvalues[0] = sensorvalues[0]; motorvalues[1] = sensorvalues[0]; motorvalues[2] = sensorvalues[0]; 5.2 Wesen 2a: Furcht Robots:: Wesen2aFurcht Bei diesem Wesen werden die Werte des linken Sensors direkt an den linken Motor weitergegeben. Das gleiche passiert mit dem rechten Sensor, welcher die Werte an den rechten Motor weiter gibt. Wenn nun der rechte Sensor mehr Licht wahrnimmt, dann dreht der rechte Motor entsprechend schneller. Die folge ist, das der Roboter nach links abdreht und sich vom Licht entfernt. Dieses Verhalten kann als Furcht interpretiert werden. motorvalues[0] = sensorvalues[0]; motorvalues[1] = sensorvalues[1]; 5.3 Wesen 2b: Agression Dieses Wesen funktioniert im Prinzip identisch wie das letzte Wesen Furcht, nur das die Werte der Sensoren an den jeweils gegenüber liegenden Motor gesendet werden. Wenn nun der Sensor auf der linken Seite mehr Licht wahrnimmt, läuft der rechte Motor schneller. Hier dreht der Roboter also zum Licht, bis er es überfährt. Hier legt der Motor also ein aggressives Verhalten an den Tag Robots:: Wesen2bAgression motorvalues[0] = sensorvalues[1]; motorvalues[1] = sensorvalues[0]; 1 airs.sourceforge.net/download/braitenberg.pdf Seite 5/11

6 5.4 Wesen 3a/b: Liebe In den beiden Wesen Liebe sind die Sensoren identisch mit dem Motoren verbunden wie beim Wesen 2. Der Unterschied ist der, das sich hier die Motoren verlangsamen, je höher der Lichtwert ist. Umgekehrt werden sie schneller, je dunkler die Umgebung wird. Beim Wesen 3a werden die Sensoren wieder direkt zum Motor auf der jeweiligen Seite gekoppelt. Die Folge ist, dass der Roboter direkt auf die Lichtquelle zusteuert. Je näher er ihr kommt, desto langsamer wird er bis er schliesslich unmittelbar davor stehen bleibt. Bei der Variante 3b sind die Sensoren wieder gekreuzt mit den Motoren verbunden. Das Wesen wird damit zwar nahe an das Licht heran fahren, sich dann aber wieder abwenden und auf die Suche nach einer anderen, evtl. stärkeren Quelle gehen. Das heisst, beide Wesen haben zwar gerne Licht, während das erste aber in endloser Liebe davor stehen bleibt, macht sich das Zweite auf die Suche nach etwas anderem. motorvalues[0] = sensorvalues[1]; motorvalues[1] = sensorvalues[0]; // Wie Wert umkehren motorvalues[0] = maxsensorvalue - motorvalues[0]; motorvalues[1] = maxsensorvalue - motorvalues[1]; Robots:: Wesen3aLiebe Robots:: Wesen3bLiebe Seite 6/11

7 5.5 Wesen 4a: Geschmack Die Wesen, die wir bis jetzt gesehen haben, wurden stets durch eine lineare Abhängigkeit zwischen den Sensor Werten und dem Motor beschrieben. In diesem Wesen lassen wir die Motoren wie bei Wesen 2a mit zunehmender Lichtintensität schneller laufen. Allerdings nur bis zu einem bestimmten Grenzwert, ab da werden sie wieder langsamer. Je nach Grenzwert und Anfahrtsweg auf die Lichtquelle können sich verschiedene Kurven ergeben: // Wir brauchen in diesem Beispiel nur einen Sensor. if (sensorvalues == null sensorvalues.length < 2) // Der Wert des Sensors wird linear umgerechnet motorvalues[0] = sensorvalues[1]; motorvalues[1] = sensorvalues[0]; // Wie Wert umkehren if (motorvalues[0] > grenzwert) motorvalues[0] = grenzwert - (motorvalues[0] - grenzwert); if (motorvalues[1] > grenzwert) motorvalues[1] = grenzwert - (motorvalues[1] - grenzwert); // Die Motorwerte sollte aber nicht negativ werden... if (motorvalues[0] < 0) motorvalues[0] = 0; if (motorvalues[1] < 0) motorvalues[1] = 0; // Alle Motoren sollen mit der gleichen Geschwindigkeit fahren Seite 7/11

8 5.6 Wesen 4b: Wertung Wesen 4b ändert sein Verhalten im Gegensatz zu 4a Sprunghaft. Zum Beispiel bewegen sich die Motoren erst, wenn ein gewisser Start Wert erreicht wurde und hören bereits bei einem bestimmten Grenzwert wieder auf. In unserem Wesen haben wir die Variante implementiert, welche erst ab einer gewissen Sensor Stärke reagiert: // Wir brauchen in diesem Beispiel nur einen Sensor. if (sensorvalues == null sensorvalues.length < 2) // Der Wert des Sensors wird linear umgerechnet, mit // einem bestimmten Grenzwert motorvalues[0] = sensorvalues[1] - grenzwert; motorvalues[1] = sensorvalues[0] - grenzwert; // Die Motorwerte sollte aber nicht negativ werden... if (motorvalues[0] < 0) motorvalues[0] = 0; if (motorvalues[1] < 0) motorvalues[1] = 0; // Alle Motoren sollen mit der gleichen Geschwindigkeit fahren 5.7 Weitere Wesen aus Braitenberg Valentin Braitenberg erwähnt in seinem Buch noch mehrere weitere Wesen, welche gegenüber den bereits erwähnten nicht minder interessant sind. Leider benötigen diese mehr Lichtsensoren als die zwei von uns zur Verfügung gestellten. Zudem kommen sofort weitere Wahrnehmungen dazu, wie zum Beispiel Farbe oder auch Gerüche, welche weder der Lego Roboter noch die Simulation ohne weiteres interpretieren kann. Aus diesen Gründen haben wir nur die in diesem Dokument erwähnten Wesen implementiert Seite 8/11

9 6 Verhalten der Wesen in der Realität Das Ziel der Projektes war, die erstellten Wesen sowohl in der Simulation wie auch in der Realität auf einem Lego Roboter laufen zu lassen. Während letzteres technisch zwar kein Problem war, stellten sich die Resultate aber als im höchsten Grade ernüchternd heraus. Der Hemmfuss war die unzulängliche Hardware auf dem Lego Roboter, welche in diverser Hinsicht zu ungenau war. 6.1 Lichtsensoren Die Lichtsensoren lieferten zu ungenaue Resultate, um diese im Sinne der Aufgabe verwerten zu können. Primär wurden diese Lego Sensoren entworfen, um eine Weisse Linie auf schwarzem Grund zu erkennen. Bei der Lokalisierung eines mit der Taschenlampe geworfenen Lichtkegels scheiterte sie jedoch kläglich. Eine Reaktion war erst erkennbar, wenn die Taschenlampe direkt in die Sensoren gehalten wurde. 6.2 Motoren Die Lejos API kann einen Lego Motor zwar mit sieben verschiedenen Geschwindigkeiten ansprechen, was aber in der Realität keinen Unterschied zeigte. Tatsächlich lässt sich der Motor nur binär ansprechen; entweder läuft er oder dann eben nicht. Da aber sämtliche Wesen auf eine feine Abstufung der Geschwindigkeit angewiesen sind, war eine Adaption auf den Lego Roboter von Anfang an zum Scheitern verurteilt. Weiter mussten wir feststellten, das zwei Motoren mit Identischer Listung nicht mit der gleichen Gewindigkeit laufen. So fuhr der Roboter mit der Logik des Wesens 1 nach kurzer Zeit eine deutliche Kurve, obwohl dieses Wesen beide Motore gleich ansteuert und somit nur geradeaus fahren kann Seite 9/11

10 7 Anleitungen: Wesen auf dem RCX In diesem Kapitel wird beschrieben, wie ein bestimmtes Wesen auf dem RCX ausgeführt werden kann. 7.1 Voraussetzungen Folgende Anforderungen müssen erfüllte sein, damit die nachfolgende Anleitung reibungslos funktioniert: Der Source Code vom J Airs Projekt muss vorhanden sein Die Lejos Umgebung muss installiert und konfiguriert sein. Der Lego Tower für die Übermittlung des Programmes an den RCX muss angeschlossen und konfiguriert sein Auf dem Lego Roboter müssen zwei Lichtsensoren und zwei Motoren an den jeweils zwei ersten Steckplätzen angeschlossen sein. 7.2 Source Code anpassen In der Java Datei LejosRuntime im Package ch.jairs.lejosruntime muss die Logik definiert werden, welche auf den RCX übertragen werden soll. Die erste Zeile der Methode Main() muss wie folgt angepasst werden: // Roboter-Logik erstellen <RoboterName> robot = new <RoboterName>(); wobei <RoboterName> durch den Name der zu ladenden Logik ersetzt werden muss, also zum Beispiel: // Roboter-Logik erstellen Wesen2bAgression robot = new Wesen2bAgression(); 7.3 Source Code mit Lejos kompilieren, linken und übertragen Im Verzeichniss, welches die Datei LejosRuntime.java enthält, muss folgender Befehl ausgeführt werden um den Source zu kompilieren: lejosc../robot/irobot.java../robots/wesen2bagression.java LightSensorListener.java LejosRuntime.java Wir wechseln nun in Root Verzeichniss des J Airs Projektes und geben dort folgenden Befehl ein lejoslink.bat -o ch\jairs\lejosruntime\lejosruntime.bin ch.jairs.lejosruntime.lejosruntime Damit werden die benötigten Dateien gelinkt und es wird ein entsprechendes Binary erstellt, welches den auf dem RCX lauffähigen Code enthält. Abschliessend können wir mit folgendem Befehl die erstellt Datei auf den Lego Roboter übertragen: Seite 10/11

11 lejosdl.bat LejosRuntime.bin Seite 11/11

Informatik Projekt J AIRS. Laborjournal. Julien Studzinski / Stefan Urech / Gilles Zimmermann

Informatik Projekt J AIRS. Laborjournal. Julien Studzinski / Stefan Urech / Gilles Zimmermann Laborjournal Julien Studzinski / Stefan Urech / Gilles Zimmermann 1 Initialisieren des Projekts 11.11.2004 alle Abgeschlossen Ausdrucken der nötigen Unterlagen, erstellen des Webauftritts 2 Einarbeiten

Mehr

Inhaltsverzeichnis. 1 Anfang 2. 2 Erste Schritte 3. 3 Schleifen repeat while(true) Die if()-schleife... 5.

Inhaltsverzeichnis. 1 Anfang 2. 2 Erste Schritte 3. 3 Schleifen repeat while(true) Die if()-schleife... 5. Inhaltsverzeichnis 1 Anfang 2 2 Erste Schritte 3 3 Schleifen 4 3.1 repeat...................................... 4 3.2 while(true).................................... 4 3.3 Die if()-schleife.................................

Mehr

Spaichinger Entwicklungsumgebung 1.1 Zur C-Programmierung und Simulation von ct-bots (Fahrrobotern)

Spaichinger Entwicklungsumgebung 1.1 Zur C-Programmierung und Simulation von ct-bots (Fahrrobotern) Bedienungsanleitung Spaichinger Entwicklungsumgebung 1.1 Zur C-Programmierung und Simulation von ct-bots (Fahrrobotern) Freeware für Microsoft Windows Dr. Markus Ziegler www.spaichinger-schallpegelmesser.de

Mehr

Mess- und Regelungstechnik

Mess- und Regelungstechnik Mess- und Regelungstechnik Professor: Dr. Löffler Mang Semester: WS 00/01 Inhaltsverzeichnis 1. Thema 2. Das Mind- Storm- System 2.1 Der RCX 2.2 Die Sensoren 2.2.1 Der Tastsensor 2.2.2 Der Lichtsensor

Mehr

Spaichinger Entwicklungsumgebung 1.2 Zur C-Programmierung und Simulation von ct-bots (Fahrrobotern)

Spaichinger Entwicklungsumgebung 1.2 Zur C-Programmierung und Simulation von ct-bots (Fahrrobotern) Bedienungsanleitung Spaichinger Entwicklungsumgebung 1.2 Zur C-Programmierung und Simulation von ct-bots (Fahrrobotern) Freeware für Microsoft Windows Dr. Markus Ziegler www.spaichinger-schallpegelmesser.de

Mehr

Pacman. Projektbeschreibung. Aus was wir Pacman nachgebaut haben. Anpassungen and die physikalische Welt, oder wie wir das

Pacman. Projektbeschreibung. Aus was wir Pacman nachgebaut haben. Anpassungen and die physikalische Welt, oder wie wir das Pacman Projektbeschreibung Übersicht: Unser Projekt Was Pacman eigentlich ist. Aus was wir Pacman nachgebaut haben. Anpassungen and die physikalische Welt, oder wie wir das Pacman-Spiel mit Lego implementiert

Mehr

Pflichtenheft. Projektarbeit. RoboSim (NXT)

Pflichtenheft. Projektarbeit. RoboSim (NXT) Pflichtenheft Projektarbeit RoboSim (NXT) Projektarbeit 7301: RoboSim, Lego-Roboter, Aufgabe 1 Version 1.0 a Teilnehmer: Philipp Hoppen (hoppp1), Samuel Zehnder (zehns1), André Wittwer (witta3) Projektbetreuer

Mehr

Messungen mit dem Lichtsensor

Messungen mit dem Lichtsensor Messungen mit dem Lichtsensor Für die Programmierung eines Roboters, der einer Linie folgt, brauchen wir für die drei Farben die Helligkeitswerte, die dein Lichtsensor jeweils ausgibt. Arbeite dazu folgende

Mehr

Seite 1/6. ModellFerienPass.pdf).

Seite 1/6. ModellFerienPass.pdf). Seite 1/6 NXC Programme Legomodell Am Ende dieser Doku findest ein Bild des Modells, das im Kurs eingesetzt wird. Alle Beispielprogramme basieren auf diesem Modell. Ein Anleitung zum Bau ist auf der CD

Mehr

Programmieren mit RoboLab Bauen mit Lego

Programmieren mit RoboLab Bauen mit Lego Programmieren mit RoboLab 2.5.2 Bauen mit Lego 1. Doppelstunde Kommunikation zwischen Computer und RCX herstellen können. Motoren im und gegen den Uhrzeigersinn für eine bestimmte Zeit drehen lassen können.

Mehr

Henry Krasemann / Hilke Krasemann / Michael Friedrichs, LEGO -Boost-Roboter, dpunkt.verlag, ISBN

Henry Krasemann / Hilke Krasemann / Michael Friedrichs, LEGO -Boost-Roboter, dpunkt.verlag, ISBN D3kjd3Di38lk323nnm Henry Krasemann / Hilke Krasemann / Michael Friedrichs, LEGO -Boost-Roboter, dpunkt.verlag, ISBN 978-3-86490-536-0 Bauvorschlag: Radarwagen 12 Bei diesem Modell haben wir einen Wagen

Mehr

NXC-Programmiersprache

NXC-Programmiersprache Seite 1 von 7 NXC-Programmiersprache Programmbefehle: Strg + N Strg + S Strg + F4 Alt + F4 Strg + P Strg + F Strg + R Strg + G F5 F6 Strg + Z Strg + (nach oben) + Z Strg + X Strg + C Strg + V Strg + Entf

Mehr

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv Roboter programmieren mit NXC für Lego Mindstorms NXT 1. Auflage Roboter programmieren mit NXC für Lego Mindstorms NXT schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv Verlag

Mehr

Fakultät für Informatik, Institut für Robotik Laborpraktikum I - Medizinarena Legorobotik in C EV3

Fakultät für Informatik, Institut für Robotik Laborpraktikum I - Medizinarena Legorobotik in C EV3 Fakultät für Informatik, Institut für Robotik Laborpraktikum I - Medizinarena Legorobotik in C EV3 Ute Ihme Hochschule Mannheim Ute Ihme DAS LEGO MINDSTORMS System Das EV3 System Prinzip von LEGO MINDSTORMS

Mehr

Lego-Roboter im Informatik-Unterricht der Sekundarstufe I

Lego-Roboter im Informatik-Unterricht der Sekundarstufe I Neben Robolab und dem Robotics Invention System gibt es eine Vielzahl von Programmierumgebungen für Lego Mindstorms Roboter, z. B. NQC oder LEJOS. Des Weiteren gibt es ActiveX-Elemente, mit denen die Lego-Roboter

Mehr

Der Roboter wird auf einer 2 cm breiten, schwarzen Spur (mit Links- und Rechtskurven) gestartet.

Der Roboter wird auf einer 2 cm breiten, schwarzen Spur (mit Links- und Rechtskurven) gestartet. Info 13 LK (GA) Bearbeitungszeit: 225 min Seite 1 Aufgabe 1: Mindstorms Grundlage für alle Aufgaben ist ein Raupenroboter, wie du ihn aus dem Unterricht kennst. An den Sensoren sind je ein Lichtsensor

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

Mehr

Arbeit_Roboter. Setze einen Haken bei den Fragen, die du für richtig hältst: Bei Textantworten oder Lückentexten gib jeweils das Ergebnis an.

Arbeit_Roboter. Setze einen Haken bei den Fragen, die du für richtig hältst: Bei Textantworten oder Lückentexten gib jeweils das Ergebnis an. Arbeit_Roboter drucken neu_sortieren verschicken verschicken_selbsttest Setze einen Haken bei den Fragen, die du für richtig hältst: Bei Textantworten oder Lückentexten gib jeweils das Ergebnis an. Vorname:

Mehr

itool Projektieren über Modemverbindung B /

itool Projektieren über Modemverbindung B / itool Projektieren über Modemverbindung B 70.4090.2 02.01/00360655 1 Was Sie benötigen Modem 1 Modem 2 Um eine Modemverbindung zwischen einem PC und einem JUMO mtron-automatisierungssystem herstellen

Mehr

Einführung in die Programmierung des VEX IQ mit ROBOTC. Kurzanleitung

Einführung in die Programmierung des VEX IQ mit ROBOTC. Kurzanleitung Einführung in die Programmierung des VEX IQ mit ROBOTC Kurzanleitung 0 Inhalt 0 Inhalt 2 1 ROBOTC herunterladen und installieren 3 2 ROBOTC Graphical Language 4 2.1 ROBOTC Graphical 4 2.2 ROBOTC Natural

Mehr

Die Denkschule 1 Reto Speerli

Die Denkschule 1 Reto Speerli Die Denkschule 1 Octopus A1 Aufgabe: Verbinde den NXT-Baustein (CPU) mit allen Motoren und den Sensoren (Berührung, Ultraschall, Licht und Geräusch). Logge dich beim Open-Roberta Lab ein und verbinde den

Mehr

3. Das erste eigene Programm mit Greenfoot: Litte Crab

3. Das erste eigene Programm mit Greenfoot: Litte Crab Eigenes Programm: Little Crab1, Seite 1 von 5 3. Das erste eigene Programm mit Greenfoot: Litte Crab 3.1. Quelltext bearbeiten Nachdem Sie etwas Erfahrungen in der Bedienung von Greenfoot gewonnen haben,

Mehr

Illustrierende Aufgaben zum LehrplanPLUS. Realschule, Informationstechnologie, Lernbereich 2: Modul Roboter unterwegs. Stand:

Illustrierende Aufgaben zum LehrplanPLUS. Realschule, Informationstechnologie, Lernbereich 2: Modul Roboter unterwegs. Stand: Roboter unterwegs Stand: 12.07.2017 Jahrgangsstufen Lernbereich 2: Modul 2.7.2 Fach/Fächer Übergreifende Bildungs- und Erziehungsziele Zeitrahmen Benötigtes Material Informationstechnologie Technische

Mehr

ÜBUNGS-BLOCK 7 LÖSUNGEN

ÜBUNGS-BLOCK 7 LÖSUNGEN ÜBUNGS-BLOCK 7 LÖSUNGEN Aufgabe 1: Gegeben ist folgender Code: Auto[] array = new Auto[3]; // Alle Autos im Array tunen: for (int i = 1; i

Mehr

Übung zur Vorlesung EidP (WS 2018/19) Blatt 4

Übung zur Vorlesung EidP (WS 2018/19) Blatt 4 Lutz Oettershagen Jurij Kuzmic Dortmund, den 8. November 2018 Übung zur Vorlesung EidP (WS 2018/19) Blatt 4 Block gelb Es können 4 Punkte erreicht werden. Abgabedatum: 15. November 2018, 2:59 Uhr Hinweise

Mehr

Programmierkurs C++ Abstrakte Klassen und Methoden

Programmierkurs C++ Abstrakte Klassen und Methoden Programmierkurs C++ Abstrakte Klassen und Methoden Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Vererbungshierarchie Obst double

Mehr

Sichtbarkeiten, Klassenmember und -methoden

Sichtbarkeiten, Klassenmember und -methoden Sichtbarkeiten, Klassenmember und -methoden Prof. Dr.-Ing. Thomas Schwotzer 11. November 2017 1 Einführung Wir haben uns mit Klassen und Objekten beschäftigt. Wir wissen nun, dass Objekte anhand von Klassen

Mehr

Prüfung Softwareentwicklung II (IB)

Prüfung Softwareentwicklung II (IB) Hochschule für angewandte Wissenschaften München Fakultät für Informatik und Mathematik Studiengruppe IB 2 B, IB 2 C Sommersemester 2013 Prüfung Softwareentwicklung II (IB) Datum : 11.07.2013, 08:30 Uhr

Mehr

Installationsanleitung

Installationsanleitung 1. C Installationsanleitung C-Programmierung mit Hilfe von Eclipse unter Windows XP mit dem GNU C-Compiler (GCC) 2. Inhaltsverzeichnis 1. Einleitung... 3 2. Cygwin... 3 2.1 Cygwin-Installation... 3 2.2

Mehr

Handbuch für die Erweiterbarkeit

Handbuch für die Erweiterbarkeit Handbuch für die Erweiterbarkeit Inhalt Pakete für die Erweiterbarkeit... 2 Actions... 2 Items... 2 Itemset... 2 Die UseCaseNewAction... 3 Eigene Shapes... 4 Der Shape Container... 5 User Objects... 6

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

Unsere Webapplikation erweitern

Unsere Webapplikation erweitern Unsere Webapplikation erweitern Um mit Play zu arbeiten: 1. Starten Sie zunächst den MySQL-Server. Führen Sie dazu auf dem USB-Stick mysql_start.cmd aus. 2. Sie brauchen eine Windows-Kommandozeile: Starten

Mehr

Erste Schritte zum Start findest du hier: https://education.lego.com/de-de/weiterfuehrendeschulen/entdecken/informatik

Erste Schritte zum Start findest du hier: https://education.lego.com/de-de/weiterfuehrendeschulen/entdecken/informatik Robotik mit https://education.lego.com/de-de/downloads/mindstorms-ev3 Erste Schritte zum Start findest du hier: https://education.lego.com/de-de/weiterfuehrendeschulen/entdecken/informatik Baue zuerst

Mehr

Staubsauger-Roboter. Als Vorlage dienen dir drei Klassen: RECHTECK Damit kannst du die Wände des Raums darstellen.

Staubsauger-Roboter. Als Vorlage dienen dir drei Klassen: RECHTECK Damit kannst du die Wände des Raums darstellen. Projekt: Staubsauger-Roboter Immer beliebter werden die kleinen automatischen Haushaltshilfen. Du sollst nun einen Staubsauger-Roboter programmieren, der gesteuert von einer künstlichen Intelligenz (KI)

Mehr

Programmierung für Mathematik HS11

Programmierung für Mathematik HS11 software evolution & architecture lab Programmierung für Mathematik HS11 Übung 8 1 Aufgabe: Codeverständnis (Repetition) 1.1 Lernziele 1. Code verstehen können. 2. Fehler im Code finden und korrigieren

Mehr

Polymorphie und UML Klassendiagramme

Polymorphie und UML Klassendiagramme Polymorphie und UML Klassendiagramme Prof. Dr.-Ing. Thomas Schwotzer 1 Einführung Vererbung hat einen sehr interessanten und effektiven Effekt: die Polymorphie. Darum geht es in dieser Veranstaltung. 2

Mehr

Implementieren von Klassen

Implementieren von Klassen Implementieren von Klassen Felder, Methoden, Konstanten Dr. Beatrice Amrhein Überblick Felder/Mitglieder (Field, Member, Member-Variable) o Modifizierer Konstanten Methoden o Modifizierer 2 Felder und

Mehr

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML. JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung

Mehr

Praktikum 4: Grafiken und Ereignisse

Praktikum 4: Grafiken und Ereignisse Praktikum 4: Grafiken und Ereignisse Aufgabe 1: Java Applikation Bisher haben wir in Java (ebenso wie in C) jeweils selbständige Konsole-Applikationen erstellt. Java wurde als Programmiersprache für das

Mehr

Lego Mindstorms Tutorial

Lego Mindstorms Tutorial Lego Mindstorms Tutorial Lego Firmware Als allerestes muss eine Firmware auf den Mindstorms Computer (fortan kurz RCX) geladen werden. Dieser Programmcode hat die Funktion, Befehle per Infrarot (IR) entgegenzunehmen

Mehr

Robot-Design Software

Robot-Design Software NanoGiants Academy e.v. Robot-Design Software 2017 NanoGiants Academy e.v. 1 Die Präsentation ist eine von vier über FLL Robot-Design Hardware Navigation Software Strategie http://nano-giants.net/robot-design

Mehr

CANape Option Bypassing

CANape Option Bypassing Produktinformation Inhaltsverzeichnis 1 Übersicht... 3 1.1 Einführung... 3 1.2 Die Vorteile im Überblick... 3 1.3 Anwendungsgebiete... 4 1.4 Systemvoraussetzung... 4 1.5 Weiterführende Informationen...

Mehr

Welche Roboter kennst du? Wo brauchst du zuhause Roboter?

Welche Roboter kennst du? Wo brauchst du zuhause Roboter? ROBOTER LÖSUNGEN Roboter Mensch Welche Roboter kennst du? Wo brauchst du zuhause Roboter? Individuelle Antworten: R2-D2 / BB6 / C-3PO (Star Wars), Wall-e, Rodney Copperbottom (Film Robots), Optimus Prime

Mehr

Kapitel 1: Die ersten Schritte 1

Kapitel 1: Die ersten Schritte 1 Kapitel 1: Die ersten Schritte Thema: Programmieren Seite: 1 Kapitel 1: Die ersten Schritte 1 Starten Sie Eclipse. Importieren Sie das Eclipse-Projekt scenarios-chapter-1. Gehen Sie in den Unterordner

Mehr

EINFÜHRUNG LEGO MINDSTORMS

EINFÜHRUNG LEGO MINDSTORMS EINFÜHRUNG LEGO MINDSTORMS LabVIEW 2014 Prof. Dr.-Ing. Dahlkemper 1 NXT DIRECT COMMANDS Es gibt zwei verschiedene Möglichkeiten, die Lego-Roboter zu programmieren: Man kann das Programm direkt auf den

Mehr

Softwarepraktikum Teamrobotik SS Gruppe 2

Softwarepraktikum Teamrobotik SS Gruppe 2 Softwarepraktikum Teamrobotik SS 2007 Gruppe 2 1 LEGO MINDSTORMS NXT Education Base Set 2 Baumöglichkeiten 3 Die Hardware Sensoren: Lichtsensor Ultraschallsensor Geräuschsensor Berührungssensor 3 Motoren

Mehr

Künstliche Intelligenz - Logische Agenten und Roboter

Künstliche Intelligenz - Logische Agenten und Roboter Künstliche Intelligenz - Logische Agenten und Roboter Wird präsentiert von: Alexander Betker Gregor Biering Thiemo Esch Marko Flod Sascha Schewe Unser Motto: Zu Fünft agiert es sich besser. Übersicht 1.

Mehr

Organisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download

Organisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download Organisatorisches Folien (u.a.) gibt's auf der Lva-Homepage zum Download Diesen Mi erstes Tutorium (15-17) Ab nächster Woche montags 10-12 (jeweils im Computerraum) 17.10.2017 IT I - VO 3 1 Organisatorisches

Mehr

Vererbung und Polymorphie

Vererbung und Polymorphie Vererbung und Polymorphie Marc Satkowski, Sascha Peukert 29. September 2016 C# Kurs Gliederung 1. Methodenüberladung 2. Vererbung Polymorphie Methoden- & Eigenschaftsüberschreibung Weitere Schlüsselwörter

Mehr

Wiederholungsklausur "ADP" WS 2016/2017

Wiederholungsklausur ADP WS 2016/2017 PD Dr. J. Reischer 23.02.2017 Wiederholungsklausur "ADP" WS 2016/2017 Nachname, Vorname Abschluss (BA, MA, FKN etc.) Matrikelnummer, Semester Versuch (1/2/3) Bitte füllen Sie zuerst den Kopf des Angabenblattes

Mehr

Programmieren in Java -Eingangstest-

Programmieren in Java -Eingangstest- Programmieren in Java -Eingangstest- Nummer: 1. Studiengang: Informatik B.Sc. Informatik M.Sc. ESE B.Sc. ESE M.Sc. Sonstiges: Fachsemester: Bitte Fragen, die Sie nicht beantworten können unbedingt mit

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Der Experimentierkasten In diesem Semester werden wir eine Reihe von Algorithmen kennenlernen und mit diesen Experimente durchführen. Dafür benötigen wir einen geeigneten

Mehr

LEGO-Mindstorms-Roboter im Informatikunterricht -mit Delphi-

LEGO-Mindstorms-Roboter im Informatikunterricht -mit Delphi- Eckart Modrow LEGO-Mindstorms-Roboter im Informatikunterricht -mit Delphi- Benutzung in einer Programmierumgebung Für die LEGO-Roboter stehen unter allen gängigen Betriebssystemen unterschiedliche Entwicklungsumgebungen

Mehr

Programmieren des NXT-Roboters mit LabView 2010

Programmieren des NXT-Roboters mit LabView 2010 Programmieren des NXT-Roboters mit LabView 2010 Von Alwin Ebermann 1. Voraussetzungen Der Roboter hat die neueste Firmenware LabView 2010 for NXT ist schon installiert (Testversion hier) 2. Programmieren

Mehr

Eine Mini-Shell als Literate Program

Eine Mini-Shell als Literate Program Eine Mini-Shell als Literate Program Hans-Georg Eßer 16.10.2013 Inhaltsverzeichnis 1 Eine Mini-Shell 1 1.1 Einen Befehl parsen......................... 2 1.2 Was tun mit dem Kommando?...................

Mehr

4D Server v12 64-bit Version BETA VERSION

4D Server v12 64-bit Version BETA VERSION 4D Server v12 64-bit Version BETA VERSION 4D Server v12 unterstützt jetzt das Windows 64-bit Betriebssystem. Hauptvorteil der 64-bit Technologie ist die rundum verbesserte Performance der Anwendungen und

Mehr

Klausur Software-Entwicklung März 01

Klausur Software-Entwicklung März 01 Aufgabe 1: minimaler Punktabstand ( 2+5 Punkte ) Matrikelnr : In einem Array punkte sind Koordinaten von Punkten gespeichert. Ergänzen Sie in der Klasse Punkt eine Klassen-Methode (=static Funktion) punktabstand,

Mehr

Künstliche Intelligenz

Künstliche Intelligenz Künstliche Intelligenz Übungsblatt #1 Modellierung & Suche Prof. Dr. J. Fürnkranz, Dr. G. Grieser Aufgabe 1.1 Wir betrachten folgende Welt: Welt: Die Welt der Staubsauger-Akteure besteht aus Räumen, die

Mehr

1 Grundlagen der Objektorientierung

1 Grundlagen der Objektorientierung Kapitel 1 Grundlagen der Objektorientierung Seite 1/8 1 Grundlagen der Objektorientierung Dieses Kapitel stellt eine solide, pragmatische Einführung in die fundamentalen Konzepte der Objektorientierung

Mehr

Fakultät für Informatik, Institut für Robotik Laborpraktikum I Legorobotik graphische Programmierung

Fakultät für Informatik, Institut für Robotik Laborpraktikum I Legorobotik graphische Programmierung Fakultät für Informatik, Institut für Robotik Laborpraktikum I Legorobotik graphische Programmierung Ute Ihme Hochschule Mannheim Ute Ihme DAS LEGO MINDSTORMS System Das EV3 System Prinzip von LEGO MINDSTORMS

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Abstrakte Klassen und Methoden & Interfaces Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Vererbungshierarchie

Mehr

Programmiermethodik 1. Klausur

Programmiermethodik 1. Klausur Programmiermethodik 1. Klausur 27. 6. 2013 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 21 2 20 3 19 4 19 5 21 6 20 Gesamt 120 1 Seite 2 von 18 Aufgabe 1) Objekt-Orientierung und Vererbung

Mehr

Die Klasse java.lang.object. Thorsten Treffer

Die Klasse java.lang.object. Thorsten Treffer Die Klasse java.lang.object Thorsten Treffer 6. Dezember 2003 1 java.lang.object Die Klassenhierarchie von Java kann als Baum aufgezeichnet werden, dessen Wurzel die Klasse Object ist. Mit anderen Worten:

Mehr

Aufgabenblatt 4. Kompetenzstufe 1. Allgemeine Informationen zum Aufgabenblatt:

Aufgabenblatt 4. Kompetenzstufe 1. Allgemeine Informationen zum Aufgabenblatt: Aufgabenblatt 4 Kompetenzstufe 1 Allgemeine Informationen zum Aufgabenblatt: Die Abgabe erfolgt in TUWEL. Bitte laden Sie Ihr IntelliJ-Projekt bis spätestens Freitag, 08.12.2017 13:00 Uhr in TUWEL hoch.

Mehr

Hello World! Eine Einführung in das Programmieren Das erste Programm

Hello World! Eine Einführung in das Programmieren Das erste Programm Hello World! Eine Einführung in das Programmieren Das erste Programm Görschwin Fey Institute of Embedded Systems Hamburg University of Technology Slide 2 Betriebssystem Funktion Anwendung Gerätesteuerung

Mehr

Kapitel 5: Interfaces

Kapitel 5: Interfaces Liste P: Programmieren mit Java WS 2001/2002 Prof. Dr. V. Turau FH Wiesbaden Kapitel 5: Interfaces Folie 82 : Einleitung Betrachtet man die Programmierleistung für ein Produkt über einen längeren Zeitraum,

Mehr

Fakultät für Informatik, Institut für Robotik EV3 - Laborpraktikum I Einführung in die Programmierung mit JAVA

Fakultät für Informatik, Institut für Robotik EV3 - Laborpraktikum I Einführung in die Programmierung mit JAVA Fakultät für Informatik, Institut für Robotik EV3 - Laborpraktikum I Einführung in die Programmierung mit JAVA Ute Ihme Hochschule Mannheim Ute Ihme DAS LEGO MINDSTORMS System Das EV3 System Prinzip von

Mehr

Greenfoot: Verzweigungen

Greenfoot: Verzweigungen Greenfoot: Verzweigungen Nicolas Ruh und Dieter Koch Betrachten wir die act()-methode des Wombats aus dem Wombats-Szenario: Wie interpretieren Sie diesen Code? (einfach übersetzen) Falls der Wombat ein

Mehr

Klausur Grundlagen der Programmierung

Klausur Grundlagen der Programmierung Klausur Grundlagen der Programmierung Aufgabenstellung: Martin Schultheiß Erreichte Punktzahl: von 60 Note: Allgemeine Hinweise: Schreiben Sie bitte Ihren Namen auf jedes der Blätter Zugelassene Hilfsmittel

Mehr

ALP II Dynamische Datenmengen Datenabstraktion (Teil 2)

ALP II Dynamische Datenmengen Datenabstraktion (Teil 2) ALP II Dynamische Datenmengen Datenabstraktion (Teil 2) O1 O2 O3 O4 SS 2012 Prof. Dr. Margarita Esponda 49 Einfach verkettete Listen O1 O2 O3 50 Einführung Einfach verkettete Listen sind die einfachsten

Mehr

Institut für Informatik

Institut für Informatik Technische Universität München Institut für Informatik Lehrstuhl für Computer Graphik & Visualisierung WS 2010 Praktikum: Grundlagen der Programmierung Aufgabenblatt 4 Prof. R. Westermann, A. Lehmann,

Mehr

Einführung in die Programmierung 1

Einführung in die Programmierung 1 Einführung in die Programmierung 1 Einführung (S.2) Einrichten von Eclipse (S.4) Mein Erstes Programm (S.5) Hallo Welt!? Programm Der Mensch (S.11) Klassen (S.12) Einführung Wie Funktioniert Code? Geschriebener

Mehr

Installation von NQC

Installation von NQC Installation von NQC Philipp Bodewig, Christoph Weiler 7. August 2006 Inhaltsverzeichnis 1 Voraussetzungen 2 2 Erfüllen der Voraussetzungen 2 2.1 Kernelmodule.................................... 2 2.2

Mehr

Abiturprüfung Informatik, Grundkurs

Abiturprüfung Informatik, Grundkurs Seite 1 von 12 Abiturprüfung 2014 Informatik, Grundkurs Aufgabenstellung: In dem neugegründeten Staat Infonien haben alle Autos ein Kennzeichen, das sich aus zwei Großbuchstaben gefolgt von einer positiven

Mehr

Praktikum: KHR1 Microcontroller Steuerung Bearbeiter: Ronald Lautenschläger Betreuer: Benjamin Reh, Katja Mombaur

Praktikum: KHR1 Microcontroller Steuerung Bearbeiter: Ronald Lautenschläger Betreuer: Benjamin Reh, Katja Mombaur Praktikum: KHR1 Microcontroller Steuerung Bearbeiter: Ronald Lautenschläger Betreuer: Benjamin Reh, Katja Mombaur Übersicht Kondo KHR1 Aufgabenstellung RCB1 Steuerungsplatine Steuerungssoftware Heart2Heart

Mehr

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

Einführung in die Programmierung für NF MI. Übung 07 Einführung in die Programmierung für NF MI Übung 07 Inhalt Wiederholung Kommentare Wiederholung Arrays Einführung in Objekte Einführung in die Programmierung für NF Übung 07 2 Wiederholung Kommentare Kommentare

Mehr

ROBOTER. LÖSUNGEN zur Arbeit mit dem LEGO Mindstorms EV3

ROBOTER. LÖSUNGEN zur Arbeit mit dem LEGO Mindstorms EV3 ROBOTER LÖSUNGEN zur Arbeit mit dem LEGO Mindstorms EV3 Roboter Mensch Welche Roboter kennst du? Wo brauchst du zuhause Roboter? Individuelle Antworten: R2-D2 / BB6 / C-3PO (Star Wars), Wall-e, Rodney

Mehr

Algorithmen und Datenstrukturen 07

Algorithmen und Datenstrukturen 07 (7. Juni 2012) 1 Besprechung Blatt 6 Fragen 2 Referenzen Referenzsemantik 3 Vererbung Allgemein abstract Interfaces Vererbung in UML 4 Vorbereitung Blatt 7 Anmerkungen Fragen Fragen zu Blatt 6? Referenzsemantik

Mehr

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

7. Arrays. Beim Deklarieren und Initialisieren der Liste bräuchte man oft zueinander sehr ähnlichen Code: 7. Arrays Gelegentlich braucht man für ein Programm mehrere Attribute desselben Datentyps oder derselben Klasse. Beispiel: In der Highscore-Liste eines Spiels werden von den 10 besten Spielern die Namen

Mehr

Organisatorisches. Folien (u.a.) auf der Lva-Homepage Skriptum über MU Online

Organisatorisches. Folien (u.a.) auf der Lva-Homepage Skriptum über MU Online Organisatorisches Folien (u.a.) auf der Lva-Homepage Skriptum über MU Online Nächste Woche VO und UE am Dienstag, den 30.10.! UE im CR IL/IT Wissensüberprüfung am Zettel 25.10.2018 IT I - VO 3 1 Organisatorisches

Mehr

Aufgabenblatt 3. Kompetenzstufe 2. Allgemeine Informationen zum Aufgabenblatt:

Aufgabenblatt 3. Kompetenzstufe 2. Allgemeine Informationen zum Aufgabenblatt: Aufgabenblatt 3 Kompetenzstufe 2 Allgemeine Informationen zum Aufgabenblatt: Die Abgabe erfolgt in TUWEL. Bitte laden Sie Ihr IntelliJ-Projekt bis spätestens Freitag, 15.12.2017 13:00 Uhr in TUWEL hoch.

Mehr

Greenfoot: Verzweigungen Nicolas Ruh und Dieter Koch

Greenfoot: Verzweigungen Nicolas Ruh und Dieter Koch Greenfoot: Verzweigungen Nicolas Ruh und Dieter Koch Betrachten wir die act()-methode des Wombats aus dem Wombats-Szenario: Wie interpretieren Sie diesen Code? (einfach übersetzen) Falls der Wombat ein

Mehr

OpenCL. Programmiersprachen im Multicore-Zeitalter. Tim Wiersdörfer

OpenCL. Programmiersprachen im Multicore-Zeitalter. Tim Wiersdörfer OpenCL Programmiersprachen im Multicore-Zeitalter Tim Wiersdörfer Inhaltsverzeichnis 1. Was ist OpenCL 2. Entwicklung von OpenCL 3. OpenCL Modelle 1. Plattform-Modell 2. Ausführungs-Modell 3. Speicher-Modell

Mehr

Polymorphie. 15. Java Objektorientierung II

Polymorphie. 15. Java Objektorientierung II 432 Polymorphie 15. Java Objektorientierung II Objektorientierung: Verschiedene Aspekte 433 Daten Typhierarchie Objekte Code Vererbung Unter- und Oberklassen Methoden überschreiben Unterklassen zuweisen

Mehr

Vererbung. Generalisierung und Spezialisierung Vererbung und Polymorphismus

Vererbung. Generalisierung und Spezialisierung Vererbung und Polymorphismus Vererbung Generalisierung und Spezialisierung Vererbung und Polymorphismus Wir wollen in unserem Aquarium verschiedene Arten von Fischen schwimmen lassen. In einem ersten Ansatz definieren wir nicht nur

Mehr

Entwurfsmuster und Frameworks Singleton

Entwurfsmuster und Frameworks Singleton Entwurfsmuster und Frameworks Singleton Oliver Haase Oliver Haase Emfra Singleton 1/20 Beschreibung I Klassifikation: objektbasiertes Erzeugungsmuster Zweck: sicherstellen, dass eine Klasse nur genau einmal

Mehr