Informatik Fachbegriffe: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Zeile 149: | Zeile 149: | ||
* Potenzmengenkonstruktion | * Potenzmengenkonstruktion | ||
* Potenzmenge (=eine Menge von Zuständen) | * Potenzmenge (=eine Menge von Zuständen) | ||
==reguläre Grammatik== | ==reguläre Grammatik== | ||
Zeile 165: | Zeile 161: | ||
* Produktion eines Wortes | * Produktion eines Wortes | ||
* die RG erzeugt eine (reguläre) Sprache | * die RG erzeugt eine (reguläre) Sprache | ||
==Kellerautomaten (nur LK)== | |||
* Keller-Alphabet | |||
* Keller-Zeichen | |||
==kontextfreie Grammatik (nur LK)== | ==kontextfreie Grammatik (nur LK)== | ||
* lässt sich durch Kellerautomaten prüfen | |||
==Parser== | ==Parser== | ||
Zeile 173: | Zeile 174: | ||
** mit if-else if: <br/><code>if(zustand == 1){<br/> ...<br/>}<br/>else if(zustand == 2){<br/> ...<br/>}<br/>else{<br/> ...<br/>}</code> | ** mit if-else if: <br/><code>if(zustand == 1){<br/> ...<br/>}<br/>else if(zustand == 2){<br/> ...<br/>}<br/>else{<br/> ...<br/>}</code> | ||
* für Kellerautomaten (nur LK) | * für Kellerautomaten (nur LK) | ||
** Keller (=<code>Stack</code>) | |||
=Graph (nur LK!)= | =Graph (nur LK!)= |
Version vom 3. März 2022, 17:46 Uhr
Hier werden die wesentlichen Fachbegriffe zusammengestellt, die für das Informatik-Abitur relevant sind.
Kursiv sind "interne" Begriffe, die anschaulich sind, aber keine echten Fachbegriffe.
Datenbanken
Entity-Relationship-Modellierung
- Kardinalität
- 1:n
- n:m
- Primärschlüssel
- Attribut
- Entitätsmenge
- Entität (=ein Objekt einer Entitätsmenge)
- Relation (=Beziehung)
relationales Datenmodell
- Tabelle
- Relationenschema (damit meint das Zentralabitur eine Tabelle)
- Datenbankschema (damit meint das Zentralabitur das ganze relationale Datenmodell)
- Attribut
- Primärschlüssel: unterstrichen
- Fremdschlüssel: ↑
...bezieht sich auf den Primärschlüssel der Tabelle ... - kombinierter Primärschlüssel
Normalisierung
- atomar
- nicht eindeutiger Primärschlüssel
- funktional abhängig von einem Teil des Primärschlüssel (Verstoß gegen 2. NF)
- funktional abhängig von einem Nicht-Schlüssel-Attribut (Verstoß gegen 3. NF)
- Anomalien
- Einfüge-Anomalie
- Änderungs-Anomalie
- Lösch-Anomalie
- die können nach Normalisierung nicht mehr auftreten!
SQL
- Kartesisches Produkt
- Abgleich zwischen Tabellen
- Verknüpfen (Join) von zwei Tabellen, wobei ... mit ... abgeglichen wird.
- "Drückeberger":
... LEFT JOIN ... WHERE ... IS NULL
- Differenz:
NOT IN
- Vereinigung:
UNION
- selbstdefinierte Tabelle
- Alias:
AS
- zusammenfassen von Zeilen:
GROUP BY
- sortieren nach:
ORDER BY
mit Java auf Datenbanken zugreifen
- DatabaseConnector
- Query (=Abfrage)
- Variablen (z.B. Parameter) im SQL-Statement
- Zeilenzahl:
int zeilenZahl = queryResult.getRowCount();
- Array (2-dim):
String[][] data = queryResult.getData();
- durchlaufen:
for(int i=0; i<data.length; i++){
String name = data[i][0];
String vorname = data[i][1];
- durchlaufen:
- In Zahl konvertieren:
int zahl = Integer.parseInt(data[i][0]);
Objektorientierte Modellierung und Programmierung
- erbt von (bzw. "ist ein")
- Super-Klasse
- Sub-Klasse
- Polymorphie
- polymorphe Methode
- abstrakte Methode
- abstrakte Klasse (=Klasse mit mind. einer abstrakten Methode)
- hat/kennt-Beziehung
- Attribut
- lokale Variable
- Methode
- Parameter
- Rückgabetyp
- public / private
- Konstruktor
- Klasse
- Schnittstelle (interface, vgl. ComparableContent)
- Objekt
- ContentType
- Struktogramm
- Anweisung
- Methodenaufruf
- Bedingung
- Schleife
- Zählschleife (for)
- bedingte Schleife (while)
- mit Schleife ein Array durchlaufen:
for(int i=0; i<array.length; i++)
Java-Programmierung mit linearen Datenstrukturen
- Schlange (vorne - hinten):
Queue
- Stapel (oben):
Stack
- Liste:
List
- anhängen:
pList.append(...)
- einfügen vor dem aktuellen Element:
pList.insert(...);
- anhängen:
- durchlaufen (Liste, Array)
- ein Array durchlaufen:
for(int i=0; i<array.length; i++)
- eine Liste durchlaufen:
for(pList.toFirst(); pList.hasAccess(); pList.next())
- ein Array durchlaufen:
- aktuelles Element:
- Array:
array[i];
- Liste:
pList.getContent();
- Array:
- Hilfs-Stack
- Hilfs-Queue
- erzeugen eines Objektes:
Person p = new Person("Mustermann", "Max");
- erzeugen eines Arrays:
int[] zahlen = new int[1000];
- Schleife
- mit einer for-Schleife ein Array durchlaufen:
for(int i=0; i<array.length; i++)
- mit einer for-Schleife ein Array durchlaufen:
- Schleife verlassen:
break;
- Schleife beim nächsten Element fortsetzen:
continue;
- lokale Variable
- Attribut
- Methode verlassen
return;
- zurückgeben:
return ergebnis;
- ausgeben:
System.out.println("Hallo");
Binärbäume und binäre Suchbäume
- Rahmenmethode
- rekursive Methode
- Abbruchbedingung
- Wurzelbehandlung
- Sachlogik
- rekursive Aufrufe
- Traversierung
- Preorder
- Inorder (=im Suchbaum: Sortierte Ausgabe!)
- Levelorder (nur LK)
- Baumliste für Levelorder (nur LK)
- ComparableContent
- implementiert die Schnittstelle (ComparableContent)
- Dummy: zum Suchen in Suchbäumen.
Automaten und Grammatiken
endliche Automaten
- Deterministischer endlicher Automat (DEA)
- A, Z, d, Q0, E: allen Zuhörern doofen Quatsch erzählen
- Der DEA erkennt eine Sprache
- Der DEA überprüft ein Wort.
- Nicht-deterministischer endlicher Automat (NEA)
- "es gibt einen Weg"
- Zustand
- Anfangszustand
- Endzustände
- Übergang
- Epsilon (€):
damit kann man den Endzustand erreichen. (Das vereinfacht das "Übersetzen" einer regulären Grammatik in einen Automaten.) - Alphabet
- Zustands-Übergangs-Graph
- Zustands-Übergangs-Tabelle
- Zustandsfolge
- Senke (=ein Zustand, aus dem es keinen Ausweg mehr gibt)
- Potenzmengenkonstruktion
- Potenzmenge (=eine Menge von Zuständen)
reguläre Grammatik
- G = {N, T, S, P} Nerds testen Sonys Playstation
- linkslineare Grammatik: Nicht-Terminal links
- rechtslineare Grammatik: Nicht-Terminal rechts
- linkslineare und rechtslineare Regeln nicht mischen!!!
z.B.:S → aS | Sb
ist nicht regulär!!!
- linkslineare und rechtslineare Regeln nicht mischen!!!
- Terminal-Symbol
- Nicht-Terminal-Symbol
- Startsymbol
- Produktionsregeln
- Produktion eines Wortes
- die RG erzeugt eine (reguläre) Sprache
Kellerautomaten (nur LK)
- Keller-Alphabet
- Keller-Zeichen
kontextfreie Grammatik (nur LK)
- lässt sich durch Kellerautomaten prüfen
Parser
- für DEA
- mit switch-case:
switch(zustand){
case 1: ... - mit if-else if:
if(zustand == 1){
...
}
else if(zustand == 2){
...
}
else{
...
}
- mit switch-case:
- für Kellerautomaten (nur LK)
- Keller (=
Stack
)
- Keller (=
Graph (nur LK!)
- Knoten
- Kante
- markieren (Knoten oder Kante)
- Markierung aufheben
- Gewicht
- Traversierung
- Breitendurchlauf
- Tiefendurchlauf
- rekursiv (für Tiefendurchlauf)
- Knotenliste (für Breitendurchlauf)
- rote Liste (für Dijkstra-Algo)
- gelbe Liste (für Dijkstra-Algo)
Datenschutz
- Erlaubnisvorbehalt
- Erforderlichkeit
Backtracking (nur LK!)
- Stufe
- Teillösungsschritt
- Abbruchbedingung
- Lösung erreicht
- Lösung nicht mehr erreichbar
- maximale Stufenzahl überschritten
- rückgängig machen