95
Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben WWU Münster WESTFÄLISCHE WILHELMS-UNIVERSITÄT MÜNSTER

Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

Einführung in die Programmierung mit C++Münster, 16.03.2015 - 20.03.2015

Michael Schaefer WS 2014/15wissen lebenWWU Münster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER

Page 2: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 2 /204

EinführungGrundlagenObjektorientierte Programmierung

Übersicht

Themen:I Generelle Einführung

I Grundlagen in C++I Objektorientierte Programmierung in C++

,,

Michael Schaefer

Page 3: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 2 /204

EinführungGrundlagenObjektorientierte Programmierung

Übersicht

Themen:I Generelle EinführungI Grundlagen in C++

I Objektorientierte Programmierung in C++

,,

Michael Schaefer

Page 4: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 2 /204

EinführungGrundlagenObjektorientierte Programmierung

Übersicht

Themen:I Generelle EinführungI Grundlagen in C++I Objektorientierte Programmierung in C++

,,

Michael Schaefer

Page 5: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 3 /204

Eine generelle Einführung

,,

Michael Schaefer Einführung

Page 6: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 4 /204

EinführungGrundlagenObjektorientierte Programmierung

Unix Befehle

Zuerst: Terminal öffnen!

Unter Ubuntu:

Dash→ Terminal

,,

Michael Schaefer Einführung → Unix Befehle

Page 7: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 4 /204

EinführungGrundlagenObjektorientierte Programmierung

Unix Befehle

Zuerst: Terminal öffnen!Unter Ubuntu:

Dash→ Terminal

,,

Michael Schaefer Einführung → Unix Befehle

Page 8: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 5 /204

EinführungGrundlagenObjektorientierte Programmierung

Unix Befehle

Eingabe im geöffneten Terminal:

I ls

zeigt Inhalt des aktuellen Verzeichnisses

I mkdir praktikum

erstellt Verzeichnis mit dem Namen ’praktikum’

,,

Michael Schaefer Einführung → Unix Befehle

Page 9: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 5 /204

EinführungGrundlagenObjektorientierte Programmierung

Unix Befehle

Eingabe im geöffneten Terminal:I ls

zeigt Inhalt des aktuellen VerzeichnissesI mkdir praktikum

erstellt Verzeichnis mit dem Namen ’praktikum’

,,

Michael Schaefer Einführung → Unix Befehle

Page 10: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 5 /204

EinführungGrundlagenObjektorientierte Programmierung

Unix Befehle

Eingabe im geöffneten Terminal:I ls

zeigt Inhalt des aktuellen Verzeichnisses

I mkdir praktikum

erstellt Verzeichnis mit dem Namen ’praktikum’

,,

Michael Schaefer Einführung → Unix Befehle

Page 11: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 5 /204

EinführungGrundlagenObjektorientierte Programmierung

Unix Befehle

Eingabe im geöffneten Terminal:I ls

zeigt Inhalt des aktuellen VerzeichnissesI mkdir praktikum

erstellt Verzeichnis mit dem Namen ’praktikum’

,,

Michael Schaefer Einführung → Unix Befehle

Page 12: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 5 /204

EinführungGrundlagenObjektorientierte Programmierung

Unix Befehle

Eingabe im geöffneten Terminal:I ls

zeigt Inhalt des aktuellen VerzeichnissesI mkdir praktikum

erstellt Verzeichnis mit dem Namen ’praktikum’

,,

Michael Schaefer Einführung → Unix Befehle

Page 13: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 6 /204

EinführungGrundlagenObjektorientierte Programmierung

Das erste Programm:1. cd praktikum

2. nano hallowelt.cc

3. #include<iostream>

//Kommentare im Code

int main(){

std::cout << "Hallo Welt!" <<std::endl;return 0;

}

4. g++ -o hallowelt hallowelt.cc5. ./hallowelt

,,

Michael Schaefer Einführung → Unix Befehle

Page 14: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 6 /204

EinführungGrundlagenObjektorientierte Programmierung

Das erste Programm:1. cd praktikum2. nano hallowelt.cc

3. #include<iostream>

//Kommentare im Code

int main(){

std::cout << "Hallo Welt!" <<std::endl;return 0;

}

4. g++ -o hallowelt hallowelt.cc5. ./hallowelt

,,

Michael Schaefer Einführung → Unix Befehle

Page 15: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 6 /204

EinführungGrundlagenObjektorientierte Programmierung

Das erste Programm:1. cd praktikum2. nano hallowelt.cc

3. #include<iostream>

//Kommentare im Code

int main(){std::cout << "Hallo Welt!" <<std::endl;return 0;

}

4. g++ -o hallowelt hallowelt.cc5. ./hallowelt

,,

Michael Schaefer Einführung → Unix Befehle

Page 16: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 6 /204

EinführungGrundlagenObjektorientierte Programmierung

Das erste Programm:1. cd praktikum2. nano hallowelt.cc

3. #include<iostream>

//Kommentare im Code

int main(){std::cout << "Hallo Welt!" <<std::endl;return 0;

}

4. g++ -o hallowelt hallowelt.cc

5. ./hallowelt

,,

Michael Schaefer Einführung → Unix Befehle

Page 17: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 6 /204

EinführungGrundlagenObjektorientierte Programmierung

Das erste Programm:1. cd praktikum2. nano hallowelt.cc

3. #include<iostream>

//Kommentare im Code

int main(){std::cout << "Hallo Welt!" <<std::endl;return 0;

}

4. g++ -o hallowelt hallowelt.cc5. ./hallowelt

,,

Michael Schaefer Einführung → Unix Befehle

Page 18: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 6 /204

EinführungGrundlagenObjektorientierte Programmierung

Das erste Programm:1. cd praktikum2. nano hallowelt.cc

3. #include<iostream>

//Kommentare im Codeint main(){std::cout << "Hallo Welt!" <<std::endl;return 0;

}

4. g++ -o hallowelt hallowelt.cc5. ./hallowelt

,,

Michael Schaefer Einführung → Unix Befehle

Page 19: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 7 /204

EinführungGrundlagenObjektorientierte Programmierung

Output:

Hallo Welt!

,,

Michael Schaefer Einführung → Unix Befehle

Page 20: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 8 /204

EinführungGrundlagenObjektorientierte Programmierung

Datentypen. Unser Programm:

#include<iostream>

int main(){

int ganzzahl;ganzzahl = 5;//So gehen Notizen - Zeile wird ignoriert!//Macht euch Notizen in eurem Programm./∗Alternativ kann man so auchgleich mehrere Zeilen auskommentieren.∗/

std::cout << "Hallo Welt!" << std::endl;return 0;

}

Output: Hallo Welt!,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 21: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 8 /204

EinführungGrundlagenObjektorientierte Programmierung

Datentypen. Unser Programm:

#include<iostream>

int main(){

int ganzzahl;

ganzzahl = 5;//So gehen Notizen - Zeile wird ignoriert!//Macht euch Notizen in eurem Programm./∗Alternativ kann man so auchgleich mehrere Zeilen auskommentieren.∗/

std::cout << "Hallo Welt!" << std::endl;return 0;

}

Output: Hallo Welt!,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 22: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 8 /204

EinführungGrundlagenObjektorientierte Programmierung

Datentypen. Unser Programm:

#include<iostream>

int main(){

int ganzzahl;ganzzahl = 5;

//So gehen Notizen - Zeile wird ignoriert!//Macht euch Notizen in eurem Programm./∗Alternativ kann man so auchgleich mehrere Zeilen auskommentieren.∗/

std::cout << "Hallo Welt!" << std::endl;return 0;

}

Output: Hallo Welt!,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 23: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 8 /204

EinführungGrundlagenObjektorientierte Programmierung

Datentypen. Unser Programm:

#include<iostream>

int main(){

int ganzzahl;ganzzahl = 5;//So gehen Notizen - Zeile wird ignoriert!

//Macht euch Notizen in eurem Programm./∗Alternativ kann man so auchgleich mehrere Zeilen auskommentieren.∗/

std::cout << "Hallo Welt!" << std::endl;return 0;

}

Output: Hallo Welt!,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 24: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 8 /204

EinführungGrundlagenObjektorientierte Programmierung

Datentypen. Unser Programm:

#include<iostream>

int main(){

int ganzzahl;ganzzahl = 5;//So gehen Notizen - Zeile wird ignoriert!//Macht euch Notizen in eurem Programm.

/∗Alternativ kann man so auchgleich mehrere Zeilen auskommentieren.∗/

std::cout << "Hallo Welt!" << std::endl;return 0;

}

Output: Hallo Welt!,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 25: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 8 /204

EinführungGrundlagenObjektorientierte Programmierung

Datentypen. Unser Programm:

#include<iostream>

int main(){

int ganzzahl;ganzzahl = 5;//So gehen Notizen - Zeile wird ignoriert!//Macht euch Notizen in eurem Programm./∗Alternativ kann man so auchgleich mehrere Zeilen auskommentieren.∗/std::cout << "Hallo Welt!" << std::endl;return 0;

}

Output: Hallo Welt!,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 26: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 9 /204

EinführungGrundlagenObjektorientierte Programmierung

Datentypen. Unser Programm:

#include<iostream>

int main(){

int ganzzahl;ganzzahl = 5;

std::cout << "Hallo Welt!" << std::endl;return 0;

}

Output: Hallo Welt!,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 27: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 10 /204

EinführungGrundlagenObjektorientierte Programmierung

Datentypen. Unser Programm:

#include<iostream>

int main(){

int ganzzahl = 5;

std::cout << "Hallo Welt!" << std::endl;return 0;

}

Output: Hallo Welt!,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 28: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 11 /204

EinführungGrundlagenObjektorientierte Programmierung

Datentypen. Unser Programm:

#include<iostream>

int main(){

int ganzzahl = 5;double reellezahl = -0.7;

char zeichen = 'A';

std::cout << "Hallo Welt!" << std::endl;return 0;

}

Output: Hallo Welt!,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 29: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 11 /204

EinführungGrundlagenObjektorientierte Programmierung

Datentypen. Unser Programm:

#include<iostream>

int main(){

int ganzzahl = 5;double reellezahl = -0.7;

char zeichen = 'A';

std::cout << "Hallo Welt!" << std::endl;return 0;

}

Output: Hallo Welt!,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 30: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 12 /204

EinführungGrundlagenObjektorientierte Programmierung

Datentypen. Unser Programm:

#include<iostream>

int main(){

int ganzzahl = 5;double reellezahl = -0.7;

char zeichen = '!';

char zeichenkette[] = "Guten Morgen Welt!";

std::cout << "Hallo Welt!" << std::endl;return 0;

}

Output: Hallo Welt!,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 31: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 12 /204

EinführungGrundlagenObjektorientierte Programmierung

Datentypen. Unser Programm:

#include<iostream>

int main(){

int ganzzahl = 5;double reellezahl = -0.7;

char zeichen = '!';char zeichenkette[] = "Guten Morgen Welt!";

std::cout << "Hallo Welt!" << std::endl;return 0;

}

Output: Hallo Welt!,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 32: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 13 /204

EinführungGrundlagenObjektorientierte Programmierung

Datentypen. Unser Programm:

#include<iostream>

int main(){

int ganzzahl = 5;double reellezahl = -0.7;

char zeichen = '!';char zeichenkette[] = "Guten Morgen Welt!";

std::cout << zeichenkette << std::endl;return 0;

}

Output:

Guten Morgen Welt!

,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 33: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 13 /204

EinführungGrundlagenObjektorientierte Programmierung

Datentypen. Unser Programm:

#include<iostream>

int main(){

int ganzzahl = 5;double reellezahl = -0.7;

char zeichen = '!';char zeichenkette[] = "Guten Morgen Welt!";

std::cout << zeichenkette << std::endl;return 0;

}

Output: Guten Morgen Welt!,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 34: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 14 /204

EinführungGrundlagenObjektorientierte Programmierung

Datentypen. Unser Programm:

#include<iostream>

int main(){

int ganzzahl = 5;double reellezahl = -0.7;

char zeichen = '!';char zeichenkette[] = "Guten Morgen Welt!";

std::cout << zeichen << std::endl;return 0;

}

Output: !,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 35: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 15 /204

EinführungGrundlagenObjektorientierte Programmierung

Datentypen. Unser Programm:

#include<iostream>

int main(){

int ganzzahl = 5;double reellezahl = -0.7;

char zeichen = '!';char zeichenkette[] = "Guten Morgen Welt!";

std::cout << reellezahl << std::endl;return 0;

}

Output: -0.7,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 36: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 16 /204

EinführungGrundlagenObjektorientierte Programmierung

Array (Datenfeld):Zusammenfassung von Variablen des gleichen Typs.

#include<iostream>

int main(){

int ganzzahl[4] = { 5, 3, 20, 0 };

std::cout << ganzzahl[1] << std::endl;return 0;

}

Output: 3,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 37: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 17 /204

EinführungGrundlagenObjektorientierte Programmierung

Array (Datenfeld):Zusammenfassung von Speicherstellen für Daten desselben Typs.

#include<iostream>

int main(){

int ganzzahl[] = { 5, 3, 20, 0 };

std::cout << ganzzahl[1] << std::endl;return 0;

}

Output: 3,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 38: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 18 /204

EinführungGrundlagenObjektorientierte Programmierung

Array (Datenfeld):Zusammenfassung von Speicherstellen für Daten desselben Typs.

#include<iostream>

int main(){

int ganzzahl[4];

//Zählung beginnt mit ’Null’:ganzzahl[0] = 5;ganzzahl[1] = 3;ganzzahl[2] = 20;ganzzahl[3] = 0;

std::cout << ganzzahl[1] << std::endl;return 0;

}

Output: 3,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 39: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 19 /204

EinführungGrundlagenObjektorientierte Programmierung

Array (Datenfeld):Zusammenfassung von Speicherstellen für Daten desselben Typs.

#include<iostream>

int main(){

int ganzzahl[4];

//Zählung beginnt mit ’Null’:ganzzahl[0] = 5;ganzzahl[1] = 3;ganzzahl[2] = 20;ganzzahl[3] = 0;//Zugriff auf ’ganzzahl[4]’ ?

std::cout << ganzzahl[4] << std::endl;return 0;

}

Output: ?,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 40: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 20 /204

EinführungGrundlagenObjektorientierte Programmierung

Array (Datenfeld):Zusammenfassung von Speicherstellen für Daten desselben Typs.

#include<iostream>

int main(){

int ganzzahl[4];

//Zählung beginnt mit ’Null’:ganzzahl[0] = 5;ganzzahl[1] = 3;ganzzahl[2] = 20;ganzzahl[3] = 0;//Zugriff auf ’ganzzahl[4]’ ist falsch,//liefert aber keinen Compiler-Fehler!std::cout << ganzzahl[4] << std::endl;return 0;

}

Output: 6.95329e-310,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 41: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 21 /204

EinführungGrundlagenObjektorientierte Programmierung

Array (Datenfeld):Zusammenfassung von Speicherstellen für Daten desselben Typs.

#include<iostream>

int main(){

int matrix[2][2];

//Zählung beginnt mit ’Null’:matrix[0][0] = 5;matrix[0][1] = 3;matrix[1][0] = 20;matrix[1][1] = 0;

std::cout << matrix[1][1] << std::endl;return 0;

}

Output: 0,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 42: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 22 /204

EinführungGrundlagenObjektorientierte Programmierung

Legt in eurem Arbeitsverzeichnis eine neue Datei mitNamen addieren.cc an!

,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 43: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 23 /204

EinführungGrundlagenObjektorientierte Programmierung

Rechenarten:

#include<iostream>

int main(){

double zahl1 = 10.0;double zahl2 = 20.0;

return 0;}

Output:,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 44: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 24 /204

EinführungGrundlagenObjektorientierte Programmierung

Rechenarten:

#include<iostream>

int main(){

double zahl1 = 10.0;double zahl2 = 20.0;double ergebnis = 0;

std::cout << ergebnis << std::endl;return 0;

}Output:

,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 45: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 25 /204

EinführungGrundlagenObjektorientierte Programmierung

Rechenarten:

#include<iostream>

int main(){

double zahl1 = 10.0;double zahl2 = 20.0;double ergebnis = 0;

//Addieren:ergebnis = zahl1 + zahl2;

std::cout << ergebnis << std::endl;return 0;

}Output: 30

,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 46: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 26 /204

EinführungGrundlagenObjektorientierte Programmierung

Rechenarten:

#include<iostream>

int main(){

double zahl1 = 10.0;double zahl2 = 20.0;double ergebnis = 0;

//Subtrahieren:ergebnis = zahl1 - zahl2;

std::cout << ergebnis << std::endl;return 0;

}Output: -10

,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 47: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 27 /204

EinführungGrundlagenObjektorientierte Programmierung

Rechenarten:

#include<iostream>

int main(){

double zahl1 = 10.0;double zahl2 = 20.0;double ergebnis = 0;

//Multiplizieren:ergebnis = zahl1 * zahl2;

std::cout << ergebnis << std::endl;return 0;

}Output: 200

,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 48: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 28 /204

EinführungGrundlagenObjektorientierte Programmierung

Rechenarten:

#include<iostream>

int main(){

double zahl1 = 10.0;double zahl2 = 20.0;double ergebnis = 0;

//Dividieren:ergebnis = zahl1 / zahl2;

std::cout << ergebnis << std::endl;return 0;

}Output: 0.5

,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 49: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 29 /204

EinführungGrundlagenObjektorientierte Programmierung

Einlesen:

#include<iostream>

int main(){

double zahl1, zahl2, ergebnis;

Zahlen Einlesen!

//Addieren:ergebnis = zahl1 + zahl2;

std::cout << ergebnis << std::endl;return 0;

}Output:

,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 50: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 29 /204

EinführungGrundlagenObjektorientierte Programmierung

Einlesen:

#include<iostream>

int main(){

double zahl1, zahl2, ergebnis;

Zahlen Einlesen!

//Addieren:ergebnis = zahl1 + zahl2;

std::cout << ergebnis << std::endl;return 0;

}Output:

,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 51: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 30 /204

EinführungGrundlagenObjektorientierte Programmierung

Einlesen:

#include<iostream>

int main(){

double zahl1, zahl2, ergebnis;

std::cin >> zahl1 >> zahl2;

//Addieren:ergebnis = zahl1 + zahl2;

std::cout << ergebnis << std::endl;return 0;

}Output:

,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 52: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 31 /204

EinführungGrundlagenObjektorientierte Programmierung

Einlesen:

#include<iostream>

int main(){

double zahl1, zahl2, ergebnis;std::cout << "Bitte Zahlen eingeben:";std::cin >> zahl1 >> zahl2;

//Addieren:ergebnis = zahl1 + zahl2;

std::cout << ergebnis << std::endl;return 0;

}Output:

,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 53: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 32 /204

EinführungGrundlagenObjektorientierte Programmierung

Einlesen:

#include<iostream>

int main(){

double zahl1, zahl2, ergebnis;std::cout << "Bitte Zahlen eingeben:";std::cin >> zahl1 >> zahl2;

//Addieren:ergebnis = zahl1 + zahl2;

std::cout << "Ergebnis = " << ergebnis << std::endl;return 0;

}Output: Ergebnis = was auch immer addiert werden sollte...

,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 54: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 33 /204

EinführungGrundlagenObjektorientierte Programmierung

Einlesen Möglichkeit 2:./addieren 12 8

#include<iostream>

int main(){

double zahl1, zahl2, ergebnis;

//Addieren:ergebnis = zahl1 + zahl2;

std::cout << "Ergebnis = " << ergebnis << std::endl;return 0;

}

,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 55: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 34 /204

EinführungGrundlagenObjektorientierte Programmierung

Einlesen Möglichkeit 2:./addieren 12 8

#include<iostream>

int main(int argc, char* argv[]){

double zahl1, zahl2, ergebnis;

//Addieren:ergebnis = zahl1 + zahl2;

std::cout << "Ergebnis = " << ergebnis << std::endl;return 0;

}

,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 56: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 35 /204

EinführungGrundlagenObjektorientierte Programmierung

Einlesen Möglichkeit 2:./addieren 12 8 ⇒ argc=3

#include<iostream>

int main(int argc, char* argv[]){

double ergebnis = 0;

double zahl1;double zahl2;//Addieren:ergebnis = zahl1 + zahl2;

std::cout << "Ergebnis = " << ergebnis << std::endl;return 0;

}

,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 57: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 35 /204

EinführungGrundlagenObjektorientierte Programmierung

Einlesen Möglichkeit 2:./addieren 12 8 ⇒ argv[1]=12, argv[2]=8

#include<iostream>

int main(int argc, char* argv[]){

double ergebnis = 0;

double zahl1;double zahl2;//Addieren:ergebnis = zahl1 + zahl2;

std::cout << "Ergebnis = " << ergebnis << std::endl;return 0;

}

,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 58: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 36 /204

EinführungGrundlagenObjektorientierte Programmierung

Einlesen Möglichkeit 2:./addieren 12 8⇒ argv[1]=12, argv[2]=8

#include<iostream>

int main(int argc, char* argv[]){

double ergebnis = 0;

double zahl1 = argv[1];double zahl2 = argv[2];//Addieren:ergebnis = zahl1 + zahl2;

std::cout << "Ergebnis = " << ergebnis << std::endl;return 0;

}

Hey, warum argv[1]!,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 59: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 37 /204

EinführungGrundlagenObjektorientierte Programmierung

Einlesen Möglichkeit 2:./addieren 12 8⇒ argv[1]=12, argv[2]=8

#include<iostream>

int main(int argc, char* argv[]){

double ergebnis = 0;

double zahl1 = argv[1];double zahl2 = argv[2];//Addieren:ergebnis = zahl1 + zahl2;

std::cout << "Ergebnis = " << ergebnis << std::endl;return 0;

}

Klappt das?

Nein! char* ist noch kein double.

,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 60: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 37 /204

EinführungGrundlagenObjektorientierte Programmierung

Einlesen Möglichkeit 2:./addieren 12 8⇒ argv[1]=12, argv[2]=8

#include<iostream>

int main(int argc, char* argv[]){

double ergebnis = 0;

double zahl1 = argv[1];double zahl2 = argv[2];//Addieren:ergebnis = zahl1 + zahl2;

std::cout << "Ergebnis = " << ergebnis << std::endl;return 0;

}

Klappt das? Nein! char* ist noch kein double.,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 61: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 38 /204

EinführungGrundlagenObjektorientierte Programmierung

Einlesen Möglichkeit 2:./addieren 12 8

#include<iostream>#include<stdlib.h>int main(int argc, char* argv[]){

double ergebnis = 0;

double zahl1 = atof(argv[1]);double zahl2 = atof(argv[2]);//Addieren:ergebnis = zahl1 + zahl2;

std::cout << "Ergebnis = " << ergebnis << std::endl;return 0;

}

atof wandelt char[] in double um.

atoi wandelt char[] in int um.

,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 62: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 38 /204

EinführungGrundlagenObjektorientierte Programmierung

Einlesen Möglichkeit 2:./addieren 12 8

#include<iostream>#include<stdlib.h>int main(int argc, char* argv[]){

double ergebnis = 0;

double zahl1 = atof(argv[1]);double zahl2 = atof(argv[2]);//Addieren:ergebnis = zahl1 + zahl2;

std::cout << "Ergebnis = " << ergebnis << std::endl;return 0;

}

atof wandelt char[] in double um. atoi wandelt char[] in int um.,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 63: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 39 /204

EinführungGrundlagenObjektorientierte Programmierung

Einlesen Möglichkeit 2:./addieren 12 8

#include<iostream>#include<stdlib.h>int main(int argc, char* argv[]){

double ergebnis = 0;

double zahl1 = atof(argv[1]);double zahl2 = atof(argv[2]);//Addieren:ergebnis = zahl1 + zahl2;

std::cout << "Ergebnis = " << ergebnis << std::endl;return 0;

}

Programm testen!

Buchstaben? Zuviele Argumente? Lösung?

,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 64: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 39 /204

EinführungGrundlagenObjektorientierte Programmierung

Einlesen Möglichkeit 2:./addieren 12 8

#include<iostream>#include<stdlib.h>int main(int argc, char* argv[]){

double ergebnis = 0;

double zahl1 = atof(argv[1]);double zahl2 = atof(argv[2]);//Addieren:ergebnis = zahl1 + zahl2;

std::cout << "Ergebnis = " << ergebnis << std::endl;return 0;

}

Programm testen! Buchstaben? Zuviele Argumente?

Lösung?

,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 65: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 39 /204

EinführungGrundlagenObjektorientierte Programmierung

Einlesen Möglichkeit 2:./addieren 12 8

#include<iostream>#include<stdlib.h>int main(int argc, char* argv[]){

double ergebnis = 0;

double zahl1 = atof(argv[1]);double zahl2 = atof(argv[2]);//Addieren:ergebnis = zahl1 + zahl2;

std::cout << "Ergebnis = " << ergebnis << std::endl;return 0;

}

Programm testen! Buchstaben? Zuviele Argumente? Lösung?,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 66: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 40 /204

EinführungGrundlagenObjektorientierte Programmierung

Der Datentyp bool (Wahrheitswert).

//Wert ist ’wahr’:bool logischevariable1 = true;//oder//Wert ist ’falsch’:bool logischevariable2 = false;

Alternativ:

//Wert ist ’wahr’ (alle Werte außer 0 sind wahr):bool logischevariable1 = 7;//oder//Wert ist ’falsch’:bool logischevariable2 = 0;

Umgekehrt gilt true = 1 und false = 0.

,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 67: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 40 /204

EinführungGrundlagenObjektorientierte Programmierung

Der Datentyp bool (Wahrheitswert).

//Wert ist ’wahr’:bool logischevariable1 = true;//oder//Wert ist ’falsch’:bool logischevariable2 = false;

Alternativ:

//Wert ist ’wahr’ (alle Werte außer 0 sind wahr):bool logischevariable1 = 7;//oder//Wert ist ’falsch’:bool logischevariable2 = 0;

Umgekehrt gilt true = 1 und false = 0.,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 68: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 41 /204

EinführungGrundlagenObjektorientierte Programmierung

Zwei Zahlen (double, int, ...) lassen sich vergleichen:

double z1 = 10.2;double z2 = -1.89;

//z1 kleiner z2: Variable ist ’false’bool logvar1 = ( z1 < z2 );//z1 größer gleich z1: Variable ist ’true’bool logvar2 = ( z1 >= z2 );//z1 gleich z2: Variable ist ’false’bool logvar3 = ( z1 == z2 );//z1 ungleich z2 (! = ’nicht’): Variable ist ’true’bool logvar4 = ( z1 != z2 );//’true’ oder ’false’?

false!

bool logvar5 = !( z1 != z2 );//’true’ oder ’false’?

false!

bool logvar6 = (!logvar5 > z1);

,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 69: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 41 /204

EinführungGrundlagenObjektorientierte Programmierung

Zwei Zahlen (double, int, ...) lassen sich vergleichen:

double z1 = 10.2;double z2 = -1.89;//z1 kleiner z2: Variable ist ’false’bool logvar1 = ( z1 < z2 );

//z1 größer gleich z1: Variable ist ’true’bool logvar2 = ( z1 >= z2 );//z1 gleich z2: Variable ist ’false’bool logvar3 = ( z1 == z2 );//z1 ungleich z2 (! = ’nicht’): Variable ist ’true’bool logvar4 = ( z1 != z2 );//’true’ oder ’false’?

false!

bool logvar5 = !( z1 != z2 );//’true’ oder ’false’?

false!

bool logvar6 = (!logvar5 > z1);

,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 70: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 41 /204

EinführungGrundlagenObjektorientierte Programmierung

Zwei Zahlen (double, int, ...) lassen sich vergleichen:

double z1 = 10.2;double z2 = -1.89;//z1 kleiner z2: Variable ist ’false’bool logvar1 = ( z1 < z2 );//z1 größer gleich z1: Variable ist ’true’bool logvar2 = ( z1 >= z2 );

//z1 gleich z2: Variable ist ’false’bool logvar3 = ( z1 == z2 );//z1 ungleich z2 (! = ’nicht’): Variable ist ’true’bool logvar4 = ( z1 != z2 );//’true’ oder ’false’?

false!

bool logvar5 = !( z1 != z2 );//’true’ oder ’false’?

false!

bool logvar6 = (!logvar5 > z1);

,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 71: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 41 /204

EinführungGrundlagenObjektorientierte Programmierung

Zwei Zahlen (double, int, ...) lassen sich vergleichen:

double z1 = 10.2;double z2 = -1.89;//z1 kleiner z2: Variable ist ’false’bool logvar1 = ( z1 < z2 );//z1 größer gleich z1: Variable ist ’true’bool logvar2 = ( z1 >= z2 );//z1 gleich z2: Variable ist ’false’bool logvar3 = ( z1 == z2 );

//z1 ungleich z2 (! = ’nicht’): Variable ist ’true’bool logvar4 = ( z1 != z2 );//’true’ oder ’false’?

false!

bool logvar5 = !( z1 != z2 );//’true’ oder ’false’?

false!

bool logvar6 = (!logvar5 > z1);

,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 72: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 41 /204

EinführungGrundlagenObjektorientierte Programmierung

Zwei Zahlen (double, int, ...) lassen sich vergleichen:

double z1 = 10.2;double z2 = -1.89;//z1 kleiner z2: Variable ist ’false’bool logvar1 = ( z1 < z2 );//z1 größer gleich z1: Variable ist ’true’bool logvar2 = ( z1 >= z2 );//z1 gleich z2: Variable ist ’false’bool logvar3 = ( z1 == z2 );//z1 ungleich z2 (! = ’nicht’): Variable ist ’true’bool logvar4 = ( z1 != z2 );

//’true’ oder ’false’?

false!

bool logvar5 = !( z1 != z2 );//’true’ oder ’false’?

false!

bool logvar6 = (!logvar5 > z1);

,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 73: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 41 /204

EinführungGrundlagenObjektorientierte Programmierung

Zwei Zahlen (double, int, ...) lassen sich vergleichen:

double z1 = 10.2;double z2 = -1.89;//z1 kleiner z2: Variable ist ’false’bool logvar1 = ( z1 < z2 );//z1 größer gleich z1: Variable ist ’true’bool logvar2 = ( z1 >= z2 );//z1 gleich z2: Variable ist ’false’bool logvar3 = ( z1 == z2 );//z1 ungleich z2 (! = ’nicht’): Variable ist ’true’bool logvar4 = ( z1 != z2 );//’true’ oder ’false’?

false!

bool logvar5 = !( z1 != z2 );

//’true’ oder ’false’?

false!

bool logvar6 = (!logvar5 > z1);

,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 74: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 41 /204

EinführungGrundlagenObjektorientierte Programmierung

Zwei Zahlen (double, int, ...) lassen sich vergleichen:

double z1 = 10.2;double z2 = -1.89;//z1 kleiner z2: Variable ist ’false’bool logvar1 = ( z1 < z2 );//z1 größer gleich z1: Variable ist ’true’bool logvar2 = ( z1 >= z2 );//z1 gleich z2: Variable ist ’false’bool logvar3 = ( z1 == z2 );//z1 ungleich z2 (! = ’nicht’): Variable ist ’true’bool logvar4 = ( z1 != z2 );//’true’ oder ’false’? false!bool logvar5 = !( z1 != z2 );

//’true’ oder ’false’?

false!

bool logvar6 = (!logvar5 > z1);

,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 75: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 41 /204

EinführungGrundlagenObjektorientierte Programmierung

Zwei Zahlen (double, int, ...) lassen sich vergleichen:

double z1 = 10.2;double z2 = -1.89;//z1 kleiner z2: Variable ist ’false’bool logvar1 = ( z1 < z2 );//z1 größer gleich z1: Variable ist ’true’bool logvar2 = ( z1 >= z2 );//z1 gleich z2: Variable ist ’false’bool logvar3 = ( z1 == z2 );//z1 ungleich z2 (! = ’nicht’): Variable ist ’true’bool logvar4 = ( z1 != z2 );//’true’ oder ’false’? false!bool logvar5 = !( z1 != z2 );//’true’ oder ’false’?

false!

bool logvar6 = (!logvar5 > z1);

,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 76: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 41 /204

EinführungGrundlagenObjektorientierte Programmierung

Zwei Zahlen (double, int, ...) lassen sich vergleichen:

double z1 = 10.2;double z2 = -1.89;//z1 kleiner z2: Variable ist ’false’bool logvar1 = ( z1 < z2 );//z1 größer gleich z1: Variable ist ’true’bool logvar2 = ( z1 >= z2 );//z1 gleich z2: Variable ist ’false’bool logvar3 = ( z1 == z2 );//z1 ungleich z2 (! = ’nicht’): Variable ist ’true’bool logvar4 = ( z1 != z2 );//’true’ oder ’false’? false!bool logvar5 = !( z1 != z2 );//’true’ oder ’false’? false!bool logvar6 = (!logvar5 > z1);

,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 77: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 42 /204

EinführungGrundlagenObjektorientierte Programmierung

if-Anweisungen

bool logvar;//wenn ’logvar’ wahr ist, dann ...if ( logvar )

{...

}

//wenn ’4=3’ wahr ist, dann ...if ( 4 == 3 )

{...

}//wenn 5 nicht kleiner gleich 4 ist, dann ...if ( !( 5 <= 4 ) )

{...

}

,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 78: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 42 /204

EinführungGrundlagenObjektorientierte Programmierung

if-Anweisungen

bool logvar;//wenn ’logvar’ wahr ist, dann ...if ( logvar )

{...

}//wenn ’4=3’ wahr ist, dann ...if ( 4 == 3 )

{...

}

//wenn 5 nicht kleiner gleich 4 ist, dann ...if ( !( 5 <= 4 ) )

{...

}

,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 79: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 42 /204

EinführungGrundlagenObjektorientierte Programmierung

if-Anweisungen

bool logvar;//wenn ’logvar’ wahr ist, dann ...if ( logvar )

{...

}//wenn ’4=3’ wahr ist, dann ...if ( 4 == 3 )

{...

}//wenn 5 nicht kleiner gleich 4 ist, dann ...if ( !( 5 <= 4 ) )

{...

}

,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 80: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 43 /204

EinführungGrundlagenObjektorientierte Programmierung

if-Anweisungen

bool logvar;

//wenn ...if ( logvar ){

...}

//dann ...else{

...}

,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 81: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 44 /204

EinführungGrundlagenObjektorientierte Programmierung

Einlesen Möglichkeit 2: ./addieren 12 8 Lösung für das Problem der zuvielen Argumente?

#include<iostream>#include<stdlib.h>int main(int argc, char* argv[]){

double zahl1, zahl2, ergebnis;zahl1 = atof(argv[1]);zahl2 = atof(argv[2]);

//Addieren:ergebnis = zahl1 + zahl2;std::cout << "Ergebnis = " << ergebnis << std::endl;

return 0;}

,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 82: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 45 /204

EinführungGrundlagenObjektorientierte Programmierung

Einlesen Möglichkeit 2: ./addieren 12 8 Lösung für das Problem der zuvielen Argumente!

#include<iostream>#include<stdlib.h>int main(int argc, char* argv[]){

double zahl1, zahl2, ergebnis;zahl1 = atof(argv[1]);zahl2 = atof(argv[2]);

if ( argc == 3 ){

//Addieren:ergebnis = zahl1 + zahl2;std::cout << "Ergebnis = " << ergebnis << std::endl;

}else{

std::cout << "Fehler! Das Programm addiert nur 2 Zahlen." << std::endl;}

return 0;}

,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 83: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 46 /204

EinführungGrundlagenObjektorientierte Programmierung

Die while-Schleife

bool logvar;

//so lange wie logvar ’true’ ist, tue ...while ( logvar ){

...}

//Vorsicht: Man muss dafür sorgen,//dass logvar irgendwann falsch wird!

,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 84: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 47 /204

EinführungGrundlagenObjektorientierte Programmierung

Beispiel für die while-Schleife: Berechne xn.

#include<iostream>#include<stdlib.h>int main(int argc, char* argv[])

{//basis = x, exponent = ndouble basis, ergebnis = 1.0;int exponent = 0;//Berechne ’Basis hoch Exponent’:basis = atof(argv[1]);exponent = atoi(argv[2]);

while ( exponent > 0 ){

ergebnis = ergebnis * basis;exponent = exponent - 1;

}std::cout << "Ergebnis = " << ergebnis << std::endl;return 0;

}

,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 85: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 48 /204

EinführungGrundlagenObjektorientierte Programmierung

Alternative: die for-Schleife (oder Zählschleife):

for ( Zählervariable(n) ; Abbruchbedingung; Veränderung der Zählervariable(n) ){

...}

Beispiele:

//von ’i=0’ bis ’i=10’ tue ...for ( int i = 0; i <= 10; i = i + 1 ){

std::cout << "i = " << i << std::endl;}

//Schleife bricht ab bei ’d = 6.4’ > ’i = 5’:for ( int i = 0; double d = 0.2 ; d <= i; i = i + 1, d = 2.0 * d ){

std::cout << "i = " << i << " und d = " << d << std::endl;}

,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 86: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 48 /204

EinführungGrundlagenObjektorientierte Programmierung

Alternative: die for-Schleife (oder Zählschleife):

for ( Zählervariable(n) ; Abbruchbedingung; Veränderung der Zählervariable(n) ){

...}

Beispiele:

//von ’i=0’ bis ’i=10’ tue ...for ( int i = 0; i <= 10; i = i + 1 ){

std::cout << "i = " << i << std::endl;}

//Schleife bricht ab bei ’d = 6.4’ > ’i = 5’:for ( int i = 0; double d = 0.2 ; d <= i; i = i + 1, d = 2.0 * d ){

std::cout << "i = " << i << " und d = " << d << std::endl;}

,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 87: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 48 /204

EinführungGrundlagenObjektorientierte Programmierung

Alternative: die for-Schleife (oder Zählschleife):

for ( Zählervariable(n) ; Abbruchbedingung; Veränderung der Zählervariable(n) ){

...}

Beispiele:

//von ’i=0’ bis ’i=10’ tue ...for ( int i = 0; i <= 10; i = i + 1 ){

std::cout << "i = " << i << std::endl;}

//Schleife bricht ab bei ’d = 6.4’ > ’i = 5’:for ( int i = 0; double d = 0.2 ; d <= i; i = i + 1, d = 2.0 * d ){

std::cout << "i = " << i << " und d = " << d << std::endl;}

,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 88: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 49 /204

EinführungGrundlagenObjektorientierte Programmierung

Beispiel für die for-Schleife: Berechne xn.

#include<iostream>#include<stdlib.h>int main(int argc, char* argv[])

{//basis = x, exponent = ndouble basis, ergebnis = 1.0;int exponent = 0;//Berechne ’Basis hoch Exponent’:basis = atof(argv[1]);exponent = atoi(argv[2]);

for ( int i = 0; i < exponent; i = i + 1 ){

ergebnis = ergebnis * basis;}

std::cout << "Ergebnis = " << ergebnis << std::endl;return 0;

}

,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 89: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 50 /204

EinführungGrundlagenObjektorientierte Programmierung

Beispiel für die for-Schleife: Berechne xn.

#include<iostream>#include<stdlib.h>int main(int argc, char* argv[])

{//basis = x, exponent = ndouble basis, ergebnis = 1.0;int exponent = 0;//Berechne ’Basis hoch Exponent’:basis = atof(argv[1]);exponent = atoi(argv[2]);

for ( int i = 0; i < exponent; i += 1 ){

ergebnis *= basis;}

std::cout << "Ergebnis = " << ergebnis << std::endl;return 0;

}

,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 90: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 51 /204

EinführungGrundlagenObjektorientierte Programmierung

Beispiel für die for-Schleife: Berechne xn.

#include<iostream>#include<stdlib.h>int main(int argc, char* argv[])

{//basis = x, exponent = ndouble basis, ergebnis = 1.0;int exponent = 0;//Berechne ’Basis hoch Exponent’:basis = atof(argv[1]);exponent = atoi(argv[2]);

for ( int i = 0; i < exponent; i++ ){

ergebnis *= basis;}

std::cout << "Ergebnis = " << ergebnis << std::endl;return 0;

}

,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 91: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 52 /204

EinführungGrundlagenObjektorientierte Programmierung

Beispiel für die for-Schleife: Berechne xn.

#include<iostream>#include<stdlib.h>int main(int argc, char* argv[])

{//basis = x, exponent = ndouble basis, ergebnis = 1.0;int exponent = 0;//Berechne ’Basis hoch Exponent’:basis = atof(argv[1]);exponent = atoi(argv[2]);

for ( int i = 0; i < exponent; ++i ){

ergebnis *= basis;}

std::cout << "Ergebnis = " << ergebnis << std::endl;return 0;

}

,,

Michael Schaefer Einführung → Variablen, Operationen und Schleifen

Page 92: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 53 /204

EinführungGrundlagenObjektorientierte Programmierung

Die graphische Darstellung von Wertepaaren {(x1, y1), ..., (xn, yn)} mit Gnuplot.Voraussetzung: Datei, in der Werte paarweise pro Zeile aufgeführt werden. Z.B.:

0.0 0.00.2 0.70.4 1.00.6 1.10.8 1.151.0 1.17

1. Gnuplot im Terminal starten:

gnuplot2. Daten graphisch darstellen:

plot "Wertepaare"3. Sollen die Daten mehrerer Dateien graphisch dargestellt werden:

plot "Wertepaare1", "Wertepaare2", ...4. Sollen die Daten graphisch dargestellt und interpoliert werden:

plot "Wertepaare" smooth cspline5. Verlassen von Gnuplot:

exit,,

Michael Schaefer Einführung → Dateiausgabe und Visualisierung

Page 93: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 54 /204

EinführungGrundlagenObjektorientierte Programmierung

Ausgabe in Datei:

Ergebnis mit Gnuplot visualisieren!

#include<iostream>#include<fstream> //C++ Library: Datei Eingabe/Ausgabe (file stream)#include<cmath> //C Library: mathematische Funktionen

int main(){

const char* dateiname = "ausgabe";std::ofstream ausgabedatei( dateiname ); //output file stream

for ( int i = 0; i < 100; ++i ){double x = i*0.1;double y = sin(x);ausgabedatei << x << " " << y << std::endl;}

ausgabedatei.close();return 0;

}

(Datentyp als const deklariert heißt: Objekt nachträglich nicht mehr veränderbar.)

,,

Michael Schaefer Einführung → Dateiausgabe und Visualisierung

Page 94: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 54 /204

EinführungGrundlagenObjektorientierte Programmierung

Ausgabe in Datei:

Ergebnis mit Gnuplot visualisieren!

#include<iostream>#include<fstream> //C++ Library: Datei Eingabe/Ausgabe (file stream)#include<cmath> //C Library: mathematische Funktionen

int main(){

const char* dateiname = "ausgabe";std::ofstream ausgabedatei( dateiname ); //output file stream

for ( int i = 0; i < 100; ++i ){double x = i*0.1;double y = sin(x);ausgabedatei << x << " " << y << std::endl;}

ausgabedatei.close();return 0;

}

(Datentyp als const deklariert heißt: Objekt nachträglich nicht mehr veränderbar.)

,,

Michael Schaefer Einführung → Dateiausgabe und Visualisierung

Page 95: Einführung in die Programmierung mit C++ · 2015. 3. 17. · Einführung in die Programmierung mit C++ Münster, 16.03.2015 - 20.03.2015 Michael Schaefer WS 2014/15 wissen leben

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER C++ Programmierpraktikum 54 /204

EinführungGrundlagenObjektorientierte Programmierung

Ausgabe in Datei: Ergebnis mit Gnuplot visualisieren!

#include<iostream>#include<fstream> //C++ Library: Datei Eingabe/Ausgabe (file stream)#include<cmath> //C Library: mathematische Funktionen

int main(){

const char* dateiname = "ausgabe";std::ofstream ausgabedatei( dateiname ); //output file stream

for ( int i = 0; i < 100; ++i ){double x = i*0.1;double y = sin(x);ausgabedatei << x << " " << y << std::endl;}

ausgabedatei.close();return 0;

}

(Datentyp als const deklariert heißt: Objekt nachträglich nicht mehr veränderbar.)

,,

Michael Schaefer Einführung → Dateiausgabe und Visualisierung