
Präsenzübung zum Kurs Algorithmische Mathematik II
Dokumentinformationen
Autor | Averkov |
Schule | Otto-von-Guericke-Universit¨ at Magdeburg |
Fachrichtung | Algorithmische Mathematik |
Veröffentlichungsjahr | 2018 |
Ort | Magdeburg |
Dokumenttyp | Pr¨ asenz¨ ubung |
Sprache | German |
Seitenanzahl | 33 |
Format | |
Größe | 256.21 KB |
- Algorithmische Mathematik
- Programmierung
- Objektorientierte Programmierung
Zusammenfassung
I. Organisatorisches und Scheinkriterien
Das Dokument "Präsenzübung zum Kurs Algorithmische Mathematik II" umreißt die organisatorischen Rahmenbedingungen und Scheinkriterien für die zugehörige Übung. Algorithmische Mathematik II setzt aufbauend auf den Inhalten des ersten Teils fort. Die Scheinkriterien gliedern sich in zwei Teile. Teil 1 umfasst voraussichtlich 10 Übungsblätter, wobei mindestens 50% der Punkte erreicht werden müssen. Zusätzlich muss mindestens eine Übungsaufgabe korrekt an der Tafel präsentiert werden. Abgaben erfolgen in 2er-Gruppen. Üblicherweise bestehen die Übungsblätter aus einer Programmieraufgabe und drei Beweisaufgaben. Für die Programmieraufgaben gelten die Hinweise aus dem ersten Semester. Abgaben erfolgen per E-Mail an [email protected]. Teil 2 beinhaltet ein Programmierprojekt, welches Mitte/Ende Mai ausgegeben wird. Die Bearbeitung erfolgt in 3er-Gruppen, die Abgabe Mitte/Ende Juni. Für den Scheinerwerb ist eine erfolgreiche Präsentation des Programmierprojekts erforderlich.
1.1 Ablauf der Übung
Die erste Übung findet im Anschluss an die Vorlesung am 5. April statt. Übungsaufgaben werden immer eine Woche nach Abgabe besprochen. Die Übung am 1. Mai wird am 3. Mai als Großübung nachgeholt. Fragen können per E-Mail an [email protected] oder [email protected] gerichtet werden. Die Übungsblätter decken algorithmische Konzepte ab und fördern die praktische Anwendung der Mathematik. Die Programmieraufgaben vertiefen die Algorithmen in C++. Das Programmierprojekt bietet die Möglichkeit, algorithmische Lösungen für komplexere Problemstellungen zu entwickeln und zu implementieren.
II. Klassenkonzept in C
Das Dokument führt in das Klassenkonzept in C++ ein. Klassen ermöglichen die Definition eigener Datentypen, sogenannter Objekte. Diese Objekte enthalten nicht nur Daten, sondern auch Methoden zur Verarbeitung dieser Daten. C++ erweitert hiermit die Möglichkeiten der vordefinierten Datentypen wie int oder double. Beispiele für Klassen sind Auto, Hund, Matrix oder Kunde einer Bank. Klassen dienen der Strukturierung und Kapselung von Daten und Funktionen. Sie fördern die Wiederverwendbarkeit von Code und ermöglichen eine leichtere Erweiterbarkeit von Programmen. Die objektorientierte Programmierung mit Klassen unterstützt zudem einen parallelisierbaren Entwicklungsprozess.
2.1 Aufbau und Eigenschaften eines Objekts
Ein Objekt hat von außen zugängliche Eigenschaften (Attribute) und öffentlich definierte Funktionen (Methoden). Von innen verarbeitet es über Funktionsaufrufe eingehende Befehle (Botschaften) zur Änderung der Eigenschaften. Es besitzt "interne" Funktionen und Eigenschaften zur Wahrnehmung der äußeren Funktion. Am Beispiel eines Autos: Von außen sind Attribute wie Geschwindigkeit (lesend), Farbe und Leistung sichtbar. Methoden wie "beschleunigen" und "bremsen" verändern die Geschwindigkeit. Intern wird beim Aufruf von "beschleunigen" mehr Kraftstoff an den Motor geliefert, beim Aufruf von "bremsen" die Bremsanlage betätigt. Der externe Benutzer muss die interne Implementierung nicht kennen. Jedes Auto-Objekt muss die Methoden "beschleunigen" und "bremsen" verstehen. Der Aufruf ist von der konkreten Implementierung unabhängig. Auto-Objekte können innerhalb des Programms beliebig ausgetauscht werden.
III. Zeiger und Referenzen
Das Dokument behandelt Zeiger und Referenzen in C++. Ein Zeiger ist eine Variable, die eine Speicheradresse enthält. Der Datentyp des dort abgelegten Werts muss berücksichtigt werden. Referenzen sind Aliasnamen für existierende Variablen. Zeiger ermöglichen dynamische Speicherverwaltung. Referenzen bieten eine alternative Möglichkeit, mit Variablen zu arbeiten, ohne den Overhead von Zeigern. Beide Konzepte sind zentral für die C++-Programmierung und spielen eine wichtige Rolle in der Algorithmischen Mathematik. Sie ermöglichen effiziente Datenstrukturen und Algorithmen.
3.1 Konstruktor und Destruktor
Konstruktoren dienen der Initialisierung von Klassen. Sie sind Klassenmethoden ohne Rückgabewert und tragen den Namen der Klasse. Es gibt Standardkonstruktoren (ohne Argumente) und Parameterkonstruktoren (mit Argumenten). Der Compiler erzeugt automatisch einen Standardkonstruktor, falls keiner explizit definiert ist. Konstruktoren werden automatisch beim Erzeugen eines Objekts aufgerufen. Destruktoren geben dynamisch allozierten Speicherplatz der Klasse frei. Jede Klasse hat genau einen Destruktor. Er trägt den Namen der Klasse mit vorangestellter Tilde (~). Destruktoren haben keine Argumente und keinen Rückgabewert. Der Compiler erzeugt automatisch einen Standarddestruktor. Konstruktoren und Destruktoren sind essentiell für die Verwaltung des Lebenszyklus von Objekten.
Dokumentreferenz
- Algorithmische Mathematik 1