Zeit/Ort: | Mo 16 - 18 Uhr, HS Weismann-Haus, Albertstr. 21a |
Dozent: | Prof. Dr. P. W. Dondl |
Sprechstunde Dozent: | Mo 12:15-13:45 Uhr, Zi. 217, Hermann-Herder-Str. 10 |
Tutorium: | Dr. Keith M. P. Anguige |
Sprechstunde Assistent: | Di 10-12 Uhr, Zi. 206, Hermann-Herder-Str. 10 |
Die Veranstaltung bietet eine Einführung in die wissenschaftliche Programmierung mit theoretischen und praktischen Einheiten. Schwerpunkte der Veranstaltung sind:
Die Inhalte werden anhand von Beispielen aus den Naturwissenschaften in der Programmiersprache C++ sowie in MATLAB erarbeitet. Die erworbenen Kenntnisse werden anhand von Übungen und Hausaufgaben praktisch erprobt und vertieft.
Am einfachsten: cpp.sh. Hier können Sie einfach ein Programm in das Fenster eintippen (ich empfehle, das Programm in einem Texteditor zu schreiben und dann in das Fenster mittels Copy/Paste zu übertragen). Unter Linux sollte gcc installiert sein, dann können Sie mit dem Kommando g++ wie in der Vorlesung diskutiert Ihre Programme übersetzen. Auf dem Mac müssen Sie das kostenlose XCode (aus dem AppStore) installieren. Unter Windows empfehle ich die Nutzung von cpp.sh oder (für etwas erfahrenere Windows-Nutzer) eine Installation von mingw-64 (Downloadlink). Nach der Installation können Sie g++ (eventuell mit Angabe das Installationspfades, Sie sollten also einen PATH setzen) wie unter Linux auf der Kommandozeile aufrufen.
Es ist dringend empfohlen, dass Sie eine MATLAB-Lizenz bekommen. MATLAB kostenlos für Studenten (Student Option). Mit dieser Lizenz können Sie MATLAB auf Ihrem eigenen Rechner installieren oder via MATLAB Online direkt im Webbrowser verwenden.
Es gibt auch von Mathworks direkt ein MATLAB Tutorial.
Eine sehr gute freie Alternative zu MATLAB ist GNU Octave.
Informationen zur Arrayindizierung
Beispielprogramm zur Arrayindizierung
test_movie.m
test_avi.m
vecexample.m
hello.cpp
greet.cpp
string_and_int.cpp
while.cpp
for.cpp
pointertest.cpp
point.hpp, point.cpp, point_test.cpp
Blatt | Ausgabe | Abgabe |
Blatt 1 | 5.5.2017 | 17.5.2017 |
Blatt 2 | 11.5.2017 | 24.5.2017 |
Blatt 3 | 20.5.2017 | 31.5.2017 |
Blatt 4 | 26.5.2017 | 14.6.2017 |
Blatt 5 | 9.6.2017 | 21.6.2017 |
Blatt 6 | 15.6.2017 | 28.6.2017 |
Blatt 7 | 24.6.2017 | 5.7.2017 |
Blatt 8 | 3.7.2017 | 12.7.2017 |
Blatt 9 | 10.7.2017 | 19.7.2017 |
Aufgabe 12: Es sollte $v_{ij} = (x_i)^j$ heißen.
Aufgabe 22: Es ist eventuell nützlich einen Vektor v zu sortieren. Das geht mit "std::sort(v.begin(), v.end());" nach "#include <algorithm>". Probieren Sie es aus. Eine einfachere Möglichkeit Zufallszahlen zu generieren ist hier zu finden. Hier ein Beispielprogramm. Compilieren mit "g++ -std=c++11 -o rand_and_sort rand_and_sort.cpp" oder über cpp.sh.
Aufgabe 27: Die zweite Codezeile sollte "std::vector<int> v(u.size());" lauten.
Compilieren von Programmen: Falls "g++ -o dateiname dateiname.cpp" nicht funktioniert, versuchen Sie "g++ -std=c++11 -o dateiname dateiname.cpp". Mehr dazu in der Vorlesung am 10. Juli.
Programm door.m.
Programm elstring.m.
Gruppe | Zeit | Ort | Tutor |
1 | Di 14 - 16 Uhr | Raum 201 (CIP-Pool), Hermann-Herder-Str. 10 | Steve Wolff-Vorbeck |
2 | Di 16 - 18 Uhr | Raum 201 (CIP-Pool), Hermann-Herder-Str. 10 | Johannes Daube |
3 | Mi 14 - 16 Uhr | Raum 201 (CIP-Pool), Hermann-Herder-Str. 10 | Johannes Daube |
4 | Fr 12 - 14 Uhr | Raum 201 (CIP-Pool), Hermann-Herder-Str. 10 | Benjamin Jäger |