13 Java 4 - Entwurfsmuster am Beispiel des Rucksackproblems
|
|
- Hansl Lorentz
- vor 8 Jahren
- Abrufe
Transkript
1 13 Java 4 - Entwurfsmuster am Beispiel des Rucksackproblems 13.1 Modellierung des Rucksackproblems 13.2 Lösung mit Greedy-Algorithmus 13.3 Lösung mit Backtracking 13.4 Lösung mit Dynamischer Programmierung 13.5 Lösung mit Genetischem Algorithmus 234
2 Teil XIII Java 4 - Entwurfsmuster am Beispiel des Rucksackproblems Überblick Modellierung des Rucksackproblems 13 Lösung mit Greedy-Algorithmus Lösung mit Backtracking Lösung mit Dynamischer Programmierung Lösung mit Genetischem Algorithmus Saake/Schallehn Algorithmen & Datenstrukturen 13 1 Wiederholung: Rucksackproblem Einfaches Optimierungsproblem Gegeben: n Gegenstände mit Gewichten g 1 bis g n und Nutzwerten w 1 bis w n Rucksack mit maximaler Kapazität C Gesucht: Auswahl von k {1..n Gegenständen, so dass die Maximalkapazität nicht überschritten wird Σ i k g i C und der Gesamtnutzen maximal ist: Σ i k w i max Saake/Schallehn Algorithmen & Datenstrukturen 13 2 Uni Magdeburg, WS 2005/06 235
3 Datenstruktur statische Variablen für Problembeschreibung Gewicht und Nutzen der Objekte in einem zweidimensionalen Array der Größe anzahlobjekte 2 public class Rucksack { static int anzahlobjekte = 10; static int[][] auswahlobjekte = null;... Gewichte und Nutzwerte werden zufällig zwischen 1 und jeweiligem Maximalwert generiert static final int MAX_GEWICHT = 10; static final int MAX_NUTZEN = 10; Saake/Schallehn Algorithmen & Datenstrukturen 13 3 Generierung der Auswahlobjekte static int[][] erzeugeobjekte() { java.util.random ra = new java.util.random(); int[][] r = new int[anzahlobjekte][2]; for (int i=0; i < r.length; i++) { r[i][0]= ra.nextint(max_gewicht)+1; r[i][1]= ra.nextint(max_nutzen)+1; return r; Saake/Schallehn Algorithmen & Datenstrukturen 13 4 Auswahlobjekte anzahlobjekte kann als Kommandozeilenparameter übergeben werden, ansonsten Default-Wert 10 auswahlobjekte[i][0] enthält Gewichte auswahlobjekte[i][1] enthält Nutzen Indexiläuft von0bisanzahlobjekte-1 Beispiel füranzahlobjekte = 6: AuswahlObjekte Gewicht: Nutzen: Saake/Schallehn Algorithmen & Datenstrukturen Uni Magdeburg, WS 2005/06
4 Kapazität der Rucksäcke Kapazität als weitere statische Variable static int kapazitaet; Initialisierung in dermain-methode kapazitaet = (int) (anzahlobjekte * MAX_GEWICHT / 4); dadurch passen im Schnitt nur die Hälfte der Gegenstände in den Rucksack Saake/Schallehn Algorithmen & Datenstrukturen 13 6 Rucksäcke Implementierung eines Rucksacks als Auswahl der vorgegebenen Objekte einzige nicht-statische Variable 13 boolean[] auswahl = null; Beispiel: Konstruktor zum Erzeugen eines leeren Rucksacks Rucksack () { auswahl = new boolean[anzahlobjekte]; for (int i = 0; i < auswahl.length; i ++) auswahl[i] = false; Saake/Schallehn Algorithmen & Datenstrukturen 13 7 Rucksäcke /2 Copy-Konstruktor zum Erzeugen einer Kopie eines existierenden Rucksacks tostring()-methode zur Ausgabe eines Rucksacks Methoden zum Berechnen des Gesamtgewichts und des Gesamtnutzens, z.b. int gewicht () { int g = 0; for (int i=0; i < auswahl.length; i ++) if (auswahl[i] == true) g = g + auswahlobjekte[i][0]; return g; Saake/Schallehn Algorithmen & Datenstrukturen 13 8 Uni Magdeburg, WS 2005/06 237
5 Rucksäcke /3 AuswahlObjekte Gewicht: Nutzen: Rucksack 1: Rucksack 2: T F T T F F Beinhaltet Gegenstände 0, 2 und 3 Gesamtgewicht: 18 Gesamtnutzen: 5 F T T F F T Beinhaltet Gegenstände 1, 2 und 5 Gesamtgewicht: 15 Gesamtnutzen: 16 Saake/Schallehn Algorithmen & Datenstrukturen 13 9 Greedy-Algorithmus Greedy-Grundprinzip: verwende in jedem Berechnungsschritt die jeweils aktuell geeignetste Zwischenlösung Angewandt auf Rucksackproblem: lege von den noch nicht im Rucksack befindlichen Gegenständen jeweils den besten hinzu Was ist der beste Gegenstand? der nützlichste? der leichteste? der mit dem besten Verhältnis aus Nutzen und Gewicht?... Saake/Schallehn Algorithmen & Datenstrukturen Greedy nach Nutzen static Rucksack packegierignachnutzen() { Rucksack r = new Rucksack(); while (true) { int pos=-1; int besternutzen=0; for(int i=0; i < auswahlobjekte.length; i ++) if (r.auswahl[i] == false && auswahlobjekte[i][1] > besternutzen && r.gewicht() + auswahlobjekte[i][0] <= kapazitaet) { besternutzen = auswahlobjekte[i][1]; pos = i; if (pos == -1) break; else r.auswahl[pos] = true; return r; Saake/Schallehn Algorithmen & Datenstrukturen Uni Magdeburg, WS 2005/06
6 Greedy nach Gewicht static Rucksack packegierignachgewicht() { Rucksack r = new Rucksack(); while (true) { int pos=-1; int bestesgewicht=max_gewicht+1; for(int i=0; i < auswahlobjekte.length; i ++) if (r.auswahl[i] == false && auswahlobjekte[i][0] < bestesgewicht && r.gewicht() + auswahlobjekte[i][0] <= kapazitaet) { bestesgewicht = auswahlobjekte[i][0]; pos = i; if (pos == -1) break; else r.auswahl[pos] = true; return r; Saake/Schallehn Algorithmen & Datenstrukturen Aufruf inmain() public static void main (String args[]) { if (args.length == 1) anzahlobjekte = Integer.parseInt(args[0]); kapazitaet = (int) (anzahlobjekte * MAX_GEWICHT / 4); auswahlobjekte = erzeugeobjekte(); 13 Rucksack r1 = packegierignachgewicht(); System.out.println( Greedy Gewicht: + r1 ); Rucksack r2 = packegierignachnutzen(); System.out.println( Greedy Nutzen: + r2 );... Saake/Schallehn Algorithmen & Datenstrukturen Analyse der Greedy-Varianten Vorteil: Geringer Berechnungsaufwand durch lineare Komplexität O(n) Problem: Findet im allgemeinen nicht die optimale Lösung Saake/Schallehn Algorithmen & Datenstrukturen Uni Magdeburg, WS 2005/06 239
7 Backtracking-Verfahren Grundprinzip: Finden der optimalen Lösung durch systematisches Absuchen des gesamten Lösungsraums Angewandt auf Rucksackproblem: 2 n verschiedene Möglichkeiten Generieren und Testen aller möglichen Rucksäcke Anwendung der Rekursion Saake/Schallehn Algorithmen & Datenstrukturen Backtracking: Rekursionseinstieg static Rucksack packeoptimalmitbacktracking() { return rucksackrekursiv(0, new Rucksack()); erster Parameter: Level i - Entscheidung, ob Objekt i in den Rucksack kommt Durchlaufen desauswahl-arrays von links nach rechts Aufrufgraph: Aufspannen eines binären Baumes durch ja/nein-entscheidungen Saake/Schallehn Algorithmen & Datenstrukturen Backtracking: Rekursion static Rucksack rucksackrekursiv(int i, Rucksack r) { if (i == auswahlobjekte.length) return r; Rucksack r1 = new Rucksack(r); r1 = rucksackrekursiv(i+1, r1); if (r.gewicht()+auswahlobjekte[i][0]<=kapazitaet) { Rucksack r2 = new Rucksack(r); r2.auswahl[i] = true; r2 = rucksackrekursiv(i+1,r2); if (r2.nutzen() > r1.nutzen()) return r2; return r1; Saake/Schallehn Algorithmen & Datenstrukturen Uni Magdeburg, WS 2005/06
8 Analyse der Backtracking-Varianten Problem: Extrem hoher Berechnungsaufwand für große Auswahl an Objekten durch Komplexität O(2 n ) Vorteil: Findet garantiert optimale Lösung Saake/Schallehn Algorithmen & Datenstrukturen Dynamische Programmierung Grundprinzip: Wiederverwendung von bereits berechneten Teillösungen Vorsicht: andere Lösung als im vorhergehenden Kapitel, wo Teillösungen Bottom-Up zusammengesetzt wurden Hier: Lösung basiert auf Backtracking-Variante Zwischenspeicherung von Teillösungen Existenz von Teillösung wird als Abbruchkriterium für Rekursion verwendet 13 Saake/Schallehn Algorithmen & Datenstrukturen DP: Rekursionseinstieg static Rucksack packemitdynamischerprogrammierung() { Rucksack[][] zwischenergebnisse = new Rucksack[kapazitaet+1][anzahlObjekte]; return rucksackrekursivdp(0, new Rucksack(), zwischenergebnisse); ein EintragzwischenErgebnisse[g][i] bedeutet, dass wir schonmal dabei waren, das Objekt i in einen Rucksack mit dem Gewicht g zu legen in diesem Fall können wir alle vorberechneten Entscheidungen für die Objekte i bis anzahlobjekte 1 wiederverwenden, da diese bereits optimal sind (Backtracking: äquivalenter Teilbaum) Saake/Schallehn Algorithmen & Datenstrukturen Uni Magdeburg, WS 2005/06 241
9 DP: Rekursion static Rucksack rucksackrekursivdp(int i, Rucksack r, Rucksack[][] zwischenergebnisse) { if (i == auswahlobjekte.length) return r; int gewicht = r.gewicht(); Wiederverwendung von Teillösungen: if (zwischenergebnisse[gewicht][i]!= null) { for (int j=i; j < anzahlobjekte; j++) r.auswahl[j] = zwischenergebnisse[gewicht][i].auswahl[j]; return r;... Saake/Schallehn Algorithmen & Datenstrukturen DP: Rekursion /2... Rucksack r1 = new Rucksack(r); r1 = rucksackrekursivdp(i+1, r1, zwischenergebnisse); if (gewicht+auswahlobjekte[i][0] <= kapazitaet) { Rucksack r2 = new Rucksack(r); r2.auswahl[i] = true; r2 = rucksackrekursivdp(i+1,r2, zwischenergebnisse); if (r2.nutzen() > r1.nutzen()) r1 = r2; Merken von Teillösungen: zwischenergebnisse[gewicht][i] = r1; return r1; Saake/Schallehn Algorithmen & Datenstrukturen Analyse der DP-Variante Vorteile: Findet garantiert optimale Lösung In vielen Fällen geringerer Aufwand als Backtracking Problem: Anwendbarkeit/Aufwand abhängig von Größe und Struktur des Suchraums Komplexität O(z), wobei z Anzahl möglicher Zwischenergebnisse zum Beispiel: bei vielen unterschiedlichen Gewichtskombinationen kaum Ersparnis (Erhöhen von MAX_GEWICHT) bei überabzählbarem Suchraum (etwa Gewicht als rationale Zahl) macht das Verfahren keinen Sinn Saake/Schallehn Algorithmen & Datenstrukturen Uni Magdeburg, WS 2005/06
10 Genetische Algorithmen Grundprinzipien: 1. Erzeugen von zufälligen Lösungen durch Mutation und Kreuzung 2. Auswahl der besten Lösungen aus dem Gen-Pool nach Fitness-Funktion 3. Fortfahren mit Schritt 1 über bestimmte Anzahl von Generationen Angewandt auf Rucksackproblem: Erzeugen von zufälligen Rucksäcken durch Mutation: zufälliges Umschalten von Auswahlbits Punktkreuzung: Kopieren von Auswahlbits Fitnessfunktion: 0, wenn Rucksack zu schwer Gesamtnutzen, andernfalls Parameter: Poolgröße, Auswahlgröße, Mutationsrate, Generationenzahl,... Saake/Schallehn Algorithmen & Datenstrukturen Fitness Fitness, Mutation und Kreuzung als Objektmethoden (anwendbar auf einzelne Rucksäcke) 13 int fitness() { if (gewicht() > kapazitaet) return 0; else return nutzen(); Saake/Schallehn Algorithmen & Datenstrukturen Mutation Rucksack mutate() { java.util.random ra = new java.util.random(); int pos = ra.nextint(auswahl.length); Rucksack r = new Rucksack(this); r.auswahl[pos] = (auswahl[pos]? false : true); return r; Saake/Schallehn Algorithmen & Datenstrukturen Uni Magdeburg, WS 2005/06 243
11 Kreuzung Rucksack crossover(rucksack partner) { java.util.random ra = new java.util.random(); int pos = ra.nextint(auswahl.length); Rucksack r = new Rucksack(); for (int i=0; i < pos; i++) r.auswahl[i] = auswahl[i]; for (int i=pos; i < auswahl.length; i++) r.auswahl[i] = partner.auswahl[i]; return r; Saake/Schallehn Algorithmen & Datenstrukturen Genetischer Algorithmus Erzeugung und Initialiserung des Gen-Pools static Rucksack packemitgenetik() { int POOL_SIZE=50; int BEST_SIZE=10; Rucksack[] pool = new Rucksack[POOL_SIZE]; pool[0] = new Rucksack(); for (int i=1; i < BEST_SIZE; i++) pool[i]... = pool[0].mutate(); Saake/Schallehn Algorithmen & Datenstrukturen Aufbau des Gen-Pools Gen-Pool BEST_SIZE-1... POOL_SIZE-1 Saake/Schallehn Algorithmen & Datenstrukturen Uni Magdeburg, WS 2005/06
12 Genetischer Algorithmus /2 Iterativ Mutieren und Kreuzen... int NUM_GENERATIONS=anzahlObjekte*10; int generation = 0; while(generation < NUM_GENERATIONS) { for (int i = BEST_SIZE; i < POOL_SIZE; i++) { java.util.random ra = new java.util.random(); if (ra.nextfloat() < 0.7) pool[i] = pool[i%best_size].mutate(); else pool[i] = pool[i%best_size].crossover( pool[ra.nextint(best_size)]);... Saake/Schallehn Algorithmen & Datenstrukturen Mutation und Kreuzung Gen-Pool 13 Mutation und Kreuzung 30% K 70% M Saake/Schallehn Algorithmen & Datenstrukturen Genetischer Algorithmus /3 Auswahl der besten Kandidaten jeder Generation... for (int i = BEST_SIZE; i < POOL_SIZE; i ++) { int worstfitness = Integer.MAX_VALUE; int pos = -1; for (int j = 0; j < BEST_SIZE; j ++) if (pool[i].fitness() > pool[j].fitness() && pool[j].fitness() < worstfitness) { worstfitness = pool[j].fitness(); pos = j; if (pos >= 0) pool[pos] = pool[i]; generation++; // end-while Saake/Schallehn Algorithmen & Datenstrukturen Uni Magdeburg, WS 2005/06 245
13 Auswahl der besten Kandidaten Gen-Pool Auswahl der besten Kandidaten Saake/Schallehn Algorithmen & Datenstrukturen Verbesserung des Algorithmus Einfache Verbesserung durch Generierung einer besseren Startbelegung, zum Beispiel pool[0] = packegierignachnutzen(); pool[1] = packegierignachgewicht(); for (int i=2; i < BEST_SIZE; i++) pool[i] = pool[i%2].mutate(); vermindert notwendige Generationenzahl durch Verkürzung der Anlaufphase derartige Kombination von Greedy und genetischen Algorithmen häufig eingesetzt Saake/Schallehn Algorithmen & Datenstrukturen Analyse des genetischen Algorithmus Probleme: Findet nicht immer optimale Lösung Optimale Belegung der Parameter nicht trivial Vorteile: Komplexität O(n) Verhältnis zwischen Aufwand und Genauigkeit kann über Parameter gesteuert werden Saake/Schallehn Algorithmen & Datenstrukturen Uni Magdeburg, WS 2005/06
14 Lösungen im Vergleich Verfahren Optimale Lösung Aufwand Komplexität Greedy nein + O(n) Backtracking ja - O(2 n ) DP ja +/- O(z) GenAlg nein + O(n) Saake/Schallehn Algorithmen & Datenstrukturen Zusammenfassung Lösung des Rucksackproblems mit unterschiedlichen Ansätzen Greedy Backtracking Dynamische Programmierung Genetische Algorithmen 13 Teile und Herrsche bereits behandelt: Sortierverfahren und binäre Suche Saake/Schallehn Algorithmen & Datenstrukturen Uni Magdeburg, WS 2005/06 247
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
Mehr5. Tutorium zu Programmieren
5. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by IPD Snelting
MehrÜ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
MehrObjektorientierte 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Ü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
Mehr188.154 Einführung in die Programmierung für Wirtschaftsinformatik
Beispiel 1 Vererbung (Liste) Gegeben sind die beiden Klassen ListNode und PersonNode. 188.154 Einführung in die Programmierung für Wirtschaftsinformatik Wiederholung, Prüfungsvorbereitung Monika Lanzenberger
MehrSuchbäume. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Suchbäume Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative
MehrEinfü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
MehrStudentische 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
MehrDie Verbindung von Linearer Programmierung und Graphentheorie
Die Verbindung von Linearer Programmierung und Graphentheorie Definition 5.9. Ein kombinatorisches Optimierungsproblem entspricht einem LP, bei dem statt der Vorzeichenbedingungen x i 0 Bedingungen der
MehrJava: 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
MehrTest-Driven Design: Ein einfaches Beispiel
Test-Driven Design: Ein einfaches Beispiel Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer SS 06 2 Ziele Veranschaulichung der Technik des Test-Driven Design am Beispiel eines Programms
MehrEinfü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
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 04 Referenzen, Overloading, Klassen(hierarchien) Clemens Lang T2 18. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/13 Organisatorisches Nächster Übungstermin
MehrProgrammieren I. Kapitel 7. Sortieren und Suchen
Programmieren I Kapitel 7. Sortieren und Suchen Kapitel 7: Sortieren und Suchen Ziel: Varianten der häufigsten Anwendung kennenlernen Ordnung Suchen lineares Suchen Binärsuche oder Bisektionssuche Sortieren
MehrBinä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
MehrEinfü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
MehrEinführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)
Wintersemester 2007/08 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät für Informatik Lehrstuhl
MehrAVL-Bäume Analyse. Theorem Ein AVL-Baum der Höhe h besitzt zwischen F h und 2 h 1 viele Knoten. Definition Wir definieren die nte Fibonaccizahl:
AVL-Bäume Analyse (Folie 85, Seite 39 im Skript) Theorem Ein AVL-Baum der Höhe h besitzt zwischen F h und 2 h 1 viele Knoten. Definition Wir definieren die nte Fibonaccizahl: 0 falls n = 0 F n = 1 falls
MehrArrays von Objekten. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"
MehrLösungsvorschläge. zu den Aufgaben im Kapitel 4
Lösungsvorschläge zu den Aufgaben im Kapitel 4 Aufgabe 4.1: Der KNP-Algorithmus kann verbessert werden, wenn in der Funktion nexttabelle die Zuweisung next[tabindex] = ruecksprung; auf die etwas differenziertere
MehrVerhindert, 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:
MehrArrays von Objekten. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-12-13/infoeinf WS12/13 Arrays: Wiederholung Ein Array ist ein Tupel von Elementen gleichen
MehrObjektorientierte 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)
MehrEinfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"
MehrVorkurs 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:
MehrII. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:
Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen
MehrWirtschaftsinformatik I
Wirtschaftsinformatik I - Tutorium 6/ 7 (April 2010) Zusatzinformationen - Lösungsvorschläge Wirtschaftsinformatik I Tutorium Jochen Daum (4.Semester BWL) Universität Mannheim Rechtshinweis: Diese Präsentation
MehrRekursion. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Rekursion Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-12-13/infoeinf WS12/13 Aufgabe 1: Potenzfunktion Schreiben Sie eine Methode, die
MehrAlgorithmen & Datenstrukturen 1. Klausur
Algorithmen & Datenstrukturen 1. Klausur 7. Juli 2010 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 35 2 30 3 30 4 15 5 40 6 30 Gesamt 180 1 Seite 2 von 14 Aufgabe 1) Programm Analyse
MehrJava 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
MehrArrays Fortgeschrittene Verwendung
Arrays Fortgeschrittene Verwendung Gilbert Beyer und Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik http://www.pst.ifi.lmu.de/lehre/wise-11-12/infoeinf WS11/12 Arrays: Wiederholung
MehrÜ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:
MehrJava-Programmierung mit NetBeans
Java-Programmierung mit NetBeans Steuerstrukturen Dr. Henry Herper Otto-von-Guericke-Universität Magdeburg - WS 2012/13 Steuerstrukturen Steuerstrukturen Verzweigungen Alternativen abweisende nichtabweisende
MehrErwin Grüner 09.02.2006
FB Psychologie Uni Marburg 09.02.2006 Themenübersicht Folgende Befehle stehen in R zur Verfügung: {}: Anweisungsblock if: Bedingte Anweisung switch: Fallunterscheidung repeat-schleife while-schleife for-schleife
MehrInformatik-Sommercamp 2012. Mastermind mit dem Android SDK
Mastermind mit dem Android SDK Übersicht Einführungen Mastermind und Strategien (Stefan) Eclipse und das ADT Plugin (Jan) GUI-Programmierung (Dominik) Mastermind und Strategien - Übersicht Mastermind Spielregeln
MehrTutorium 5 - Programmieren
Tutorium 5 - Programmieren Grischa Liebel Uni Karlsruhe (TH) Tutorium 11 1 Einleitung 2 Abschlussaufgaben 3 Vorlesungsstoff 4 Ergänzungen zum Vorlesungsstoff Grischa Liebel (Uni Karlsruhe (TH)) c 2008
MehrEntscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?
Entscheidungsbäume Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Definition Entscheidungsbaum Sei T ein Binärbaum und A = {a 1,..., a n } eine zu sortierenden Menge. T ist ein Entscheidungsbaum
Mehr2015-06-11 Tagesprogramm
1 2015-06-11 Tagesprogramm Design-by-Contract 2 Vertragspartner Anbieter (Server) bietet Leistungen (Services) an Kunde (Client) nimmt von Anbietern angebotene Leistungen in Anspruch Details der Inanspruchnahme
MehrKlausur 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-
MehrSichtbarkeit & 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
MehrTechnische Dokumentation SilentStatistikTool
Technische Dokumentation SilentStatistikTool Version 1.0 Marko Schröder 1115063 Inhalt Einleitung... 3 Klasse Program... 3 Klasse ArgumentHandler... 3 Bereitgestellte Variablen... 3 Bereitgestellte Methoden...
Mehr3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1
3.2 Binäre Suche Beispiel 6.5.1: Intervallschachtelung (oder binäre Suche) (Hier ist n die Anzahl der Elemente im Feld!) Ein Feld A: array (1..n) of Integer sei gegeben. Das Feld sei sortiert, d.h.: A(i)
MehrEinfü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
MehrAlgorithmik II. a) Fügen Sie in einen anfangs leeren binären Baum die Schlüsselfolge 20, 28, 35, 31, 9, 4, 13, 17, 37, 25 ein.
Aufgabe 10 Binäre Bäume a) Fügen Sie in einen anfangs leeren binären Baum die Schlüsselfolge, 28, 35, 31, 9, 4,, 17, 37, 25 ein. 1. Einfügen von : 3. Einfugen von 35: 2. Einfügen von 28: 28 28 10. Einfügen
MehrModellierung und Programmierung 1
Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 19. November 2015 Gültigkeitsbereich (Scope) von Variablen { int m; {
MehrU08 Entwurfsmuster (II)
U08 Entwurfsmuster (II) Inhalt der Übung Diskussion und Implementierung von Entwurfsmustern Übungsaufgaben Aufgabe 1 (Queue) Gegeben ist das folgende Analysemodell einer Warteschlange (Queue): Eine Warteschlange
MehrPrinzipien Objektorientierter Programmierung
Prinzipien Objektorientierter Programmierung Valerian Wintner Inhaltsverzeichnis 1 Vorwort 1 2 Kapselung 1 3 Polymorphie 2 3.1 Dynamische Polymorphie...................... 2 3.2 Statische Polymorphie........................
MehrEinführung in die Programmierung
: Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte
MehrProgrammieren 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
Mehr5. 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:
MehrGrundlagen der Programmierung Prof. H. Mössenböck. 14. Schrittweise Verfeinerung
Grundlagen der Programmierung Prof. H. Mössenböck 14. Schrittweise Verfeinerung Entwurfsmethode für Algorithmen Wie kommt man von der Aufgabenstellung zum Programm? Beispiel geg.: Text aus Wörtern ges.:
MehrÜ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
Mehr368 4 Algorithmen und Datenstrukturen
Kap04.fm Seite 368 Dienstag, 7. September 2010 1:51 13 368 4 Algorithmen und Datenstrukturen Java-Klassen Die ist die Klasse Object, ein Pfeil von Klasse A nach Klasse B bedeutet Bextends A, d.h. B ist
MehrFakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012
WS 2011/2012 Fakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012 Prof. Dr. Robert Lorenz Musterlösung zur Vorlesung Informatik I, Extrablatt zu komplexen Datenstrukturen Aufgabe 45 **
MehrTheoretische Grundlagen der Informatik
Theoretische Grundlagen der Informatik Vorlesung am 12.01.2012 INSTITUT FÜR THEORETISCHE 0 KIT 12.01.2012 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik
MehrObjektorientierte 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
MehrJava Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7
Java Einführung Umsetzung von Beziehungen zwischen Klassen Kapitel 7 Inhalt Wiederholung: Klassendiagramm in UML Java-Umsetzung von Generalisierung Komposition Assoziationen 2 Das Klassendiagramm Zweck
MehrKapiteltests zum Leitprogramm Binäre Suchbäume
Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm
MehrGrundlagen der Programmierung Prof. H. Mössenböck. 10. Klassen
Grundlagen der Programmierung Prof. H. Mössenböck 10. Klassen Motivation Wie würde man ein Datum speichern (z.b. 13. November 2004)? 3 Variablen int da; String month; int ear; Unbequem, wenn man mehrere
MehrPVL 3 - Roulette. (5 Punkte) Abgabe bis 20.12.2015
PVL 3 - Roulette (5 Punkte) Abgabe bis 20.12.2015 Beim Roulette wird in jeder Runde eine von 37 Zahlen (0-36) ausgespielt. Dabei können Geldbeträge direkt auf eine Zahl zwischen 1 und 36 gesetzt werden
MehrCodes und Informationsgehalt
Aufgaben 2 Codes und Informationsgehalt Auf wie viele Dezimalziffern genau können vorzeichenlose ganze Zahlen in einem binären Code der Länge 32 bit dargestellt werden? 2 Codes und Informationsgehalt Auf
MehrBabeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf
Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005 Paradigmen im Algorithmenentwurf Problemlösen Problem definieren Algorithmus entwerfen
MehrDer 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Übungsblatt 3: Algorithmen in Java & Grammatiken
Humboldt-Universität zu Berlin Grundlagen der Programmierung (Vorlesung von Prof. Bothe) Institut für Informatik WS 15/16 Übungsblatt 3: Algorithmen in Java & Grammatiken Abgabe: bis 9:00 Uhr am 30.11.2015
MehrÜbung Programmierung WS 2007/08 - Blatt 5
RHEINISCH- WESTFÄLISCHE TECHNISCHE HOCHSCHULE AACHEN LEHR- UND FORSCHUNGSGEBIET INFORMATIK 2 RWTH Aachen D-52056 Aachen GERMANY http://programmierung.informatik.rwth-aachen.de LuFG Informatik II Prof.
MehrReihungen. Martin Wirsing. in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03
Reihungen Martin Wirsing in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03 2 Ziele Die Datenstruktur der Reihungen verstehen: mathematisch und im Speicher Grundlegende Algorithmen auf Reihungen
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens 1 Organisatorisches Freitag, 05. Mai 2006: keine Vorlesung! aber Praktikum von 08.00 11.30 Uhr (Gruppen E, F, G, H; Vortestat für Prototyp)
MehrConstraint-Algorithmen in Kürze - Mit der Lösung zur Path-Consistency-Aufgabe 9
Constraint-Algorithmen in Kürze - Mit der Lösung zur Path-Consistency-Aufgabe 9 Prof. Dr. W. Conen Version 1.0c Januar 2009 Genereller Ablauf der Suche Gegeben: Variablen X, Domains D, Constraints R (explizit
Mehrpublic class SternchenRechteckGefuellt {
Java programmieren: Musterlösungen Konsolen-Aufgaben Aufgabe 1: Gefüllte Rechtecke zeichnen Schreiben Sie ein Programm, das ein durch Sternchen gefülltes Rechteck zeichnet. Der Benutzer soll Breite und
MehrGrundbegriffe der Informatik
Grundbegriffe der Informatik Einheit 15: Reguläre Ausdrücke und rechtslineare Grammatiken Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/25 Was kann man mit endlichen
MehrSortieralgorithmen. Inhalt: InsertionSort BubbleSort QuickSort. Marco Block
Inhalt: InsertionSort BubbleSort QuickSort Block M.: "Java-Intensivkurs - In 14 Tagen lernen Projekte erfolgreich zu realisieren", Springer-Verlag 2007 InsertionSort I Das Problem unsortierte Daten in
MehrSEP 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
MehrDatenstrukturen und Algorithmen
Datenstrukturen und Algorithmen VO 708.031 Bäume robert.legenstein@igi.tugraz.at 1 Inhalt der Vorlesung 1. Motivation, Einführung, Grundlagen 2. Algorithmische Grundprinzipien 3. Sortierverfahren 4. Halden
MehrBreiten- und Tiefensuche in Graphen
Breiten- und Tiefensuche in Graphen Inhalt Theorie. Graphen. Die Breitensuche in der Theorie am Beispiel eines ungerichteten Graphen. Die Tiefensuche in der Theorie am Beispiel eines gerichteten Graphen
MehrEinfü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 Pommes... Praktikum A 230 C 207 (Madeleine) F 112 F 113 (Kevin) E
Mehr5. 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,
MehrObjektorientierte 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Übung 9 - Lösungsvorschlag
Universität Innsbruck - Institut für Informatik Datenbanken und Informationssysteme Prof. Günther Specht, Eva Zangerle Besprechung: 15.12.2008 Einführung in die Informatik Übung 9 - Lösungsvorschlag Aufgabe
MehrZä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 --
MehrEndTermTest PROGALGO WS1516 A
EndTermTest PROGALGO WS1516 A 14.1.2016 Name:................. UID:.................. PC-Nr:................ Beachten Sie: Lesen Sie erst die Angaben aufmerksam, genau und vollständig. Die Verwendung von
MehrDatenbankanwendung. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Wintersemester 2014/15. smichel@cs.uni-kl.de
Datenbankanwendung Wintersemester 2014/15 Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern smichel@cs.uni-kl.de Wiederholung: Anfragegraph Anfragen dieses Typs können als Graph dargestellt werden: Der
MehrJava Einführung Collections
Java Einführung Collections Inhalt dieser Einheit Behälterklassen, die in der Java API bereitgestellt werden Wiederholung Array Collections (Vector, List, Set) Map 2 Wiederholung Array a[0] a[1] a[2] a[3]...
MehrDokumentation 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Ü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 13 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:
Mehr1 Vom Problem zum Programm
Hintergrundinformationen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik WS 02/03 AG Betriebssysteme FB3 Kirsten Berkenkötter 1 Vom Problem zum Programm Aufgabenstellung analysieren
MehrProgrammieren. 10. Tutorium 4./ 5. Übungsblatt Referenzen
Programmieren 10. Tutorium 4./ 5. Übungsblatt Inhalt I. Übungsblatt 4 II. III. - Rückgabe und Besprechung - Vorbereitung auf Wiederholung/ Nachtrag - Operatorpräzedenzen IV. Übungsblatt 5 - Vorstellung
MehrInstitut für Programmierung und Reaktive Systeme 25. August 2014. Programmier-Labor. 04. + 05. Übungsblatt. int binarysearch(int[] a, int x),
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 25. August 2014 Programmier-Labor 04. + 05. Übungsblatt Aufgabe 21: a) Schreiben Sie eine Methode
MehrJetzt 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
Mehr7. Übung zu Algorithmen und Datenstrukturen
7. Übung zu Algorithmen und Datenstrukturen Dynamisches Programmieren Greedy Algorithms Exceptions 1 Dynamische Programmierung nutzt gezielt aus, dass man bei manchen Problemen den Rechenaufwand extrem
MehrProgrammiervorkurs WS 2012/2013. Schleifen und Methoden
Programmiervorkurs WS 2012/2013 Schleifen und Methoden Ein Befehl soll mehrfach ausgeführt werden, z.b.: public class MyCounter { System.out.println(1); Ein Befehl soll mehrfach ausgeführt werden, z.b.:
MehrIn dieser Aufgabe sollen Teile eines kleinen Pong-Spiels analysiert und implementiert werden. Gegeben sei dazu das folgende Szenario:
IF1-Informatik Eph GK (GA) Bearbeitungszeit: 90 min. Seite 1 Aufgabe 1: Greenfoot mit Kara Ein Pong-Spiel In dieser Aufgabe sollen Teile eines kleinen Pong-Spiels analysiert und implementiert werden. Gegeben
MehrProgrammieren Tutorium
Programmieren Tutorium Tom Schildhauer Tutorium 12 Universität Karlsruhe (TH) Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by Tom Schildhauer,
MehrGraphic Coding. Klausur. 9. Februar 2007. Kurs A
Graphic Coding Klausur 9. Februar 2007 Kurs A Name: Matrikelnummer: Hinweise - Es sind keine Hilfsmaterialien erlaubt. (Keine Bücher, Taschenrechner, Handys) - Sie haben zwei Stunden Zeit. - Insgesamt
MehrClient-Server-Beziehungen
Client-Server-Beziehungen Server bietet Dienste an, Client nutzt Dienste Objekt ist gleichzeitig Client und Server Vertrag zwischen Client und Server: Client erfüllt Vorbedingungen eines Dienstes Server
MehrVorkurs Informatik Wintersemester 2015/2016. Programmtexte
www.vorkurs-informatik.de Vorkurs Informatik Wintersemester 2015/2016 Programmtexte 1 Grundkonzepte der Programmierung Java-Programm zur Suche des Minimums: class ProgrammMinSuche{ int[] a = {11,7,8,3,15,13,9,19,18,10,4;
Mehr1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie
Gliederung 1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. äume / Graphen 5. Hashing 6. Algorithmische Geometrie 4/5, olie 1 2014 Prof. Steffen Lange - HDa/bI
MehrSoftware 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)
MehrTestklausur 1 zur Vorlesung. Modellierung und Programmierung I. Dr. Monika Meiler Zeit: 60 Minuten
Matrikelnummer: Punkte: Testklausur 1 zur Vorlesung Modellierung und Programmierung I Dr. Monika Meiler Zeit: 60 Minuten Bemerkungen: Jedes Blatt ist mit der Matrikelnummer zu versehen. Jede Aufgabe ist
MehrScala kann auch faul sein
Scala kann auch faul sein Kapitel 19 des Buches 1 Faulheit Faulheit ( lazy evaluation ) ist auch in C oder Java nicht unbekannt int x=0; if(x!=0 && 10/x>3){ System.out.println("In if"); } Nutzen der Faulheit?
Mehr