Sie sind auf Seite 1von 20

Zusammenfassung Grundlagen der Informatik

Inhaltsverzeichnis
Grundlegendes....................................................................................................................... 2
Informationsgehalt............................................................................................................... 2
Codierung............................................................................................................................ 2
Zahlensysteme.................................................................................................................... 3
Rechnen im Dualsystem......................................................................................................3
Rechnen mit negativen Zahlen............................................................................................3
Darstellung einer Gleitkommazahl nach IEEE 754 (Short Real; 32 Bit)...............................4
ASCII-Code......................................................................................................................... 4
Unicode............................................................................................................................... 5
UTF-8.................................................................................................................................. 5
Codierung von Zeit.............................................................................................................. 5
Codierung von Farben......................................................................................................... 5
Codierung von Grafiken.......................................................................................................5
Codierung von Audio........................................................................................................... 5
Modellierung........................................................................................................................... 5
Was ist ein Modell?............................................................................................................. 5
Kontext / Abgrenzung der Modellierung...............................................................................5
Beispiele für Modellierungen...............................................................................................5
Modellbildung...................................................................................................................... 6
Methoden der Modellbildung...............................................................................................6
Modelle und Codierung....................................................................................................... 6
Datenmodellierung mit der EBNF............................................................................................7
Erweiterte Backus-Naur-Form.............................................................................................7
Regeln / Zeichen der EBNF.................................................................................................7
Beispiel für eine vollständige EBNF.....................................................................................7
Zustandsdiagramme............................................................................................................... 7
Aufbau von Zustandsdiagrammen.......................................................................................8
Beispiel: Paketauslieferung.................................................................................................8
Grundlegendes
 Informatik: Information & Automatik
o Informatik = „Wissenschaft von der systematischen Verarbeitung von Informationen,
besonders mit Hilfe von Digitalrechnern.“
 Informatik ist eine Strukturwissenschaft
 Weniger als 1% der Informatiker entwickeln heutzutage noch Rechner; Großteil
ist in der Softwareentwicklung beschäftigt
 Algorithmus = Detaillierte Handlungsvorschrift zum (schrittweisen) Lösen eines Problems
 Wichtige Personen / Pioniere der Informatik:
o Alan Turing (erschuf Großteil der theoretischen Grundlagen der Informatik,
Entschlüsselung der Enigma)
o Konrad Zuse (Erster vollautomatischer programmgesteuerter Computer: „Z3“)
o John von Neumann (Mathematiker, Schöpfer der „von Neumann Architektur“)
o Edsger W. Dijkstra (niederl. Informatiker; Mitentwicklung von
Programmiersprachen & Algorithmen)
 Information = Erfolgreicher Transfer von Faktenwissen an einen Empfänger
o Z.B.: Herr Braun sagt etwas Mitschüler, wenn er es wusste -> kein erfolgreicher
Transfer
 Weitergabe von Information → Vervielfältigung (Grenzkosten gleich null)
 Materielle Dinge -> 1 Mal vorhanden
 Energie Materielle Dinge > immaterielle Dinge
 Syntax = Folge von Symbolen (verschiedene Interpretationen möglich)
 Semantik = Bedeutung / Kontext der Informationen (kann bei der Repräsentation verloren
gehen)

Informationsgehalt
 Informationsgehalt = Anzahl der (maximalen) ja/nein-Fragen, die man stellen muss
 Einheit: Bit (z.B. Münzwurf 1 B it, Würfelwurf 3 Bit); (Achtung: Bits sind nicht teilbar!
Immer aufrunden!)
 Mit n Bit kann man 2n verschiedene Symbole codieren
 Informationsgehalt eines Symbols: log2(N)
 Alpahbet = Menge aus Symbolen, die wir codieren wollen und die gleiche
Wahrscheinlichkeit haben : p= 1/N
 Der Informationsgehalt eines Zeichens x mit der Auftrittswahrscheinlichkeit px: -log2(px)
 Bei unterschiedlichen Wahrscheinlichkeiten der Symbole wird die Summe
berechnet (z.B. Würfel mit Kopf 0,8 & Zahl 0,2: −(0.8 · log2(0.8) + 0.2 ·
log2(0.2)) = ~ 0.7219)
 Informationsgehalt von Wörtern analog dazu
o Die Codelänge ist variable, z.B.: Melissa
o Prefixcode, die Zahlen dürfen nicht gleich beginnen
o Dadurch eindeutig zuzuordnen
 Je höher Wahrscheinlichkeit, desto geringer Informationsgehalt

Codierung
 Feste Codelänge (z.B. 3 Bit Pro Buchstabe) →
Einfach, aber nicht optimal in der Nutzung
 Variable Codelänge (z.B. 2 oder 3 Bit pro Buchstabe)
→ Insgesamt kürzer, schwerer zu erzeugen und zu
lesen
 8 Bit = 1 Byte (256 Möglichkeiten),
 Umrechnungsfaktor: 1024 (1024 Byte = 1 Kilobyte,
usw.)
 Einheiten:
Zahlensysteme
 Dezimalsystem:
o z.B. (2048)10 = 2· 103 + 0 · 102 + 4 · 101 + 8 · 100
 Binärsystem / Dualsystem
o Erlaubte Ziffern: 0, 1
o Stellen entsprechen 2-er Potenzen
o z.B. (1101)2 = 1· 23 + 1 · 22 + 0 · 21 + 1 · 20
 Umrechnungsverfahren (für Klausur muss eines davon sitzen!)
o Div / mod:
 z.B. 28 als Binärzahl:
 Mit der größten möglichen Potenz starten (hier 24=16, da nächste Potenz
32 wäre) 28 / 16 = 1 Rest 12
12 / 8 = 1 Rest 4
4 / 4 = 1 Rest 0 1=1
0 / 2 = 0 Rest 0
0 / 1 = 0 Rest 0 2 = 10

 Ergebnis von oben nach unten lesen (11100) 3 = 11


o Fortlaufende Division durch 2:
4 = 100
 z.B. 28 als
Binärzahl: 5 = 101
28 / 2 =14 Rest 0
6 = 110
14 / 2 = 7 Rest 0
7 / 2 = 3 Rest 1 7 = 111
3 / 2 = 1 Rest 1 8 = 1000
1 / 2 = 0 Rest 1
o Ergebnis von unten nach oben lesen (11100) 9 = 1001

10 = 1010
5:101 , 10: 1010
11 = 1011
o Eine 0 rechts anhängen -> Zahl wird verdoppelt
o Eine 0 Rechts wegstreichen -> Zahl wird halbiert 12 = 1100
o Letzte Stelle gerade: ungerade Zahlen 13 = 1101
o Zb 7: 111
o Letzte Stelle ungerade: gerade Zahlen 14 = 1110

o Zb 26: 11010 15 = 1111


o Als Kontrolle nutzen: Stimmt die letzte Stelle
o Von 0 bis 15 auswendig lernen

 Oktalsystem (müssen wir nicht wissen)
o Erlaubte Ziffern: 0 bis 7
o Stellen entsprechen 8-er Potenzen
o z.B. (714)8 = 7· 82 + 1 · 81 + 4 · 80
 Hexadezimalsystem
o Erlaubte Ziffern: 0 bis 9, A bis F (entspricht 10 bis 15)
o Stellen entsprechen 16-er Potenzen
o z.B. (F8AB)16 = 15 · 163 + 8 · 162 + 10 · 161 + 11 · 160
 Umrechnung durch Umstellung!
o Zwischen Hexadezimal, Binär, Oktal müssen wir nichts rechnen, sondern nur
Umstellen
o Hexadezimal in Binär
 Jede Ziefer in Binär machen, 4 Gruppen
o Binär in Oktal
 3 Gruppen bilden von links, Zahl aufschreiben
Halbaddierer

- digitale Schaltung aus Logisch,AND (&) und XOR (=1)


- =1 ist Symbol für Xor
- & ist Symbol für And
- X und y verlaufen beide durch die logischen Bausteine und am Ende kommt ein Ergebnis
raus
o Ergbnis von Xor ist Summe s, Ergebnis von & ist Übertrag c

Rechnen im Dualsystem
 Einfache Addition von Binärzahlen

o Übertrag nicht vergessen!


Rechnen mit negativen Zahlen

 Mit dem Zweier-Komplement lassen sich auch Subtraktionen durch


Addition durchführ
Darstellung einer Gleitkommazahl nach IEEE 754 (Short Real; 32 Bit)
- Normieren: Komma so lang verschieben, bis eine Zahl größer als = (also 1) vor dem Komma
steht
- Wir wollen mit kleinen Zahl und vielen Nachkommastellen operieren können-> Genauer

 Nicht gespeicherte 1: sog. „Hidden-Bit“


Beispiel: Darstellung der Zahl -4,4375 nach IEEE 754 mit 32 Bit

ASCII-Code
 7 Bit Code; es werden nur Zahlen 0 bis 127 verwendet
 Das linkeste Bit im ASCII-Code wurde früher als Kontrollbit verwendet (Parität)
o Wird so gesetzt, dass die Anzahl der 1 gerade ist
o Bei einem Fehler in der Übertragung könnte man dies an einer ungeraden
Anzahl der 1 erkennen
 Erweiterung des ASCII-Code:
o Hinzunahme eines weiteren Bit ermöglicht eine Verdopplung der codierbaren Zeichen
Unicode
 Problem: sehr viele verschiedene ASCII-Erweiterung (praktisch für jede Sprache)
 Versuch, ein gemeinsames Alphabet in 2 Byte zu finden (65536 Zeichen)
 Unicode wurde zu Universal Character Set (UCS) weiterentwickelt (4 Byte = 140.000 Zeichen,
Maximal = 1,1 Millionen)

UTF-8 (müssen wir nicht wissen)


 UTF = UCS Transformation Format
 Darstellung von Zeichen erfordert zwischen 1 und 4 Byte (aber nicht immer 4 Byte wie
bei UCS →effizienter einsetzbar)
 Kürzere Darstellung für häufig verwendete Zeichen

Codierung von Zeit


 Einzelne Codierung von Tag, Monat, Jahr, Stunde, Minute, usw. würde viele Bit in
Anspruch nehmen (ineffizient)
 Andere Möglichkeit: Zeitdarstellung als Anzahl von Sekunden ab einem festgelegten Nullpunkt
(wird
z.B. bei UNIX-Betriebssystemen ab dem 1. Jan 1970 gemacht, 09.11. 2020 = 1604938559)

Codierung von Farben


 RGB-Modell
 Jede Farbe lässt sich additiv aus den drei Primärfarben (Blau, Rot, Grün) erzeugen
 Farbcode besteht aus 3 Byte für Primärfarben, also 24 Bit
 Darstellung von 224 unterschiedlichen Farben

Codierung von Grafiken


 Einteilung einer Grafik in Pixel mit Farbinformation (z.B. RGB)
 Ein Bild wird zur Darstellung im Computer in einzelne Pixel unterteilt (Rasterung)
 Der unendliche Farbraum wird auf eine endlcihe Menge von Farben abgebildet
(Quantisierung)
 Die Menge der Pixel, in die ein Bild aufgeteilt wird, wird Auflösung genannt.
 Nachteil der Rasterung: Treppeneffekte (treppenartiges Erscheinungsbild an den Kanten
gerasteter Grafiken)
 Nachteil der Quantisierung (Vorgang bei der Bildkompression): Farbübergänge

Modellierung
Was ist ein Modell?
= „simplified representation of an object“
- Ein Modell ist eine vereinfachte Repräsentation eines realen Dings/ Objekts

Definition Modellierung
- Modellierung ist das Identifizieren von relevanten Eigenschaften eines realen „Ding“ zur
Benutzung im Kontext einer bestimmten Anwendung.

Kontext / Abgrenzung der Modellierung


 Realität ist komplex -> Abstrahieren und wichtige Eigenschaften modellieren
 Folgende Fragen vorher immer klären:
o Für wen modelliert man? (Wer arbeitet damit?)
o Für was modelliert man? (Anwendungsbereich?)

Beispiele für Modellierungen


 Modellierung eines Hörsaals (Kontext: Datenbank für Raumverwaltung)
o Eigenschaften (Auswahl): Anzahl Sitzplätze, Raumgröße, Fluchtwege, Klimaanlage,
Technische Ausstattung, Raum-Nr., Raum-Name, Platzverteilung, o. Ä.
o Unwichtige Eig: Wandfarbe, Farbe der SItze
 Modellierung einer Person (Kontext: Datenbank für Studierende)
o Name, Vorname, Adresse, Matr. Nummer, Studienbeginn, Geburtsdatum,
Studiengang, Geschlecht, o. Ä.
o Unwichtige Eig: Größe, Gewicht
Modellbildung

Abgrenzung bestimmter Eigenschaften (für Klausur sicher bestimmen können!):

 Modellierte Eigenschaften (Zwangsläufig notwendig):


o Z.B. Name, Vorname, Geburtsdatum, etc.
 Nicht-modellierte Eigenschaften (nicht
notwendig):
o Z.B. Augenfarbe, Haarfarbe, Gewicht, etc.

 Zusätzliche Eigenschaften (kommt auf den Kontext an):


o Z.B. Studiengang, Semester, Bewertung, Kommentare
 3 Schritte
o 1. Wichtige Eigenschaften identifizieren
o 2. Unwichtige Eigenschaften weglassen
o 3. Gibt es zusätzliche Eigenschaften, die Modell haben muss, dass es in ihrer
Domäne/ Kontext einsetzbar ist
Methoden der Modellbildung

- Reduktion: Unwichtige Eigenschaften werden weggelassen


- Dekomposition: Das Ganze in einzelne Teile aufteilen /zerlegen
o Zb Buch in Autor, Titel, Seitenanzahl
- Aggregation
o Gegenteil von Dekomposition
o Zusammenfassen
 Zb Auto: Die 4 einzelne Räder in Räder zusammenfassen
- Abstraktion
o Bildung von Klassen & Quantitäten
o Abstrahieren, Sachen weglassen und Dinge in Klassen und Quantitäten
zusammenfassen
o Zb Buch in Soft/Hardcover eingruppieren

Modelle und Codierung


 Abbildung einer Zahl als Binärzahl; Codierung oder Modellierung?
 Codierung als Binärzahl steht im Vordergrund
 Farbcodierung (z.B. RGB-Modell) ist auch eine Modellierung
 3. Schritte
o 1. Original / Realität, identifizieren was wichtig, unwichtige und zusätzliche
Eigenschaften sind
o 2. Bei der Codierung wird dann festgelegt, wie die Eigenschaften konkret im
Computer gespeichert werden.
o

 Beispiel: Person → Student →Codierung

Datenmodellierung mit der EBNF


Erweiterte Backus-Naur-Form
 Meta-Sprache zur Beschreibung der Struktur (Syntax) von Daten
 Es wird nicht(!) die Bedeutung beschrieben („abcde“ wäre syntaktisch ein korrekter Vorname,
ist
trotzdem nicht zulässig)

Regeln / Zeichen der EBNF

 Definition: =
 Aufzählungen: ,
 Ende einer Definition: ;
 Alternative: |
 Option: […]
 Optionale Wiederholung: {…}
 Kommentar: //

 Wiederholungen können mit Min und Max Werten ausgestattet werden(N*M{…})


 Terminal-Symbole in Anführungszeichen „“
 Optionen können nur einmal(!) vorkommen (müssen aber nicht)

Beispiel für eine vollständige EBNF

Regeln für eine syntaktisch korrekte Mail-Adresse

EMAIL_ADRESSE = BUCHSTABE, „.“, Nachname, „@“, DOMAIN, „.“, ENDUNG

BUCHSTABE = „a“ | „b“ | „c“ | …


| „z“; NACHNAME =
2*50{BUCHSTABE}; DOMAIN =
2*50{BUCHSTABE}; ENDUNG =
2*3{BUCHSTABE};

 Regeln können helfen, erlaubte Eigenschaften von falschen Eingaben zu


trennen (z.B. Plausibilitätskontrolle bei Web-Seiten)
Zustandsdiagramme

 Zustände: interne Abläufe


 Ereignisse: führen zu Zuständen; gleiche Ereignisse können unterschiedliche
Bedeutungen in verschiedenen Zuständen hab
Aufbau eines Zustandsdiagramms

Beispiel: Anfertigen eines Zustandsdiagramms: Paketauslieferung

 Kann man stark variieren, je nachdem wie man es möchte oder wie es verlangt ist
 Am besten zunächst nach den möglichen Zuständen suchen, im Anschluss die Ereignisse,
welche die Zustände verursache
Bespiel Getränkeautomat

- Es gibt einen Kombinierten Zustand und


die einzelnen Zustände die den
Kombinierten Zustand ergeben

Sprachen und endliche Automaten

Grammatik
 Herleitung aus der EBNF:
o Nicht Terminale (Platzhalter) : Großbuchstabe
o Terminale (Eingabe)
o Ableitungsregeln
o Startsymbol (Nicht-Terminal): in Einführungszeichen

 Bilden zusammen die Grammatik

Reguläre Grammatiken
 Erlaubte Regeln haben folgenden Aufbau:
o A = a, B;
o A = a;
o A = ε („das leere Wort“)
 A und B = Nicht-Terminale
 A = beliebiges Terminal
 Es darf mehrere Regeln für Nicht-Terminal geben
 Alternativen „|“ sind auch erlaubt

Sprache
= Menge der Wörter, die von einer Grammatik erzeugt
wird Beispiel:

Welche Wörter enthält diese Sprache?

S = („0“, A) | („1“, B);


A = („1“, B) | ε;
B = („0“, A) | ε;
Sprache L = {„0“, „1“, „01“, „010“, „0101“, „10“, „101“, „1010“, … }

Endlicher Automat
 Wird aus einem Zustandsdiagramm hergeleitet (→ Zustandsdiagramm ist quasi
die grafische Darstellung eines endlichen Automaten)
 Endliche Menge von Zuständen
 Inhalt:
 S= State (Zustand)
 S0 ist Element von S (Start-Zutstand)
 Sigma
 Delta: Kreuzprodukt von S und Sigma ergibt neues S, Übergangsfunkion: was macht
der Automat?
 Teilmenge der Zustände, F (Final)
Endlichen Automaten erzeugen aus einem Zustandsdiagramm
• Endlicher Automat hat mehr Informationen las Zustandsdiagramm, Schleife mit Lang fehlt

Endlichen Automaten aus einer Grammatik erzeugen

 Fehlerzustand (hier: S3) muss nicht extra benannt werden (ergibt sich als logische Folgerung)
 Finaler Zustand wird unterstrichen
Verwendung eines Automaten zur Erkennung eines Wortes
 Möchte man wissen, ob ein Wort in einer Sprache gültig ist, muss man einfach die
einzelnen Schritte mit dem Automaten durchspielen (Einsatzgebiet z.B. bei der Prüfung von
Web-Formularen)

 Finaler Zustand
erreicht
→ Wort ist in der
Sprache vorhanden

 Fehlerzustand erreicht
→ Wort ist in der
Sprache nicht
vorhanden

Zustandsdiagramm aus einem Automaten erzeugen


 Zustände der oberen Zeile entnehmen, Ereignisse der linken Spalte
 Zustände durch die Ereignisse der Reihe nach verknüpfen
Algorithmen und deren Komplexität

Definition eines Algorithmus


Ungenaue Definition:

Algorithmus = eindeutige Handlungsvorschrift für die Lösung eines


Problems

Genauer:

Elemente eines Algorithmus


Komplexität von Algorithmen
Wie viele Verarbeiungsschritte sind für ein Wort der Länge n notwendig?
Für ein Wort der Län ge n benötigen wir genau n Schritte (Linear)

„Einfache“ Probleme

o Wir haben Lösung gefunden und trz steigernder Problemgröße werden wir in absehbarer Zeit
Lösung finden
Wie viel Zeit benötigen wir bei einem
größeren Problem?
o Linear: gleichmäßiger Anstieg: Doppelte
Problemgröße = doppelter Zeitaufwand
o Logarithmic: Computer wird bei größeren
Problemen schneller
o Constant laufzeit: egal ob kleines oder großes
Problem, Computer braucht immer gleiche
Schrittanzahl
o Quadratic: doppelt großes Problem, 4-mal
mehr Zeit
Beispiel für einen einfachen Algorithmus:

Komplexität des Algorithmus:


Für zwei Zahlen a, b benötigt der Algorithmus log(a*b) Schritte.

„Schwere“ Probleme
Beispiel: Planung einer Rundreise (12 Städte)

Um die beste Route zu bekommen müsste man ca. 480 Mio. möglichen Reisen
„durchprobieren“
(12! = 479.001.600 (Permutation))

→ Erschöpfende Suche (Klausurfrage!)

Erster Ansatz: Erschöpfende Suche (Klausurfrage!)


Erschöpfende Suche: Dieses systematische Durchprobieren nennt man „erschöpfende“ Suche, dass wir
die Menge der Möglichkeiten erschöpfend durchsuchen, also vollständig
1. Bestimme alle möglichen Reisen
a. Wie viele Resien (Permutationen zu N Städten gibt es?
b. (12! = 479.001.600 (Permutation))
i. N*(N-1)*(N-2)*2*1= N!
c. Fakultätsfunktion
2. Bestimme die Länge der Strecken
a. Mit Entfernungstabelle
3. Reise mit kleinster Strecke suchen
a. {Ri 2 perm({Si}) | length(Ri) minimal}

Fakultäts-Funktion

→Zeitaufwand für das Lösen ist deutlich höher (als bei


einfachen Problemen)

Zweiter Ansatz: Opportunistische Suche

Suche den schnellsten Vorteil→ Wir wählen immer die nächste Stadt vom Ausgangspunkt, die
noch nicht besucht wurde
 Algorithmus ist deutlich schneller
 Liefert nicht das optimale Ergebnis, aber eine gute Näherung (also durchaus praktikabel)
 Das optimale Ergebnis wird (wenn überhaupt) nur durch Zufall erreicht

Travelig Salesman
 Das Problem der optimalen Rundreise wird „Traveling Salesman“ genannt
 Hat eine hohe praktische Bedeutung (z.B. für Logistik)
 Man kennt keinen(!) Algorithmus, welcher das optimale Ergebnis ohne erschöpfende
Suche schafft (→Schweres Problem)
 Schweres Problem: nicht effizient lösbar, sondern wir müssen alle Lösungmöglichkeiten
zählen und die beste aussuchen
Man glaubt auch, dass es keinen solchen Algorithmus gibt (wenn auch ohne es beweisen
zu könnem
o

Das könnte Ihnen auch gefallen