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


  1. 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
  2. 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
  3. 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
  4. 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
  5. 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)
  6. Weitere C++-Konzepte:
  7. Hier noch ein Beispiel, wie man ein Feld von Datensätzen ("struct" Theorie) aufbauen kann: Klausuraufgabe, Lösung


2. Semester


  1. Übung:
  2. Übung:
  3. Ü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)
  4. Ü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
  5. Übung:
  6. Übung:
  7. Ü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)
  8. Ü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)
  9. Übung:
    • Einführung in die Objektorientierte Programmierung: Klassendeklaration, Klassenimplementation, Arbeit mit Objekten, Konstruktor und Destruktor
    • Skript
    • Aufgaben: in der Übung gestellt und gelöst
  10. Übung:
  11. Ü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)
  12. Übung:


Praktikumsunterlagen


  1. Praktikum
  2. Praktikum
  3. Praktikum
  4. Praktikum
  5. Praktikum
  6. Praktikum
  7. 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