Workshop zu Folge 9.3 Überarbeitete Version vom Mai 2016

Größe: px
Ab Seite anzeigen:

Download "Workshop zu Folge 9.3 Überarbeitete Version vom Mai 2016"

Transkript

1 Workshop zu Folge 9.3 Überarbeitete Version vom Mai 2016 Schritt 1 - Ein Spielfeld Wir beginnen mit zwei einfachen Java-Klassen, dem eigentlichen Spielfeld und dem Applet zum Anzeigen des Spielfeldes. Hier zunächst der komplette Quelltext der Klasse Spielfeld: import java.util.random; import java.awt.*; public class Spielfeld int[][] feld; Random rand = new Random(); public Spielfeld() feld = new int [50][50]; int zufall = rand.nextint(10); if (zufall < 9) feld[x][y] = 0; else feld[x][y] = 1; public void anzeigen(graphics g) if (feld[x][y] == 1) g.setcolor(new Color(0,127,0)); else if (feld[x][y] == 0) g.setcolor(color.yellow); g.fillrect(50+x*8, 20+y*8,8,8); g.setcolor(new Color(127,127,127)); g.drawrect(50+x*8, 20+y*8,8,8); Die "lebendigen" Felder werden durch die Farbe Dunkelgrün und die "toten" Felder durch die Farbe Gelb repräsentiert. Es steht Ihnen frei, dies zu ändern. Seite 1 von 11

2 Schritt 2 - Das Applet import java.awt.*; import javax.swing.*; public class Anzeige extends JApplet Spielfeld welt; public void init() welt = new Spielfeld(); public void paint(graphics g) welt.anzeigen(g); Der Quelltext des Java-Applets ist recht kurz, aber so wollten wir das ja immer halten: Nur das Notwendigste soll in dem Applet-Quelltext stehen, alles andere soll in die untergeordneten Klassen ausgelagert werden. Und hier die Ausgabe, die uns das Applet liefert: Die erzeugte Welt Seite 2 von 11

3 Schritt 3 - Berechnung der neuen Generation Wir wollen jetzt eine neue wichtige Methode in die Klasse Spielfeld einbauen: public void neuerzyklus() // temporäres Feld berechnen int s = nachbarsumme(x,y); if (s == 0) // wenn kein Nachbar lebt temp[x][y] = 0; // ist das nicht gut für die Zelle else if (s < 3) // wenn 1 oder 2 Nachbarn leben temp[x][y] = 1; // lebt unsere Zelle auch weiter else // wenn 3 oder 4 Nachbarn leben temp[x][y] = 0; // ist das zu viel Stress und die // Zelle stirbt. // tatsächliches Feld aktualisieren feld[x][y] = temp[x][y]; Sie sehen hier den Quelltext der Methode neuerzyklus(). Die beiden geschachtelten for-schleifen am Anfang der Methode untersuchen jede der 50 x 50 Zellen und ermitteln mithilfe einer noch zu entwickelnden sondierenden Methode nachbarsumme() die Zahl der lebenden Nachbarn für jede Zelle. Dabei wird von einer Torus-Welt ausgegangen. Wenn eine Zelle keinen lebenden Nachbarn hat (s == 0), so ist sie in der nächsten Generation tot. In dem Hilfs-Array temp wird das entsprechende Feld daher auf den Status 0 gesetzt. Hat eine Zelle bzw. ein Feld einen oder zwei lebende Nachbarn (s < 3), so wird der Status für die nächste Generation auf 1 gesetzt. Wenn beide vorherigen Bedingungen (s == 0) und (s < 3) nicht zutreffen, hat die Zelle drei oder vier lebende Nachbarn, und die Zelle stirbt im nächsten Zyklus. Wozu dient der Array temp, der hier benutzt wird? Der Hilfsarray temp wird zusammen mit dem Hauptarray feld am Anfang der Klasse Spielfeld deklariert: int[][] feld, temp; Um den Status eines Einzelfeldes in der Folgegeneration zu berechnen, werden die Zustände der vier Nachbarfelder in der aktuellen Generation ausgewertet. Würde nun der Zustand des gerade betrachteten Einzelfeldes sofort im Array feld geändert, so wäre die Berechnung für den rechten und den unteren Nachbarn dieses Einzelfeldes nicht mehr korrekt. Seite 3 von 11

4 9.3-2 So darf man es nicht machen! Dieses Bild zeigt, was passieren würde, wenn man den Status des Feldes B2 sofort verändern würde. Im rechten Teil des Bildes sieht man, dass jetzt der Status des Feldes C2 falsch berechnet wird. Da B2 bereits (voreilig) den Folgezustand 1 angenommen hat, hat das Feld C2 plötzlich einen lebenden Nachbarn und nimmt daher den falschen Folgezustand 1 an. An sich hat das Feld C2 in der aktuellen Generation keinen lebenden Nachbarn (siehe linkes Teilbild), daher müsste der Folgezustand von C2 = 0 sein. Um den Status der Nachbarn zu berechnen, darf das Einzelfeld noch nicht seinen Status ändern, sondern muss den alten Status behalten. Der neue Status des Einzelfeldes wird vorübergehend in dem Hilfsarray temp gespeichert. Erst wenn die Berechnung für alle Felder abgeschlossen ist, werden alle Felder auf den berechneten und in temp zwischengespeicherten Status gesetzt: feld[x][y] = temp[x][y]; Seite 4 von 11

5 Übung Übung (2 Punkte) Schreiben Sie jetzt die noch fehlende Methode nachbarsumme(), die die Zahl der lebenden Nachbarn eines Feldes zurück liefert. Jedes Feld hat genau vier Nachbarn: links, rechts, oben und unten, und die Rand- und Eckfelder sind mit den Feldern der gegenüberliegenden Seite verknüpft, wie bei einer Torus-Welt. Schritt 4 - Realisierung der Torus-Welt In den Quelltexten, die wir bisher besprochen haben, hat die Welt noch keinen Torus-Charakter. Die Zellen am linken Rand haben also keinen linken Nachbarn, die Zellen am rechten Rand keinen rechten Nachbarn. Gleiches gilt für die Zellen am oberen und am unteren Rand. Um eine Torus- Welt zu realisieren, gibt es grundsätzlich zwei Möglichkeiten. Möglichkeit 1 Wir schreiben eine Methode, welche den linken Rand der Welt mit dem rechten Rand verbindet und anschließend den oberen Rand mit dem unteren Rand. Diese Methode muss immer dann aufgerufen werden, wenn ein Zyklus abgeschlossen ist. Allerdings setzt dieses Verfahren einen etwas größeren zweidimensionalen Array voraus: Statt einem 50 x 50 Array verwenden wir einen 52 x 52 Array Die Ränder werden "verklebt" Das Bild zeigt, wie dieses "Verkleben der Ränder" funktioniert, an einem 5 x 5 - Array. Rechts sieht man, wie gerade der Inhalt des Feldes 2,1 in das virtuelle Feld 2,6 kopiert wird. Das Feld 1,3 wird in das Feld 6,3 gesichert. Diese Kopieraktion muss natürlich für alle Randfelder durchgeführt werden, nicht nur für die zwei hier eingezeichneten. Da drängt sich doch sofort eine for-schleife auf, die das für uns erledigt, vielleicht auch zwei for-schleifen, eine für die senkrechten und eine für die waagerechten Randfelder. Seite 5 von 11

6 9.3-4 Die Zahl der Nachbarn kann leicht berechnet werden Das Bild zeigt, dass jetzt die Zahl der Nachbarn eines beliebigen Feldes sehr einfach ermittelt werden kann, selbst wenn das Feld ein Eckfeld ist, wie das rot markierte. Möglichkeit 2 Wir schreiben uns private Hilfsmethoden wie beispielsweise nachbaroben(): private int nachbaroben(int x, int y) if (y == 0) return feld[x][49]; else return feld[x][y-1]; Der Vorteil ist der, dass wir die Ränder der Welt nicht verkleben müssen. Allerdings brauchen wir dann vier solcher Methoden, nämlich für jede Richtung eine. Mit Hilfe dieser privaten Methoden kann man dann die Zahl der lebenden Nachbarn genau so einfach berechnen wie mit dem ersten Verfahren. Seite 6 von 11

7 Übungen Übung (3 Punkte) Statten Sie das Applet mit einem Button "nächste Generation" oder "nächster Zyklus" aus. Wenn dieser Button geklickt wird, soll die Methode Spielfeld.neuerZyklus() ausgeführt werden. Durch die paint()-methode des Applets wird die Welt dann wieder neu gezeichnet. Vergessen Sie nicht den Aufruf von repaint() in der ActionPerformed()-Methode! Übung (2 Punkte) Ergänzen Sie das Applet um einen zweiten Button "neues Spiel". Wenn dieser Button geklickt wird, so startet ein neues Spiel mit einer neuen Zufalls-Belegung der Felder. Seite 7 von 11

8 Exkurs für Experten Bisher hatten wir den Zustand der Felder in der nächsten Generation wie mithilfe einer komplizierten if-else-anweisung berechnet, welche die Übergangsfunktion des Automaten repräsentiert: int s = nachbarsumme(x,y); if (s == 0) temp[x][y] = 0; else if (s < 3) temp[x][y] = 1; else temp[x][y] = 0; Betrachten Sie nun eine alternative Möglichkeit: temp[x][y] = zustand[nachbarsumme(x,y)]; Diese drei Zeilen leisten genau das Gleiche wie der obige Quelltext. In einem neuen Array zustand, der aus genau fünf int-zahlen besteht, werden bei der Deklaration / Initialisierung die Folgezustände gespeichert: int[] zustand = 0,1,1,1,0; Diese Anweisung erfolgt am Anfang der Klasse Spielfeld bei der Deklaration der Attribute. Dieser Array ist nichts anderes als die Umsetzung der Tabelle mit der Übergangsfunktion: Zahl der lebenden Nachbarn = Index des Arrays zustand Neuer Zustand = Wert des jeweiligen Arrayelements Die Übergangsfunktion, implementiert als Array Die Zahl der lebenden Nachbarn wird einfach als Index der Arrayelemente interpretiert, der neue Zustand ist dann der jeweilige Wert. Seite 8 von 11

9 Schritt 5- ein Timer Es ist schon sehr lästig, wenn man jedes Mal auf den Button "nächster Zyklus" klicken muss, um die nächste Generation der Felder zu berechnen. Viel schöner wäre es, wenn das Applet automatisch alle 200 Millisekunden oder alle 100 Millisekunden eine neue Generation berechnen und zeichnen würde. In Java geht das ohne Weiteres, man muss das Applet dazu mit einem Timer ausstatten. Die erforderlichen Komponenten finden wir in der Klasse Runnable, die wir in das Applet einbinden müssen: public class Anzeige extends JApplet implements ActionListener, Runnable Der Timer ist ein Attribut der Klasse Thread. Unter einem Thread versteht man einen Teil eines Prozesses, der gemeinsam mit anderen Threads vom Betriebssystem ausgeführt wird. Jeder Thread besitzt seinen eigenen Befehlszähler und seinen eigenen Stack, auf dem wichtige Informationen, zum Beispiel Zwischenergebnisse, abgelegt werden können. Weitere Erklärungen würden hier zu weit führen. Die Klasse Runnable stellt zwei wichtige Methoden zur Verfügung, die in dem Applet auf jeden Fall überschrieben werden müssen, sonst streikt der Compiler. Runnable ist eine abstrakte Klasse, stellt also nur leere Methoden bereit, die noch mit Inhalt gefüllt werden müssen - und das geschieht dann beim Überschreiben. Diese beiden Methoden heißen start() und run(). Die früher oft verwendete Methode stop() wird in aktuellen Java-Versionen nicht mehr verwendet. Deklaration des Timers Thread uhr; Das war ja kurz. Initialisierung des Timers Für die Initialisierung des Timers benötigen wir jetzt die start()-methode des Applets, die wir bisher ja immer gelöscht hatten. public void start() if (uhr == null); uhr = new Thread(this); uhr.start(); Falls also in start() festgestellt wird, dass noch kein Timer initialisiert wurde (uhr == null), so wird der Timer initialisiert und gestartet. Seite 9 von 11

10 Die wichtige run-methode Betrachten wir nun die run()-methode, die wir ebenfalls neu schreiben (überschreiben) müssen: public void run() while (true) welt.neuerzyklus(); repaint(); try Thread.sleep(200); catch (InterruptedException e) Das zentrale Element der run()-methode ist eine endlose while-schleife; die Bedingung while(true) ist immer erfüllt, daher läuft die while-schleife ständig. Im Wesentlichen werden in der Schleife drei Anweisungen ausgeführt: 1. Zunächst wird Spielfeld.neuerZyklus() aufgerufen und damit die nächste Generation berechnet. 2. Mit dem repaint()-befehl wird das neue Spielfeld vom Applet gezeichnet. 3. Und mit der Thread.sleep()-Anweisung wird der Thread für eine kurze Zeitspanne (hier 200 Millisekunden) angehalten. Der Aufruf der sleep()-anweisung kann allerdings zu Problemen führen, vor allem, wenn mehrere Threads vom Betriebssystem gleichzeitig ausgeführt werden, was ja fast immer der Fall ist. Daher versucht das Programm mit try diese Anweisung auszuführen. Wenn der Versuch gelingt, ist alles gut. Wenn nicht, wird im catch-zweig eine interne Fehlerroutine aufgerufen. Nach 200 ms wird ein neuer Schleifendurchgang gestartet, eine neue Generation berechnet und gezeichnet. Dann wird wieder 200 ms gewartet, bis die Schleife erneut gestartet wird. Erst wenn der Benutzer das Java-Applet beendet, wird die while-schleife gestoppt. Seite 10 von 11

11 Übungen Übung (4 Punkte) Bauen Sie die besprochenen Methoden in Ihr Applet ein, geben Sie den Buttons sinnvolle Namen und beobachten Sie den Verlauf des Automaten über mehrere Hundert Zyklen. Übung (2 Punkte) Zeigen Sie mit dem g.drawstring()-befehl ständig die Zahl der bereits zurückgelegten Zyklen im Applet an! Achten Sie auf eine lesbare Ausgabe der Zahl! Übung (2 Punkte) Probieren Sie andere (komplexere) Übergangsfunktionen in der Klasse Spielfeld aus und dokumentieren Sie Ihre Ergebnisse zum Beispiel durch Screenshots oder besser durch eine Präsentation vor dem Kurs. Übung (2 Punkte) Experimentieren Sie mit mehr als zwei Zuständen, zum Beispiel "lebendig", "krank", "tot". Übung (2 Punkte) Experimentieren Sie mit mehr als vier Nachbarn, indem Sie die diagonalen Nachbarn ebenfalls mit berücksichtigen. Übung (2 Punkte) Berücksichtigen Sie in Ihrer komplexeren Übergangsfunktion den bisherigen Zustand der jeweiligen Zelle. Lebende Zellen sollen sich anders verhalten als tote Zellen. Damit ist der Kurs "Einführung in das Programmieren mit Java" für die Stufe EF beendet. Die Folge 9 werden viele EF-Kurse wahrscheinlich nicht mehr schaffen, was aber auch nicht schlimm ist; man kann die Folge 9 auch sehr gut als Einstieg für die Stufe Q1 verwenden. Seite 11 von 11

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

8.6 Visualisierung der Sortieralgorithmen

8.6 Visualisierung der Sortieralgorithmen 8.6 Visualisierung der Sortieralgorithmen 8.6.1 Problemstellung Schauen Sie sich den folgenden Quelltext eines Java-Applets an: import java.awt.*; import javax.swing.*; import java.awt.event.*; public

Mehr

7.5 Mit bunten Kreisen spielen

7.5 Mit bunten Kreisen spielen Workshop (fakultativ) 7.5 Mit bunten Kreisen spielen In diesem fakultativen Workshop wollen wir mit Objekt-Arrays arbeiten. Sie erinnern sich an die Klasse Kreis, die wir in der Folge 5 konstruiert hatten.

Mehr

Objektorientierte Programmierung OOP Objektorientierte Programmierung (OOP) mit Java

Objektorientierte Programmierung OOP Objektorientierte Programmierung (OOP) mit Java 9 Übungen: Applets Objektorientierte Programmierung OOP Objektorientierte Programmierung (OOP) mit Java 1. Java-Applet mit Text 2. Java-Applet mit Bild und Text 3. Java-Applet mit Grafik 9 Applets 4. Java-Applet

Mehr

Vorlesung Informatik II

Vorlesung Informatik II Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 16. Java: Threads für Animationen 1 Motivation

Mehr

Java programmieren mit JavaKara. Eine Zusammenfassung in Beispielen

Java programmieren mit JavaKara. Eine Zusammenfassung in Beispielen Java programmieren mit JavaKara Eine Zusammenfassung in Beispielen Kleeblätter in einer Zeile zählen @Override public void mymainprogram() { int anzahlkleeblaetter = 0; for (int x = 0; x < world.getsizex();

Mehr

Universität Paderborn Prof. Dr. Stefan Böttcher. Kapitel 3: Java Applets

Universität Paderborn Prof. Dr. Stefan Böttcher. Kapitel 3: Java Applets Kapitel 3: Java Applets 1 Was sind Applets? kleine in Fenstern ausführbare Programme typisch: Aufruf im Browserfenster als Teil einer HTML-Seite Anfang des umgebenden HTML-Textes

Mehr

Einführung in die Programmierung für Nebenfach Medieninformatik. Beat Rossmy, Michael Kirsch

Einführung in die Programmierung für Nebenfach Medieninformatik. Beat Rossmy, Michael Kirsch Einführung in die Programmierung für Nebenfach Medieninformatik Beat Rossmy, Michael Kirsch Direct Feedback - Socrative Eure Mitarbeit ist uns wichtig! Installiert euch dazu die kostenlose App Socrative

Mehr

import java.applet.applet; import java.awt.*; public class Grow extends Applet { public void start() { setbackground(color.orange); } public void

import java.applet.applet; import java.awt.*; public class Grow extends Applet { public void start() { setbackground(color.orange); } public void 22.3 Animation Animation ist eine Bewegung vortäuschende Abfolge von Bildern(evt. mit Ton unterlegt:-) Für das menschliche Auge genügen 24 Bilder pro Sekunde. In der Zeit dazwischen legen wir das Applet

Mehr

Java Game Development Fabian Birzele Programmierpraktikum 2008 / 2009

Java Game Development Fabian Birzele Programmierpraktikum 2008 / 2009 Java Game Development Fabian Birzele Programmierpraktikum 2008 / 2009 Fabian Birzele, LMU Institut für Informatik, Lehrstuhl für Praktische Informatik und Bioinformatik, 2008: Programmierpraktikum 1 Ziele

Mehr

Parallele Prozesse Prozeß Parallele Prozesse verzahnte Prozesse Nebenläufige Prozesse: Threads Vorlesung Software-Entwicklung / Folie 131 Ziele:

Parallele Prozesse Prozeß Parallele Prozesse verzahnte Prozesse Nebenläufige Prozesse: Threads Vorlesung Software-Entwicklung / Folie 131 Ziele: Parallele Prozesse SWE-131 Prozeß: Ausführung eines sequentiellen Programmstückes in dem zugeordneten Speicher (Adressraum). Veränderlicher Zustand: Speicherinhalt und Programmposition. Parallele Prozesse:

Mehr

Einführung in die Programmierung für Nebenfach Medieninformatik. Beat Rossmy, Michael Kirsch

Einführung in die Programmierung für Nebenfach Medieninformatik. Beat Rossmy, Michael Kirsch Einführung in die Programmierung für Nebenfach Medieninformatik Beat Rossmy, Michael Kirsch Direct Feedback - Socrative Eure Mitarbeit ist uns wichtig! Installiert euch dazu die kostenlose App Socrative

Mehr

Probeklausur Informatik 2 Sommersemester 2013

Probeklausur Informatik 2 Sommersemester 2013 Probeklausur Informatik 2 Sommersemester 2013 1 Probeklausur Informatik 2 Sommersemester 2013 Name: Matrikelnummer: Hilfsmittel: Es sind alle schriftlichen Unterlagen, aber keine elektronischen Hilfsmittel

Mehr

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

Institut für Programmierung und Reaktive Systeme 25. Januar Programmieren I. Übungsklausur Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 25. Januar 2018 Hinweise: Klausurtermine: Programmieren I Übungsklausur Programmieren I: 17. Februar

Mehr

Institut für Programmierung und Reaktive Systeme 17. Juli Programmieren II. Übungsklausur

Institut für Programmierung und Reaktive Systeme 17. Juli Programmieren II. Übungsklausur Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 17. Juli 2015 Hinweise: Klausurtermine: Programmieren II Übungsklausur Programmieren I: 7. September

Mehr

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

Klassen und Objekte. Klassen sind Vorlagen für Objekte. Objekte haben. Attribute. Konstruktoren. Methoden. Merkblatt Klassen und Objekte Klassen sind Vorlagen für Objekte. Objekte haben Attribute Konstruktoren Methoden Aus einer Klasse kann man beliebig viele Objekte herstellen. Attribute bestimmen die Eigenschaften

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

Felder. M. Jakob. 28. April Gymnasium Pegnitz

Felder. M. Jakob. 28. April Gymnasium Pegnitz Felder M. Jakob Gymnasium Pegnitz 28. April 2015 Inhaltsverzeichnis 1 Begriffsbildung 2 Verwendung von Feldern Begriffsbildung Gliederung 1 Begriffsbildung 2 Verwendung von Feldern M. Jakob (Gymnasium

Mehr

Der Ball kann angezeigt werden: anzeigen( ) {... } Der Ball kann z.b. seine Größe verändern: groesseaendern(int veraenderung) {... } usw.

Der Ball kann angezeigt werden: anzeigen( ) {... } Der Ball kann z.b. seine Größe verändern: groesseaendern(int veraenderung) {... } usw. Objekt-Orientierung Die ersten objektorientierten Sprachen wurden ab 1967 entwickelt (Simula, Smalltalk). Die Grundidee besteht darin, Objekte der realen Welt abzubilden. Java-Programme bestehen aus Klassen.

Mehr

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 4

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 4 Fachhochschule Stralsund Fachbereich Maschinenbau Lehrgebiet Informatik Prof. Dr.-Ing.Ch.Wahmkow Arbeitsblätter für die Lehrveranstaltung OOP JAVA 4 IV. Threads, Audiodateien, Bilder, Datumsfunktion, Aufruf

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

2 Eine einfache Programmiersprache

2 Eine einfache Programmiersprache 2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir

Mehr

2 Eine einfache Programmiersprache. Variablen. Operationen Zuweisung. Variablen

2 Eine einfache Programmiersprache. Variablen. Operationen Zuweisung. Variablen Variablen Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Variablen dienen zur Speicherung von Daten. Um Variablen

Mehr

M3 M4 M7 VORNAME: Gewinnt VERTIEFUNG:

M3 M4 M7 VORNAME: Gewinnt VERTIEFUNG: NACHNAME: Vier SEMESTER: M5 M6 M3 M4 M7 VORNAME: Gewinnt VERTIEFUNG: FV IM VERWENDETE KLASSEN: Als Anlage erhalten Sie einen Ausdruck des vorab bekannt gemachten Quelltextes von verschiedenen Klassen.

Mehr

Felder. Inhaltsverzeichnis. M. Jakob. 28. April Begriffsbildung. Verwendung von Feldern. Gymnasium Pegnitz

Felder. Inhaltsverzeichnis. M. Jakob. 28. April Begriffsbildung. Verwendung von Feldern. Gymnasium Pegnitz M. Jakob Gymnasium Pegnitz 28. April 2015 Inhaltsverzeichnis Gliederung 3 / 19 Beispiel Ergebnistabelle 100m-Lauf Platzierung 1 2 3... 8 Zeit/s 10.1 11.2 12.3... 15.7 auch Arrays genannt, benutzt man um

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 18 Einstieg in die Informatik mit Java Applets Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 18 1 Einführung 2 Sicherheits-Maßnahmen 3 Ereignisgesteuerte Programmierung

Mehr

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

Institut für Programmierung und Reaktive Systeme 2. Februar Programmieren I. Übungsklausur Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 2. Februar 2017 Hinweise: Klausurtermine: Programmieren I Übungsklausur Programmieren I: 13. März

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

Aufgabe 5.1 (Laboraufgabe, Nocheinmal ein wenig Graphik)

Aufgabe 5.1 (Laboraufgabe, Nocheinmal ein wenig Graphik) Übungen zu Objektorientierte Programmierung in Java PD Dr. Wolfgang Goerigk Sommersemester 2009 Musterlösungen Serie 5 Aufgabe 5.1 (Laboraufgabe, Nocheinmal ein wenig Graphik) Die Klasse java.awt.container

Mehr

2 Eine einfache Programmiersprache

2 Eine einfache Programmiersprache 2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir

Mehr

2 Eine einfache Programmiersprache

2 Eine einfache Programmiersprache 2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir

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

Keine Bepunktung! Betreutes Programmieren Vorlesung Informatik II, Blatt 12 SS 2011

Keine Bepunktung! Betreutes Programmieren Vorlesung Informatik II, Blatt 12 SS 2011 SS 2011 Fakultät für Angewandte Informatik Lehrprofessur für Informatik 20.07.2011 Prof. Dr. Robert Lorenz Betreutes Programmieren Vorlesung Informatik II, Blatt 12 Programmieraufwand für geübte Programmierer:

Mehr

AK-Automatisierungs und Kommunikationstechnik TI Technische Informatik. NWT Netzwerktechnik www.munz-udo.de

AK-Automatisierungs und Kommunikationstechnik TI Technische Informatik. NWT Netzwerktechnik www.munz-udo.de Stand FTE2 Anfang 4. Semester plus Projekt Multiuhren_Thread Ich gehe im Hinblick auf Klassenarbeiten und der Abschlussprüfung davon aus, dass Sie das Skript OOP JAVA2 durchgearbeitet haben. Wir haben

Mehr

Institut für Programmierung und Reaktive Systeme 7. Juli Programmieren II. Übungsklausur

Institut für Programmierung und Reaktive Systeme 7. Juli Programmieren II. Übungsklausur Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 7. Juli 2017 Hinweise: Klausurtermine: Programmieren II Übungsklausur Programmieren I: 28. August

Mehr

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

Probeklausur Java Einführung in die Informatik. Wintersemester 2016/2017 Fakultät IV NI & CV Java Einführung in die Informatik Wintersemester 2016/2017 Hinweis: Diese ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der schriftlichen Prüfung des Moduls Einführung

Mehr

Universität Augsburg, Institut für Informatik Sommersemester 2001 Prof. Dr. Martin Ester 08. Oktober Klausur II

Universität Augsburg, Institut für Informatik Sommersemester 2001 Prof. Dr. Martin Ester 08. Oktober Klausur II Universität Augsburg, Institut für Informatik Sommersemester 2001 Prof. Dr. Martin Ester 08. Oktober 2001 Stefan Holland Informatik II Hinweise: Klausur II Verwenden Sie für Ihre Lösungen ausschließlich

Mehr

Java: Eine kurze Einführung an Beispielen

Java: Eine kurze Einführung an Beispielen Java: Eine kurze Einführung an Beispielen Quellcode, javac und die JVM Der Quellcode eines einfachen Java-Programms besteht aus einer Datei mit dem Suffix.java. In einer solchen Datei wird eine Klasse

Mehr

Lösungsvorschläge zur Nachklausur zum Kurs 1618 Sommersemester 2001 am

Lösungsvorschläge zur Nachklausur zum Kurs 1618 Sommersemester 2001 am Aufgabe 1 Lösungsvorschläge zur Nachklausur zum Kurs 1618 Sommersemester 2001 am 16.3.2002 Folgende Implementierung löst die gestellte Aufgabe : public interface Figur { public void anzeigen (); public

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

Softwaretechnik 1 Übung 5

Softwaretechnik 1 Übung 5 Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 Softwaretechnik 1 Übung 5 2.7.29 Aufgabe 1a) Zeichnen Sie die komplette Vererbungshierarchie der Klasse BufferedOutputStream als UML- Klassendiagramm.

Mehr

Durch die Teil-von-Beziehung soll ausgedrückt werden, dass ein Objekt A als (physikalischer) Teil eines Objekts B angesehen wird. Insbesondere kann ei

Durch die Teil-von-Beziehung soll ausgedrückt werden, dass ein Objekt A als (physikalischer) Teil eines Objekts B angesehen wird. Insbesondere kann ei Lösungsvorschläge zur Klausur zum Kurs 1618 Sommersemester 2001 am 22.9.2001 Aufgabe 1 a) Benutzungsbeziehung: class Kennzeichen class Fahrzeug boolean gueltigeskennzeichen (Kennzeichen kz) Objekte der

Mehr

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

Probeklausur Java Einführung in die Informatik. Wintersemester 2017/2018 Fakultät IV NI & CV Java Einführung in die Informatik Wintersemester 2017/2018 Hinweis: Diese ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der schriftlichen Prüfung des Moduls Einführung

Mehr

3.2 Datentypen und Methoden

3.2 Datentypen und Methoden Kap03.fm Seite 217 Dienstag, 7. September 2010 1:48 13 3.2 Datentypen und Methoden 217 3.2 Datentypen und Methoden Wie bei vielen höheren Programmiersprachen gibt es auch in Java einfache und strukturierte

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

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

Ü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

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

Institut für Programmierung und Reaktive Systeme 6. Juli Programmieren II. Übungsklausur

Institut für Programmierung und Reaktive Systeme 6. Juli Programmieren II. Übungsklausur Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 6. Juli 2018 Hinweise: Klausurtermine: Programmieren II Übungsklausur Programmieren I: 27. August

Mehr

1 Klassen anlegen und Objekte erzeugen

1 Klassen anlegen und Objekte erzeugen Werkzeugkiste Java 1 1 Klassen anlegen und Objekte erzeugen Klassengrundgerüst 1 /** 2 * Write a description of class Testklasse here. 3 * 4 * @author ( your name ) 5 * @version (a version number or a

Mehr

Kapitel 18 Jetzt kommt Bewegung ins Spiel

Kapitel 18 Jetzt kommt Bewegung ins Spiel Kapitel 18 Jetzt kommt Bewegung ins Spiel Seite 1 / 10 Kapitel 18 Jetzt kommt Bewegung ins Spiel Lernziele: In diesem Kapitel lernst du das Importieren von Java-Bibliotheksklassen. Wiederholung: Bei den

Mehr

Programmieren C: Schwerere Weihnachtsbeispiele

Programmieren C: Schwerere Weihnachtsbeispiele Programmieren C: Schwerere Weihnachtsbeispiele Klaus Kusche Für die guten Schüler habe ich zwei ein bisschen größere Grafik-Programme vorbereitet: Die Lissajou'schen Kurven: Sie enthalten relativ viel

Mehr

Lebenszyklus von Threads

Lebenszyklus von Threads Threads Umgangssprachlich Faden, Diskussionsfaden, Gewinde, Faser, Garn, roter Faden Threads ermöglichen Nebenläufigkeit (parallele Ausführung von Anwendungsteilen). Typisch für Threads ist,dass sie zu

Mehr

Verkettete Datenstrukturen: Listen

Verkettete Datenstrukturen: Listen Verkettete Datenstrukturen: Listen 2 Listen Formal: Liste = endliche Folge von Elementen [a 1, a 2,..., a n ]. Spezialfall: leere Liste [ ]. Länge einer Liste = Anzahl der Elemente (bei leerer Liste: 0).

Mehr

// // // // // erstellt von W. Stickler import java.applet.*; import java.awt.*; import java.awt.image.*;

// // // // // erstellt von W. Stickler import java.applet.*; import java.awt.*; import java.awt.image.*; erstellt von W. Stickler 1997 import java.applet.*; import java.awt.*; import java.awt.image.*; public class Othello extends Applet implements Runnable private Thread m_othello = null; KONSTANTEN mit Präfix

Mehr

Abschlussklausur Lösung. Bitte in Druckschrift leserlich ausfüllen!

Abschlussklausur Lösung. Bitte in Druckschrift leserlich ausfüllen! Informatik für Informationsmanager II SS 2006 Universität Koblenz-Landau Institut für Informatik Prof. Dr. Steffen Staab Dr. Manfred Jackel Abschlussklausur 04.08.2006 Lösung Bitte in Druckschrift leserlich

Mehr

Einführung in die Programmierung für Nebenfach Medieninformatik. Beat Rossmy, Michael Kirsch

Einführung in die Programmierung für Nebenfach Medieninformatik. Beat Rossmy, Michael Kirsch Einführung in die Programmierung für Nebenfach Medieninformatik Beat Rossmy, Michael Kirsch Direct Feedback - Socrative Eure Mitarbeit ist uns wichtig! Installiert euch dazu die kostenlose App Socrative

Mehr

2 Eine einfache Programmiersprache

2 Eine einfache Programmiersprache 2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir

Mehr

1 Klassen anlegen und Objekte erzeugen

1 Klassen anlegen und Objekte erzeugen Werkzeugkiste Java 1 1 Klassen anlegen und Objekte erzeugen Klassengrundgerüst 1 /** 2 * Write a description of class Testklasse here. 3 * 4 * @author ( your name ) 5 * @version (a version number or a

Mehr

Ein einfaches Adventure-Game für die Stufe EF, entwickelt von U. Helmich, inspiriert durch viele bekannte Spiele.

Ein einfaches Adventure-Game für die Stufe EF, entwickelt von U. Helmich, inspiriert durch viele bekannte Spiele. ZORK Ein einfaches Adventure-Game für die Stufe EF, entwickelt von U. Helmich, inspiriert durch viele bekannte Spiele. Zielsetzung in Stichpunkten Ein Held soll durch einen Dungeon laufen, der hauptsächlich

Mehr

Klausur zur Lehrveranstaltung. Technische Informatik für Ingenieure WS 2008/09

Klausur zur Lehrveranstaltung. Technische Informatik für Ingenieure WS 2008/09 Klausur zur Lehrveranstaltung Technische Informatik für Ingenieure WS 2008/09 23. Februar 2009 Aufgabe 1 2 3 4 5 5 5 Summe mögliche Punkte 10 15 25 20 20 15 15 120 erreichte Punkte Note: Hinweise: Diese

Mehr

Klausur zur Informatik A WS 2001/2002 Name: Korrektor: Punkte: a) Zeichnen Sie zu der nachstehenden Syntax in EBNF die passenden Syntaxdiagramme.

Klausur zur Informatik A WS 2001/2002 Name: Korrektor: Punkte: a) Zeichnen Sie zu der nachstehenden Syntax in EBNF die passenden Syntaxdiagramme. Aufgabe 1 a) Zeichnen Sie zu der nachstehenden Syntax in EBNF die passenden Syntaxdiagramme. Drei0 ::= 0 3 6 9 Drei1 ::= 1 4 7 Drei2 ::= 2 5 8 Drei ::= Drei0 Drei0 Drei1 Drei2 Drei2 Drei1 b) Gegeben sei

Mehr

Kapitel 9 Das Labyrinth

Kapitel 9 Das Labyrinth Kapitel 9 Das Labyrinth Seite 1 / 12 Kapitel 9 Das Labyrinth Lernziel: Wiederholung: eindimensionales Feld, Wiederholung mit fester Anzahl neu: Feld mit Objektreferenzen, zweidimensionales Feld 9.1 Felder

Mehr

Graphical User Interfaces

Graphical User Interfaces Graphical User Interfaces SEP 184 Toolkits es gibt verschiedene Toolkits (= Sammlungen von Klassen, Anbindungen an Betriebssystem, etc.) für grafische Oberflächen Abstract Windows Toolkit (AWT) Swing Standard

Mehr

Test-Klausuraufgaben Softwaretechnik Fachbereich BW, für WINFO

Test-Klausuraufgaben Softwaretechnik Fachbereich BW, für WINFO Test-Klausuraufgaben Softwaretechnik Fachbereich BW, für WINFO Dipl.-Ing. Klaus Knopper 21.12.2006 Hinweis: Bitte schreiben Sie auf das Deckblatt und auf jede Seite Ihren Namen und Ihre Matrikelnummer,

Mehr

Grundlagen von C# - 2

Grundlagen von C# - 2 Grundlagen von C# - 2 Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Arrays 2. Kontrollstrukturen 3. Verzweigungen Bedingte Verzweigung (if else) 4. Schleifen Kopfgesteuerte Schleife (while) Fußgesteuerte

Mehr

Parallele Prozesse. Prozeß wartet

Parallele Prozesse. Prozeß wartet Parallele Prozesse B-66 Prozeß: Ausführung eines Programmes in seinem Adressraum (zugeordneter Speicher) Parallele Prozesse: gleichzeitig auf mehreren Prozessoren laufende Prozesse p1 p2 verzahnte Prozesse:

Mehr

06 While-Schleifen. While-Schleifen 1/7 Wiederholung: Schleifen

06 While-Schleifen. While-Schleifen 1/7 Wiederholung: Schleifen 06 While-Schleifen While-Schleifen 1/7 Wiederholung: Schleifen Eine Schleife ist eine Struktur, welche den Computer anweist, eine Liste von Befehlen mehrmals auszuführen. Falls Du ein Verfahren hast, das

Mehr

2 Teil 2: Nassi-Schneiderman

2 Teil 2: Nassi-Schneiderman 2 Teil 2: Nassi-Schneiderman Wie kann man Nassi-Schneiderman in einer objektorientierten Sprache verwenden? Jedes Objekt besitzt Methoden, welche die Attribute des Objektes verändern. Das Verhalten der

Mehr

Einführung in die Informatik - Teil 6a -

Einführung in die Informatik - Teil 6a - Eckart Modrow Felder mit dem JBuilder S. 1 Einführung in die Informatik - Teil 6a - Felder mit dem JBuilder Inhalt: 1. Bezug zum Unterricht: Anwendungen 2. Eine eigene Klasse Feldverwalter 3. Den Feldverwalter

Mehr

Inhaltsverzeichnis. Rechenmaschinen - EINFÜHRUNG IN DIE OOP MIT JAVA PI - KAPITEL 1: GRAFIK UND GUIS - V SEITE 1 VON 10 -

Inhaltsverzeichnis. Rechenmaschinen - EINFÜHRUNG IN DIE OOP MIT JAVA PI - KAPITEL 1: GRAFIK UND GUIS - V SEITE 1 VON 10 - - EINFÜHRUNG IN DIE OOP MIT JAVA PI - KAPITEL 1: GRAFIK UND GUIS - V. 0.0.06 - SEITE 1 VON - Inhaltsverzeichnis 3Grafiken, Threads und GUIs... 2 3.1Was sind Applets Theoretischer Hintergrund...2 3.1.1Kennzeichen

Mehr

Übung Nr. 20 Freitag, 09:00-11:00 Uhr in E3.301

Übung Nr. 20 Freitag, 09:00-11:00 Uhr in E3.301 Übung Nr. 20 Freitag, 09:00-11:00 Uhr in E3.301 Aufgabe 8: Implementierung eines Ereignis-Automaten a) Modellieren Sie einen Ereignis-Automaten für den in der Abbildung dargestellten und in Calculator.java

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

Die for -Schleife HEUTE. Schleifen. Arrays. Schleifen in JAVA. while, do reichen aus, um alle iterativen Algorithmen zu beschreiben

Die for -Schleife HEUTE. Schleifen. Arrays. Schleifen in JAVA. while, do reichen aus, um alle iterativen Algorithmen zu beschreiben 18.11.5 1 HEUTE 18.11.5 3 Schleifen Arrays while, do reichen aus, um alle iterativen Algorithmen zu beschreiben Nachteil: Steuermechanismus ist verteilt Übersicht nicht immer leicht dazu gibt es for (

Mehr

EAD II Übung 5. Graphische Benutzungsoberfläche mit BlueJ

EAD II Übung 5. Graphische Benutzungsoberfläche mit BlueJ EAD II Übung 5 Graphische Benutzungsoberfläche mit BlueJ Graphische Benutzungsoberfläche (GUI) Fenster, das weitere Komponenten zur Darstellung und Interaktion enthält spezielle Standardbibliotheken erforderlich,

Mehr

Liste Programmieren Java Überblick

Liste Programmieren Java Überblick Liste Programmieren Java Überblick 1 Was ist Java? 2 Klassen und Objekte 3 Vererbung 4 Schnittstellen 5 Innere Klassen 6 Exceptions 7 Funktionsbibliothek 8 Datenstrukturen und Algorithmen 9 Ein-/Ausgabe

Mehr

Anregungen zu Übung 2

Anregungen zu Übung 2 Anregungen zu Übung 2 Allgemeine Informatik II - SS 2007 Was sind Arrays und wie kann man sie verwenden? Ein Array ist ein spezieller Datentyp, der mehrere Werte zu einer Einheit zusammenfasst. Er ist

Mehr

Algorithmen und Programmierung. Zusatzaufgaben Java Tutorium 1

Algorithmen und Programmierung. Zusatzaufgaben Java Tutorium 1 TU Ilmenau, Fakultät IA FG Telematik/Rechnernetze Prof. Dr.-Ing. G. Schäfer http://www.tu-ilmenau.de/telematik/aup Algorithmen und Programmierung Zusatzaufgaben Java Tutorium 1 Aufgabe 1 (Zeitformatierung)

Mehr

Algorithmen implementieren. Implementieren von Algorithmen

Algorithmen implementieren. Implementieren von Algorithmen Algorithmen implementieren Implementieren von Algorithmen Um Algorithmen ablaufen zu lassen, muss man sie als Programm darstellen (d.h. implementieren) Wie stellt man die algorithmischen Strukturelemente

Mehr

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

1. Teilklausur Gruppe A. Bitte in Druckschrift leserlich ausfüllen! Objektorientierte Programmierung & Modellierung WS 2007/8 Universität Koblenz-Landau Institut für Informatik Prof. Dr. Ralf Lämmel Dr. Manfred Jackel 1. Teilklausur 07.12.2007 Gruppe A Bitte in Druckschrift

Mehr

Einfache Arrays. Dr. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung

Einfache Arrays. Dr. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung Dr. Philipp Wendler Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung WS18/19 https://www.sosy-lab.org/teaching/2018-ws-infoeinf/ Arrays: Wiederholung Ein

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 27 Einstieg in die Informatik mit Java Klassen als Datenstrukturen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 27 1 Überblick: Klassen als Datenstruktur 2 Vereinbarung

Mehr

Arrays. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 3. 1 Modulübersicht 3

Arrays. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 3. 1 Modulübersicht 3 Programmieren mit Java Modul 3 Arrays Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 2 Eindimensionale Arrays 3 2.1 Arrays deklarieren.............................. 3 2.2 Arrays erzeugen................................

Mehr

FAKULTÄT FÜR INFORMATIK

FAKULTÄT FÜR INFORMATIK TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen WS 2006/2007 Praktikum Grundlagen der Programmierung Lösungsvorschläge zu Blatt 11 F. Forster,

Mehr

OOP Aufgabenblatt 7 6. Dezember 2013

OOP Aufgabenblatt 7 6. Dezember 2013 1 Prof. Dr. Th. Letschert OOP Aufgabenblatt 7 6. Dezember 2013 Aufgabe 1 Hausaufgabe Nr. 4 (Klein) Implementieren Sie, ohne Arrays oder eine sonstige Kollektion zu nutzen, folgende Fingerübungen zu Rekursion

Mehr

einlesen n > 0? Ausgabe Negative Zahl

einlesen n > 0? Ausgabe Negative Zahl 1 Lösungen Kapitel 1 Aufgabe 1.1: Nassi-Shneiderman-Diagramm quadratzahlen Vervollständigen Sie das unten angegebene Nassi-Shneiderman-Diagramm für ein Programm, welches in einer (äußeren) Schleife Integer-Zahlen

Mehr

int i=1; //Integerzahl i anlegen und mit 1 initialisieren float wert; //Floatzahl deklarieren scanf( %f,&wert); //Wert über Tastatur eingeben

int i=1; //Integerzahl i anlegen und mit 1 initialisieren float wert; //Floatzahl deklarieren scanf( %f,&wert); //Wert über Tastatur eingeben Datenfelder (Array) Seite 1 von 7 Bei den bisherigen Programmen wurde für jede verwendete Variable (oder für jedes Objekt) ein eigener Typ und Name vergeben. Die Initialisierung, d.h. die Belegung mit

Mehr

Technische Universität Braunschweig

Technische Universität Braunschweig Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Programmieren II Dr. Werner Struckmann 19. August 2016 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr

Mehr

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

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Programmieren I Dr. Werner Struckmann 17. Februar 2018 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr

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

Beispielprüfung CuP WS 2015/2016

Beispielprüfung CuP WS 2015/2016 Beispielprüfung CuP WS 2015/2016 Univ.-Prof. Dr. Peter Auer 23. Dezember 2015 Informationen zur Prüfung Die Prüfung wird als Multiple-Choice-Test mit 10 Fragen am Computer abgehalten. (Bei manchen Fragen

Mehr

5 Das Projekt Apfelwein

5 Das Projekt Apfelwein Kapitel 5 Zustandsorientierte Modellierung (Teil 1) Seite 1 5 Das Projekt Apfelwein Bemerkung: In der 10. Jahrgangsstufe (G8) werden die Schüler in die zustandsorientierte Programmierung eingeführt. Dies

Mehr

1 Modellierung einer Uhr

1 Modellierung einer Uhr PNS Wahlpflichtfach Informatik Projekt: Uhrzeit Seite 1 1 Modellierung einer Uhr Aufgabe: Es soll ein Modell für eine Digitaluhr erstellt werden, die Stunden und Minuten im Format hh:mm repräsentiert.

Mehr

Mussten wir eine ganze Reihe solcher Zahlen speichern, haben wir das eindimensionale Array verwendet.

Mussten wir eine ganze Reihe solcher Zahlen speichern, haben wir das eindimensionale Array verwendet. C Zweidimensionale Arrays Fachspezifische Softwaretechnik 1 Scriptum 2017 HTL St.Pölten Elektronik und Technische Informatik EL Autor: Kuran Zweidimensionale Arrays: Bisher konnten wir in Variablen einfache

Mehr

Einführung in das Programmieren Probeklausur Lösungen

Einführung in das Programmieren Probeklausur Lösungen Einführung in das Programmieren Probeklausur Lösungen Frederik Kanning 01.07.2013 Aufgabe 1 b/c) void definiert Methode ohne Rückgabewert return beendet aktuellen Methodenaufruf wenn Rückgabetyp nicht

Mehr

1. Klausur - Probeklausur

1. Klausur - Probeklausur EI Info J2 2011-12 INFORMATIK 1. Klausur - Probeklausur Vorgeschlagene Bearbeitungszeit: 60 Minuten. In der Klausur wird es möglich sein, eine (zwei für Neue ) Teilaufgaben zu streichen! Hier sind mehr

Mehr

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Kapitel 1 Der vierte Tag 1.1 Vererbung Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Sprachen. Unter Vererbung versteht man die Möglichkeit, Eigenschaften vorhandener

Mehr

Programmiervorkurs Einführung in Java Tag 3

Programmiervorkurs Einführung in Java Tag 3 Programmiervorkurs Einführung in Java Tag 3 Giulia Maier erstellen Sommersemester 2018 09:30 Vorstellung der Lösungen des Vortages ab 10:00 Vorlesung 60 Minuten Mittagspause erstellen gegen 12:30 Übungen

Mehr