5. Threads, Serverprozesse und Benachrichtigungen

Größe: px
Ab Seite anzeigen:

Download "5. Threads, Serverprozesse und Benachrichtigungen"

Transkript

1 5. Threads, Serverprozesse und Benachrichtigungen Threads allgemein Threads in Android: Handler und Messages Services: Local, Remote, Binding Benachrichtigungen Entwicklung mobiler Anwendungen Europäische Fachhochschule Brühl/Neuss, 3. Quartal

2 Thread Ein Thread ist eine Folge von Anweisungen, die unabhängig von anderen Threads parallel zu diesen ausgeführt wird. Jeder Thread hat seinen eigenen Stack um lokale Variablen anzulegen und Methoden aufzurufen. Alle Threads eines Prozesses teilen sich den Adressbereich des Prozesses (keine Interprozesskommunikation notwendig). Man nennt Threads auch leichtgewichtige Prozesse. Entwicklung mobiler Anwendungen Europäische Fachhochschule Brühl/Neuss, 3. Quartal

3 Sequentielle Abarbeitung (1) Wir erzeugen zwei gleichartige Objekte der Klasse ABCPrinter, deren Methode start() die Großbuchstaben auf der Konsole ausgibt: public class MehrmalsP { public static void main(string[] args) { ABCPrinter p1 = new ABCPrinter(); ABCPrinter p2 = new ABCPrinter(); p1.start(); p2.start(); Entwicklung mobiler Anwendungen Europäische Fachhochschule Brühl/Neuss, 3. Quartal

4 Sequentielle Abarbeitung (2) public class ABCPrinter { public void run() { for (char c= A ; c<= Z ; c++) { System.out.print(c); Machmal.eineSekundeNix(); public void start() { run(); Entwicklung mobiler Anwendungen Europäische Fachhochschule Brühl/Neuss, 3. Quartal

5 Liefert die Ausgabe: ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ Sequentielle Abarbeitung Entwicklung mobiler Anwendungen Europäische Fachhochschule Brühl/Neuss, 3. Quartal

6 Beispiel: Thread (1) Aus ABCPrinter machen wir ABCThread, indem wir von der Klasse java.lang.thread ableiten. Die Klasse Thread hat auch schon eine Methode start(), die genau das macht, was wir benötigen, nämlich die Methode run() aufrufen. public class ABCThread extends Thread { public void run() { for (char c= A ; c<= Z ; c++) { System.out.print(c); Machmal.eineSekundeNix(); Entwicklung mobiler Anwendungen Europäische Fachhochschule Brühl/Neuss, 3. Quartal

7 Beispiel: Thread (2) In unserem main-methode benutzen wir nun ABCThread statt ABCPrinter. public class MehrmalsT { public static void main(string[] args) { ABCThread p1 = new ABCThread(); ABCThread p2 = new ABCThread(); p1.start(); p2.start(); Dies liefert die Ausgabe: AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXXY parallele Abarbeitung Entwicklung mobiler Anwendungen Europäische Fachhochschule Brühl/Neuss, 3. Quartal

8 Threads in Java (1) Die parallel auszuführenden Anweisungen müssen in einer Methode run() enthalten sein oder von run() aus aufgerufen werden. Die Methode start() sorgt dafür, dass run() nebenläufig ausgeführt wird. Ruft man run() dagegen direkt auf, entsteht keine Nebenläufigkeit. Die Klasse Thread verfügt bereits über eine Methode start(). und eine Methode run() (die allerdings nichts tut). Entwicklung mobiler Anwendungen Europäische Fachhochschule Brühl/Neuss, 3. Quartal

9 Threads in Java (2) Entscheidend für die Implementierung eines Threads ist nicht die Klasse Thread sondern die Schnittstelle java.lang.runnable. Runnable definiert eine (abstrakte) Methode run(). Nur Klassen, die Runnable implementieren, können einen Thread realisieren. Entwicklung mobiler Anwendungen Europäische Fachhochschule Brühl/Neuss, 3. Quartal

10 Möglichkeiten zur Implementierung von Threads Thread implementiert Runnable, also leiten wir von Thread ab und überschreiben die Methode run(). Wir implementieren Runnable in einer eigenen Klasse und lassen Objekte dieser Klasse von Objekten der Klasse Thread kontrollieren. Entwicklung mobiler Anwendungen Europäische Fachhochschule Brühl/Neuss, 3. Quartal

11 Beispiel: Runnable (1) Hier die zweite Möglichkeit: Wir nutzen implements statt extends. public class ABCRunnable implements Runnable { public void run() { for (char c= A ; c<= Z ; c++) { System.out.print(c); Machmal.eineSekundeNix(); Entwicklung mobiler Anwendungen Europäische Fachhochschule Brühl/Neuss, 3. Quartal

12 Beispiel: Runnable (2) In unserem main-methode erzeugen wir nun ABCRunnable und steuern diese Objekte mit Hilfe von Objekten der Klasse Thread. public class MehrmalsR { public static void main(string[] args) { Thread t1 = new Thread(new ABCRunnable()); Thread t2 = new Thread(new ABCRunnable()); t1.start(); t2.start(); Entwicklung mobiler Anwendungen Europäische Fachhochschule Brühl/Neuss, 3. Quartal

13 Die Klasse Thread Konstruktor (u.a.): public Thread(Runnable target) Bei Aufruf von start() wird die run-methode von target nebenläufig ausgeführt. Instanzmethoden (u.a.): public void start() public void run() Entwicklung mobiler Anwendungen Europäische Fachhochschule Brühl/Neuss, 3. Quartal

14 public final boolean isalive() liefert true, wenn der Thread gestartet aber noch nicht beendet ist. public void interrupt() setzt das Abbruch-Flag des Threads. public boolean isinterrupted() liefert true, wenn das Abbruch-Flag gesetzt ist. Klassenmethoden(u.a.): public static Thread currentthread() liefert eine Referenz auf den Thread, der gerade ausgeführt wird. Entwicklung mobiler Anwendungen Europäische Fachhochschule Brühl/Neuss, 3. Quartal

15 public static void yield() lässt den Thread, der gerade ausgeführt wird, kurz pausieren, um andere Threads zum Zuge kommen zu lassen. public static void sleep(long millis) der Thread, der gerade ausgeführt wird, pausiert für millis Millisekunden. InterruptedException möglich, dabei wird das Abbruch-Flag zurückgesetzt. public static boolean interrupted() liefert true, wenn beim Thread, der gerade ausgeführt wird, das Abbruch- Flag gesetzt ist. Entwicklung mobiler Anwendungen Europäische Fachhochschule Brühl/Neuss, 3. Quartal

16 Beispiel: sleep public class Machmal { public static void einesekundenix() { try { Thread.sleep(1000); catch(interruptedexception e) { Die Methode sleep() kann eine InterruptedException auslösen. Das Abbruch-Flag des Threads wird dabei zurückgesetzt. Entwicklung mobiler Anwendungen Europäische Fachhochschule Brühl/Neuss, 3. Quartal

17 Threads vorzeitig beenden Threads müssen nicht ihre run-methode komplett abarbeiten. Vielleicht ist in der run-methode auch mit Absicht eine Endlosschleife programmiert. Idealerweise nutzen wir die Instanzmethoden interrupt() und isinterrupted(). Man beachte: Wenn sleep unterbrochen wird, wird eine Exception ausgelöst und das Abbruch-Flag zurückgesetzt. Wenn das Abbruch-Flag gesetzt sein soll, muss deshalb im Exception- Handler interrupt() aufgerufen werden. Entwicklung mobiler Anwendungen Europäische Fachhochschule Brühl/Neuss, 3. Quartal

18 Lebenszyklus eines Threads Nach new ist der Thread erzeugt. Mit start() wird der Thread ausführbar. Mit run() kann der Thread laufend werden. Dieser Zustand ist ein Spezialfall von ausführbar. Der Thread läuft i.d.r. nicht permanent, sondern wird zwischendurch suspendiert, z.b. durch yield(). Dann ist er nur noch ausführbar, aber nicht laufend. Mit der Terminierung von run() ist der Thread beendet. Entwicklung mobiler Anwendungen Europäische Fachhochschule Brühl/Neuss, 3. Quartal

19 Im Zustand ausführbar kann durch sleep() oder wait() der Thread in den Zustand nicht ausführbar überführt werden. Mit Hilfe von notify() wird ein nicht ausführbarer Thread wieder ausführbar. Mit Hilfe von isalive kann ermittelt werden, ob ein Thread in den Zuständen ausführbar oder nicht ausführbar ist. Entwicklung mobiler Anwendungen Europäische Fachhochschule Brühl/Neuss, 3. Quartal

20 Scheduling Ein Scheduler verteilt die zur Verfügung stehende Prozessorzeit auf die einzelnen Threads. Das Scheduling ist nicht spezifiziert, sondern hängt von der virtuellen Maschine ab. Es ist aber sichergestellt, dass ein Thread von höherer Priorität durchschnittlich mehr Prozessorzeit erhält. präemptives Scheduling: Die Threads werden unterbrochen. Ein Thread erhält zunächst die Priorität des Threads, der ihn erzeugt. Der main-thread hat die Priorität 5 (NORM PRIORITY). Entwicklung mobiler Anwendungen Europäische Fachhochschule Brühl/Neuss, 3. Quartal

21 Methoden zur Steuerung der Priorität: getpriority und setpriority. Höchste Priorität gleich 10 (MAX PRIORITY), niedrigste gleich 1 (MIN PRIORITY). Entwicklung mobiler Anwendungen Europäische Fachhochschule Brühl/Neuss, 3. Quartal

22 Synchronisation Ein Thread schreibt Werte in ein Objekt, ein anderes liest Werte aus dem selben Objekt. Wird der schreibende Thread unterbrochen, bevor er den Schreibvorgang komplett abgeschlossen hat, liest der andere Thread inkonsistente Werte. Leser/Schreiber-Problem Entwicklung mobiler Anwendungen Europäische Fachhochschule Brühl/Neuss, 3. Quartal

23 Beispiel: Leser/Schreiber (1) public class Sequenz { private static int zaehler = 0; public static void nachster() { int zahl = zaehler; eine Anweisung die lange dauert... System.out.print(" " + zahl); zaehler++; Entwicklung mobiler Anwendungen Europäische Fachhochschule Brühl/Neuss, 3. Quartal

24 Beispiel: Leser/Schreiber (2) public class ZaehlThread extends Thread { public void run() { for (;;) Sequenz.naechster(); Wie sieht die Ausgabe u.u. aus, wenn zwei ZaehlThreads parallel laufen? Entwicklung mobiler Anwendungen Europäische Fachhochschule Brühl/Neuss, 3. Quartal

25 Sperren, Monitor Das Problem des letzten Beispiels können wir prinzipiell durch Sperren (Locks) lösen. Immer wenn ein Thread die Methode naechster() betritt, wird diese Methode für alle anderen Threads gesperrt. Threads, die eine gesperrte Methode betreten wollen, werden solange supendiert, bis die Sperre freigegeben wird. Die Sperre wird freigegeben, sobald der ausführende Thread die Methode naechster() verlassen hat. Entwicklung mobiler Anwendungen Europäische Fachhochschule Brühl/Neuss, 3. Quartal

26 Nun kann ein anderer Thread in die Methode naechster() eintreten. Damit sperrt er diese Methode wiederum für alle anderen Threads. Fazit: maximal ein Thread soll sich in der Methode naechster() befinden (kritischer Abschnitt). In der Programmierung bezeichnet man dies als Monitor. Entwicklung mobiler Anwendungen Europäische Fachhochschule Brühl/Neuss, 3. Quartal

27 Monitor mit synchronized In Java ist es leicht, einen Monitor zu implementieren. Mit dem Schlüsselwort synchronized erreichen wir, dass sich maximal ein Thread in der durch synchronized gekennzeichneten Methode befinden darf. synchronized public static void naechster() {... Damit wäre gewährleistet, dass unsere ZaehlThreads eine korrekte Sequenz ausgeben: Entwicklung mobiler Anwendungen Europäische Fachhochschule Brühl/Neuss, 3. Quartal

28 Klassen- und Instanzmethoden mit synchronized Eine mit synchronized gekennzeichnete Klassenmethode kann höchstens von einem Thread gleichzeitig ausgeführt werden. Eine mit synchronized gekennzeichnete Instanzmethode kann prinzipiell von mehreren Threads gleichzeitig ausgeführt werden. Aber für jedes Objekt kann es maximal einen Thread geben, der sich in einer mit synchronized gekennzeichneten Instanzmethode befindet. Bei Instanzmethoden ist die Synchronisation also objektbezogen. Entwicklung mobiler Anwendungen Europäische Fachhochschule Brühl/Neuss, 3. Quartal

29 Das Erzeuger/Verbraucher-Problem Wir betrachten einen (zunächst abstrakten) einfachen Puffer, der maximal einen Integer-Wert aufnehmen kann. abstract class Wert { protected int wert; abstract public int get(); abstract public void put(int w); Entwicklung mobiler Anwendungen Europäische Fachhochschule Brühl/Neuss, 3. Quartal

30 Solch ein Puffer wird von einem Erzeuger-Thread mit den Werten von 0 bis 4 gefüllt. class Erzeuger extends Thread { Wert w; public Erzeuger(Wert w) { this.w = w; public void run() { for (int i=0 ; i<5 ; i++) { w.put(i); System.out.println("Erzeuger put: " + i); try { sleep((int) (Math.random() * 100)); catch(interruptedexception e) { Entwicklung mobiler Anwendungen Europäische Fachhochschule Brühl/Neuss, 3. Quartal

31 Ein Verbraucher-Thread holt die Werte aus dem Puffer. class Verbraucher extends Thread { Wert w; public Verbraucher(Wert w) { this.w = w; public void run() { int v; for (int i=0 ; i<5 ; i++) { v = w.get(); System.out.println("Verbraucher get: " + v); try { sleep((int) (Math.random() * 100)); catch(interruptedexception e) { Entwicklung mobiler Anwendungen Europäische Fachhochschule Brühl/Neuss, 3. Quartal

32 Wir spezialisieren die Pufferklasse Wert zunächst auf einfache Weise: class SchlechterWert extends Wert { public synchronized int get() { return wert; public synchronized void put(int w) { wert = w; Unser Testprogramm public class EVTest1 { public static void main(string[] args) { Wert w = new SchlechterWert(); Erzeuger e = new Erzeuger(w); Verbraucher v = new Verbraucher(w); e.start(); v.start(); Entwicklung mobiler Anwendungen Europäische Fachhochschule Brühl/Neuss, 3. Quartal

33 Möglicher Ablauf: Erzeuger put: 0 Verbraucher get: 0 Erzeuger put: 1 Verbraucher get: 1 Verbraucher get: 1 Verbraucher get: 1 Erzeuger put: 2 Erzeuger put: 3 Erzeuger put: 4 Verbraucher get: 4 Der Erzeuger produziert zwar die Werte 0 bis 4, der Verbraucher entnimmt dem Puffer aber einige Werte mehrfach bzw. einige überhaupt nicht. Wir müssen dafür sorgen, dass der Verbraucher immer nur dann aktiv wird, wenn der Erzeuger wieder einen neuen Wert bereitgestellt hat. Entwicklung mobiler Anwendungen Europäische Fachhochschule Brühl/Neuss, 3. Quartal

34 Object-Methoden zur Steuerung von Threads Die Klasse Object stellt zur Verfügung: public final void wait() der Thread, der gerade ausgeführt wird, wird suspendiert, bis ein anderer Thread notify oder notifyall für das aktuelle Objekt ausführt. public final void notify() reaktiviert einen einzelnen Thread, der sich im Wartezustand bezüglich des aktuellen Objekts befindet. Entwicklung mobiler Anwendungen Europäische Fachhochschule Brühl/Neuss, 3. Quartal

35 public final void notifyall() reaktiviert alle Thread, die sich im Wartezustand bezüglich des aktuellen Objekts befinden. Entwicklung mobiler Anwendungen Europäische Fachhochschule Brühl/Neuss, 3. Quartal

36 Eine bessere Spezialisierung des abstrakten Puffers: class GuterWert extends Wert { private boolean verfuegbar = false; public synchronized int get() { if (!verfuegbar) { try { wait(); catch (InterruptedException ie) { verfuegbar = false; notify(); return wert; Entwicklung mobiler Anwendungen Europäische Fachhochschule Brühl/Neuss, 3. Quartal

37 public synchronized int put(int w) { if (verfuegbar) { try { wait(); catch (InterruptedException ie) { wert = w; verfuegbar = true; notify(); Das Flag verfuegbar zeigt an, ob ein Wert bereitsteht. Entwicklung mobiler Anwendungen Europäische Fachhochschule Brühl/Neuss, 3. Quartal

38 Kein Wert verfügbar, dann wait() in get(). put() weckt mit notify() den Verbraucher-Thread, wenn Wert zur Verfügung steht. put()/get() analog Entwicklung mobiler Anwendungen Europäische Fachhochschule Brühl/Neuss, 3. Quartal

39 Im Testprogramm ändern wir die Zeile zur Erzeugung des Puffers: Wert w = new GuterWert(); Damit erhalten wir dann eine saubere Verarbeitung: Erzeuger put: 0 Verbraucher get: 0 Erzeuger put: 1 Verbraucher get: 1 Erzeuger put: 2 Verbraucher get: 2 Erzeuger put: 3 Verbraucher get: 3 Erzeuger put: 4 Verbraucher get: 4 Entwicklung mobiler Anwendungen Europäische Fachhochschule Brühl/Neuss, 3. Quartal

40 Zusammenfassung Threads: parallele Kontrollflüsse in einem Programm Implementierung: implements Runnable oder extends Thread kritische Bereiche, Monitor: synchronized Gegenseitiges Warten: wait(), notify() Entwicklung mobiler Anwendungen Europäische Fachhochschule Brühl/Neuss, 3. Quartal

12. Threads in Java. Sequentielle Abarbeitung (2) Beispiel: Thread (1) Sequentielle Abarbeitung (1)

12. Threads in Java. Sequentielle Abarbeitung (2) Beispiel: Thread (1) Sequentielle Abarbeitung (1) 12. Threads in Java Einführendes Beispiel 12. Threads in Java 12. Threads in Java Einführendes Beispiel Sequentielle Abarbeitung (2) Ein Thread ist eine Folge von Anweisungen, die unabhängig von anderen

Mehr

Synchronisation in Java. Invisible Web

Synchronisation in Java. Invisible Web Synchronisation in Java Studienprojekt Invisible Web Tang Zhihong Synchronisation in Java Synchronisationsproblem Monitore Wait und notify PipedInputStream und PipedOutputStream Synchronisation von Collections

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

2.2 Prozesse in Java

2.2 Prozesse in Java 2.2 Prozesse in Java! Java sieht kein Schlüsselwort für Prozesse vor, sondern bestimmte Klassen und Schnittstellen. Mit anderen Worten: der Prozessbegriff wird mit Mitteln der Objektorientierung eingeführt.

Mehr

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {... PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können

Mehr

Java: Vererbung. Teil 3: super() www.informatikzentrale.de

Java: Vererbung. Teil 3: super() www.informatikzentrale.de Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und

Mehr

Verteilte Systeme CS5001

Verteilte Systeme CS5001 Verteilte Systeme CS5001 Th. Letschert TH Mittelhessen Gießen University of Applied Sciences Client-Server-Anwendungen: Vom passiven (shared state) Monitor zum aktiven Monitor Monitor (Hoare, Brinch-Hansen,

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 15 Parallele Programmierung... 15-2 15.1 Die Klasse java.lang.thread... 15-2 15.2 Beispiel 0-1-Printer als Thread... 15-3 15.3 Das Interface java.lang.runnable... 15-4 15.4 Beispiel 0-1-Printer

Mehr

2A Basistechniken: Weitere Aufgaben

2A Basistechniken: Weitere Aufgaben 2A Basistechniken: Weitere Aufgaben 2A.3 Programmierung unter UNIX/Linux 1. Gegeben sind einige Ausschnitte von C-Programmen, die unter UNIX/Linux ausgeführt werden sollen. Beantworten Sie die zugehörigen

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In

Mehr

Folge 18 - Vererbung

Folge 18 - Vererbung Workshop Folge 18 - Vererbung 18.1 Ein einfacher Fall der Vererbung Schritt 1 - Vorbereitungen Besorgen Sie sich - vielleicht aus einer der Übungen der Folge 17 - ein fertiges und lauffähiges Listenprojekt,

Mehr

Übung: Verwendung von Java-Threads

Übung: Verwendung von Java-Threads Übung: Verwendung von Java-Threads Ziel der Übung: Diese Übung dient dazu, den Umgang mit Threads in der Programmiersprache Java kennenzulernen. Ein einfaches Java-Programm, das Threads nutzt, soll zum

Mehr

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss Systeme 1 Kapitel 6 Nebenläufigkeit und wechselseitiger Ausschluss Threads Die Adressräume verschiedener Prozesse sind getrennt und geschützt gegen den Zugriff anderer Prozesse. Threads sind leichtgewichtige

Mehr

Einführung in die Programmierung Blockkurs Java

Einführung in die Programmierung Blockkurs Java Michael Bader 8. 12. April 2002 Freitag Inhaltsübersicht Exceptions und Errors Ausnahmebehandlung: try/catch/finally Threads Zugriffskontrolle bei gemeinsamen Variablen: synchronized, wait(), notify()

Mehr

Monitore. Klicken bearbeiten

Monitore. Klicken bearbeiten Sascha Kretzschmann Institut für Informatik Monitore Formatvorlage und deren Umsetzung des Untertitelmasters durch Klicken bearbeiten Inhalt 1. Monitore und Concurrent Pascal 1.1 Warum Monitore? 1.2 Monitordefinition

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

Mehr

2. Hintergrundverarbeitung in Android: Services und Notifications

2. Hintergrundverarbeitung in Android: Services und Notifications 2. Hintergrundverarbeitung in Android: Services und Notifications Übersicht 2. Hintergrundverarbeitung in Android: Services und Notifications Übersicht: In Mobis 1: Threads; hier genauerer Blick auf Services

Mehr

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung. Kapitel 12: Interfaces 12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/

Mehr

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Objektorientierte Programmierung für Anfänger am Beispiel PHP Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten

Mehr

Zählen von Objekten einer bestimmten Klasse

Zählen von Objekten einer bestimmten Klasse Zählen von Objekten einer bestimmten Klasse Ziel, Inhalt Zur Übung versuchen wir eine Klasse zu schreiben, mit der es möglich ist Objekte einer bestimmten Klasse zu zählen. Wir werden den ++ und den --

Mehr

5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren:

5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren: 5. Abstrakte Klassen Beispiel 5. Abstrakte Klassen 5. Abstrakte Klassen Beispiel Beispiel (3) Angenommen, wir wollen die folgende Klassenhierarchie implementieren: Probleme des Implementierungsvorschlags:

Mehr

Javakurs für Fortgeschrittene

Javakurs für Fortgeschrittene Javakurs für Fortgeschrittene Einheit 07: Nebenläufigkeit Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda Einführung in die Nebenläufigkeit und Java Thread Konzept: Motivation

Mehr

Übungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen

Übungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen Übungen if / else / else if... 2... 2 Aufgabe 2:... 2 Aufgabe 3:... 2 Aufgabe 4:... 2 Aufgabe 5:... 2 Aufgabe 6:... 2 Aufgabe 7:... 3 Aufgabe 8:... 3 Aufgabe 9:... 3 Aufgabe 10:... 3 switch... 4... 4 Aufgabe

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion

Mehr

Klausur zur Einführung in die objektorientierte Programmierung mit Java

Klausur zur Einführung in die objektorientierte Programmierung mit Java Klausur zur Einführung in die objektorientierte Programmierung mit Java im Studiengang Informationswissenschaft Prof. Dr. Christian Wolff Professur für Medieninformatik Institut für Medien-, Informations-

Mehr

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein. Schritt 1: Installation des Javacompilers JDK. Der erste Start mit Eclipse Bevor Sie den Java-Compiler installieren sollten Sie sich vergewissern, ob er eventuell schon installiert ist. Gehen sie wie folgt

Mehr

5. Abstrakte Klassen

5. Abstrakte Klassen 5. Abstrakte Klassen Beispiel 5. Abstrakte Klassen Angenommen, wir wollen die folgende Klassenhierarchie implementieren: Vogel Amsel Drossel Fink Peter Becker, Programiersprache Java FH Bonn-Rhein-Sieg,

Mehr

Universität Karlsruhe (TH)

Universität Karlsruhe (TH) Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 Cluster-Praktikum Sommersemester 2007 Transparent Replizierte Objekte in JavaParty Institut für Programmstrukturen und Datenorganisation

Mehr

Internet Explorer Version 6

Internet Explorer Version 6 Internet Explorer Version 6 Java Runtime Ist Java Runtime nicht installiert, öffnet sich ein PopUp-Fenster, welches auf das benötigte Plugin aufmerksam macht. Nach Klicken auf die OK-Taste im PopUp-Fenster

Mehr

Musterlösungen zur Klausur Informatik 3

Musterlösungen zur Klausur Informatik 3 Musterlösungen zur Klausur Informatik 3 Justus-Liebig-Universität Gießen Wintersemester 2003/2004 Aufgabe 1 (6 Punkte) Man kreuze bei den folgenden Deklarationen und Definitionen jeweils an, ob sie aus

Mehr

Zur Erinnerung: Threads. Threadverwaltung. Threads: Prioritäten. Beispiel Flugbuchungsprogramm. Nichtdeterminismus

Zur Erinnerung: Threads. Threadverwaltung. Threads: Prioritäten. Beispiel Flugbuchungsprogramm. Nichtdeterminismus Zur Erinnerung: Threads Programmierung (fortgeschrittene Konzepte) Threads, Monitore, Semaphore und speisende en Wolf-Ulrich Raffel (uli@wuraffel.de) Möglichkeiten, Threads zu definieren Bildung einer

Mehr

Schritt 1 - Ein Spielfeld

Schritt 1 - Ein Spielfeld Schritt 1 - Ein Spielfeld Wir beginnen mit zwei einfachen Java-Klassen, dem eigentlichen Spielfeld und dem Applet zum Anzeigen des Spielfeldes (und später der Buttons und der anderen Bedienelemente). Hier

Mehr

Überblick. Lineares Suchen

Überblick. Lineares Suchen Komplexität Was ist das? Die Komplexität eines Algorithmus sei hierbei die Abschätzung des Aufwandes seiner Realisierung bzw. Berechnung auf einem Computer. Sie wird daher auch rechnerische Komplexität

Mehr

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 9 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

14.4.2016. Technische Hochschule Georg Agricola WORKSHOP TEIL 3. IKT (Informations- und Kommunikationstechnik) an einer MorseApp erklärt

14.4.2016. Technische Hochschule Georg Agricola WORKSHOP TEIL 3. IKT (Informations- und Kommunikationstechnik) an einer MorseApp erklärt 14.4.2016 Technische Hochschule Georg Agricola WORKSHOP TEIL 3 IKT (Informations- und Kommunikationstechnik) an einer MorseApp erklärt Inhaltsverzeichnis 1. Kurzfassung zur Projekterstellung... 2 2. Morse-Tabelle...

Mehr

Java Kurs für Anfänger Einheit 5 Methoden

Java Kurs für Anfänger Einheit 5 Methoden Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden

Mehr

SEP 114. Design by Contract

SEP 114. Design by Contract Design by Contract SEP 114 Design by Contract Teile das zu entwickelnde Programm in kleine Einheiten (Klassen, Methoden), die unabhängig voneinander entwickelt und überprüft werden können. Einheiten mit

Mehr

Übung Grundlagen der Programmierung. Übung 03: Schleifen. Testplan Testergebnisse

Übung Grundlagen der Programmierung. Übung 03: Schleifen. Testplan Testergebnisse Übung 03: Schleifen Abgabetermin: xx.xx.xxxx Name: Matrikelnummer: Gruppe: G1 (Prähofer) G2 (Prähofer) G3 (Wolfinger) Aufgabe Punkte gelöst abzugeben schriftlich abzugeben elektronisch Aufgabe 03.1 12

Mehr

Übungen zu Softwaretechnik

Übungen zu Softwaretechnik Prof. Dr. Dr. h.c. M. Broy Lösungsblatt 11 Dr. H. Ehler, S. Wagner 23. Januar 2004 Übungen zu Softwaretechnik Aufgabe 16 Qualitätseigenschaften Broker-Pattern Beurteilen Sie das in Aufgabe 15 benutzte

Mehr

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6 Gudrun Fischer Sascha Kriewel programmierung@is.informatik.uni-duisburg.de Anmeldung zur Klausur! Übungsblatt Nr. 6 Um an der Klausur teilzunehmen, müssen sich Studierende der angewandten Informatik in

Mehr

GeoPilot (Android) die App

GeoPilot (Android) die App GeoPilot (Android) die App Mit der neuen Rademacher GeoPilot App machen Sie Ihr Android Smartphone zum Sensor und steuern beliebige Szenen über den HomePilot. Die App beinhaltet zwei Funktionen, zum einen

Mehr

Grundlagen verteilter Systeme

Grundlagen verteilter Systeme Universität Augsburg Insitut für Informatik Prof. Dr. Bernhard Bauer Wolf Fischer Christian Saad Wintersemester 08/09 Übungsblatt 3 12.11.08 Grundlagen verteilter Systeme Lösungsvorschlag Aufgabe 1: a)

Mehr

Prof. Dr. Uwe Schmidt. 21. August 2007. Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252)

Prof. Dr. Uwe Schmidt. 21. August 2007. Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252) Prof. Dr. Uwe Schmidt 21. August 2007 Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252) Zeit: 75 Minuten erlaubte Hilfsmittel: keine Bitte tragen Sie Ihre Antworten und fertigen

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Zusatzaufgaben Lösungsvorschlag Objektorientierte Programmierung Lösung 22 (Java und UML-Klassendiagramm)

Mehr

Vorkurs C++ Programmierung

Vorkurs C++ Programmierung Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:

Mehr

Sichtbarkeit & statische Methoden. Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben

Sichtbarkeit & statische Methoden. Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben Sichtbarkeit & statische Methoden Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben Nicht sichtbare Methoden Wollen Eltern bestimmte Methoden vor den

Mehr

4 Codierung nach Viginere (Lösung)

4 Codierung nach Viginere (Lösung) Kapitel 4 Codierung nach Viginere (Lösung) Seite 1/14 4 Codierung nach Viginere (Lösung) 4.1 Einführung Blaise de Vigenère lebte von 1523 bis 1596 in Frankreich und war nach dem Studium bei verschiedenen

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113

Mehr

Eine Anwendung mit InstantRails 1.7

Eine Anwendung mit InstantRails 1.7 Eine Anwung mit InstantRails 1.7 Beschrieben wird das Anlegen einer einfachen Rails-Anwung, die ohne Datenbank auskommt. Schwerpunktmäßig wird auf den Zusammenhang von Controllern, Views und der zugehörigen

Mehr

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. Einfache Ein- und Ausgabe mit Java 1. Hallo-Welt! Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. /** Die Klasse hello sendet einen

Mehr

Kapitel 4. Monitore und wechselseitiger Ausschluss

Kapitel 4. Monitore und wechselseitiger Ausschluss Seite 1 Kapitel 4 Monitore und wechselseitiger Ausschluss Prof. Dr. Rolf Hennicker 28.05.2015 4.1 Interferenzen Seite 2 Parallel ablaufende Prozesse können sich gegenseitig (störend) beeinflussen. Beispiel

Mehr

Was meinen die Leute eigentlich mit: Grexit?

Was meinen die Leute eigentlich mit: Grexit? Was meinen die Leute eigentlich mit: Grexit? Grexit sind eigentlich 2 Wörter. 1. Griechenland 2. Exit Exit ist ein englisches Wort. Es bedeutet: Ausgang. Aber was haben diese 2 Sachen mit-einander zu tun?

Mehr

Jetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen.

Jetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen. Teil B: Erweiterungen Jetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen. Die folgenden Aufgaben und Ausführungen geben einige Hilfestellungen, welche (mindestens

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Übung 8: Semaphore in Java (eigene Implementierung)

Übung 8: Semaphore in Java (eigene Implementierung) Übung 8: Semaphore in Java (eigene Implementierung) Ziel der Übung: Diese Übung dient dazu, eine eigene Implementierung einer Semaphore-Klasse in der Programmiersprache Java kennenzulernen. Anschließend

Mehr

Innere Klassen in Java

Innere Klassen in Java Innere Klassen in Java SS 2012 Prof. Dr. Margarita Esponda Innere Klassen Klassen- oder Interfacedefinitionen können zur besseren Strukturierung von Programmen verschachtelt werden Eine "Inner Class" wird

Mehr

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005 Einführung in die objektorientierte Programmierung mit Java Klausur am 19. Oktober 2005 Matrikelnummer: Nachname: Vorname: Semesteranzahl: Die Klausur besteht aus drei Frageblöcken zu den Inhalten der

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

3 Objektorientierte Konzepte in Java

3 Objektorientierte Konzepte in Java 3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine

Mehr

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders

Mehr

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen Alexander Schunk Henry Trobisch Inhalt 1. Vergleich der Unit-Tests... 2 2. Vergleich der Codeabdeckungs-Tests... 2 3. Vergleich

Mehr

Studentische Lösung zum Übungsblatt Nr. 7

Studentische Lösung zum Übungsblatt Nr. 7 Studentische Lösung zum Übungsblatt Nr. 7 Aufgabe 1) Dynamische Warteschlange public class UltimateOrderQueue private Order[] inhalt; private int hinten; // zeigt auf erstes freies Element private int

Mehr

M. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung

M. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung M. Graefenhan 2000-12-07 Aufgabe Lösungsweg Übungen zu C Blatt 3 Musterlösung Schreiben Sie ein Programm, das die Häufigkeit von Zeichen in einem eingelesenen String feststellt. Benutzen Sie dazu ein zweidimensionales

Mehr

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben. Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.

Mehr

Der lokale und verteilte Fall

Der lokale und verteilte Fall Lokale Beans Der lokale und verteilte Fall RemoteClient Lokaler Client (JSP) RemoteSession/Entity-Bean Lokale Session/Entity-Bean 2 Lokale Beans Die bisher vorgestellten EJBswaren immer in der Lage auf

Mehr

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer

Mehr

Dokumentation des Projektes Tic Tac Toe

Dokumentation des Projektes Tic Tac Toe Praktikum aus Programmierung Dr. Michael Hahsler Dokumentation des Projektes Tic Tac Toe 0050230 1 Java Projekt: Tic Tac Toe 1. Inhaltsverzeichnis 1. Inhaltsverzeichnis... 2 2. Problemdefinition... 2 3.

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung Kapitel 6 Vererbung Vererbung 1 Ziele Das Vererbungsprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Übungsblatt 5 Lösungsvorschlag Objektorientierte Programmierung 22. 05. 2006 Lösung 9 (SMS-Eingabe am

Mehr

Abteilung Informatik, JFC/Swing 2004 Diego Schmidlin V2.2

Abteilung Informatik, JFC/Swing 2004 Diego Schmidlin V2.2 Inhalt 1. Printing API 1. Übersicht 2. Vorgehen 3. Beispiel 2. Klasse PrintUtils 3. Mehrere Seiten drucken Folie 1 Lernziele Sie wissen, wie Sie Swing-Komponenten ausdrucken können Sie kennen den Aufbau

Mehr

Zwischenablage (Bilder, Texte,...)

Zwischenablage (Bilder, Texte,...) Zwischenablage was ist das? Informationen über. die Bedeutung der Windows-Zwischenablage Kopieren und Einfügen mit der Zwischenablage Vermeiden von Fehlern beim Arbeiten mit der Zwischenablage Bei diesen

Mehr

Betriebssysteme. Wintersemester 2015. Kapitel 2 Prozess und Threads. Patrick Kendzo ppkendzo@gmail.com

Betriebssysteme. Wintersemester 2015. Kapitel 2 Prozess und Threads. Patrick Kendzo ppkendzo@gmail.com Betriebssysteme Wintersemester 2015 Kapitel 2 Prozess und Threads Patrick Kendzo ppkendzo@gmail.com Programm Inhalt Einleitung Prozesse und Threads Speicherverwaltung Eingabe und Ausgabe Dateisysteme Zusammenfassung

Mehr

Gliederung Grundlagen Schlüsselworte try-catch Fehlerobjekte Fehlerklassen Schlüsselwort finally Schlüsselwort throws selbst erstellte Exceptions

Gliederung Grundlagen Schlüsselworte try-catch Fehlerobjekte Fehlerklassen Schlüsselwort finally Schlüsselwort throws selbst erstellte Exceptions try-catch Schlüsselworte try-catch e Schlüsselwort Schlüsselwort selbst erstellte ermöglichen die Behandlung von Fehlern, die zur Laufzeit entstehen. try-catch in C: Fehler führt immer zum Abbruch des

Mehr

C# im Vergleich zu Java

C# im Vergleich zu Java C# im Vergleich zu Java Serhad Ilgün Seminar Universität Dortmund SS 03 Gliederung Entstehung von C# und Java Überblick von C# und Java Unterschiede und Gemeinsamkeiten Zusammenfassung und Ausblick Entstehung

Mehr

Handbuch ECDL 2003 Modul 2: Computermanagement und Dateiverwaltung Der Task-Manager

Handbuch ECDL 2003 Modul 2: Computermanagement und Dateiverwaltung Der Task-Manager Handbuch ECDL 2003 Modul 2: Computermanagement und Dateiverwaltung Der Task-Manager Dateiname: ecdl2_03_05_documentation Speicherdatum: 22.11.2004 ECDL 2003 Modul 2 Computermanagement und Dateiverwaltung

Mehr

Software Engineering Klassendiagramme Assoziationen

Software Engineering Klassendiagramme Assoziationen Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen

Mehr

Nebenläufigkeit mit Java

Nebenläufigkeit mit Java Nebenläufigkeit mit Java Einheit 02: Eigenschaften & kritische Abläufe Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda Eigenschaften von Threads Name, Priorität, Zustand Zustandsübergänge

Mehr

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten In dem Virtuellen Seminarordner werden für die Teilnehmerinnen und Teilnehmer des Seminars alle für das Seminar wichtigen Informationen,

Mehr

Softwarelösungen: Versuch 4

Softwarelösungen: Versuch 4 Softwarelösungen: Versuch 4 Nichtstun in Schleife wird ersetzt durch zeitweilige Zurücknahme der Anforderung, um es anderen Prozessen zu erlauben, die Ressource zu belegen: /* Prozess 0 */ wiederhole flag[0]

Mehr

IT in der Arztpraxis Technisches Handbuch zum Kodierassistenten

IT in der Arztpraxis Technisches Handbuch zum Kodierassistenten Technisches Handbuch zum Kodierassistenten [KBV_ITA_AHEX_Handbuch_Kodierassistent] Dezernat 6 Informationstechnik, Telematik und Telemedizin 10623 Berlin, Herbert-Lewin-Platz 2 Kassenärztliche Bundesvereinigung

Mehr

Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter

Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter Aufgabe 3: Konto Um Geldbeträge korrekt zu verwalten, sind zwecks Vermeidung von Rundungsfehlern entweder alle Beträge in Cents umzuwandeln und

Mehr

MPEG2Schnitt (Freeware) - demuxte Videodaten schneiden und verketten. framegenauer Schnitt mit Bild-Ton-Synchronisierung und Fehlerkorrekturen

MPEG2Schnitt (Freeware) - demuxte Videodaten schneiden und verketten. framegenauer Schnitt mit Bild-Ton-Synchronisierung und Fehlerkorrekturen MPEG2Schnitt (Freeware) - demuxte Videodaten schneiden und verketten framegenauer Schnitt mit Bild-Ton-Synchronisierung und Fehlerkorrekturen www.mdienert.de/mpeg2schnitt/index.htm MPEG2Schnitt kann Video

Mehr

Dokumentation für das Spiel Pong

Dokumentation für das Spiel Pong Dokumentation für das Spiel Pong BwInf - Turnierserver Didaktik der nformatik BWINF KI Wettbewerbs-Plattform Stand: 02.09.2014 Grundlagen In diesem KI-Turnier programmiert ihr einen Schläger für das Retro-Spiel

Mehr

Mobile App Development. - Alarm -

Mobile App Development. - Alarm - Mobile App Development - Alarm - Inhalt Alarme AlarmManger Wake locks 2 Alarm Alarm Oft ist es notwendig eine App zu starten, auch wenn der Benutzer nicht mit ihr interagiert Starten von Activities zu

Mehr

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Einführung in Java PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Gliederung 1. Was ist Java / Geschichte von Java 2. Prinzip der Plattformunabhängigkeit 3. Wie kommt man vom Quellcode zum Programm

Mehr

Wintersemester 2009/10 Helmut Seidl Institut für Informatik TU München

Wintersemester 2009/10 Helmut Seidl Institut für Informatik TU München Informatik2 Wintersemester 2009/10 Helmut Seidl Institut für Informatik TU München 1 0 Allgemeines Inhalt dieser Vorlesung: Nebenläufigkeit in Java; Funktionales Programmieren mit OCaml :-) 2 1 Threads

Mehr

Software Engineering Interaktionsdiagramme

Software Engineering Interaktionsdiagramme Software Engineering Interaktionsdiagramme Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Nachrichtenaustausch Welche Nachrichten werden ausgetauscht? (Methodenaufrufe)

Mehr

Klassendefinitionen verstehen

Klassendefinitionen verstehen Klassendefinitionen verstehen Java-Programme bestehen aus Klassendefinitionen und sonst nichts! 1 1.0 Konzepte Felder Konstruktoren Methoden Parameter Zuweisungen ( = ) Anweisungen bedingte Anweisungen

Mehr

Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007 Fachhochschule Bonn-Rhein-Sieg University of Applied Sciences Fachbereich Informatik Prof. Dr. Peter Becker Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

Mehr

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16. Vorbereitende Aufgaben

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16. Vorbereitende Aufgaben Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16 Fakultät für Informatik Lehrstuhl 14 Lars Hildebrand, Marcel Preuß, Iman Kamehkhosh, Marc Bury, Diana Howey Übungsblatt

Mehr

Wir arbeiten mit Zufallszahlen

Wir arbeiten mit Zufallszahlen Abb. 1: Bei Kartenspielen müssen zu Beginn die Karten zufällig ausgeteilt werden. Wir arbeiten mit Zufallszahlen Jedesmal wenn ein neues Patience-Spiel gestartet wird, muss das Computerprogramm die Karten

Mehr

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008 Konzeption und Implementierung einer automatisierten Testumgebung, 10. Dezember 2008 1 Gliederung Einleitung Softwaretests Beispiel Konzeption Zusammenfassung 2 Einleitung Komplexität von Softwaresystemen

Mehr

EasyWk DAS Schwimmwettkampfprogramm

EasyWk DAS Schwimmwettkampfprogramm EasyWk DAS Schwimmwettkampfprogramm Arbeiten mit OMEGA ARES 21 EasyWk - DAS Schwimmwettkampfprogramm 1 Einleitung Diese Präsentation dient zur Darstellung der Zusammenarbeit zwischen EasyWk und der Zeitmessanlage

Mehr

Erstellen einer PostScript-Datei unter Windows XP

Erstellen einer PostScript-Datei unter Windows XP Erstellen einer PostScript-Datei unter Windows XP Sie möchten uns Ihre Druckvorlage als PostScript-Datei einreichen. Um Fehler in der Herstellung von vorneherein auszuschließen, möchten wir Sie bitten,

Mehr

Zimmertypen. Zimmertypen anlegen

Zimmertypen. Zimmertypen anlegen Zimmertypen anlegen Hier legen Sie Ihre Zimmer an, damit sie auf der Homepage dargestellt werden und online buchbar gemacht werden können. Wobei wir ausdrücklich darauf hinweisen möchten, dass es ganz

Mehr

Benutzerhandbuch. Leitfaden zur Benutzung der Anwendung für sicheren Dateitransfer.

Benutzerhandbuch. Leitfaden zur Benutzung der Anwendung für sicheren Dateitransfer. Benutzerhandbuch Leitfaden zur Benutzung der Anwendung für sicheren Dateitransfer. 1 Startseite Wenn Sie die Anwendung starten, können Sie zwischen zwei Möglichkeiten wählen 1) Sie können eine Datei für

Mehr

Einbindung einer ACT!12-16 Datenbank als Datenquelle für den Bulkmailer 2012

Einbindung einer ACT!12-16 Datenbank als Datenquelle für den Bulkmailer 2012 Einbindung einer ACT!12-16 Datenbank als Datenquelle für den Bulkmailer 2012 Eine langvermisste Funktion ist mit den neuesten Versionen von ACT! und Bulkmailer wieder verfügbar. Mit dem Erscheinen der

Mehr