Autorentext
Hans Werner Lang studierte Informatik an der Universität Kiel und promovierte dort 1990 zu einem Thema aus dem Bereich "Parallele Architekturen und Algorithmen". Von 1994 bis 2017 war er Professor für Informatik an der Hochschule Flensburg und hat in dieser Zeit zahlreiche Vorlesungen zur Informatik gehalten.
Inhalt
Einleitung 19
Über dieses Buch 19
Konventionen in diesem Buch 19
Was Sie nicht lesen müssen 20
Törichte Annahmen über den Leser 20
Wie dieses Buch aufgebaut ist 21
Teil I: Programmieren 21
Teil II: Algorithmen 21
Teil III: Mathematik 21
Teil IV: Codierung 22
Teil V: Praktische Informatik 22
Teil VI: Theoretische Informatik 22
Teil VII: Top-Ten-Teil 23
Symbole, die in diesem Buch verwendet werden 23
Wie es weitergeht 24
Bitte und Danke sagen 24
Teil I: Programmieren 25
Kapitel 1 Programmieren in Java 27
Wertzuweisung 27
Variablen deklarieren 28
Wozu Datentypen? 28
Einen Wert zuweisen 29
Einen Wert überschreiben 30
Numerische Datentypen und Operationen 31
Typumwandlung bei numerischen Datentypen 32
Bedingte Anweisung 33
If-Anweisung 33
If-Else-Anweisung 34
Flussdiagramme zeichnen 35
Datentyp boolean 36
Boolesche Operationen 38
Kommentare 39
Zum Üben 39
Kapitel 2 Programmschleifen, Datenfolgen und Zeichenketten 41
While-Schleife 41
Fakultäten berechnen 43
Programmschleifen entwerfen 44
Iterationsschema aufstellen 44
Iterationsgleichungen ableiten 44
Regeln für das Aufstellen der Iterationsgleichungen 45
Iterationsgleichungen in eine While-Schleife umsetzen 45
For-Schleife 46
Arrays 47
Array erzeugen 47
Array durchlaufen 48
Strings 49
Strings verketten 50
String-Methoden anwenden 50
Zum Üben 52
Iterationsschema aufstellen und in While-Schleife umsetzen 52
Primzahlen mit dem Sieb des Eratosthenes 52
Kapitel 3 Funktionen 55
Funktionen definieren und aufrufen 55
Funktionsdefinition 56
Funktionsaufruf 57
So funktioniert ein Stack 58
Lokale Variablen benutzen 59
Funktionen mit mehreren Parametern 60
Funktionen ohne Parameter 61
Funktionen ohne Rückgabewert 61
Rekursive Funktionen 63
Ausführung einer rekursiven Funktion 63
Zum Üben 66
Ziehung der Lottozahlen 66
Kapitel 4 Objektorientiert programmieren 69
Klasse und Objekt 69
Attribute und Methoden 69
Kommentare und Benennungen 70
Bruchrechnung 70
Methoden 71
Rechenoperationen mit Brüchen 73
Bruch normalisieren 74
Bruch kürzen 75
Objektorientierung in Java 76
Zum Üben 76
Teil II: Algorithmen 77
Kapitel 5 Algorithmus 79
Typische Anweisungsformen 79
Algorithmisch denken 80
Kapitel 6 Binäre Suche 81
Suchstrategie 81
Logarithmus 82
Algorithmus binäre Suche 83
Zum Üben 84
Kapitel 7 Einfaches Sortieren 85
Minimum einer Datenfolge bestimmen 85
Selectionsort 86
Array sortieren 87
Programm 87
Zeitkomplexität 88
Analyse von Selectionsort 89
Kapitel 8 Zeitkomplexität von Algorithmen 91
Zeitkomplexität 92
Untere und obere Schranken 92
Schlechtester Fall 93
Asymptotische Analyse 93
O-Notation 94
Zum Üben 95
Kapitel 9 Mergesort 97
Divide-and-Conquer-Strategie 97
Ablauf von Mergesort 98
Verschmelze...