Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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