Zeichenketten. Hauptseminar Hallo Welt! für Fortgeschrittene. SS Mai 2006 Tobias Hager.
|
|
- Gitta Waldfogel
- vor 8 Jahren
- Abrufe
Transkript
1 Zeichenketten Hauptseminar Hallo Welt! für Fortgeschrittene SS Mai 2006 Friedrich-Alexander Universität Erlangen-Nürnberg
2 Gliederung 2 1. Motivation 2. Allgemeines zu Zeichenketten 3. String Matching - Naiver Algorithmus - Algorithmus von Knuth-Morris-Pratt - Boyer-Moore Algorithmus - Rabin-Karp Algorithmus 4. Tries - Suffix- - PATRICIA- 5. Zusammenfassung und Ausblick
3 Motivation 3 Suchen von Mustern gehört zu den grundlegenden Problemen der Informatik! Sicherer Umgang mit Zeichenketten ist auch von entscheidender Bedeutung für die erfolgreiche Teilnahme am ICPC! Beispiele: Internetsuchmaschinen durchsuchen eine riesige Menge von Zeichenketten: Gemeldete Domains 2005 in Deutschland ~ 8.8 Mio Suche von Mustern in einer DNA Sequenz: (menschliches Genom) 3 Milliarden Basenpaare! ~ Gene Durchschnittliche Genlänge: Basenpaare effiziente Algorithmen notwendig
4 Allgemeines zu Zeichenketten ASCII 4 ASCII = Amercian Standard Code for Information Interchange Darstellung durch 1 Byte, wobei erstes Bit immer auf 0 gesetzt ist Somit sind 2 7 = 128 Zeichen darstellbar Nicht druckbar sind die Zeichen 0 bis 31 und 127 Uneinheitliche Verwendung von \n (newline) und \r (carriage-return) Zeichentabelle abrufbar mit man ascii
5 Allgemeines zu Zeichenketten ASCII-Tabelle 5
6 Allgemeines zu Zeichenketten UNICODE & ISO Zeichen sind viel zu wenig Erweiterung nötig Anfangs viele verschiedene Standards Mittlerweile Unicode und ISO als Standard Vor dem Verarbeiten von elektronischen Texten muss der Zeichensatz eingestellt werden: - HTML: <meta http-equiv="content-type" content="text/html; charset=utf-8"> - Content-Type: text/plain;charset="iso "
7 Allgemeines zu Zeichenketten UNICODE für C/C++ 7 wide character type: wchar_t (2 Byte groß) In der Header-Datei whar.h sind die Funktionen zum Bearbeiten des Datentyps definiert Die alphabetische Sortierung ist bei Unicode aufwändiger als bei ASCII, da bei ASCII die Buchstaben und Ziffern sequentiell angeordnet sind und so schnell sortiert werden kann Beispiel: char string[] = "Hallo"; wchar_t wstring[] = L"Hallo"; Das L vor Zeichenkette sagt dem Compiler, dass es sich um eine Zeichenkette mit 2-Byte Elementen handelt Für weitere Infos siehe:
8 Allgemeines zu Zeichenketten UNICODE Java 8 In Java ist der Datentyp char 16 Bit groß Damit können von vornherein schon mehr Zeichen dargstellt werden Unicode ist darin bereits enthalten Ein spezielles Unicode-Zeichen kann mit \u0000 bis \uffff in einen String eingefügt werden ABER: Unicode 4.0 definiert wesentlich mehr als Zeichen Lösung: Supplementary Characters, die mit neuen Funktionen und Methoden auf vorzeichenbehafteteten 32 Bit Integer-Werten arbeiten
9 Allgemeines zu Zeichenketten Repräsentation im Rechner 9 1.) NULL-terminiertes Feld Zeichen werden sequentiell in einem Feld gespeichert, durch den NULL-Character \0 wird das Ende markiert Verwendung in C / C++ 2.) Feld plus Länge Java: Länge der Zeichenkette wird am Anfang des Feldes gespeichert Feld in Java natürlich nur intern, nach außen hin String-Objekt 3.) Verkettete Liste je Zeichen muss auch noch ein Zeiger auf das nächste Zeichen mit gespeichert werden
10 Allgemeines zu Zeichenketten Operationen (1) 10 Speicherbedarf Ermitteln der Stringlänge 1.) (Stringlänge + 1) * Zeichengröße 1.) O(n) (Bis zum NULL-Character durchzählen) 2.) (Stringlänge + 1) * Zeichengröße 2.) O(1) (Länge steht am Anfang des Feldes) 3.) (Zeichengröße + Zeigergröße) * Stringlänge 3.) O(n) (Bis zum NULL-Character durchzählen) 1.) Feld + \0 2.) Länge + Feld 3.) Verkettete Liste
11 Allgemeines zu Zeichenketten Operationen (2) 11 Zugriff auf ein beliebiges Zeichen Einfügen und Löschen 1.) O(1) 1.) O(n) (alle nachfolgende Zeichen verschieben) 2.) O(1) 2.) O(n) (alle nachfolgende Zeichen verschieben) 3.) O(n) 3.) O(1) (Zeiger neu setzen) 1.) Feld + \0 2.) Länge + Feld 3.) Verkettete Liste
12 String Matching Allgemein 12 Zeichenfolge: 1. Text Buchstaben, Sonderzeichen und Ziffern Der Text ist meist sehr umfangreich Effiziente Algorithmen notwendig 2. Binärfolge Darstellung durch Einsen und Nullen (spezielle Text-Zeichenfolge) häufig bei Darstellung von Grafiken / Bilderverarbeitung Spezielle Algorithmen notwendig
13 String Matching Allgemein 13 String Matching: Suche nach dem exakten Muster Pattern Matching: Suche nach einem ähnlichen Muster Zwei verschiedene Problemstellungen bei der Suche in einem Text: (beide Punkte können sowohl ähnliche als auch exakte Muster beinhalten) 1. Muster vorgegeben, mehrere Texte danach durchsuchen schneller Suchalgorithmus notwendig 2. Text vorgegeben und nach mehreren Muster durchsuchen (DNA) komplexere und aufwändiger Vorverarbeitung möglich wobei die häufigen Muster unbekannt sind nennt sich auch Warenkorbanalyse oder Association rule mining
14 String Matching Naive Suche Idee 14 Problem: Finde in einem Text der Länge N ein vorgegebenes Muster der Länge M Idee: Vergleiche je Schritt ein Zeichen des Musters und ein Zeichen des Textes. Bei einer Nichtübereinstimmung wird das Vergleichsfenster um eine Position nach rechts geschoben
15 String Matching Naive Suche Beispiel 15 Der Text wird von links nach rechts mit dem Muster verglichen Übereinstimmungen sind grün markiert Die rot markierten Buchstaben zeigen die Nichtübereinstimmungen, bei deren Auftreten das komplette Muster um eine Position nach rechts geschoben wird
16 String Matching Naive Suche Der Algorithmus 16 int naive (char *text, int N, char *muster, int M) { int i = 0, j = 0; /*Solange Text noch nicht am Ende und Muster nicht ganz durchlaufen*/ while (j < M && i < N) { if (text[i] == muster[j]) { i++; j++; } else { i = i - j + 1; // Verschiebung des Musters um eine Stelle j = 0; Textlänge N } Musterlänge M } } Normalerweise M<<N /*Gibt Position beim Match und -1 beim Mismatch zurück*/ if (j == M) { return i - M; } else { return -1; }
17 String Matching Naive Suche Zusammenfassung 17 Zeichenweiser Vergleich von Text und Muster Zurücksetzen auf Anfangsposition + 1, wenn Zeichen nicht übereinstimmen Keine Vorbereitungsphase Im schlimmsten Fall N-M+1 Durchläufe der while-schleife und M Durchläufe der if-abfrage Aufwand: Im Durchschnitt lineare Laufzeit Worst-Case: O(M*N) Vergleiche: Erwartet maximal 2*N+M Vergleiche Average-Case: O(N) Vorbereitungsphase: keine Zus. Speicheraufwand: keiner
18 String Matching Knuth-Morris-Pratt Idee 18 Wie kann der naive Algorithmus verbessert werden? Idee: Stimmt der Text mit dem Muster an Position i nicht mehr überein, wissen wir bereits wie die Zeichen vor Position i aussehen und müssen den Zeiger nicht mehr komplett zurück setzen Durch einige Überlegungen kann sogar erreicht werden, dass i überhaupt nicht mehr dekrementiert werden muss!
19 String Matching Knuth-Morris-Pratt Randberechnung 19 Ausnutzung der bereits erfolgreich verglichenen Zeichen Betrachtung, wo im Muster die übereinstimmenden Zeichen noch einmal vorkommen Der Rand ist ein Teilwort der Zeichenkette, das sowohl am Anfang als auch am Ende der Zeichenkette vorkommt Das leere Wort Epsilon hat keinen Rand Ein einzelner Buchstabe hat als Rand das leere Wort Dadurch Verschiebungen um größere Bereiche möglich Verbesserung der Laufzeit
20 String Matching Knuth-Morris-Pratt Randberechnung 20 An Position i+j ist eine Nichtübereinstimmung aufgetreten (rotes Kästchen) Die vorhergehenden Zeichen haben übereingestimmt (hellgrün) Haben diese Zeichen einen Rand (dunkelgrün), kann das Muster soweit nach rechts geschoben werden, bis die Ränder übereinstimmen Das Vergleichsfenster startet wieder an Position i+j im Text
21 String Matching Knuth-Morris-Pratt Randberechnung 21 aabaa j i rand[j] i=0;i=-1; ababa j i rand[j] i=-1; i=1; i=2; i=3; Ränder können sich überlappen!
22 String Matching Knuth-Morris-Pratt Randberechnung 22 void init_rand (int *rand, char *muster, int M) { int i = 0, j; rand[0] = -1; /*Epsilon hat keinen Rand*/ rand[1] = 0; /* Ein einzelner Buchstabe hat als Rand das leere Wort*/ } for (j = 2 ; j <= M; j++) { /*Prüfe ob bestehender Rand erweiterbar ist*/ while (i >= 0 && (muster[i]!= muster[j-1])) { i = rand[i]; } i++; rand[j] = i; }
23 String Matching Knuth-Morris-Pratt Der Algorithmus 23 int KMP (char *text, int N, char *muster, int M) { int i=0, j=0; int rand[m + 1]; init_rand (rand, muster, M); /*Vorverarbeitung: Ränder berechnen */ while (i <= N - M) { while (text[i + j] == muster[j]) { j++; if(j == M) { return i; // Stelle des Matches ausgeben } } } i = i + j rand[j]; /*j rand[j] > 0! */ j = max{0, rand[j]}; } return -1;
24 String Matching Knuth-Morris-Pratt Laufzeitanalyse 24 KMP ist geeignet für inkrementelle Suche (z.b. Firefox, Emacs) Der Suchalgorithmus findet bereits eingegebene Präfixe des Musters Die Randtabelle wird inkrementell für den bekannten Teil des Suchwortes berechnet und mit jedem neuen Zeichen erweitert Vergleiche: Tabellenberechnung 2*M-1 Vergleiche Aufwand: Worst-Case: O(N+M) KMP-Algorithmus 2*N-M+1 Vergleiche Insgesamt maximal 2*N+M Vergleiche Avarage-Case: O(N) Vorbereitsungsphase: O(M) Zus. Speicheraufwand: O(M)
25 String Matching Knuth-Morris-Pratt Zusammenfassung 25 Vergleicht von links nach rechts KMP behält lineare Laufzeit im Worst-Case bei Starke Verbesserung für selbstwiederholende Muster (Bitfolgen) Ansonsten keine nennenswerten Vorteile gegenüber Naiver Suche ABER: Sequentielles Durchlaufen ohne Zurücksetzen geeignet für Dateneinlesen von externen Geräten
26 String Matching Boyer-Moore Idee 26 Wie kann eine weitere Verbesserung erreicht werden? Idee: Vergleich von Muster und Text von rechts nach links! Den nächsten Schritt ausführen auf Basis des Musters des Zeichens das die Nichtübereinstimmung ausgelöst hat Voraussetzung: Das Zurücksetzen darf nicht kompliziert sein.
27 String Matching Boyer-Moore 27 Der Boyer-Moore Algorithmus setzt sich aus 2 Strategien zusammen: 1. Strategie für unpassende Zeichen (Bad-character-heuristics) Das Zeichen, das den Mismatch ausgelöst hat, kommt im Muster nicht vor Verschiebung um M Positionen möglich Das Zeichen, das den Mismatch ausgelöst hat, kommt im Muster vor Muster in Übereinstimmung mit diesem Zeichen bringen kommt das Zeichen mehr als ein Mal vor, wird das Muster mit dem am weitesten rechts stehenden Zeichen in Übereinstimmung gebracht
28 String Matching Boyer-Moore Vergleich e und r : e kommt im Muster an Position 2 vor Muster um 5 Positionen nach rechts schieben 2. Vergleich t und r : t kommt im Muster nicht vor Muster um 7 Positionen nach rechts schieben usw.
29 String Matching Boyer-Moore Gutes-Ende - Strategie (Good-suffix-heuristics) Das Suffix, das hinter dem Zeichen, welches den Mismatch ausgelöst hat, steht, kommt noch an anderer Stelle im Muster vor und kann bis dorthin verschoben werden Das Suffix kommt vollständig noch einmal im Muster vor
30 String Matching Boyer-Moore 30 Das Suffix kommt nur teilweise im Muster vor Das Suffix kommt nicht mehr im Muster vor Verschiebung um M Positionen nach rechts
31 String Matching Boyer-Moore Der Algorithmus 31 int BM (char *text, int N, char *muster, int M) { int i=0, j, temp1, temp2; int f[m+1], goodsuffix[m+1], badchar[asize]; } initsz (badchar, ASIZE, muster, M); /* Vorverarbeitung: */ initge1 (goodsuffix, f, muster, M); /* Schiebematrizen berechnen*/ initge2 (goodsuffix, f, muster, M); while (i <= N-M) { } return -1; /*ASIZE = Alphabetgröße*/ j = M-1; while (j >= 0 && (muster[j] == text[i+j])) j--; if (j < 0) { return i; /*Matchposition zurueck geben*/ } /*Wähle groesseren Shift aus beiden Strategien aus*/ i += max (j - badchar[text[i+j]- a ], goodsuffix[j+1]);
32 String Matching Boyer-Moore Bad-Character-Shift 32 void initsz (int *badchar, int asize, char *muster, int M) { int i; char a; /*Falls das Symbol im Muster nicht vorkommt hat es den Wert -1*/ for (i = 0; i < asize ; i++) { badchar[i] = -1; } /*Speichere den Shift für die am weitesten rechts stehenden Symbole des Musters*/ for (i = 0; i < M ; i++) { a = muster[i]; badchar[a - a ] = i; } }
33 String Matching Boyer-Moore Good-Suffix Shift 33 Fall 1: Das übereinstimmende Suffix kommt noch an anderer Stelle im Muster vor ähnlich KMP-Vorbereitungsphase, bestimme zu jedem Suffix die Ränder Zuordnung zwischen gegebenem Rand und kürzestem Suffix, das den Rand hat prüft ob sich ein bereits berechneter Rand fortsetzen lässt für ein Suffix das bei i beginnt, beinhaltet das Feld f[i] die Position seines breitesten Randes Fall 2: Nur ein Teil des übereinstimmenden Suffixes kommt noch im Muster vor belegt die noch freien Einträge von goodsuffix[] Fall 3: Das Suffix kommt gar nicht mehr im Muster vor Verschiebung um M Positionen
34 String Matching Boyer-Moore Gutes-Ende Shift Fall 1 34 void initge1 (int *shift, int *f, char *muster, int M) { int i, j; i = M; j = M +1; f[i] = j; /*Suffix Epsilon (Position M) wird auf M+1 gesetzt*/ } while (i > 0) { while (j <= M && (muster[i-1]!= muster[j-1])) { if (shift[j] == 0) shift[j] = j - i; j = f[j]; } i--; j--; f[i] = j; }
35 String Matching Boyer-Moore Gutes-Ende Shift Fall 2 35 void initge2 (int *shift, int *f, char *muster, int M) { int i,j; j = f[0]; /*f[0] ist breitester Rand des Musters*/ } for (i = 0 ; i <= M ; i++) { /*falls durch GE1 noch nichts eingetragen wurde*/ if (shift[i] == 0) shift[i] = j; if (i == j) j = f[j]; /*Umschalten auf nächstschmaleren Rand*/ }
36 String Matching Boyer-Moore Laufzeitanalyse 36 Vergleiche: Maximal 3(N + M) Textzeichenvergleiche Aufwand: Worst-Case: O(N*M)!! Average-Case: Best-Case: Vorbereitungsphase: O(N) O(N/M) O(M) Zus. Speicheraufwand: O(M)
37 String Matching Boyer-Moore Zusammenfassung 37 Vergleicht von rechts nach links!! Oftmals Verschiebungen um M Positionen möglich wegen der schlechten-zeichen und Guten-Ende - Strategie Im Worst-Case schlechter als KMP, in der Praxis schnellster String-Matching Algorithmus Besonders geeignet für Texte mit vielen Symbolen große Shifts Weniger geeignet für Bitmuster und DNA-Sequenzen, da wegen dem kleinen Alphabet nur wenige schlechte-zeichen Verschiebungen vorkommen und diese Muster oft Wiederholungen enthalten Schiebedistanzen werden kleiner mehr Vergleiche Häufige Verwendung für die Suche in Texteditoren
38 String Matching Rabin-Karp Idee 38 Gibt es vielleicht noch einen ganz anderen Ansatz? Idee: Aus dem Muster wird per Hash-Funktion ein Schlüssel berechnet. (Dieser passt in eine Speicherzelle schnelle Verarbeitung!) Vergleiche den Schlüssel eines Textabschnittes der Länge M mit dem Schlüssel des Muster Es wird quasi ein Fingerabdruck des Musters genommen! Voraussetzungen: Berechnung des Textschlüssels in O(1) Streufunktion muss sehr viele Werte liefern q muss >> M sein
39 String Matching Rabin-Karp Berechnung des Schlüssels 39 Vorbereitungsphase: Berechnung der beiden Schlüssel von Muster und den ersten M Zeichen des Textes Die Berechnung kann z.b. auch mittels dem Hornerschema erfolgen key = text[ i]* basis M 1 + text[ i + 1]* basis M text[ i + M 1] Suchphase: Der Schlüssel des Textes muss sich leicht aus dem Schlüssel des vorherigen Textabschnittes berechnen lassen key = ( key text[ i]* basis M 1 )* basis + text[ i + M ] Wegen der großen Zahlen muss man darauf achten, dass kein Überlauf eintritt!
40 String Matching Rabin-Karp Textschlüsselberechnung 40 Wegen der Streufunktion muss bei einer Übereinstimmung immer noch Zeichenweise verglichen werden, um sicher zu gehen, dass es sich um keine Kollision handelt! Beispiel: Text = q = 13 M = 5 key = keyneu = ( * 10000) * (mod 13) = ( 7 3 * 3 ) * (mod 13) = 8 (mod 13)
41 String Matching Rabin-Karp Beispiel mod 11 = 3
42 String Matching Rabin-Karp Der Algorithmus 42 int KR (char *text, int N, char *muster, int M) { int h1=0, h2=0, dm = 1, i; int q = ; //Primzahl für Streufunktion for (i = 1 ; i < M ; i++) /*Berechnung der höchsten Potenz*/ dm = basis *dm %q; for (i = 0 ; i < M ; i++) /*Berechnung des Musterschlüssels*/ h1 = (h1 * basis + muster[i] a ) % q; for (i = 0 ; i < M ; i++) /*Berechnung des ersten Textschlüssels*/ h2 = (h2 * basis + text[i] - a ) % q; } for (i = 0 ; i <= N M; i++) { if (h1 == h2 && memcmp(muster,text+i,m) == 0) return i; h2 = (h2 + basis * q - (text[i] a ) * dm) % q; h2 = (h2 * basis + (text[i + M] a ) ) % q; //h2 beinhaltet den Schlüssel zum aktuellen Textfenster } return -1;
43 String Matching Rabin-Karp Laufzeitanalyse 43 Aufwand: Worst-Case: Average-Case: Vorbereitungsphase: O(N*M) O(N+M) O(M) Zus. Speicheraufwand: keiner
44 String Matching Rabin-Karp Zusammenfassung 44 Vergleicht ähnlich dem naiven Algorithmus einzelne Textfenster Hashfunktion bildet Muster und Textfenster auf eine Zahl ab Benötigt keine Hashtabelle Hat in den allermeisten Fällen eine lineare Laufzeit Eignet sich auch für 2-dimensionales Matching
45 Tries 45 I think that I shall never see A poem lovely as a tree. Poems are made by fools like me, But only God can make a tree. Joyce Kilmer, "Trees," 1914
46 Tries 46 Wortverquickung von tree und re-trie-val (Suchen, Wieder finden) Ist eine Datenstruktur, in der eine Menge von Wörtern abgespeichert werden kann Schlüssel sind die Pfade von der Wurzel zu einem Blatt Kanten, die vom gleichen Knoten ausgehen müssen verschiedene Beschriftungen haben
47 Tries Beispiel 47
48 Suffix-Tries 48 Ein Suffix-Trie ist ein Trie für alle Suffixe des Wortes Suffix Index Damit kein Suffix Präfix eines anderen Suffixes ist wird $ ans Ende jedes Suffixes gehängt
49 Suffix-Tries Beispiel für abbaba$ 49
50 Suffix-Tries Anwendungen 50 Prüfen, ob Muster der Länge M Teilstring des Textes ist in O(M) Die Anzahl z der Muster in dem Text in O(M+z) finden Nach einem regulären Ausdruck in linearer Zeit suchen Nach einem Muster mit x Mismatchen suchen O(M*sigma+x+z) (Pattern Matching) Finden des längsten gemeinsamen Teilwortes aller Zeichenketten ( longest common substring problem ) in O(n) Das am häufigsten auftauchende Teilwort minimaler Länge in O(n) Beispiele: Bioinformatik DNA Analyse Datenkomprimierung (sich wiederholende Daten finden) Compilerbau: Precedural abstraction
51 Suffix-Tries Aufbau 51 Wie erstelle ich einen Suffix-Trie? Naiver Ansatz: Füge alle Suffixe vom größten bis zum kleinsten der Reihe nach ein Aufbauen des Suffix-Tries mit der naiven Methode: O(N³) Verbesserung: Speichere am Ende jedes Suffixes einen Verweis auf das nächste kürzere Suffix Aufbau zusammen mit Suffix-Links: O(N²) Größe des Suffix-Tries (Knotenanzahl): O(N²) Optimierung notwendig!
52 Suffix-Tries Aufbau mit Suffix-Links 52
53 PATRICIA-Tries 53 Practical Algorithm to Retrieve Information Coded in Alphanumeric Kompaktifizierung durch Zusammenfassen von Knoten mit nur einem Kind zu einer Kante kompaktifizierte Suffix-Tries nennt man Suffix-Trees Dadurch weniger Knoten, aber eine größere Kantenbeschriftung Lösung durch Verwendung von Referenzen Verbesserung des Platzbedarfs und der Laufzeit
54 PATRICIA-Tries Beispiel 54
55 Suffixtries Ukkonens Online Algorithmus 55 Sehr komplizierter Algorithmus, dafür Aufbau in linearer Zeit möglich Ansatz ist wie beim Suffix-Trie Das Suffix endet aber nicht zwangsläufig in einem Knoten Verbessert die Laufzeit durch Vorverarbeitung des Textes Aufbau des Suffix-Tries in O(N) Zusätzlicher Speicherplatz: O(N)
56 Zusammenfassung und Ausblick 56 Welcher Suchalgorithmus verwendet werden sollte hängt vom jeweiligen Anwendungsfall ab: Pattern-Matching String-Matching Einfachsuche Mehrfachsuche Beachte, ob sich der algorithmische Aufwand überhaupt lohnt! Für kurze Zeichenketten reicht eventuell schon der naive Algorithmus oder man strstr
57 Literaturverzeichnis Bücher 57 Volker Heun, Grundlegende Algorithmen, 2.Auflage, Friedr. Vieweg & Sohn Verlag Robert Sedgewick, Algorithmen, 1. Auflage, Addision-Wesley Cormen, Rivest, Stein,Leiserson, Introduction to Algorithms, 2nd Edition, MacGraw- Hill Book Company Uwe Schöning, Algorithmik, 1.Auflage, Spektrum Akademischer Verlag GmbH Skiena, Revilla, Programming Challenges, 1st Edition, Springer Verlag
58 Literaturverzeichnis Internet 58 [1]Skriptum zur Vorlesung Algorithmische Bioinformatik I/II, Volker Heun, TU München [2] Exakt String Matching Algorithms, Christrian Charras, Université de Rouen [3]Textsuch-Algorithmen, H.W. Lang, FH Flensburg [4]Allgemeines zu Zeichenketten und String-Matching
59 Grafikverzeichnis 59 Folie Grafiktitel Quelle 5 ASCII-Tabelle [4] 16 Naiver Algorithmus 20 Randverschiebung [1] Seite Bad-Character Shift 29 Good-Suffix-Shift [2] Boyer-Moore 40 Karp-Rabin 46 Monatsnamen-Trie [1] Seite Suffix-Trie [1] Seite Suffix-Links [1] Seite Patricia-Trie 2 [4] Suffix_tree
Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen
Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders
Mehr1 topologisches Sortieren
Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung
MehrIn vergleichsbasierten Suchbäumen wird nicht in Schlüssel hineingeschaut.
Binäre Suchbäume Tries (Folie 182, Seite 58 im Skript) In vergleichsbasierten Suchbäumen wird nicht in Schlüssel hineingeschaut. In Tries entspricht die ite Verzweigung dem iten Zeichen des Schlüssels.
MehrLineargleichungssysteme: Additions-/ Subtraktionsverfahren
Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als
MehrModellierung und Programmierung 1
Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 19. November 2015 Gültigkeitsbereich (Scope) von Variablen { int m; {
MehrGrundlagen der Theoretischen Informatik, SoSe 2008
1. Aufgabenblatt zur Vorlesung Grundlagen der Theoretischen Informatik, SoSe 2008 (Dr. Frank Hoffmann) Lösung von Manuel Jain und Benjamin Bortfeldt Aufgabe 2 Zustandsdiagramme (6 Punkte, wird korrigiert)
MehrEinführung in die Programmierung
: Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte
MehrKonzepte der Informatik
Konzepte der Informatik Vorkurs Informatik zum WS 2011/2012 26.09. - 30.09.2011 17.10. - 21.10.2011 Dr. Werner Struckmann / Christoph Peltz Stark angelehnt an Kapitel 1 aus "Abenteuer Informatik" von Jens
MehrAnmerkungen zur Übergangsprüfung
DM11 Slide 1 Anmerkungen zur Übergangsprüfung Aufgabeneingrenzung Aufgaben des folgenden Typs werden wegen ihres Schwierigkeitsgrads oder wegen eines ungeeigneten fachlichen Schwerpunkts in der Übergangsprüfung
MehrKapitel 6: Graphalgorithmen Gliederung
Gliederung 1. Grundlagen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. Ausgewählte Datenstrukturen 5. Dynamisches Programmieren 6. Graphalgorithmen 7. String-Matching 8. Kombinatorische Algorithmen
MehrEinführung in. Logische Schaltungen
Einführung in Logische Schaltungen 1/7 Inhaltsverzeichnis 1. Einführung 1. Was sind logische Schaltungen 2. Grundlegende Elemente 3. Weitere Elemente 4. Beispiel einer logischen Schaltung 2. Notation von
MehrAnleitung zur Erstellung von Serienbriefen (Word 2003) unter Berücksichtigung von Titeln (wie Dr., Dr. med. usw.)
Seite 1/7 Anleitung zur Erstellung von Serienbriefen (Word 2003) unter Berücksichtigung von Titeln (wie Dr., Dr. med. usw.) Hier sehen Sie eine Anleitung wie man einen Serienbrief erstellt. Die Anleitung
MehrÜber Arrays und verkettete Listen Listen in Delphi
Über Arrays und verkettete Listen Listen in Delphi Michael Puff mail@michael-puff.de 2010-03-26 Inhaltsverzeichnis Inhaltsverzeichnis 1 Einführung 3 2 Arrays 4 3 Einfach verkettete Listen 7 4 Doppelt verkettete
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
MehrWürfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.
040304 Übung 9a Analysis, Abschnitt 4, Folie 8 Die Wahrscheinlichkeit, dass bei n - maliger Durchführung eines Zufallexperiments ein Ereignis A ( mit Wahrscheinlichkeit p p ( A ) ) für eine beliebige Anzahl
MehrGrundbegriffe der Informatik
Grundbegriffe der Informatik Einheit 15: Reguläre Ausdrücke und rechtslineare Grammatiken Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/25 Was kann man mit endlichen
MehrAufgaben zur C-Programmierung für die Praktikumsperiode des 1.Semesters
Prof. Dr. Ulrich Breitschuh Hochschule Anhalt(FH) Fachbereich Informatik Aufgaben zur C-Programmierung für die Praktikumsperiode des 1.Semesters Hinweis: Die Aufgaben 3, 6 und 8 sind testatpichtige Aufgaben.
MehrErweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:
VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt
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
MehrFH-SY Chapter 2.4 - Version 3 - FH-SY.NET - FAQ -
FH-SY Chapter 2.4 - Version 3 - FH-SY.NET - FAQ - Version vom 02.02.2010 Inhaltsverzeichnis 1. KANN ICH BEI EINER EIGENEN LEKTION NACHTRÄGLICH NOCH NEUE LERNINHALTE ( WAS WURDE BEHANDELT? ) EINFÜGEN?...
Mehr1 Mathematische Grundlagen
Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.
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
Mehr5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu
Daten Makro + VBA effektiv 5 DATEN 5.1. Variablen Variablen können beliebige Werte zugewiesen und im Gegensatz zu Konstanten jederzeit im Programm verändert werden. Als Variablen können beliebige Zeichenketten
MehrInstitut für Programmierung und Reaktive Systeme 25. August 2014. Programmier-Labor. 04. + 05. Übungsblatt. int binarysearch(int[] a, int x),
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 25. August 2014 Programmier-Labor 04. + 05. Übungsblatt Aufgabe 21: a) Schreiben Sie eine Methode
MehrDatenbanken Kapitel 2
Datenbanken Kapitel 2 1 Eine existierende Datenbank öffnen Eine Datenbank, die mit Microsoft Access erschaffen wurde, kann mit dem gleichen Programm auch wieder geladen werden: Die einfachste Methode ist,
MehrAGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b
AGROPLUS Buchhaltung Daten-Server und Sicherheitskopie Version vom 21.10.2013b 3a) Der Daten-Server Modus und der Tresor Der Daten-Server ist eine Betriebsart welche dem Nutzer eine grosse Flexibilität
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.
MehrEinführung in die Java- Programmierung
Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113
MehrKONSTRUKTION VON ROT-SCHWARZ-BÄUMEN
KONSTRUKTION VON ROT-SCHWARZ-BÄUMEN RALF HINZE Institut für Informatik III Universität Bonn Email: ralf@informatik.uni-bonn.de Homepage: http://www.informatik.uni-bonn.de/~ralf Februar, 2001 Binäre Suchbäume
MehrFolge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12
Grundlagen: Folge 19 - Bäume 19.1 Binärbäume - Allgemeines Unter Bäumen versteht man in der Informatik Datenstrukturen, bei denen jedes Element mindestens zwei Nachfolger hat. Bereits in der Folge 17 haben
Mehr1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie
Gliederung 1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. äume / Graphen 5. Hashing 6. Algorithmische Geometrie 4/5, olie 1 2014 Prof. Steffen Lange - HDa/bI
MehrHandbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: 24.09.2014)
Handbuch NAFI Online-Spezial 1. Auflage (Stand: 24.09.2014) Copyright 2016 by NAFI GmbH Unerlaubte Vervielfältigungen sind untersagt! Inhaltsangabe Einleitung... 3 Kundenauswahl... 3 Kunde hinzufügen...
MehrZwischenablage (Bilder, Texte,...)
Zwischenablage was ist das? Informationen über. die Bedeutung der Windows-Zwischenablage Kopieren und Einfügen mit der Zwischenablage Vermeiden von Fehlern beim Arbeiten mit der Zwischenablage Bei diesen
MehrDas Briefträgerproblem
Das Briefträgerproblem Paul Tabatabai 30. Dezember 2011 Inhaltsverzeichnis 1 Problemstellung und Modellierung 2 1.1 Problem................................ 2 1.2 Modellierung.............................
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
MehrSuchbäume. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Suchbäume Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative
MehrZeichenketten. Michael Fularczyk Michael Fularczyk Zeichenketten / 41
Zeichenketten Michael Fularczyk 17.05.2011 Michael Fularczyk Zeichenketten 17.05.2011 1 / 41 Inhalt Zeichenketten Zeichensätze Darstellung Suchverfahren naive Stringsuche Knuth-Morris-Pratt Boyer-Moore
MehrAnleitung über den Umgang mit Schildern
Anleitung über den Umgang mit Schildern -Vorwort -Wo bekommt man Schilder? -Wo und wie speichert man die Schilder? -Wie füge ich die Schilder in meinen Track ein? -Welche Bauteile kann man noch für Schilder
MehrLeichte-Sprache-Bilder
Leichte-Sprache-Bilder Reinhild Kassing Information - So geht es 1. Bilder gucken 2. anmelden für Probe-Bilder 3. Bilder bestellen 4. Rechnung bezahlen 5. Bilder runterladen 6. neue Bilder vorschlagen
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"
MehrZählen von Objekten einer bestimmten Klasse
Zählen von Objekten einer bestimmten Klasse Ziel, Inhalt Zur Übung versuchen wir eine Klasse zu schreiben, mit der es möglich ist Objekte einer bestimmten Klasse zu zählen. Wir werden den ++ und den --
MehrSynchronisierung. Kommunikationstechnik, SS 08, Prof. Dr. Stefan Brunthaler 73
Synchronisierung Kommunikationstechnik, SS 08, Prof. Dr. Stefan Brunthaler 73 Übertragungsprozeduren Die Übertragung einer Nachricht zwischen Sender und Empfänger erfordert die Übertragung des Nutzsignals
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
MehrAuswahlabfragen mit ACCESS
Auswahlabfragen mit ACCESS Abfragekriterien und Operatoren Beim Entwerfen von ACCESS-Auswahlabfragen (queries) sind definierte Abfragekriterien bzw. Operatoren zu benutzen. Ein Abfragekriterium ist eine
MehrErstellen einer GoTalk-Auflage
Erstellen einer GoTalk-Auflage 1. Bei dem Startbild Vorlage öffnen wählen 2. In dem folgenden Fenster Geräte Schablonen doppelt anklicken. - und schon öffnet sich der gesamte Katalog der verfügbaren Talker-Auflagen...eigentlich
MehrInformatik Grundlagen, WS04, Seminar 13
Informatik Grundlagen, WS04, Seminar 13 Informatik Informatik Grundlagen, Seminar 13 WS04 1 Was wir heute besprechen Nachbesprechen von Übungsblatt 11 Rekursion Grundprinzipien Übung Besprechung Übungsblatt
MehrKapitel 3. Codierung von Text (ASCII-Code, Unicode)
Kapitel 3 Codierung von Text (ASCII-Code, Unicode) 1 Kapitel 3 Codierung von Text 1. Einleitung 2. ASCII-Code 3. Unicode 2 1. Einleitung Ein digitaler Rechner muss jede Information als eine Folge von 0
MehrErweiterungen Webportal
Erweiterungen Webportal Adress-Suche Inaktive Merkmale und gelöschte Adresse Die Suche im Webportal wurde so erweitert, dass inaktive Adresse (gelöscht) und inaktive Merkmale bei der Suche standardmässig
MehrOECD Programme for International Student Assessment PISA 2000. Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland
OECD Programme for International Student Assessment Deutschland PISA 2000 Lösungen der Beispielaufgaben aus dem Mathematiktest Beispielaufgaben PISA-Hauptstudie 2000 Seite 3 UNIT ÄPFEL Beispielaufgaben
MehrAlgorithmen und Datenstrukturen 2
Algorithmen und Datenstrukturen 2 Sommersemester 2006 3. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Algorithmen für Graphen Fragestellungen: Suche
MehrOutlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang
sysplus.ch outlook - mail-grundlagen Seite 1/8 Outlook Mail-Grundlagen Posteingang Es gibt verschiedene Möglichkeiten, um zum Posteingang zu gelangen. Man kann links im Outlook-Fenster auf die Schaltfläche
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
MehrWindows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1
Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1 Wenn der Name nicht gerade www.buch.de oder www.bmw.de heißt, sind Internetadressen oft schwer zu merken Deshalb ist es sinnvoll, die Adressen
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)
MehrApproximation durch Taylorpolynome
TU Berlin Fakultät II - Mathematik und Naturwissenschaften Sekretariat MA 4-1 Straße des 17. Juni 10623 Berlin Hochschultag Approximation durch Taylorpolynome Im Rahmen der Schülerinnen- und Schüler-Uni
MehrÜbungskomplex Felder (1) Eindimensionale Felder Mehrdimensionale Felder
Übungskomplex Felder (1) Eindimensionale Felder Mehrdimensionale Felder Hinweise zur Übung Benötigter Vorlesungsstoff Ab diesem Übungskomplex wird die Kenntnis und praktische Beherrschung der Konzepte
MehrDatenstrukturen und Algorithmen
Datenstrukturen und Algorithmen VO 708.031 Bäume robert.legenstein@igi.tugraz.at 1 Inhalt der Vorlesung 1. Motivation, Einführung, Grundlagen 2. Algorithmische Grundprinzipien 3. Sortierverfahren 4. Halden
MehrLineare Gleichungssysteme
Brückenkurs Mathematik TU Dresden 2015 Lineare Gleichungssysteme Schwerpunkte: Modellbildung geometrische Interpretation Lösungsmethoden Prof. Dr. F. Schuricht TU Dresden, Fachbereich Mathematik auf der
MehrAlgorithmen II Vorlesung am 15.11.2012
Algorithmen II Vorlesung am 15.11.2012 Kreisbasen, Matroide & Algorithmen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales
MehrGrundlagen der Informatik I Informationsdarstellung
Grundlagen der Informatik I Informationsdarstellung Einführung in die Informatik, Gumm, H.-P./Sommer, M. Themen der heutigen Veranstaltung. ASCIi Code 2. Zeichenketten 3. Logische Operationen 4. Zahlendarstellung
MehrPraktikum Ingenieurinformatik. Termin 2. Verzweigungen (if-else), printf und scanf, while-schleife
Praktikum Ingenieurinformatik Termin 2 Verzweigungen (if-else), printf und scanf, while-schleife 1 1. Import/Export von Eclipse-Projekten 2. Verzweigungen (if-else-anweisung) 3. printf und scanf 4. Übungsaufgaben
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Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag
Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 13 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:
MehrTutorium Algorithmen & Datenstrukturen
June 16, 2010 Binärer Baum Binärer Baum enthält keine Knoten (NIL) besteht aus drei disjunkten Knotenmengen: einem Wurzelknoten, einem binären Baum als linken Unterbaum und einem binären Baum als rechten
MehrTheoretische Grundlagen der Informatik
Theoretische Grundlagen der Informatik Vorlesung am 12.01.2012 INSTITUT FÜR THEORETISCHE 0 KIT 12.01.2012 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik
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
MehrAutoCAD 2007 - Dienstprogramm zur Lizenzübertragung
AutoCAD 2007 - Dienstprogramm zur Lizenzübertragung Problem: Um AutoCAD abwechselnd auf mehreren Rechnern einsetzen zu können konnte man bis AutoCAD 2000 einfach den Dongle umstecken. Seit AutoCAD 2000i
MehrErstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])
3.7 Erstellen einer Collage Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu]) Dann Größe des Dokuments festlegen beispielsweise A4 (weitere
MehrAuf der linken Seite wählen Sie nun den Punkt Personen bearbeiten.
Personenverzeichnis Ab dem Wintersemester 2009/2010 wird das Personenverzeichnis für jeden Mitarbeiter / jede Mitarbeiterin mit einer Kennung zur Nutzung zentraler Dienste über das LSF-Portal druckbar
MehrAnwendungsbeispiele Buchhaltung
Rechnungen erstellen mit Webling Webling ist ein Produkt der Firma: Inhaltsverzeichnis 1 Rechnungen erstellen mit Webling 1.1 Rechnung erstellen und ausdrucken 1.2 Rechnung mit Einzahlungsschein erstellen
MehrKapiteltests zum Leitprogramm Binäre Suchbäume
Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm
MehrErstellen der Barcode-Etiketten:
Erstellen der Barcode-Etiketten: 1.) Zuerst muss die Schriftart Code-39-Logitogo installiert werden! Das ist eine einmalige Sache und muss nicht zu jeder Börse gemacht werden! Dazu speichert man zunächst
MehrÜbungsaufgaben Tilgungsrechnung
1 Zusatzmaterialien zu Finanz- und Wirtschaftsmathematik im Unterricht, Band 1 Übungsaufgaben Tilgungsrechnung Überarbeitungsstand: 1.März 2016 Die grundlegenden Ideen der folgenden Aufgaben beruhen auf
MehrDatenaufbereitung in SPSS. Daten zusammenfügen
Daten zusammenfügen I. Fälle hinzufügen Diese Schritte müssen Sie unternehmen, wenn die Daten in unterschiedlichen Dateien sind; wenn also die Daten von unterschiedlichen Personen in unterschiedlichen
MehrLehrer: Einschreibemethoden
Lehrer: Einschreibemethoden Einschreibemethoden Für die Einschreibung in Ihren Kurs gibt es unterschiedliche Methoden. Sie können die Schüler über die Liste eingeschriebene Nutzer Ihrem Kurs zuweisen oder
MehrPrimzahlen und RSA-Verschlüsselung
Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also
MehrRS-Flip Flop, D-Flip Flop, J-K-Flip Flop, Zählschaltungen
Elektronik Praktikum / Digitaler Teil Name: Jens Wiechula, Philipp Fischer Leitung: Prof. Dr. U. Lynen Protokoll: Philipp Fischer Versuch: 3 Datum: 24.06.01 RS-Flip Flop, D-Flip Flop, J-K-Flip Flop, Zählschaltungen
MehrVorabversion. Schulung am 06.08.13. www.winterhoff.de. Homepage Administration und Pflege
Vorabversion Schulung am 06.08.13 www.winterhoff.de Homepage Administration und Pflege 1. Anmeldung auf der Homepage Die Anmeldung auf der Homepage erfolgt über den nachfolgenden Link durch Eingabe des
MehrTheoretische Informatik SS 04 Übung 1
Theoretische Informatik SS 04 Übung 1 Aufgabe 1 Es gibt verschiedene Möglichkeiten, eine natürliche Zahl n zu codieren. In der unären Codierung hat man nur ein Alphabet mit einem Zeichen - sagen wir die
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
Mehr4. BEZIEHUNGEN ZWISCHEN TABELLEN
4. BEZIEHUNGEN ZWISCHEN TABELLEN Zwischen Tabellen können in MS Access Beziehungen bestehen. Durch das Verwenden von Tabellen, die zueinander in Beziehung stehen, können Sie Folgendes erreichen: Die Größe
MehrEigene Dokumente, Fotos, Bilder etc. sichern
Eigene Dokumente, Fotos, Bilder etc. sichern Solange alles am PC rund läuft, macht man sich keine Gedanken darüber, dass bei einem Computer auch mal ein technischer Defekt auftreten könnte. Aber Grundsätzliches
MehrAccess 2010. Grundlagen für Anwender. Andrea Weikert 1. Ausgabe, 1. Aktualisierung, Juli 2012. inkl. zusätzlichem Übungsanhang ACC2010-UA
Andrea Weikert 1. Ausgabe, 1. Aktualisierung, Juli 2012 Access 2010 Grundlagen für Anwender inkl. zusätzlichem Übungsanhang ACC2010-UA 3 Access 2010 - Grundlagen für Anwender 3 Daten in Formularen bearbeiten
MehrSchnellanleitung: Verbuchung von Studien- und Prüfungsleistungen
Schnellanleitung: Verbuchung von Studien- und Prüfungsleistungen Die folgenden Schritte sind für die Verbuchung von Studien- bzw. Prüfungsleistungen notwendig. Eine Online-Anleitung mit vielen weiterführenden
MehrMining High-Speed Data Streams
Mining High-Speed Data Streams Pedro Domingos & Geoff Hulten Departement of Computer Science & Engineering University of Washington Datum : 212006 Seminar: Maschinelles Lernen und symbolische Ansätze Vortragender:
MehrInformatikgrundlagen (WS 2015/2016)
Informatikgrundlagen (WS 2015/2016) Klaus Berberich (klaus.berberich@htwsaar.de) Wolfgang Braun (wolfgang.braun@htwsaar.de) 0. Organisatorisches Dozenten Klaus Berberich (klaus.berberich@htwsaar.de) Sprechstunde
MehrUm eine Person in Magnolia zu erfassen, gehen Sie wie folgt vor:
Personendaten verwalten mit Magnolia Sie können ganz einfach und schnell alle Personendaten, die Sie auf Ihrer Webseite publizieren möchten, mit Magnolia verwalten. In der Applikation Adressbuch können
MehrHallo 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
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
MehrErwin Grüner 09.02.2006
FB Psychologie Uni Marburg 09.02.2006 Themenübersicht Folgende Befehle stehen in R zur Verfügung: {}: Anweisungsblock if: Bedingte Anweisung switch: Fallunterscheidung repeat-schleife while-schleife for-schleife
MehrLehreinheit E V2 Verschlüsselung mit symmetrischen Schlüsseln
V-Verschlüsslung Lehreinheit Verschlüsselung mit symmetrischen Schlüsseln Zeitrahmen 70 Minuten Zielgruppe Sekundarstufe I Sekundarstufe II Inhaltliche Voraussetzung V1 Caesar-Chiffre Für Punkt 2: Addieren/Subtrahieren
MehrHochschule München, FK 03 FA SS 2012. Ingenieurinformatik
Hochschule München, FK 03 FA SS 2012 Ingenieurinformatik Zulassung geprüft vom Aufgabensteller: Teil 1/Aufgabe 1: 30 Minuten ohne Unterlagen, Teil 2/Aufgaben 2-4: 60 Minuten, beliebige eigene Unterlagen
MehrDas DAAD-PORTAL. Prozess der Antragstellung in dem SAPbasierten Bewerbungsportal des DAAD.
Das DAAD-PORTAL Prozess der Antragstellung in dem SAPbasierten Bewerbungsportal des DAAD. November 2012 Man findet das neue Portal auf der Webseite vom DAAD : www.daad.de/ Danach erscheint ein neues Fenster,
MehrDatensicherung. Beschreibung der Datensicherung
Datensicherung Mit dem Datensicherungsprogramm können Sie Ihre persönlichen Daten problemlos Sichern. Es ist möglich eine komplette Datensicherung durchzuführen, aber auch nur die neuen und geänderten
MehrZahlensysteme: Oktal- und Hexadezimalsystem
20 Brückenkurs Die gebräuchlichste Bitfolge umfasst 8 Bits, sie deckt also 2 8 =256 Möglichkeiten ab, und wird ein Byte genannt. Zwei Bytes, also 16 Bits, bilden ein Wort, und 4 Bytes, also 32 Bits, formen
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/
Mehr15 Optimales Kodieren
15 Optimales Kodieren Es soll ein optimaler Kodierer C(T ) entworfen werden, welcher eine Information (z.b. Text T ) mit möglichst geringer Bitanzahl eindeutig überträgt. Die Anforderungen an den optimalen
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.:
MehrEnigmail Konfiguration
Enigmail Konfiguration 11.06.2006 Steffen.Teubner@Arcor.de Enigmail ist in der Grundkonfiguration so eingestellt, dass alles funktioniert ohne weitere Einstellungen vornehmen zu müssen. Für alle, die es
MehrFallbeispiel: Eintragen einer Behandlung
Fallbeispiel: Eintragen einer Behandlung Im ersten Beispiel gelernt, wie man einen Patienten aus der Datenbank aussucht oder falls er noch nicht in der Datenbank ist neu anlegt. Im dritten Beispiel haben
Mehr