Title | EIDI - EIDI zusammenfassung |
---|---|
Author | Márió Farkas |
Course | Einführung in die Informatik 1 |
Institution | Technische Universität München |
Pages | 6 |
File Size | 387.5 KB |
File Type | |
Total Downloads | 79 |
Total Views | 159 |
EIDI zusammenfassung...
Eigenschaften von Algorithmen (statische) Finitheit. Die Beschreibung des Algorithmus besitzt feste Länge. (↑nichtuniforme Algorithmen) (dynamische) Finitheit. Die bei Abarbeitung entstehenden Zwischenergebnisse sind endlich. Terminiertheit. Das Ergebnis wird nach endlich vielen Schritten geliefert. (↑Betriebssysteme, ↑reaktive Systeme) Determiniertheit. Gleiche Eingabedaten führen zu gleichem Ergebnis. (↑randomisierte Algorithmen, ↑nicht-deterministische Algorithmen) Determinismus. Der nächste anzuwendende Schritt ist stets eindeutig bestimmt. (↑randomisierte Algorithmen, ↑nicht-deterministische Algorithmen)
Sort:
Befehle der JVM (S.234) int-Operatoren: NEG, ADD, SUB, MUL, DIV, MOD boolean-Operatoren: NOT, AND, OR Vergleichs-Operatoren: LESS, LEQ, EQ, NEQ Laden von Konstanten: CONST i, TRUE, FALSE Speicher-Operationen: LOAD i, STORE i Sprung-Befehle: JUMP i, FJUMP i IO-Befehle: READ, WRITE Reservierung von Speicher: ALLOC i Beendung des Programms: HALT
Abstrakte Datentypen • Verhindern illegaler Zugriffe auf die Datenstruktur; • Entkopplung von Teilproblemen für • Implementierung, aber auch • Fehlersuche und • Wartung; • leichter Austausch von Implementierungen
Keller (Stack) Operationen: boolean isEmpty() : testet auf Leerheit; int pop() : liefert oberstes Element; void push(int x) : legt x oben auf dem Keller ab; String toString() : liefert eine String-Darstellung.
Queues FIF0-Prinzip (First-In-First-Out) Operationen: boolean isEmpty() : testet auf Leerheit; int dequeue() : liefert erstes Element; void enqueue(int x) : reiht x in die Schlange ein; String toString() : liefert eine String-Darstellung.
Extends/Implements (Klasse B ist in A verschachtelt und A hat Interface C): extends: B extends A implements: A implements C (Nur 1 Oberklasse aber beliebig viele Interfaces)
Funktionale Interfaces
Unterklassen-Polymorphie ...
Generische Typen z.b. public class List A extends B ist ok. A extends B ist ein Fehler, sofern T nicht bereits als Interface oder Klasse existiert.
Wrapper-Klassen
Hash Eine Sammlung von daten. Benutzt zur verschlüsselung.
Collections Listen: geordnete Datenstrukturen, auf die man wie auf Arrays mit einem numerischen Index zugreifen kann. Im Unterschied zu Arrays erlauben sie das Einfügen von neuen Objekten. Mengen: Implementierungen mathematischer Mengen. Objekte können nur einmal in einer Menge vorkommen. Eine Reihenfolge oder Ordnung in der Menge ist nicht relevant. Warteschlangen: Warteschlangen sind Listen die nach dem FIFO Prinzip (First In , First Out) aufgebaut sind, verfügen aber über keinen wahlfreien Zugriff. Maps: verallgemeinerte Felder, die mit beliebigem Argumenttyp indiziert werden können. Arrays können ebenfalls als (vordefinierte) Collections aufgefasst werden.
Streams I/O mit Hilfe der Klasse Files Aus Dateien zu lesen oder in Dateien zu schreiben. static Stream lines(Path path); static List readAllLines(Path path); static String readString(Path path); Path ist ein Interface mit Methoden, um mit Dateizugriffspfaden umzugehen. Wir benötigen hier einzig die statische Methode static Path of(String first, String... more); Beispiel: long x = Files.lines(Path.of("test.txt")) .filter((String s) -> s.charAt(0)=='#') .count(); // zählt die Anzahl der Elemente // insgesamt zählen wir die Anzahl der Zeilen, // die mit '#' beginnen
readAllLines liefert eine Liste der Zeilen. readString liefert den Inhalt der Datei als String.
Zum einfachen Schreiben gibt es: static Path writeString(Path path, CharSequence csq, OpenOption... options); static Path write(Path path, Iterable...