Kurs: Grundlagen der Informatik
Entstanden aus einer Lehrveranstaltung der Technische
Universität Chemnitz, Fakultät
für Informatik
Allgemeine Informationen
- Zugehörige
Vorlesungsseite:
- Übungsleiter:
- Marcel Karras (toka at freebits dot de)
- C++-Entwicklungsumgebungen:
- Hinweis:
Dieser Kurs entstand aus meiner Übungsreihe zur Vorlesung
"Grundlagen der Informatik" und kann zum Selbststudium und/oder
Übung der vermittelten Inhalte genutzt werden. Für Fragen und
Anregungen stehe ich weiterhin zur Verfügung.
1. Semester
- Einführung:
- Von-Neumann-Architektur,
Zahlensysteme, Konvertieren von
Zahlensystemen, Addition und Subtraktion im Dualsystem,
Betriebssystemkonzept am Beispiel von Linux
- Skript
- Aufgaben:
Berechnungen
verschiedener Zahlensysteme
- Lösung
- Lernen
einer neuen Sprache:
- Def. Algorithmus,
Def. Programm, Aufbau eines C++
Programms, Ein- und Ausgabe mit Streams, Variablen und Konstanten,
Elementare Datentypen, Darstellungsformen von Konstanten, Logische
Operatoren
- Skript
- Aufgaben:
Programm zur
Summenbildung zweier Zahlen, Bildung des absoluten Betrages über
if-Kontrollstruktur (selbstständiges Adaptieren vom Beispiel)
- Lösung
- Kontrollstrukturen:
- Einfache
Anweisungen, Leere
Anweisungen, Block/Verbund-Anweisungen, Kontrollstrukturen,
if-else-Verzweigung, else-if-Ketten, switch-Auswahl
- Skript
- Aufgaben:
Sortieren von drei Zahlen
mit if-else-Anweisungen, Taschenrechner für
Grundrechenoperationen, Elektronische Bestellannahme für ein
Café
- Lösung
- Zyklen
und Felder:
- while-Schleife,
do-while-Schleife, for-Schleife, Schleifensprünge mit break und
continue, Kommaoperator, Aufgabe "Messwerte": Problemstellung, Analyse,
Grobentwurf, Implementierung
- Skript
- Aufgaben:
Fakultät einer Zahl,
Approximation einer Summe bis zu einer gegebenen Grenze, Feld von
Werten einlesen und Maximumwert/-position suchen
- Lösung
- Funktionen
in C++:
- Unterprogramme,
Funktionen, Bedeutung
von Funktionen in C++, Definition einer Funktion, Prototyp einer
Funktion, Praxisbezug, Übergabe von Funktionsparametern, Call By
Value, Call By Reference, Vergleich
- Skript
- Aufgaben:
Funktion "int sign (int
z)" zur Ermittlung des Vorzeichencharakters einer Zahl, Funktion "int
quersumme3 (int z)" zur Berechnung der Quersummer einer 3-stelligen
positiven Zahl, Spiel "NIM", Funktion zur Berechnung der ganzzahligen
Division mit Subtraktionsoperationen, Funktion zur Berechnung des
Ganzzahl- und Rest-Teils der Division zweier ganzer Zahlen bzw.
Erweiterung um Fehlerbehandlung
- Merkblatt: Call-By-Value und
Call-By-Reference
- Merkblatt: Datei Ein- und
Ausgaben
- Musterklausur
aus dem Jahr 2005
- Lösung
der Augabe 4 der Musterklausur
- Komplexaufgabe: Spiel "NIM"
für 2
Spieler als C++-Programm (Lösung)
- Weitere
C++-Konzepte:
- Hier
noch ein Beispiel, wie man ein Feld von
Datensätzen ("struct"
Theorie) aufbauen kann: Klausuraufgabe,
Lösung
2. Semester
- Übung:
- Übung:
- Übung:
- Zusammenfassung von Referenzen und Zeigern, Zusammenhang
zwischen Zeigervariable und Feldindexierung
- Skript
- Aufgaben:
Verstehenlernen von Zeigerdarstellung und Feldindexierung,
Implementation des SelectionSort-Algorithmus mit Zeiger- und
Feldindex-Darstellung
- Lösungen: Selection Sort (Quelltext)
- Übung:
- elementare Wiederholungsfragen zum Stoff, dynamische
Speicherreservierung mit "new" und "delete"
- Skript
- Aufgabe:
Anwenden der bisherigen Inhalte am "Sieb des Eratosthenes" zum
Ermitteln der Primzahlen zwischen 2 bis n
- Lösung: Sieb
des Eratosthenes
- Übung:
- Übung:
- Übung:
- Einführung in einfach verkettete Listen: Erzeugen
einer Liste, Löschen einer Liste, Verwendung von Call-By-Reference
für Zeiger, Realisierung der Float-Vektor-Funktionsreihe der
5.Übung mit einer einfach verketteten Liste (Programm-Gerüst, Quelltext)
- Skript
- Aufgaben:
Funktion zum Anhängen eines Elements an eine Liste und ggf.
erforderlicher Listeninitialisierung, Suchen eines Listenelements
- Lösung: Fertiges Programm (Quelltext)
- Übung:
- Einführung in zweifach verkettete Listen: Aufbau und
Struktur, Erzeugen einer Liste, Bewegung durch zweifach verkettete
Liste (Beispielprogramm)
- Skript
- Aufgaben:
Klausuraufgabenkomplex "Dynamische Datenstrukturen" aus dem
Sommersemester 2000 - graf. Darstellung, Löschfunktion, Ausgabe
- Lösung: Fertiges Programm (Quelltext)
- Übung:
- Einführung in die Objektorientierte Programmierung:
Klassendeklaration, Klassenimplementation, Arbeit mit Objekten,
Konstruktor und Destruktor
- Skript
- Aufgaben:
in der Übung gestellt und gelöst
- Übung:
- Übung:
- Operatoren aus einem anderen Blickwinkel, Überladen
von Operatoren einer Klasse mit C++, Ausgewählte Operatormethoden
an Beispielen
- Skript
- Aufgaben:
Erweiterung der Matrix-Klasse der 10. Übung um Operatormethoden
- Lösung: Fertiges
Programm (Quelltext)
- Übung:
Praktikumsunterlagen
- Praktikum
- Praktikum
- Praktikum
- Praktikum
- Praktikum
- Praktikum
- Praktikum
- Aufgaben:
Binomialkoeffizienten,
Pascal'sches Dreieck, Berechnung von Binomen n-ter Ordnung, Anzahl der
Ziehungskombinationen vom"6 aus 49"-Lotto
- Lösung (Quellcode)
Marcel Karras, 11. April 2008
|