Genetische Algorithmen

Größe: px
Ab Seite anzeigen:

Download "Genetische Algorithmen"

Transkript

1 Genetische Algorithmen In dieser Ausarbeitung gemäss Aufgabenstellung auf der Kurshomepage des Moduls Knowledge- Based Systems wird die Funktionsweise und Nutzung von genetischen Algorithmen erläutert. Die Ausarbeitung stützt sich auf die im Kapitel Quellen angegebenen Webseiten und wurde daraus frei zusammengestellt und ergänzt. Inhaltsverzeichnis Was sind genetische Algorithmen?... 2 Biologische Evolution... 2 Aufbau... 2 Abbruchkriterium... 3 Zielfunktion... 3 Wo werden genetische Algorithmen verwendet?... 4 Beispiel... 4 Kommentar zum Beispiel... 8 Quellen... 10

2 Was sind genetische Algorithmen? Genetische Algorithmen zählen zu stochastischen Suchverfahren. Diese Verfahren arbeiten sich ausgehend von einer oder mehreren zulässigen Lösungen schrittweise zur optimalen Lösung vor. Beispielsweise werden mehrere Wege gefunden, die zum Ziel führen, und der kürzeste/effizienteste wird ermittelt. Es wird eine Menge an Lösungen zufällig erzeugt, die guten aussortiert. Diese Lösungen werden dann leicht mutiert und miteinander kombiniert und führen so irgendwann heuristisch zu einer möglichst guten Lösung Oftmals können auch genetische Algorithmen die optimale Lösung nicht in annehmbarer Zeit finden, und man gibt sich mit einer guten suboptimalen Lösung zufrieden. Biologische Evolution Genetische Algorithmen lehnen sich an die biologische Evolution und Genetik an. Lebewesen bestehen aus Zellen, in deren Chromosomen alle wichtigen Eigenschaften des Lebewesens verankert sind (z.b. Augenfarbe). Evolution wir nun die Veränderung dieser vererbbaren Gene genannt. Diese Veränderung geschieht bei jeder Generation (Kinder). Bei der Weitergabe der Gene gibt es drei wichtige Mechanismen: - Selektion: natürliche Auslesen von Individuen. Lebewesen die gut angepasst sind haben eine höhere Überlebenschance, d.h. sie haben eine höhere Chance sich fortzupflanzen und ihre Gene weiterleben zu lassen. Die Angepasstheit eines Individuums wird auch Fitness genannt. - Mutation: Ausprägung (=Wert) der Gene verändert sich, dies kann z.b. bei Radioaktivität geschehen. Mutationen können Lebewesen schädigen, aber auch stärken. - Rekombination (Crossover): Es entstehen neue Genkombinationen durch den Austausch der Werte zweier Chromosomen. Über viele Generationen hinweg sorgt dieser Prozess dafür, dass Lebewesen an die Umwelt angepasst sind und überleben können. Aufbau der Algorithmen Genetische Algorithmen werden nach den Grundsätzen der biologischen Evolution wie im vorhergehenden Kapitel erläutert, entwickelt.

3 Initialisierung: Erzeugen von n zufälligen Lösungskandidaten Lösungskandidat = Individuum Evaluation: Für jeden Kandidaten wird anhand div. Kriterien beurteilt wie gut er ist (Güte) Mit Hilfe sogenannter Fitnessfunktion gute Lösung = hoher Wert Selektion: Auswahl von Lösungskandidaten (Kandidaten mit höherer Güte werden zu einer höheren Wahrscheinlichkeit gewählt) Survival of the fittest Rekombination: Die ausgewählten Daten werden gemischt und daraus neue erzeugt Vermehrung Mutation: Die neuen Daten (ein od. mehrere Gene) werden zufällig verändert Neue Kandidaten: Je nach Verfahren werden aus neuen oder alten Daten Kandidaten der nächsten Generation ausgewählt Abbruchkriterium Es ist natürlich nicht garantiert, dass neue Lösungen immer besser sind, als ältere. Haben sich zum Beispiel schlechte Gene durchgesetzt oder wurde das Optimum bereits gefunden werden keine besseren Lösungen mehr gefunden. Algorithmus wiederholen bis zu einem definierten Abbruchskriterium. Diese könnten sein: - Algo hat bestimmte Anzahl Generationen durchlaufen (1 Durchlauf = 1 Generation) - Es ist keine Verbesserung zur vorherigen Generation aufgetreten - Es ist eine zu geringe Verbesserung zur vorherigen Generation aufgetreten Es wird die Lösung zurück gegeben, die die grösste Fitness zur Abbruchzeit besitzt. Zielfunktion Normalerweise gibt es mehrere Optimierungskriterien, und somit auch mehrere Zielfunktionen. Die Gewichtungsfunktion für eine Lösung wird dann als Summe der einzelnen Funktionen multipliziert mit einer Gewichtung des jeweiligen Kriteriums angesehen.

4 Wo werden genetische Algorithmen verwendet? Genetische Algorithmen werden vor allem für Probleme verwendet, für die eine exakte Lösung nur sehr aufwändig berechnet werden kann. Das Profil eines Flügels und die Form eines Rumpfes von Flugzeugen werden mit Hilfe von genetischen Algorithmen berechnet und simuliert. Auch im Brückenbau können mit Hilfe von Genetischen Algorithmen Teile in Lage, Form und Gewicht optimiert werden. Nützlich sind genetische Algorithmen auch in der Logistik (siehe z.b. nachfolgendes Codebeispiel) Beispiel Beispiel entnommen von: Mit diesem genetischen Algorithmus wird das Rundreise Problem eines Paketdienstes gelöst. Von einem Warenlager aus, sollen alle Stationen einmal angefahren werden, natürlich auf dem kürzesten Weg und ohne eine zweimal zu besuchen. Es handelt sich hierbei um die klassische Travelling Salesman Problematik. Dieses Problem kann mit einem normalen Algorithmus nur mit polynomialem Aufwand gelöst werden. public class GeneticAlgorithm { public static void main(string[] args) { GeneticAlgorithm app = new GeneticAlgorithm(); app.berechneroute(); /* Implementierung des genetischen Algorithmus */ private Random rnd = new Random(); private Point lager = new Point(221, 106); private Point[] stationen = new Point[] { new Point(98, 154), new Point(98, 192), new Point(23, 154), new Point(42, 59), new Point(155, 21), new Point(325, 77), new Point(345, 170), ; private float p_m = 0.05f; // Mutationswahrscheinlichkeit private float p_c = 0.1f; // Crossover-Wahrscheinlichkeit

5 private void berechneroute() { List<int[]> population = new ArrayList<int[]>(); int populationsgroesse = 40; // Anfangspopulation erzeugen for(int i = 0; i < populationsgroesse; i++ ) { population.add(generierechromosom()); // solange Abbruchbedingung nicht erfã¼llt int anz_generationen = 1; while(anz_generationen <= 100) { // Selektion population = selektiere(population); // Mutation mutiere(population); // Crossover crossover(population); // Anzeigen des besten Chromsoms in der Tabelle (Ausgabe) zeigebesteschromosoman(anz_generationen, population); // ZÃ hler fã¼r Generationen erhã hen anz_generationen++; // Ergebnis ist der letzte Eintrag in der Tabelle private void zeigebesteschromosoman(int generation, List<int[]> population) { float beste_fitness = Float.MAX_VALUE; int beste_fitness_index = -1; // kleinste Fitness finden for(int i = 0; i < population.size(); i++) { float f = berechnefitness(population.get(i)); if(f < beste_fitness) { beste_fitness = f; beste_fitness_index = i; // Chromosom als Zeichenkette darstellen String bestes_chromosom = ""; int[] chromosom = population.get(beste_fitness_index); for(int i = 0; i < chromosom.length; i++) { bestes_chromosom += ((i == 0)? "" : ", ") + (chromosom[i]+1); // neue Zeile in Auswertungstabelle schreiben System.out.println(Integer.toString(generation) + "\t\t(" + bestes_chromosom + ")\t\t" + Float.toString(beste_fitness)); private void crossover(list<int[]> population) {

6 // - jedes Chromosom soll genau einmal in den Vorgang involviert sein // - immer zwei Chromosomen zufã llig wã hlen List<int[]> verbleibend = new ArrayList<int[]>(population); while(verbleibend.size() >= 2) { // Auswahl zweier Chromosomen int[] c1 = verbleibend.get(rnd.nextint(verbleibend.size())); verbleibend.remove(c1); int[] c2 = verbleibend.get(rnd.nextint(verbleibend.size())); verbleibend.remove(c2); // fã¼hre Crossover mit Wahrscheinlichkeit p_c aus if(rnd.nextfloat() <= p_c) { // Austauschstelle zufã llig bestimmen int z = rnd.nextint(c1.length-1) + 1; int[] c1_getauscht = c1.clone(), c2_getauscht = c2.clone(); for(int i = z; i < c1_getauscht.length; i++) { int tmp = c1_getauscht[i]; c1_getauscht[i] = c2_getauscht[i]; c2_getauscht[i] = tmp; c1.length); c2.length); // nur dann verwenden, wenn Chromosom immer noch // gã¼ltige LÃ sung reprã sentiert if(istgueltig(c1_getauscht)) { System.arraycopy(c1_getauscht, 0, c1, 0, System.arraycopy(c2_getauscht, 0, c2, 0, private boolean istgueltig(int[] chromosom) { Set<Integer> enthaltene_stationen = new HashSet<Integer>(); for(int i = 0; i < chromosom.length; i++ ) { if(enthaltene_stationen.contains(chromosom[i]) chromosom[i] < 0 chromosom[i] >= stationen.length) { return false; enthaltene_stationen.add(chromosom[i]); return true; private void mutiere(list<int[]> population) { for(int[] chromosom : population) { for(int i = 0; i < chromosom.length; i++) { // mutiere mit Wahrscheinlichkeit p_m if(rnd.nextfloat() <= p_m) { // Ã ndere die Station int vorherige = chromosom[i];

7 1); 1 : 0; bereits wegchromosom[i]) { chromosom[i] = rnd.nextint(stationen.length- chromosom[i] += (chromosom[i] >= vorherige)? // die zufã llig gewã hlte Station taucht // irgendwo im Chromosom auf, daher sollte sie // durch die Station, die durch das mutieren // gefallen ist, ersetzt werden for(int k = 0; k < chromosom.length; k++) { if(k!= i && chromosom[k] == chromosom[k] = vorherige; break; private List<int[]> selektiere(list<int[]> population) { List<int[]> neue_population = new ArrayList<int[]>(); // Fitness der Chromosomen berechnen float gesamt_fitness = 0.0f, maximale_fitness = 0.0f; float[] fitness = new float[population.size()]; for(int i = 0; i < population.size(); i++) { fitness[i] = berechnefitness(population.get(i)); maximale_fitness = Math.max(maximale_fitness, fitness[i]); // Da wir minimieren wollen, bedienen wir uns dem Trick, dass // wir jede berechnete Fitness ersetzen durch: // Maximale Fitness - Fitness for(int i = 0; i < fitness.length; i++) { fitness[i] = (float)math.pow(1.2f, (maximale_fitness - fitness[i]) / 100.0f); gesamt_fitness += fitness[i]; // nun kã nnen wir entsprechend oft auswã hlen for(int i = 0; i < population.size(); i++) { float z = rnd.nextfloat() * gesamt_fitness; float hilfswert = 0.0f; for(int k = 0; k < fitness.length; k++) { // auszuwã hlendes Chromosom gefunden? if(z <= hilfswert + fitness[k]) { neue_population.add(population.get(k).clone()); break; // sonst weitersuchen hilfswert += fitness[k]; return neue_population;

8 private float berechnefitness(int[] chromosom) { float strecken_laenge = 0.0f; // Strecken zwischen den Stationen einbeziehen for(int i = 0; i < chromosom.length-1; i++) { int k1 = chromosom[i]; int k2 = chromosom[i+1]; strecken_laenge += Math.sqrt(Math.pow(stationen[k2].xstationen[k1].x, 2) + Math.pow(stationen[k2].y-stationen[k1].y, 2)); // Strecke zwischen Lager-erste Station und zwischen Lagerletzte Station einbeziehen int n = stationen.length - 1; strecken_laenge += Math.sqrt(Math.pow(stationen[0].x-lager.x, 2) + Math.pow(stationen[0].y-lager.y, 2)); strecken_laenge += Math.sqrt(Math.pow(stationen[n].x-lager.x, 2) + Math.pow(stationen[n].y-lager.y, 2)); return strecken_laenge; private int[] generierechromosom() { // ein Chromosom/Lösung wird als Reihenfolge der Stationen // kodiert; die Reihenfolge wird durch ein Array festgelegt int[] chromosom = new int[stationen.length]; // Variable fã¼r verbleibende Stationen zum Auswà hlen ArrayList<Integer> stationen_verbl = new ArrayList<Integer>(); for(int i = 0; i < stationen.length; i++) { stationen_verbl.add(i); // Stationen nach zufã lliger Reihenfolge auswã hlen for(int i = 0; i < stationen.length; i++) { int zufallsindex = rnd.nextint(stationen_verbl.size()); chromosom[i] = stationen_verbl.get(zufallsindex); stationen_verbl.remove(zufallsindex); return chromosom; Kommentar zum Beispiel 1. Es werden anfänglich 40 verschiedene Standort Kombinationen (=Chromosome) als Startpopulation generiert. Die Standort Reihenfolge die abgefahren wird wird dabei zufällig gewählt. Natürlich muss stets darauf geachtet werden, dass bei jedem Chromosom, jeder Standort nur einmal vorhanden ist. 2. Es wird definiert, dass der Algorithmus nach 100 Generationen abbrechen soll. Die Startpopulation ist Generation Als erstes wird nun eine Selektion vorgenommen. a. Für jedes Chromosom der Population die Fitness berechnen. Es wir die Länge der Strecke vom Lager, über alle Stationen (in gegebener Reihenfolge) bis zurück zum Lager berechnet.

9 b. Da wir die minimale Weglänge wollen, berechnen wir die Maximale Fitness Fitness des Chromosoms, so dass trotzdem gilt, je Grösser die Fitness, desto besser. c. Nun wiederum 40 Chromosome aus den bereits vorhandenen ausgewählt. 4. Mutation a. Ein Gen wird zu einer zuvor festgelegten Wahrscheinlichkeit (0.05) mutiert. b. Der Standort der aktuellen Gens wird dafür einfach geändert. Natürlich muss bedacht werden, dass der neue Standort im Chromosom schon irgendwo vorhanden ist. Man ersetzt also diesen mit dem alten Standort des aktuellen Gens. 5. Crossover a. Jedes Chromosom soll einmal involviert sein. b. Immer zwei Chromosome werden dafür zufällig aus einer Liste unbehandelter Chromosome ausgewählt. c. Mit der Wahrscheinlichkeit 0.1 wird ein Crossover durchgeführt. d. Die Austauschstelle wird zufällig gewählt. Und der Teil nach dieser Stelle zwischen den beiden Chromosomen ausgetauscht e. Natürlich kann es nun vorkommen, dass Chromosome mit doppelten Standorten entstehen. Dies muss überprüft werden, und gegebenenfalls der Crossover rückgängig gemacht werden. 6. Bestes Chromosom anzeigen a. Gibt das Chromosom mit der besten Fitness nach der gegebenen Generation aus. Und schreibt dieses in eine Tabelle. Im Screenshot der Java Console sieht man nun von jeder Generation das beste Chromosom (=Kürzester Weg). Gut ersichtlich ist, dass das beste Resultat nicht in Generation 100 gefunden wurde, das Resultat z.b. bei Generation 80 ist besser. Das Problem konnte von rund 1100 auf rund 880 optimiert werden.

10 Quellen 19.Mai Mai 2009

Computational Intelligence

Computational Intelligence Vorlesung Computational Intelligence Stefan Berlik Raum H-C 80 Tel: 027/70-267 email: berlik@informatik.uni-siegen.de Inhalt Überblick Rückblick Optimierungsprobleme Optimierungsalgorithmen Vorlesung Computational

Mehr

13 Java 4 - Entwurfsmuster am Beispiel des Rucksackproblems

13 Java 4 - Entwurfsmuster am Beispiel des Rucksackproblems 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

Mehr

Grundlagen und Basisalgorithmus

Grundlagen und Basisalgorithmus Grundlagen und Basisalgorithmus Proseminar -Genetische Programmierung- Dezember 2001 David König Quelle: Kinnebrock W.: Optimierung mit genetischen und selektiven Algorithmen. München, Wien: Oldenbourg

Mehr

Seminararbeit zum Thema Genetische Algorithmen

Seminararbeit zum Thema Genetische Algorithmen Seminararbeit zum Thema Genetische Algorithmen Seminar in Intelligent Management Models in Transportation und Logistics am Institut für Informatik-Systeme Lehrstuhl Verkehrsinformatik Univ.-Prof. Dr.-Ing.

Mehr

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Einfache 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"

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

Primitive Datentypen

Primitive Datentypen Primitive Datentypen 2 Arten von Datentypen: primitive Datentypen (heute) Objekte (später) Java ist streng typisiert, d.h. für jede Variable muß angegeben werden was für eine Art von Wert sie aufnimmt.

Mehr

Inf 12 Aufgaben 14.02.2008

Inf 12 Aufgaben 14.02.2008 Inf 12 Aufgaben 14.02.2008 Übung 1 (6 Punkte) Ermitteln Sie eine mathematische Formel, die die Abhängigkeit der Suchzeit von der Anzahl der Zahlen N angibt und berechnen Sie mit Ihrer Formel die durchschnittliche

Mehr

Sortieralgorithmen. Inhalt: InsertionSort BubbleSort QuickSort. Marco Block

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

Mehr

Übung Grundlagen der Programmierung. Übung 05: Arrays. Abgabetermin: xx.xx.xxxx. Java-Programm Testplan Testergebnisse

Übung Grundlagen der Programmierung. Übung 05: Arrays. Abgabetermin: xx.xx.xxxx. Java-Programm Testplan Testergebnisse Übung 05: Arrays Abgabetermin: xx.xx.xxxx Name: Name, Vorname Matrikelnummer: 0XXXXXX Gruppe: G1 (Prähofer) G2 (Wolfinger) G3 (Wolfinger) Aufgabe Punkte gelöst abzugeben schriftlich abzugeben elektronisch

Mehr

5. Tutorium zu Programmieren

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

Ü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

Algorithmische Kernsprache. Zuweisung, einfache und bedingte Anweisung, Blöcke, Schleifen, return, debugging.

Algorithmische Kernsprache. Zuweisung, einfache und bedingte Anweisung, Blöcke, Schleifen, return, debugging. Algorithmische Kernsprache Zuweisung, einfache und bedingte Anweisung, Blöcke, Schleifen, return, debugging. Ausdrücke Anweisungen Ausdrücke bezeichnen einen Wert Kontext stellt Werte von Variablen Werte

Mehr

Einsatz Evolutionärer Algorithmen zur Optimierung der Tourenplanung eines Wachschutzunternehmens

Einsatz Evolutionärer Algorithmen zur Optimierung der Tourenplanung eines Wachschutzunternehmens Fachhochschule Brandenburg Fachbereich Informatik und Medien Kolloquium zur Diplomarbeit Einsatz Evolutionärer Algorithmen zur Optimierung der Tourenplanung eines Wachschutzunternehmens Übersicht Darstellung

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

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

Java 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7

Java 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7 Java 7 Elmar Fuchs Grundlagen Programmierung 1. Ausgabe, Dezember 2011 JAV7 5 Java 7 - Grundlagen Programmierung 5 Kontrollstrukturen In diesem Kapitel erfahren Sie wie Sie die Ausführung von von Bedingungen

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

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

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

620.900 Propädeutikum zur Programmierung

620.900 Propädeutikum zur Programmierung 620.900 Propädeutikum zur Programmierung Andreas Bollin Institute für Informatik Systeme Universität Klagenfurt Andreas.Bollin@uni-klu.ac.at Tel: 0463 / 2700-3516 Arrays Wiederholung (1/5) Array = GEORDNETE

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

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7

Java 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

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

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden. Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,

Mehr

Gliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik

Gliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik Informatik I WS 2012/13 Tutorium zur Vorlesung 1. Alexander Zietlow zietlow@informatik.uni-tuebingen.de Wilhelm-Schickard-Institut für Informatik Eberhard Karls Universität Tübingen 11.02.2013 1. 2. 1.

Mehr

Genetische Algorithmen

Genetische Algorithmen Genetische Algorithmen zur Lösung kombinatorischer Optimierungsprobleme aus dem Bereich Produktion und Logistik S. Häckel, S. Lemke TU Chemnitz Fakultät für Wirtschaftswissenschaften Professur für Produktionswirtschaft

Mehr

PIWIN 1 Übung Blatt 5

PIWIN 1 Übung Blatt 5 Fakultät für Informatik Wintersemester 2008 André Gronemeier, LS 2, OH 14 Raum 307, andre.gronemeier@cs.uni-dortmund.de PIWIN 1 Übung Blatt 5 Ausgabedatum: 19.12.2008 Übungen: 12.1.2009-22.1.2009 Abgabe:

Mehr

Übungsblatt 3: Algorithmen in Java & Grammatiken

Ü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

Liebe Leserin, lieber Leser, in der ersten Auflage von Programmieren lernen mit Java von Hans- Peter Habelitz sind einige Fehler zu korrigieren.

Liebe Leserin, lieber Leser, in der ersten Auflage von Programmieren lernen mit Java von Hans- Peter Habelitz sind einige Fehler zu korrigieren. Liebe Leserin, lieber Leser, in der ersten Auflage von Programmieren lernen mit Java von Hans- Peter Habelitz sind einige Fehler zu korrigieren. Niemand bedauert diese Fehler mehr als der Autor selbst.

Mehr

1. Der Einstieg in Java. Was heißt Programmieren?

1. Der Einstieg in Java. Was heißt Programmieren? 1. Der Einstieg in Java Lernziele: Am Ende dieses Kapitels sollen Sie wissen, aus welchen Bestandteilen ein Java-Programm besteht, Java-Programme übersetzen und ausführen können, Möglichkeiten der Kommentierung

Mehr

Datenbankanwendung. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Wintersemester 2014/15. smichel@cs.uni-kl.de

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

Mehr

Arrays von Objekten. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Arrays 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"

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

Brainfuck. 1 Brainfuck. 1.1 Brainfuck Geschichte und Umfeld. 1.2 Esoterische Programmiersprachen

Brainfuck. 1 Brainfuck. 1.1 Brainfuck Geschichte und Umfeld. 1.2 Esoterische Programmiersprachen Brainfuck 1 Brainfuck 1.1 Brainfuck Geschichte und Umfeld Brainfuck ist eine sogenannte esoterische Programmiersprache. Sie wurde 1993 vom Schweizer Urban Müller entworfen mit dem Ziel, eine Sprache mit

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

Institut fu r Informatik

Institut fu r Informatik Technische Universita t Mu nchen Institut fu r Informatik Lehrstuhl fu r Bioinformatik Einfu hrung in die Programmierung fu r Bioinformatiker Prof. B. Rost, L. Richter WS 2013 Aufgabenblatt 3 18. November

Mehr

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung Übersicht 3.1 Modell Konto 3.2 Modell Konto - Erläuterungen 3.3 Benutzer Ein- und Ausgabe mit Dialogfenster I 3.4 Benutzer Ein- und Ausgabe mit Dialogfenster II 3.5 Klassen- und Objekteigenschaften des

Mehr

Hochschule Regensburg. Übung 12_3 Genetische Algorithmen 1. Spezielle Algorithmen (SAL) Lehrbeauftragter: Prof. Sauer

Hochschule Regensburg. Übung 12_3 Genetische Algorithmen 1. Spezielle Algorithmen (SAL) Lehrbeauftragter: Prof. Sauer Hochschule Regensburg Übung 12_ Genetische Algorithmen 1 Spezielle Algorithmen (SAL) Lehrbeauftragter: Prof. Sauer Name: Vorname: 1. Was sind GA? - Ein GA ist ein Algorithmus, der Strategien aus der Evolutionstheorie

Mehr

Jürgen Bayer. MDI-Anwendungen in C#

Jürgen Bayer. MDI-Anwendungen in C# Jürgen Bayer MDI-Anwendungen in C# Inhaltsverzeichnis 1 Grundlagen 2 1.1 Einrichten der Formulare 2 1.2 Öffnen von MDI-Childformularen 3 2 Menüs 4 2.1 Erstellen eines Menüs 4 2.2 Programmierung der Menüpunkte

Mehr

Kapitel 12 Dokumentation und Zugriffsrechte

Kapitel 12 Dokumentation und Zugriffsrechte Kapitel 12 Dokumentation und Zugriffsrechte Seite 1 / 6 Kapitel 12 Dokumentation und Zugriffsrechte Lernziele: Dokumentation mit Hilfe von Javadoc Datenkapselung über Zugriffsrechte 12.1 Dokumentation

Mehr

Structurally Evolved Neural Networks for Forecasting

Structurally Evolved Neural Networks for Forecasting Structurally Evolved Neural Networks for Forecasting - Strukturierte neuronale Netze für Vorhersagen Institut für Informatik - Ausgewählte Kapitel aus dem Bereich Softcomputing Agenda Grundlagen Neuronale

Mehr

Java Einführung Collections

Java 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]...

Mehr

Informatik-Sommercamp 2012. Mastermind mit dem Android SDK

Informatik-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

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

Algorithmen und Datenstrukturen

Algorithmen 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

Mehr

Prinzipien Objektorientierter Programmierung

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

Mehr

Beispiel: Methode mit einem Fehler. Diese Methode wird problematisch, wenn von außen eine Dauer von 0 Sekunden angegeben wird, etwa im Aufruf

Beispiel: Methode mit einem Fehler. Diese Methode wird problematisch, wenn von außen eine Dauer von 0 Sekunden angegeben wird, etwa im Aufruf 16 Exceptions Zur Behandlung unerwarteter Situationen bietet Java Unterstützung in Form von Exceptions oder Ausnahmen. Den Sinn von Exceptions können wir Ihnen an einem kleinen Beispiel klarmachen. Nehmen

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 14/15. Kapitel 11. Fehler und Ausnahmen 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 14/15. Kapitel 11. Fehler und Ausnahmen 1 Kapitel 11 Fehler und Ausnahmen Fehler und Ausnahmen 1 Ziele Fehlerquellen in Programmen und bei der Programmausführung verstehen Das Java-Konzept der Ausnahmen als Objekte kennenlernen Ausnahmen auslösen

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

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

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008 PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 1 PIWIN I Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I Vorlesung 3 SWS WS 2007/2008 FB Informatik

Mehr

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Inhalt dieser Einheit Variablen (Sinn und Aufgabe) Bezeichner Datentypen, Deklaration und Operationen Typenumwandlung (implizit/explizit) 2 Variablen

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

Klausur in Programmieren

Klausur in Programmieren Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Wintersemester 2010/11, 17. Februar 2011 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt)

Mehr

Einführung in die Informatik für Hörer aller Fakultäten II. Andreas Podelski Stephan Diehl Uwe Waldmann

Einführung in die Informatik für Hörer aller Fakultäten II. Andreas Podelski Stephan Diehl Uwe Waldmann Einführung in die Informatik für Hörer aller Fakultäten II Andreas Podelski Stephan Diehl Uwe Waldmann 1 Einführung in die Informatik für Hörer aller Fakultäten II Andreas Podelski Stephan Diehl Uwe Waldmann

Mehr

Genetic Algorithms. Seminar KE und Lernen in Spielen. Bearbeitet von: Felix Becher. Leiter des Seminars: Prof. Dr. Johannes Fürnkranz 06-07-27

Genetic Algorithms. Seminar KE und Lernen in Spielen. Bearbeitet von: Felix Becher. Leiter des Seminars: Prof. Dr. Johannes Fürnkranz 06-07-27 Genetic Algorithms Seminar KE und Lernen in Spielen Bearbeitet von: Felix Becher Leiter des Seminars: Prof. Dr. Johannes Fürnkranz Gliederung Evolutionstheorie Genetische Algorithmen Vor- und Nachteile

Mehr

188.154 Einführung in die Programmierung für Wirtschaftsinformatik

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

Mehr

Entwurf von Algorithmen - Kontrollstrukturen

Entwurf von Algorithmen - Kontrollstrukturen Entwurf von Algorithmen - Kontrollstrukturen Eine wichtige Phase in der Entwicklung von Computerprogrammen ist der Entwurf von Algorithmen. Dieser Arbeitsschritt vor dem Schreiben des Programmes in einer

Mehr

KV Software Engineering Übungsaufgaben SS 2005

KV Software Engineering Übungsaufgaben SS 2005 KV Software Engineering Übungsaufgaben SS 2005 Martin Glinz, Silvio Meier, Nancy Merlo-Schett, Katja Gräfenhain Übung 1 Aufgabe 1 (10 Punkte) Lesen Sie das Originalpapier von Dijkstra Go To Statement Considered

Mehr

Softwaretechnologie - Wintersemester 2012/2013 - Dr. Günter Kniesel

Softwaretechnologie - Wintersemester 2012/2013 - Dr. Günter Kniesel Übungen zur Vorlesung Softwaretechnologie - Wintersemester 2012/2013 - Dr. Günter Kniesel Übungsblatt 10 - Lösungshilfe Aufgabe 1. CRC-Karten (7 Punkte) Es geht um die Modellierung der folgenden Bibliotheks-Anwendung:

Mehr

Informatik I WS 07/08 Tutorium 24

Informatik I WS 07/08 Tutorium 24 Info I Tutorium 24 Informatik I WS 07/08 Tutorium 24 20.12.07 Bastian Molkenthin E-Mail: infotut@sunshine2k.de Web: http://infotut.sunshine2k.de Rückblick Semi-Thue-Systeme Ein Semi-Thue-System besteht

Mehr

Evolutionäre Algorithmen. SS 2015 Woche 01

Evolutionäre Algorithmen. SS 2015 Woche 01 Evolutionäre Algorithmen SS 2015 Woche 01 Inhalt Organisation der Übung Wiederholung Die Komponenten eines EA Zwei Minimal-Beispiele Besprechung des Übungsblatts Das Team Vorlesung Prof. Dr.-Ing. habil.

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 8. Arrays. Arrays

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 8. Arrays. Arrays 1 Kapitel 8 Ziele 2 Die Datenstruktur der kennenlernen Grundlegende Algorithmen auf in Java implementieren können Mit von Objekten arbeiten können 3 Erweiterungen zur Behandlung von : Überblick Bisher

Mehr

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein (kmk@informatik.uni-kiel.

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein (kmk@informatik.uni-kiel. Java Crashkurs Kim-Manuel Klein (kmk@informatik.uni-kiel.de) May 7, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Dateien lesen und schreiben 2 Übersicht der heutigen Inhalte File Streams try-with-resources Properties csv-dateien 3 Klasse File Die Klasse java.io.file bietet Unterstützung im Umgang

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

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

Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume.

Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume. Universität Osnabrück 1 Bäume 3 - Objektorientierte Programmierung in Java Vorlesung 10: Collections 4 Einführung Bäume sind verallgemeinerte Listenstrukturen Lineare Liste Jedes Element hat höchstens

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 02: Klassen & Objekte Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Klassen Grundstruktur einer Java-Klasse Eigenschaften (Attribute) Variablen

Mehr

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich

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 Rückblick Datentypen (int, long, double, boolean, String) Variablen und Variablendeklarationen

Mehr

C# 2000 Expression Beispielcodes für Konsolen- und Formularanwendung

C# 2000 Expression Beispielcodes für Konsolen- und Formularanwendung C# 2000 Expression Beispielcodes für Konsolen- und Formularanwendung 1. "Hai!" [Konsolenanwendung] Console.WriteLine("Hai, wie geht's?"); 2. Muktiplikation mit sich selbst [Konsolenanwendung] // Ausgabe

Mehr

Tutorium Java Ein Überblick. Helge Janicke

Tutorium Java Ein Überblick. Helge Janicke Tutorium Java Ein Überblick Helge Janicke 26. Oktober 2000 1 VORRAUSSETZUNGEN ZUM PROGRAMMIEREN MIT JAVA. 1 1 Vorraussetzungen zum Programmieren mit Java. Was braucht man, wenn man mit Java programmieren

Mehr

Kontrollstrukturen, Pseudocode und Modulo-Rechnung

Kontrollstrukturen, Pseudocode und Modulo-Rechnung Kontrollstrukturen, Pseudocode und Modulo-Rechnung CoMa-Übung III TU Berlin 29.10.2012 CoMa-Übung III (TU Berlin) Kontrollstrukturen, Pseudocode und Modulo-Rechnung 29.10.2012 1 / 1 Themen der Übung 1

Mehr

5.4 Klassen und Objekte

5.4 Klassen und Objekte 5.4 Klassen und Objekte Zusammenfassung: Projekt Figuren und Zeichner Figuren stellt Basisklassen für geometrische Figuren zur Verfügung Zeichner bietet eine übergeordnete Klasse Zeichner, welche die Dienstleistungen

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

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Java Kurs für Anfänger Einheit 4 Klassen und Objekte Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse

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

Operationalisierbare Qualitätskriterien für die Programmierung mit Erfahrungen aus PRÜ1 und PRÜ2

Operationalisierbare Qualitätskriterien für die Programmierung mit Erfahrungen aus PRÜ1 und PRÜ2 Operationalisierbare Qualitätskriterien für die Programmierung mit Erfahrungen aus PRÜ1 und PRÜ2 von Christoph Knabe http://public.beuth-hochschule.de/~knabe/ Ch. Knabe: Operationalisierbare Qualitätskriterien

Mehr

Distributed Computing Group

Distributed Computing Group JAVA TUTORIAL Distributed Computing Group Vernetzte Systeme - SS 06 Übersicht Warum Java? Interoperabilität grosse und gut dokumentierte Library weit verbreitet Syntax sehr nahe an C Erfahrung: Java wird

Mehr

Vorlesung Objektorientierte Programmierung Probeklausur

Vorlesung Objektorientierte Programmierung Probeklausur Prof. Dr. Stefan Brass 04. März 2013 Dipl.-Inform. Annett Thüring Institut für Informatik MLU Halle-Wittenberg Vorlesung Objektorientierte Programmierung Probeklausur Name: Matrikelnummer: Studiengang:

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

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

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.

Mehr

Breiten- und Tiefensuche in Graphen

Breiten- 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

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

Vergleich verschiedener OO-Programmiersprachen

Vergleich verschiedener OO-Programmiersprachen Vergleich verschiedener OO-Programmiersprachen - Schnellumstieg in 15 Minuten - C++ Java Visual C++ C# Programmbeispiel in Visual C++, C#, Java und C++ Dr. Ehlert, Juni 2012 1 Inhaltsverzeichnis 1. Problemstellung

Mehr

Große Übung Praktische Informatik 1

Große Übung Praktische Informatik 1 Große Übung Praktische Informatik 1 2005-12-08 fuessler@informatik.uni-mannheim.de http://www.informatik.uni-mannheim.de/pi4/people/fuessler 1: Announcements / Orga Weihnachtsklausur zählt als Übungsblatt,

Mehr

Grundlagen der Programmierung Prof. H. Mössenböck. 10. Klassen

Grundlagen 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

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

Problemstellung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 24: Reflection 1. IDE und automatische Tests.

Problemstellung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 24: Reflection 1. IDE und automatische Tests. Universität Osnabrück 1 Problemstellung 3 - Objektorientierte Programmierung in Java Vorlesung 24: Reflection 1 SS 2006 Prof. Dr. Frank M. Thiesing, FH Osnabrück Um ein Objekt anzulegen, eine seiner Methoden

Mehr

Arrays Fortgeschrittene Verwendung

Arrays 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

368 4 Algorithmen und Datenstrukturen

368 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

Mehr

Arrays von Objekten. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Arrays 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

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

Ein erstes Java-Programm

Ein erstes Java-Programm Ein erstes Java-Programm public class Rechnung { public static void main (String [] arguments) { int x, y; x = 10; y = -1 + 23 * 33 + 3 * 7 * (5 + 6); System.out.print ("Das Resultat ist "); System.out.println

Mehr

Programmieren I. Kapitel 7. Sortieren und Suchen

Programmieren 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

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 Pommes... Praktikum A 230 C 207 (Madeleine) F 112 F 113 (Kevin) E

Mehr

Informatik ist viel mehr als Delphi-Programmierung!

Informatik ist viel mehr als Delphi-Programmierung! Gliederung 1. Objektorientierte Programmierung mit Object Pascal (5. Studienbrief, Kapitel 5) 9.4. + 16.4. 2. Software-Bausteine am Beispiel der Delphi-Komponenten (5. Studienbrief, Kapitel 5) 23.4. 3.

Mehr