Genetische Algorithmen
|
|
- Karlheinz Schubert
- vor 6 Jahren
- Abrufe
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
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
Mehr13 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
MehrGrundlagen 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
MehrSeminararbeit 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.
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"
MehrProgrammierkurs 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
MehrPrimitive 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.
MehrInf 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
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
MehrÜ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
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Ü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
MehrAlgorithmische 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
MehrEinsatz 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
Mehr4 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
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
MehrJava 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
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
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
MehrPraktikum 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
Mehr620.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
MehrMusterlö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
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
MehrBetriebssysteme. 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
MehrEine 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,
MehrGliederung. 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.
MehrGenetische 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
MehrPIWIN 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
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
MehrLiebe 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.
Mehr1. 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
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
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"
MehrGliederung 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
MehrBrainfuck. 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
MehrDas 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
MehrInstitut 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 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
MehrHochschule 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
MehrJü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
MehrKapitel 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
MehrStructurally 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
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]...
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
MehrKapitel 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
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
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........................
MehrBeispiel: 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
MehrEinfü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
MehrKapitel 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
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
MehrPIWIN 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
MehrJava 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
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
MehrKlausur 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)
MehrEinfü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
MehrGenetic 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
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
MehrEntwurf 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
MehrKV 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
MehrSoftwaretechnologie - 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:
MehrInformatik 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
MehrEvolutionä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.
MehrEinfü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
MehrEinfü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)
MehrProgrammieren 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
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:
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-
MehrBä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
MehrJavakurs 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
MehrAutor: 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
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 Rückblick Datentypen (int, long, double, boolean, String) Variablen und Variablendeklarationen
MehrC# 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
MehrTutorium 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
MehrKontrollstrukturen, 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
Mehr5.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
MehrDrei-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
MehrJava 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
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
MehrOperationalisierbare 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
MehrDistributed 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
MehrVorlesung 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:
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.
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
MehrGrundlagen 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.
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
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
MehrVergleich 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
MehrGroß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,
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
MehrKapitel 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
MehrProblemstellung. 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
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
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
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
MehrEinfü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()
MehrEin 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
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
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
MehrInformatik 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