30
Übung zur Vorlesung Wissenschaftliches Rechnen — Wintersemester 2019/20 Mini Überblick zu C++ Marcel Koch 16. Oktober 2019 living knowledge WWU Münster WESTFÄLISCHE WILHELMS-UNIVERSITÄT MÜNSTER

Übung zur Vorlesung Wissenschaftliches Rechnen ... · g e WWU er WM ESTFÄLISCHEILHELMSÜNSTER-UNIVERSITÄT Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 2/12 Organisatorisches

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Übung zur Vorlesung Wissenschaftliches Rechnen ... · g e WWU er WM ESTFÄLISCHEILHELMSÜNSTER-UNIVERSITÄT Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 2/12 Organisatorisches

Übung zur Vorlesung WissenschaftlichesRechnen — Wintersemester 2019/20Mini Überblick zu C++

Marcel Koch 16. Oktober 2019living knowledgeWWU Münster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER

Page 2: Übung zur Vorlesung Wissenschaftliches Rechnen ... · g e WWU er WM ESTFÄLISCHEILHELMSÜNSTER-UNIVERSITÄT Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 2/12 Organisatorisches

livingknow

ledge

WWUMünster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 2 /12

Organisatorisches

I Ausgabe der Übungszettel jeweils am Donnerstag

I Abgabe Montags, pünktlich 10:00 Uhr, Briefkasten 112I Abgabe in festen Zweiergruppen (jetzt Partnersuche)

I Schriftliche Abgabe, Code zusätzlich per e-mailI Code muss kompilieren, sonst wird er nicht bewertetI Jeder sollte sich am programmieren beteiligen, nur so lernt man was

I Interesse an mattermost?I e-mail an [email protected]

Marcel Koch

Page 3: Übung zur Vorlesung Wissenschaftliches Rechnen ... · g e WWU er WM ESTFÄLISCHEILHELMSÜNSTER-UNIVERSITÄT Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 2/12 Organisatorisches

livingknow

ledge

WWUMünster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 2 /12

Organisatorisches

I Ausgabe der Übungszettel jeweils am Donnerstag

I Abgabe Montags, pünktlich 10:00 Uhr, Briefkasten 112I Abgabe in festen Zweiergruppen (jetzt Partnersuche)

I Schriftliche Abgabe, Code zusätzlich per e-mailI Code muss kompilieren, sonst wird er nicht bewertetI Jeder sollte sich am programmieren beteiligen, nur so lernt man was

I Interesse an mattermost?I e-mail an [email protected]

Marcel Koch

Page 4: Übung zur Vorlesung Wissenschaftliches Rechnen ... · g e WWU er WM ESTFÄLISCHEILHELMSÜNSTER-UNIVERSITÄT Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 2/12 Organisatorisches

livingknow

ledge

WWUMünster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 2 /12

Organisatorisches

I Ausgabe der Übungszettel jeweils am Donnerstag

I Abgabe Montags, pünktlich 10:00 Uhr, Briefkasten 112I Abgabe in festen Zweiergruppen (jetzt Partnersuche)

I Schriftliche Abgabe, Code zusätzlich per e-mailI Code muss kompilieren, sonst wird er nicht bewertetI Jeder sollte sich am programmieren beteiligen, nur so lernt man was

I Interesse an mattermost?I e-mail an [email protected]

Marcel Koch

Page 5: Übung zur Vorlesung Wissenschaftliches Rechnen ... · g e WWU er WM ESTFÄLISCHEILHELMSÜNSTER-UNIVERSITÄT Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 2/12 Organisatorisches

livingknow

ledge

WWUMünster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 2 /12

Organisatorisches

I Ausgabe der Übungszettel jeweils am Donnerstag

I Abgabe Montags, pünktlich 10:00 Uhr, Briefkasten 112I Abgabe in festen Zweiergruppen (jetzt Partnersuche)

I Schriftliche Abgabe, Code zusätzlich per e-mailI Code muss kompilieren, sonst wird er nicht bewertetI Jeder sollte sich am programmieren beteiligen, nur so lernt man was

I Interesse an mattermost?I e-mail an [email protected]

Marcel Koch

Page 6: Übung zur Vorlesung Wissenschaftliches Rechnen ... · g e WWU er WM ESTFÄLISCHEILHELMSÜNSTER-UNIVERSITÄT Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 2/12 Organisatorisches

livingknow

ledge

WWUMünster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 3 /12

Eingliederung C++

I Multiparadigmen SpracheI objektorientiert, generisch, funktional, ...

I C++ Code muss kompiliert werdenI Hardwarenah und hohes AbstraktionsniveauI Stark typisiertI Manuelle Ressourcenverwaltung

Marcel Koch

Page 7: Übung zur Vorlesung Wissenschaftliches Rechnen ... · g e WWU er WM ESTFÄLISCHEILHELMSÜNSTER-UNIVERSITÄT Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 2/12 Organisatorisches

livingknow

ledge

WWUMünster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 3 /12

Eingliederung C++

I Multiparadigmen SpracheI objektorientiert, generisch, funktional, ...

I C++ Code muss kompiliert werdenI Hardwarenah und hohes AbstraktionsniveauI Stark typisiertI Manuelle Ressourcenverwaltung

Marcel Koch

Page 8: Übung zur Vorlesung Wissenschaftliches Rechnen ... · g e WWU er WM ESTFÄLISCHEILHELMSÜNSTER-UNIVERSITÄT Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 2/12 Organisatorisches

livingknow

ledge

WWUMünster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 3 /12

Eingliederung C++

I Multiparadigmen SpracheI objektorientiert, generisch, funktional, ...

I C++ Code muss kompiliert werden

I Hardwarenah und hohes AbstraktionsniveauI Stark typisiertI Manuelle Ressourcenverwaltung

Marcel Koch

Page 9: Übung zur Vorlesung Wissenschaftliches Rechnen ... · g e WWU er WM ESTFÄLISCHEILHELMSÜNSTER-UNIVERSITÄT Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 2/12 Organisatorisches

livingknow

ledge

WWUMünster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 3 /12

Eingliederung C++

I Multiparadigmen SpracheI objektorientiert, generisch, funktional, ...

I C++ Code muss kompiliert werdenI Hardwarenah und hohes Abstraktionsniveau

I Stark typisiertI Manuelle Ressourcenverwaltung

Marcel Koch

Page 10: Übung zur Vorlesung Wissenschaftliches Rechnen ... · g e WWU er WM ESTFÄLISCHEILHELMSÜNSTER-UNIVERSITÄT Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 2/12 Organisatorisches

livingknow

ledge

WWUMünster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 3 /12

Eingliederung C++

I Multiparadigmen SpracheI objektorientiert, generisch, funktional, ...

I C++ Code muss kompiliert werdenI Hardwarenah und hohes AbstraktionsniveauI Stark typisiert

I Manuelle Ressourcenverwaltung

Marcel Koch

Page 11: Übung zur Vorlesung Wissenschaftliches Rechnen ... · g e WWU er WM ESTFÄLISCHEILHELMSÜNSTER-UNIVERSITÄT Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 2/12 Organisatorisches

livingknow

ledge

WWUMünster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 3 /12

Eingliederung C++

I Multiparadigmen SpracheI objektorientiert, generisch, funktional, ...

I C++ Code muss kompiliert werdenI Hardwarenah und hohes AbstraktionsniveauI Stark typisiertI Manuelle Ressourcenverwaltung

Marcel Koch

Page 12: Übung zur Vorlesung Wissenschaftliches Rechnen ... · g e WWU er WM ESTFÄLISCHEILHELMSÜNSTER-UNIVERSITÄT Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 2/12 Organisatorisches

livingknow

ledge

WWUMünster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 4 /12

Objektorientiert

1 c l a s s E x p l i c i t E u l e r 1 D {us ing F = std : : f u n c t i o n < double ( double ) > ;

3 p u b l i c :E x p l i c i t E u l e r ( F f _ ) : f ( f _ ) { }

5

vo i d apply ( double t , double dt , double y_old , double& y_o ld ) {7 // compute e x p l i c i t e u l e r step

}9 p r i v a t e :

F f ;11 }

Marcel Koch

Page 13: Übung zur Vorlesung Wissenschaftliches Rechnen ... · g e WWU er WM ESTFÄLISCHEILHELMSÜNSTER-UNIVERSITÄT Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 2/12 Organisatorisches

livingknow

ledge

WWUMünster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 5 /12

Generisch

1 template < typename Vector >c l a s s E x p l i c i t E u l e r {

3 using F = std : : f u n c t i o n < V e c t o r ( V e c t o r ) > ;p u b l i c :

5 E x p l i c i t E u l e r ( F f _ ) : f ( f _ ) { }

7 vo i d apply ( double t , double dt , V e c t o r& y_old , V e c t o r& y_o ld ) {// compute e x p l i c i t e u l e r step

9 }p r i v a t e :

11 F f ;}

13

using V e c t o r = std : : a r r a y < double , 2 > ;

Marcel Koch

Page 14: Übung zur Vorlesung Wissenschaftliches Rechnen ... · g e WWU er WM ESTFÄLISCHEILHELMSÜNSTER-UNIVERSITÄT Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 2/12 Organisatorisches

livingknow

ledge

WWUMünster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 6 /12

Funktional

using V e c t o r = std : : a r r a y < double , 1 > ;2

double c = 0 . 1 ;4 auto f = [ ] ( V e c t o r& v ) { r e t u r n c ∗ v ; } ;

6 E x p l i c i t E u l e r method ( f ) ;

us ing Vector2D = std : : a r r a y < double , 2 > ;2 std : : v e c t o r < Vector2D > data ;

/∗ i n i t i a l i z e data ∗/4 std : : s o r t ( begin ( data ) , end ( data ) ,

[ ] ( const Vector2D& a , const Vector2D& b )6 { r e t u r n a [ 0 ] < b [ 0 ] | | ( a [ 0 ] == b [ 0 ] && a [ 1 ] < b [ 1 ] ) ; } ) ;

Marcel Koch

Page 15: Übung zur Vorlesung Wissenschaftliches Rechnen ... · g e WWU er WM ESTFÄLISCHEILHELMSÜNSTER-UNIVERSITÄT Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 2/12 Organisatorisches

livingknow

ledge

WWUMünster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 7 /12

Standard Template Library

ContainersI ArrayI VectorI (unordered_)Map/SetI List

Marcel Koch

Page 16: Übung zur Vorlesung Wissenschaftliches Rechnen ... · g e WWU er WM ESTFÄLISCHEILHELMSÜNSTER-UNIVERSITÄT Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 2/12 Organisatorisches

livingknow

ledge

WWUMünster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 7 /12

Standard Template Library

ContainersI ArrayI VectorI (unordered_)Map/SetI List

UtilitiesI Pair/TupleI functionI smart pointer

(shared/unique_ptr)

Marcel Koch

Page 17: Übung zur Vorlesung Wissenschaftliches Rechnen ... · g e WWU er WM ESTFÄLISCHEILHELMSÜNSTER-UNIVERSITÄT Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 2/12 Organisatorisches

livingknow

ledge

WWUMünster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 8 /12

Standard Template Library

Algorithms

I findI all_ofI maxI copy

Marcel Koch

Page 18: Übung zur Vorlesung Wissenschaftliches Rechnen ... · g e WWU er WM ESTFÄLISCHEILHELMSÜNSTER-UNIVERSITÄT Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 2/12 Organisatorisches

livingknow

ledge

WWUMünster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 8 /12

Standard Template Library

Algorithms

I findI all_ofI maxI copy

I sortI rotateI transformI accumulate

Marcel Koch

Page 19: Übung zur Vorlesung Wissenschaftliches Rechnen ... · g e WWU er WM ESTFÄLISCHEILHELMSÜNSTER-UNIVERSITÄT Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 2/12 Organisatorisches

livingknow

ledge

WWUMünster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 9 /12

C++ 11

I auto Deklaration

I Range based for loop for(auto r: rechtecke)

I lambda functions

I constructor delegation

I nullptr

I Move constructor Class(Class&& o)

Marcel Koch

Page 20: Übung zur Vorlesung Wissenschaftliches Rechnen ... · g e WWU er WM ESTFÄLISCHEILHELMSÜNSTER-UNIVERSITÄT Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 2/12 Organisatorisches

livingknow

ledge

WWUMünster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 9 /12

C++ 11

I auto Deklaration

I Range based for loop for(auto r: rechtecke)

I lambda functions

I constructor delegation

I nullptr

I Move constructor Class(Class&& o)

Marcel Koch

Page 21: Übung zur Vorlesung Wissenschaftliches Rechnen ... · g e WWU er WM ESTFÄLISCHEILHELMSÜNSTER-UNIVERSITÄT Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 2/12 Organisatorisches

livingknow

ledge

WWUMünster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 9 /12

C++ 11

I auto Deklaration

I Range based for loop for(auto r: rechtecke)

I lambda functions

I constructor delegation

I nullptr

I Move constructor Class(Class&& o)

Marcel Koch

Page 22: Übung zur Vorlesung Wissenschaftliches Rechnen ... · g e WWU er WM ESTFÄLISCHEILHELMSÜNSTER-UNIVERSITÄT Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 2/12 Organisatorisches

livingknow

ledge

WWUMünster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 9 /12

C++ 11

I auto Deklaration

I Range based for loop for(auto r: rechtecke)

I lambda functions

I constructor delegation

I nullptr

I Move constructor Class(Class&& o)

Marcel Koch

Page 23: Übung zur Vorlesung Wissenschaftliches Rechnen ... · g e WWU er WM ESTFÄLISCHEILHELMSÜNSTER-UNIVERSITÄT Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 2/12 Organisatorisches

livingknow

ledge

WWUMünster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 9 /12

C++ 11

I auto Deklaration

I Range based for loop for(auto r: rechtecke)

I lambda functions

I constructor delegation

I nullptr

I Move constructor Class(Class&& o)

Marcel Koch

Page 24: Übung zur Vorlesung Wissenschaftliches Rechnen ... · g e WWU er WM ESTFÄLISCHEILHELMSÜNSTER-UNIVERSITÄT Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 2/12 Organisatorisches

livingknow

ledge

WWUMünster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 9 /12

C++ 11

I auto Deklaration

I Range based for loop for(auto r: rechtecke)

I lambda functions

I constructor delegation

I nullptr

I Move constructor Class(Class&& o)

Marcel Koch

Page 25: Übung zur Vorlesung Wissenschaftliches Rechnen ... · g e WWU er WM ESTFÄLISCHEILHELMSÜNSTER-UNIVERSITÄT Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 2/12 Organisatorisches

livingknow

ledge

WWUMünster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 10 /12

Ressourcen

I http://www.cppreference.com

I C++ core guidelines

I http://www.isocpp.com

I Boost C++ Libraries

Marcel Koch

Page 26: Übung zur Vorlesung Wissenschaftliches Rechnen ... · g e WWU er WM ESTFÄLISCHEILHELMSÜNSTER-UNIVERSITÄT Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 2/12 Organisatorisches

livingknow

ledge

WWUMünster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 11 /12

Was braucht man?

I TexteditorI Vim, Emacs, Sublime, Atom, VSCode, XCode, ...

I KompilerI g++, clang, icc(, msvc)

I Buildsystem?I Make, CMake, ...

I alles in einem: IDEI CLion, Eclipse, Code::Blocks, QtCreator(, Visual Studio)

Marcel Koch

Page 27: Übung zur Vorlesung Wissenschaftliches Rechnen ... · g e WWU er WM ESTFÄLISCHEILHELMSÜNSTER-UNIVERSITÄT Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 2/12 Organisatorisches

livingknow

ledge

WWUMünster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 11 /12

Was braucht man?

I TexteditorI Vim, Emacs, Sublime, Atom, VSCode, XCode, ...

I KompilerI g++, clang, icc(, msvc)

I Buildsystem?I Make, CMake, ...

I alles in einem: IDEI CLion, Eclipse, Code::Blocks, QtCreator(, Visual Studio)

Marcel Koch

Page 28: Übung zur Vorlesung Wissenschaftliches Rechnen ... · g e WWU er WM ESTFÄLISCHEILHELMSÜNSTER-UNIVERSITÄT Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 2/12 Organisatorisches

livingknow

ledge

WWUMünster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 11 /12

Was braucht man?

I TexteditorI Vim, Emacs, Sublime, Atom, VSCode, XCode, ...

I KompilerI g++, clang, icc(, msvc)

I Buildsystem?I Make, CMake, ...

I alles in einem: IDEI CLion, Eclipse, Code::Blocks, QtCreator(, Visual Studio)

Marcel Koch

Page 29: Übung zur Vorlesung Wissenschaftliches Rechnen ... · g e WWU er WM ESTFÄLISCHEILHELMSÜNSTER-UNIVERSITÄT Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 2/12 Organisatorisches

livingknow

ledge

WWUMünster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 11 /12

Was braucht man?

I TexteditorI Vim, Emacs, Sublime, Atom, VSCode, XCode, ...

I KompilerI g++, clang, icc(, msvc)

I Buildsystem?I Make, CMake, ...

I alles in einem: IDEI CLion, Eclipse, Code::Blocks, QtCreator(, Visual Studio)

Marcel Koch

Page 30: Übung zur Vorlesung Wissenschaftliches Rechnen ... · g e WWU er WM ESTFÄLISCHEILHELMSÜNSTER-UNIVERSITÄT Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 2/12 Organisatorisches

livingknow

ledge

WWUMünster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen — WS 2019/20 12 /12

Getting started

I Laden Sie das Programm „Hallo Welt“ von der Vorlesungshomepage

I Öffnen Sie es (Texteditor/Entwicklungsumgebung Ihrer Wahl)

I Kompilieren Sie es, beispielsweise durchg++ -o hallowelt hallowelt.cc

I Führen Sie das Programm aus

I Bearbeiten Sie nun die Anwesenheitsaufgaben

Marcel Koch