Algorithmen und Datenstrukturen
|
|
- Ewald Zimmermann
- vor 6 Jahren
- Abrufe
Transkript
1 Algorithmen und Datenstrukturen Prof. Martin Lercher Institut für Informatik Heinrich-Heine-Universität Düsseldorf Teil 4 Suchen in Texten Version vom: 15. November / 39
2 Vorlesung November / 39
3 Suchen in Texten Häufig wird in einer Folge von Zeichen (in einem Text) eine Zeichenkette (ein Muster) gesucht (Pattern Matching). Man interessiert sich entweder für ein oder für alle Vorkommen des Musters im Text. Beispiele: 1 Suchmaschinen 2 Textverarbeitungsprogramme 3 Editoren 4 Filesuche 5 Mustersuche in DNA-Sequenzdaten 6 Plagiaterkennung 3 / 39
4 Suchen in Texten Textsuche Gegeben: Alphabet Σ, Text T Σ, T = a 0,..., a n 1 mit a i Σ und Muster P Σ, P = b 0,..., b m 1 mit b i Σ Aufgabe: Berechne i N 0 mit 0 i n m und i ist die Anfangsposition des Musters P im Text T, d.h., a i = b 0, a i+1 = b 1,..., a i+m 1 = b m 1, oder i = n falls das Muster P nicht im Text T enthalten ist. 4 / 39
5 Suchen in Texten - Einfache Suche Methode: Durchsuche den gesamten Text schrittweise von links nach rechts und vergleiche bei jeder Position von links das Muster zeichenweise mit dem Text. Vergleiche das Zeichen im Muster auf Position j mit dem Zeichen im Text auf Position i. Verschiebe das Wort bei einem Mismatch um eine Position nach rechts. Setze i auf i j + 1 und j auf 0. Erhöhe bei einem Match beide Indices um 1. Setze i auf i + 1 und j auf j + 1. Bei j = m wurde ein Vorkommen des Musters im Text gefunden. Setze i auf i m + 1 und j auf 0. 5 / 39
6 Suchen in Texten - Einfache Suche (1) int naive search (char T [ ], int n, char P[ ], int m) (2) { (3) if (m > 0) { (4) int i := 0; (5) int j := 0; (6) while ((i < n) and (j < m)) { (7) if (T [i] = P[j]) { (8) i + +; (9) j + +; (10) } (11) else { (12) i := i + 1 j; (12) j := 0; (13) } (14) } (15) if (j = m) { (16) return(i m); (17) } (18) } (19) return(n); (20) } 6 / 39
7 Suchen in Texten - Einfache Suche Beispiel Als Clowns verkleidete Gauner sind meist leicht zu. ^ (Mismatch) ^ (Mismatch)... ^ (Mismatch) ^ (Mismatch) ^ (Mismatch) ^ (Mismatch) 7 / 39
8 Suchen in Texten - Einfache Suche Beispiel Als Clowns verkleidete Gauner sind meist leicht zu.... ^ (fertig) 8 / 39
9 Suchen in Texten - Einfache Suche Analyse: Der naive Algorithmus führt im ungünstigsten Fall viele Vergleiche durch. (n m + 1) m O(n m) 9 / 39
10 Suchen in Texten - Knuth-Morris-Pratt Das Verfahren von Knuth-Morris-Pratt: Methode: Vergleiche das Zeichen im Muster auf Position j mit dem Zeichen im Text auf Position i. Wenn das Zeichen im Muster auf Position j nicht mit dem Zeichen im Text auf Position i übereinstimmt, dann setze j auf die größte Position l zwischen 0 und j 1 zurück, so das b 0,..., b l 1 = a i l,..., a i 1. Speichere die Positionen im next-array. Donald Erwin Knuth Autor von The Art of Computer programming Entwickler von TEX( L A TEX) 10 / 39
11 Suchen in Texten - Knuth-Morris-Pratt Beispiel Beispiel: i i i T P j j j Sei next[j] die von rechts her nächste Stelle im Muster, die man mit der i-ten Position im Text vergleichen muss, falls T [i] und P[j] verschieden sind. Beispiel Das Array next[] wird für das Muster in einer Vorphase vorausberechnet. P = j = next[j] = / 39
12 Suchen in Texten - Knuth-Morris-Pratt Berechnung des next-arrays (1) void init next array (int next[ ], char P[ ], int m) (2) { (3) if (m > 0) { (4) int i := 0; (5) int j := 1; (6) next[0] := 1; (7) while (i < m 1) { (8) if ((j = 1) or (P[i] = P[j])) { (9) i + +; (10) j + +; (11) next[i] := j; } (12) } (13) else { (14) j := next[j]; (15) } (16) } (17) } (18) } 12 / 39
13 Suchen in Texten - Knuth-Morris-Pratt Textsuche mit dem berechneten next-array (1) int kmp search (char T [ ], int n, char P[ ], int m, int next[ ]) (2) { (3) if (m > 0) { (4) int i := 0; (5) int j := 0; (6) while ((i < n) and (j < m)) { (7) if ((j = 1) or (T [i] = P[j])) { (8) i + +; (9) j + +; (10) } (11) else { (12) j := next[j]; (13) } (14) } (15) if (j = m) { (16) return(i m); (17) } (18) } (19) return(n); (20) } 13 / 39
14 Suchen in Texten - Knuth-Morris-Pratt Analyse: Variable j kann nur so oft verkleinert werden, wie sie zuvor erhöht wurde. Variable j wird immer zusammen mit Variable i erhöht. Also wird j nur so oft verkleinert, wie i erhöht wird. Ist das next-array bekannt, so hat das Verfahren eine lineare Laufzeit O(n). Da das next-array in O(m) Schritten aufgebaut werden kann, benötigt der gesamte Algorithmus O(n + m) Schritte. 14 / 39
15 Das Verfahren von Boyer-Moore: Methode: Beim Verfahren von Boyer und Moore werden die Zeichen im Muster von rechts nach links mit den Zeichen im Text verglichen. Wenn es beim Vergleich der Zeichen im Text mit den Zeichen im Muster zu einem Mismatch kommt, dann verschiebe das Muster so weit wie möglich nach rechts, jedoch maximal um die Musterlänge. So weit wie möglich = setze j auf die Position des letzten Vorkommens von T [i] im Muster P. i := Position des ersten Mismatches (von rechts gesehen) im Text j := zugehörige Position im Muster (Achtung: j läuft beim Vergleich rückwärts: m 1,..., 0) 15 / 39
16 Beispiel Als Clowns verkleidete Gauner sind meist leicht zu. ^ (Mismatch) ^ (Mismatch) ^ (Mismatch)... ^ (Mismatch) ^ (fertig) 16 / 39
17 Das vereinfachte Verfahren (Heuristik) nach Boyer und Moore: Eine Verschiebung des Musters um 1 entspricht einer Erhöhung von i um (m 1 j) + 1 also um m j. Eine Verschiebung des Musters um k entspricht einer Erhöhung von i um (m 1 j) + k. Der sogenannte delta-1-wert (bad character shift) beschreibt für jedes Zeichen c im Text das erste Vorkommen des Zeiches im Muster (von rechts gezählt). Kommt c im Muster nicht vor, so ist delta-1(c) = m. 17 / 39
18 Beispiel Alphabet: Σ = {a, b, c, d} P = a b c a b a delta-1(a) = 0 delta-1(b) = 1 delta-1(c) = 3 delta-1(d) = 6 18 / 39
19 (1) int bm suche (char T [], int n, char P[], int m) (2) { (3) int i := m 1; (4) int j := m 1; (5) while ((j 0) and (i n 1)) { (6) if (T [i] = P[j]) { (7) i ; (8) j ; (9) } (10) else { (11) i := i + Musterverschiebung ; // Muss noch definiert werden! (12) j := m 1; // Neuanfang am Ende des Musters (13) } (14) } (15) if (j < 0) { (16) return (i + 1); // gefunden! (17) } (18) else (19) return (n); // nicht gefunden. (20) } (21) } 19 / 39
20 In dem vereinfachten Verfahren von Boyer und Moore wird immer dann, wenn es zu einem Mismatch kommt, i auf i + max{(m 1 j) + 1, delta-1(t [i])} und j auf m 1 gesetzt. Bemerkungen: Kommt es zu einem Mismatch zwischen T [i] und P[j], dann wird das Muster so weit nach rechts geschoben, bis das Zeichen T [i] im Text über dem rechtesten Vorkommen von T [i] im Muster steht. Kommt das Zeichen T [i] im Muster gar nicht vor, dann wird das Muster so weit nach rechts geschoben, bis das Zeichen T [i] im Text vor dem ersten Zeichen im Muster steht. Das Muster wird jedoch mindestens um eine Position nach rechts geschoben (i := i + m j). 20 / 39
21 Obwohl obiges Verfahren eine worst-case-laufzeit von O(n m) hat (T = 00 0, P = 100 0), hat es sich in der Praxis ausgezeichnet bewährt. Für genügend kurze Muster und hinreichend große Alphabete werden im Mittel O(n/m) viele Schritte durchgeführt. Das Muster wird dann also nahezu immer um seine Gesamtlänge nach rechts verschoben. 21 / 39
22 Kleine Modifikation Der delta-1-wert für das letzte Zeichen P[m 1] im Muster P kann auch auf das zweite Vorkommen des Zeichens im Muster (von rechts gezählt) gesetzt werden, da ein delta-1-wert von 0 eine Musterverschiebung von 0 entspricht. Beispiel mit Alphabet Σ = {a, b, c, d}: P = a b c a b a delta -1(a) = 2 delta -1(b) = 1 delta -1(c) = 3 delta -1(d) = 6 Hier wird das Muster so weit nach rechts geschoben, dass das zweite Vorkommen von rechts des letzten Zeichens im Muster unter der Position i + (m 1 j) im Text steht. 22 / 39
23 Verbesserung des einfachen Verfahrens von Boyer und Moore Die Sub-Muster im Muster können ähnlich wie bei dem Verfahren von Knuth Morris und Pratt mit berücksichtigt werden. Der sogenannte delta-2-wert beschreibt, um welchen Wert i maximal erhöht werden kann, wenn an einer Position j im Muster ein Mismatch eintritt. Genutzt wird die Information, dass auf den Positionen i + 1,..., i + (m 1 j) im Text die gleichen Zeichen stehen, wie im Muster auf den Positionen j,..., m 1. Wird zusätzlich noch die Information genutzt, dass auf Position i im Text ein anderes Zeichen steht als auf Position j im Muster, dann erhalten wir den verbesserten delta-2-wert. 23 / 39
24 Beispiel P = j = delta-2(j) = i T...x... j j = 8 i i := i + 1 T...x... j j := m-1 24 / 39
25 Beispiel i T...x0... j j = 7 i i := i + 3 T...x0... j j := m-1 i T...x10... j j = 6 i i := i + 4 T...x10... j j := m-1 25 / 39
26 Beispiel i T...x j j = 5 i i := i + 5 T...x j j := m-1 i T...x j j = 4 i i := i + 6 T...x j j := m-1 26 / 39
27 Beispiel i T...x j j = 3 i i := i + 7 T...x j j := m-1 i T...x j j = 2 i i := i + 13 T...x j j := m-1 27 / 39
28 Beispiel i T...x j j = 1 i i := i + 14 T...x j j := m-1 i T...x j j = 0 i i := i + 15 T...x j j := m-1 28 / 39
29 In dem erweiterten Verfahren von Boyer und Moore wird immer dann, wenn es zu einem Mismatch auf Position j im Muster kommt, i auf und j auf gesetzt. Bemerkungen: i + max{delta -1(T [i]), delta-2[j]} m 1 Diese Verbesserung beseitigt zwar die worst-case Instanzen bei der Textsuche (wie bei Knuth-Morris-Pratt, hier ohne Beweis), bringt aber in der Praxis eigentlich nichts. Deshalb wird in der Regel mit der vereinfachten Version gearbeitet. Da der delta-2-wert mindestens m j ist, kann m j (Musterverschiebung um 1) aus der Maximumbildung herausgenommen werden. 29 / 39
30 Beispiel Beispiel für den verbesserten delta-2-wert. P = j = delta-2(j) = i T...x... x nicht 0 j j = 8 i i := i + 1 T...x... j j := m-1 30 / 39
31 Beispiel i T...x0... x nicht 1 j j = 7 i i := i + 7 T...x0... j j := m-1 i T...x10... x nicht 0 j j = 6 i i := i + 9 T...x10... j j := m-1 31 / 39
32 Beispiel i T...x x nicht 1 j j = 5 i i := i + 7 T...x j j := m-1 i T...x x nicht 0 j j = 4 i i := i + 11 T...x j j := m-1 32 / 39
33 Beispiel i T...x x nicht 1 j j = 3 i i := i + 7 T...x j j := m-1 i T...x x nicht 0 j j = 2 i i := i + 13 T...x j j := m-1 33 / 39
34 Beispiel i T...x x nicht 0 j j = 1 i i := i + 14 T...x j j := m-1 i T...x x nicht 1 j j = 0 i i := i + 15 T...x j j := m-1 34 / 39
35 (1) int bm suche (char T [ ], int n, char P[ ], int m) (2) { (3) int i := m 1; (4) int j := m 1; (5) while ((j 0) and (i n 1)) { (6) if (T [i] = P[j]) { (7) i ; (8) j ; (9) } (10) else { (11) i := i + max{delta -1(T [i]), delta-2[j]}; (12) j := m 1; (13) }; (14) } (15) if (j < 0) { (16) return (i + 1); (17) } (18) else (19) return (n); (20) } (21) } 35 / 39
36 -Horspool Das Verfahren nach Boyer-Moore vereinigt die Vorteile der Match-Heuristik von Knuth-Morris-Pratt und der Occurrence-Heuristik. Es ist damit eines der theoretisch wie praktisch schnellsten Verfahren. Allerdings ist die Match-Heuristik umständlich zu implementieren. Eine vereinfachte Variante wurde von Horspool vorgeschlagen. Dieses Verfahren implementiert eine Modifikation der Occurrence-Heuristik und ist in der Praxis äusserst schnell (obwohl die worst-case Laufzeit in Θ(m n) liegt). 36 / 39
37 -Horspool Horspools Verfahren verschiebt immer entsprechend der letzten Position im Text, nicht entsprechend der Position die einen Mismatch ergab. Dadurch wird das Muster immer nach rechts verschoben, ohne dass wir eine Fallunterscheidung machen müssen. Wir müssen also für jeden Buchstaben des Alphabets Σ wissen, wo er im Muster am weitesten rechts (ausser ganz am Ende) vorkommt: shift[w] = { m 1 max{i < m 1 P[i] = w} falls w in P[0... m 2] m sonst 37 / 39
38 -Horspool (1) int bmh suche (char T [ ], int n, char P[ ], int m) (2) { (3) // Berechnung der shift-tabelle (4) for (k = 0; k < Σ ; k + +) (5) shift[k] := m ; (6) for (k = 0; k < m 1; k + +) (7) shift[p[k]] := m 1 k ; (8) // Suche (9) i := 0 ; (10) while (i + m n) { (11) j := m 1 ; (12) while (T [i + j] = P[j]) { (13) j := j ; (14) if (j < 0) (15) return(i) ; // gefunden! (16) } (17) i := i + shift[t [i + m 1]] ; // shift entspr. dem letzten Buchstaben (18) } (19) return(-1) ; // nicht gefunden. (20) } 38 / 39
39 -Horspool Beispiel Suche Date in Der Detektiv hatte ein Date mit der Mutter aller Clowns. 39 / 39
Hallo Welt für Fortgeschrittene
Hallo Welt für Fortgeschrittene Zeichenketten von Christopher Saloman Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Übersicht 1. Was sind Zeichenketten und wofür braucht man sie? 2. Suchen
MehrZeichenketten. Hauptseminar Hallo Welt! für Fortgeschrittene. SS 2006 10. Mai 2006 Tobias Hager. Tobias.Hager@e-technik.stud.uni-erlangen.
Zeichenketten Hauptseminar Hallo Welt! für Fortgeschrittene SS 2006 10. Mai 2006 Tobias.Hager@e-technik.stud.uni-erlangen.de Friedrich-Alexander Universität Erlangen-Nürnberg Gliederung 2 1. Motivation
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
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
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
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
MehrAlgorithmische Bioinformatik
Algorithmische Bioinformatik Biologische Daten als Strings Ulf Leser Wissensmanagement in der Bioinformatik Ziele für heute Wert von Reduktionismus: Genome als Strings Reinschmecken in Stringmatching Erster
MehrProseminar "Pattern Matching"
Proseminar "Pattern Matching" Grundlegende Such-Algorithmen Stephan Reichelt Wintersemester 2001/2002 2 1. Einführung Wozu muss man in Zeichenfolgen suchen? => Daten sind oft nicht in Datensätze (ähnlich
MehrAbschnitt: Algorithmendesign und Laufzeitanalyse
Abschnitt: Algorithmendesign und Laufzeitanalyse Definition Divide-and-Conquer Paradigma Divide-and-Conquer Algorithmen verwenden die Strategien 1 Divide: Teile das Problem rekursiv in Subproblem gleicher
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.:
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)
Mehr1.4.12 Sin-Funktion vgl. Cos-Funktion
.4. Sgn-Funktion Informatik. Semester 36 36.4.2 Sin-Funktion vgl. Cos-Funktion Informatik. Semester 37 37 .4.3 Sqr-Funktion Informatik. Semester 38 38.4.4 Tan-Funktion Informatik. Semester 39 39 .5 Konstanten
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
MehrÜbungspaket 31 Entwicklung eines einfachen Kellerspeiches (Stacks)
Übungspaket 31 Entwicklung eines einfachen Kellerspeiches (Stacks) Übungsziele: Skript: 1. Definieren einer dynamischen Datenstruktur 2. Dynamische Speicher Speicherallokation 3. Implementierung eines
MehrBioinformatik. Zeichenketten und Stringalgorithmen. Ulf Leser Wissensmanagement in der. Bioinformatik
Bioinformatik Zeichenketten und Stringalgorithmen Ulf Leser Wissensmanagement in der Bioinformatik Inhalt dieser Vorlesung Warum Stringmatching? Strings und Matching Naiver Algorithmus Ulf Leser: Bioinformatik
MehrInformatik Repetitorium SS 2009. Volker Jaedicke Volker.Jaedicke@web.de 0179 1322692
Informatik Repetitorium SS 2009 Volker Jaedicke Volker.Jaedicke@web.de 0179 1322692 Operatoren und Datentypen Beispiel: Anweisungen Variable int a float b int c a= a % (int) (++b-1/4) Vorher 36 3.5 c=b
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
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
MehrM. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung
M. Graefenhan 2000-12-07 Aufgabe Lösungsweg Übungen zu C Blatt 3 Musterlösung Schreiben Sie ein Programm, das die Häufigkeit von Zeichen in einem eingelesenen String feststellt. Benutzen Sie dazu ein zweidimensionales
MehrC allgemein. C wurde unter und für Unix entwickelt. Vorläufer sind BCPL und B.
C-Crash-Kurs Eine kurze, keinesfalls erschöpfende Einführung in die Sprache C für Studierende, die eine strukturierte imperative Programmiersprache beherrschen. Die Vorstellung erfolgt am Beispiel von
MehrKlausur in Programmieren
Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Winter 2009/2010, 18. Februar 2010 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt) Name:
MehrVBA-Programmierung: Zusammenfassung
VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung
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.
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)
MehrEinführung in die Informatik 1
Einführung in die Informatik 1 Datenorganisation und Datenstrukturen Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 Sven.Kosub@uni-konstanz.de Sprechstunde: Freitag, 12:30-14:00
MehrHochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe
Aufgabenstellung Für eine Hausverwaltung sollen für maximal 500 Wohnungen Informationen gespeichert werden, die alle nach der gleichen Weise wie folgt strukturiert sind: Art Baujahr Wohnung Whnginfo Nebenkosten
MehrProgrammierung in C. Grundlagen. Stefan Kallerhoff
Programmierung in C Grundlagen Stefan Kallerhoff Vorstellungsrunde Name Hobby/Beruf Schon mal was programmiert? Erwartungen an den Kurs Lieblingstier Für zu Hause C-Buch online: http://openbook.rheinwerk-verlag.de/c_von_a_bis_z/
MehrModul 122 VBA Scribt.docx
Modul 122 VBA-Scribt 1/5 1 Entwicklungsumgebung - ALT + F11 VBA-Entwicklungsumgebung öffnen 2 Prozeduren (Sub-Prozeduren) Eine Prozedur besteht aus folgenden Bestandteilen: [Private Public] Sub subname([byval
MehrInformatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. michael.roth@h-da.de. Hochschule Darmstadt -Fachbereich Informatik-
Informatik Studiengang Chemische Technologie Michael Roth michael.roth@h-da.de Hochschule Darmstadt -Fachbereich Informatik- WS 2012/2013 Inhalt Teil VII Einstieg in Java I Michael Roth (h_da) Informatik
MehrTeil 2 - Softwaretechnik. Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 2. Übersicht. Softwaretechnik
Grundlagen der Programmierung 1 Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 2 Softwaretechnik Prof. Dr. O. Drobnik Professur Architektur und Betrieb verteilter Systeme Institut für
MehrSuchen in Listen und Hashtabellen
Kapitel 12: Suchen in Listen und Hashtabellen Einführung in die Informatik Wintersemester 2007/08 Prof. Bernhard Jung Übersicht Einleitung Lineare Suche Binäre Suche (in sortierten Listen) Hashverfahren
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
MehrE-PRIME TUTORIUM Die Programmiersprache BASIC
E-PRIME TUTORIUM Die Programmiersprache BASIC BASIC Beginner s All-purpose Symbolic Instruction Code symbolische Allzweck-Programmiersprache für Anfänger Design-Ziel klar: Eine einfache, für Anfänger geeignete
MehrÜbersicht. Datenstrukturen und Algorithmen. Übersicht. Divide-and-Conquer. Vorlesung 9: Quicksort (K7)
Datenstrukturen und Algorithmen Vorlesung 9: (K7) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://www-i2.rwth-aachen.de/i2/dsal0/ Algorithmus 8. Mai 200 Joost-Pieter
MehrKapitel 2: Formale Sprachen Kontextfreie Sprachen. reguläre Grammatiken/Sprachen. kontextfreie Grammatiken/Sprachen
reguläre Grammatiken/prachen Beschreibung für Bezeichner in Programmiersprachen Beschreibung für wild cards in kriptsprachen (/* reguläre Ausdrücke */)?; [a-z]; * kontextfreie Grammatiken/prachen Beschreibung
MehrEinführung in die Programmierung Arrays, Zeiger, Strings. Arvid Terzibaschian
Einführung in die Programmierung Arvid Terzibaschian 1 Arrays 2 Arrays: Motivation Gegeben: monatliche Durchschnittstemperaturen der letzten 5 Jahre Gesucht: Mittelwerte für Jahre, Monate, Jahreszeiten,
MehrHochschule Darmstadt Informatik-Praktikum (INF 1) WS 2014/2015 Wirtschaftsingenieur Bachelor 4. Aufgabe Datenstruktur, Dateieingabe und -ausgabe
Aufgabenstellung Für ein Baumkataster sollen für maximal 500 Bäume Informationen gespeichert werden, die alle nach der gleichen Weise wie folgt strukturiert sind: Nummer Bauminfo Baumart Hoehe Baum Umfang
MehrBinäre lineare Optimierung mit K*BMDs p.1/42
Binäre lineare Optimierung mit K*BMDs Ralf Wimmer wimmer@informatik.uni-freiburg.de Institut für Informatik Albert-Ludwigs-Universität Freiburg Binäre lineare Optimierung mit K*BMDs p.1/42 Grundlagen Binäre
MehrDefinition Suffixbaum
Suffix-Bäume Definition Suche nch einer Menge von Mustern Längste gemeinsme Zeichenkette Pltzreduktion Suffixbäume für Muster Alle Pre Suffix-Präfix Übereinstimmung Sich wiederholende Strukturen Definition
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
MehrMicrocontroller / C-Programmierung Selbststudium Semesterwoche 1
Microcontroller / C-Programmierung Selbststudium Semesterwoche 1 1. Aufgabe 1-15 (Buch S. 26)*: Umrechnung Fahrenheit Celsius mit Funktion. #include float CelsiusToFahrenheit(float value); float
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.
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)
MehrKlausur in Programmieren
Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Sommer 2014, 16. Juli 2014 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt) Name: Matrikelnr.:
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
MehrSortieren. Eine Testmenge erstellen
Sortieren Eine der wohl häufigsten Aufgaben für Computer ist das Sortieren, mit dem wir uns in diesem Abschnitt eingeher beschäftigen wollen. Unser Ziel ist die Entwicklung eines möglichst effizienten
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
Mehr8 Diskrete Optimierung
8 Diskrete Optimierung Definition 8.1. Ein Graph G ist ein Paar (V (G), E(G)) besteh aus einer lichen Menge V (G) von Knoten (oder Ecken) und einer Menge E(G) ( ) V (G) 2 von Kanten. Die Ordnung n(g) von
MehrProgrammiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm
Programmiersprachen Einführung in C Teil 2: Prof. Dr. int main (int argc, char *argv[]) int sum = 0; for (i = 0; i
Mehr1. Übung zu "Numerik partieller Differentialgleichungen"
1. Übung zu "Numerik partieller Differentialgleichungen" Simon Gawlok, Eva Treiber Engineering Mathematics and Computing Lab 22. Oktober 2014 1 / 15 1 Organisatorisches 2 3 4 2 / 15 Organisatorisches Ort:
MehrTutorium Rechnerorganisation
Woche 2 Tutorien 3 und 4 zur Vorlesung Rechnerorganisation 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu
MehrNoch für heute: primitive Datentypen in JAVA. Primitive Datentypen. Pseudocode. Dezimal-, Binär- und Hexadezimalsystem. der logische Typ boolean
01.11.05 1 Noch für heute: 01.11.05 3 primitie Datentypen in JAVA Primitie Datentypen Pseudocode Name Speichergröße Wertgrenzen boolean 1 Byte false true char 2 Byte 0 65535 byte 1 Byte 128 127 short 2
Mehr1. Grundlagen... 2. 2. Sortieren... 6. 1.1. Vertauschen... 13. 1.2. Selektion... 16. 1.3. Einfügen... 19. 1.4. Quicksort... 22. 3. Suchen...
Suchen und Sortieren In diesem Kapitel behandeln wir Algorithmen zum Suchen und Sortieren Inhalt 1. Grundlagen... 2 2. Sortieren... 6 1.1. Vertauschen... 13 1.2. Selektion... 16 1.3. Einfügen... 19 1.4.
MehrAngewandte Mathematik und Programmierung
Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens SS2013 Inhalt Projekt Vorlesung: praktische Implementierung üben Ein und
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
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
MehrPräfx Trie zur Stringverarbeitung. Cheng Ying Sabine Laubichler Vasker Pokhrel
Präfx Trie zur Stringverarbeitung Cheng Ying Sabine Laubichler Vasker Pokhrel Übersicht: Einführung Eigenschaften von Tries Verwendung von Tries Allgemeine Defnition von Patricia Tries Eigenschaften von
MehrAlgorithmen und Datenstrukturen 2
Algorithmen und Datenstrukturen 2 Sommersemester 2007 4. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Traversierung Durchlaufen eines Graphen, bei
MehrProgrammierung und Modellierung
Programmierung und Modellierung Terme, Suchbäume und Pattern Matching Martin Wirsing in Zusammenarbeit mit Moritz Hammer SS 2009 2 Inhalt Kap. 7 Benutzerdefinierte Datentypen 7. Binärer Suchbaum 8. Anwendung:
Mehr1. Grundlegende Konzepte in Java (6 Punkte)
1. Grundlegende Konzepte in Java (6 Punkte) a) Welches der folgenden Literale ist korrekt und wenn ja, von welchem Typ ist es? "true" nicht korrekt X korrekt vom Typ String 'true' X nicht korrekt korrekt
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
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
MehrÜbersicht. Schleifen. Schleifeninvarianten. Referenztypen, Wrapperklassen und API. 9. November 2009 CoMa I WS 08/09 1/15
Übersicht Schleifen Schleifeninvarianten Referenztypen, Wrapperklassen und API CoMa I WS 08/09 1/15 CoMa I Programmierziele Linux bedienen Code umschreiben strukturierte Datentypen Anweisungen und Kontrollstrukturen
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
MehrAlgorithmen und Datenstrukturen Suchbaum
Algorithmen und Datenstrukturen Suchbaum Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Motivation Datenstruktur zur Repräsentation dynamischer Mengen
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
Mehr1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit
Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 06/07 ITI Wagner Musterlösung Problem : Average-case-Laufzeit vs Worst-case-Laufzeit pt (a) Folgender Algorithmus löst das Problem der
MehrSOI 2013. Die Schweizer Informatikolympiade
SOI Die Schweizer Informatikolympiade Lösung SOI Wie schreibe ich eine gute Lösung? Bevor wir die Aufgaben präsentieren, möchten wir dir einige Tipps geben, wie eine gute Lösung für die theoretischen
MehrProbeklausur: Programmierung WS04/05
Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,
MehrEinführung in die Programmiersprache C
Einführung in die Programmiersprache C Marcel Arndt arndt@ins.uni-bonn.de Institut für Numerische Simulation Universität Bonn Der Anfang Ein einfaches Programm, das Hello World! ausgibt: #include
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)
MehrAlgorithmen und Datenstrukturen
1 Algorithmen und Datenstrukturen Wintersemester 2015/16 12. Vorlesung Hashing Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2 Übungen Begründen Sie grundsätzlich alle Behauptungen außer die Aufgabe
Mehr22. Algorithmus der Woche Partnerschaftsvermittlung Drum prüfe, wer sich ewig bindet
22. Algorithmus der Woche Partnerschaftsvermittlung Drum prüfe, wer sich ewig bindet Autor Volker Claus, Universität Stuttgart Volker Diekert, Universität Stuttgart Holger Petersen, Universität Stuttgart
MehrDer linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v)
Ein Baum T mit Knotengraden 2, dessen Knoten Schlüssel aus einer total geordneten Menge speichern, ist ein binärer Suchbaum (BST), wenn für jeden inneren Knoten v von T die Suchbaumeigenschaft gilt: Der
MehrZusammenfassung des Handzettels für Programmieren in C
Zusammenfassung des Handzettels für Programmieren in C In der handschriftlichen Kopie werden mehr Abkürzungen verwendet. Alles Grün markierte dient zum lernen und wird nicht auf den Handzettel übertragen.
MehrProgrammieren in C. -- ALLE Programmiersprachen sind HÄSSLICH -- Deklaration: erst der Datentyp, dann der Variablenname. Semikolon am Ende.
PROGRAMMIEREN IN C - EIN KURZÜBERBLICK 1 Programmieren in C -- ALLE Programmiersprachen sind HÄSSLICH -- Die einfachste Programmstruktur: main () -- was zu tun ist --- Vorgeordnete Definitionen: # include
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
MehrProgrammieren in C. Macros, Funktionen und modulare Programmstruktur. Prof. Dr. Nikolaus Wulff
Programmieren in C Macros, Funktionen und modulare Programmstruktur Prof. Dr. Nikolaus Wulff Der C Präprozessor Vor einem Compile Lauf werden alle Präprozessor Kommandos/Makros ausgewertet. Diese sind
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
MehrSortierverfahren. Sortierverfahren für eindimensionale Arrays
Sortierverfahren Sortierverfahren Sortieren durch Einfügen Sortieren durch Auswählen Sortieren durch Vertauschen (Bubblesort) Quicksort Sortierverfahren für eindimensionale Arrays 1 Gegeben ist eine beliebige
Mehr4 Greedy-Algorithmen (gierige Algorithmen)
Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen werden oft für die exakte oder approximative Lösung von Optimierungsproblemen verwendet. Typischerweise konstruiert ein Greedy-Algorithmus eine
MehrJava programmieren: Konsolen-Programme
Java programmieren: Es war einmal vor langer Zeit in einer weit entfernten Galaxis ok, das ist etwas übertrieben. In den Anfängen der Personal Computer in den 1980er sahen Computer noch etwa so aus: Diese
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
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
MehrAlgorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015. Vorlesung 5, Donnerstag, 20.
Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 5, Donnerstag, 20. November 2014 (Wie baut man eine Hash Map, Universelles Hashing)
MehrVerschlüsselung. Kirchstraße 18 Steinfelderstraße 53 76831 Birkweiler 76887 Bad Bergzabern. 12.10.2011 Fabian Simon Bfit09
Verschlüsselung Fabian Simon BBS Südliche Weinstraße Kirchstraße 18 Steinfelderstraße 53 76831 Birkweiler 76887 Bad Bergzabern 12.10.2011 Fabian Simon Bfit09 Inhaltsverzeichnis 1 Warum verschlüsselt man?...3
MehrHEUTE. Effizienzbeispiel: bekannte Version (Übung 04.11.04) Mathematik: Was ist Effizienz? vollständige Induktion
17.11.04 1 HEUTE 17.11.04 3 Effizienzbeispiel: bekannte Version (Übung 04.11.04) Mathematik: was ist Effizienz? vollständige Induktion JAVA: Arrays die for -Schleife die Sprunganweisungen break und continue
MehrIT-Basics 2. DI Gerhard Fließ
IT-Basics 2 DI Gerhard Fließ Wer bin ich? DI Gerhard Fließ Telematik Studium an der TU Graz Softwareentwickler XiTrust www.xitrust.com www.tugraz.at Worum geht es? Objektorientierte Programmierung Konzepte
MehrInformatik II. PVK Part1 Severin Wischmann wiseveri@student.ethz.ch n.ethz.ch/~wiseveri
Informatik II PVK Part1 Severin Wischmann wiseveri@student.ethz.ch n.ethz.ch/~wiseveri KAUM JAVA Kaum Java Viel Zeit wird für Java-spezifisches Wissen benützt Wenig wichtig für Prüfung Letztjähriger Assistent
MehrZ 50. Z O Z Int Z Komma Z Real Ziffer Komma Ziffer
10 Endliche Automaten 10.1 Einführungsbeispiele Beispiel 1: Warenautomat Ein Flasche Cola kostet 1,50. Münzen zu 1 und 50 ct werden angenommen. Cola und evtl. Restgeld werden ausgegeben. Auch der Rückgabeknopf
MehrHOCHSCHULE KONSTANZ TECHNIK, WIRTSCHAFT UND GESTALTUNG. Das Luzifer-Rätsel. Prof. Dr. Hartmut Plesske Wintersemester 2008/09. von.
HOCHSCHULE KONSTANZ TECHNIK, WIRTSCHAFT UND GESTALTUNG Fakultät Informatik Das Luzifer-Rätsel Prof. Dr. Hartmut Plesske Wintersemester 2008/09 von Max Nagl nagl@fh-konstanz.de Inhaltsverzeichnis Inhaltsverzeichnis
Mehr2 Lösungen "Peptide de novo Sequencing"
Lösungen "Peptide de novo Sequencing". Algorithm : PeptideSequencingOnlySux Input: a spectrum M with array of masses M = {m, m,, m n }, Σ, µ : Σ R >0 Output: the peptide string of the spectrum begin peptide
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
MehrSuchen und Sortieren Sortieren. Heaps
Suchen und Heaps (Folie 245, Seite 63 im Skript) 3 7 21 10 17 31 49 28 14 35 24 42 38 Definition Ein Heap ist ein Binärbaum, der die Heapeigenschaft hat (Kinder sind größer als der Vater), bis auf die
Mehrubasic Port für STM32F4 von Uwe Becker
ubasic Port für STM32F4 von Uwe Becker Das original ubasic von Adam Dunkels findet sich unter : http://dunkels.com/adam/ubasic/ Die Minimal -Version vom ubasic-port für den STM32F4 beinhaltet folgendes
MehrInformatik II Greedy-Algorithmen
7/7/06 lausthal Erinnerung: Dynamische Programmierung Informatik II reedy-algorithmen. Zachmann lausthal University, ermany zach@in.tu-clausthal.de Zusammenfassung der grundlegenden Idee: Optimale Sub-Struktur:
MehrDynamische Programmierung
Dynamische Programmierung Manuel Grandeit Hallo Welt -Seminar 28.06.2011 Manuel Grandeit 1 / 40 Inhaltsübersicht Einführung Münzwechsel Was ist ein Zustand? Konstruktion einer DP-Lösung Top-Down-DP Bottom-Up-DP
MehrObjective-C CheatSheet
App-Templates: Erstellt automatisch einen Navigation Controller mit editierbarem UITableView und DetailView, der bei Klick auf einzelne UITableViewCell angezeigt wird. Kreiert einen GLKitViewController
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 **
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
Mehr