Informatik für Mathematiker und Physiker Woche 6. David Sommer

Größe: px
Ab Seite anzeigen:

Download "Informatik für Mathematiker und Physiker Woche 6. David Sommer"

Transkript

1 Informatik für Mathematiker und Physiker Woche 6 David Sommer David Sommer October 31,

2 Heute: 1. Rückblick Übungen Woche 5 2. Libraries 3. Referenzen 4. Step-Wise Refinement David Sommer October 31,

3 Rückblick Übungen Woche 5 Aufgabe 1: Charakterisierung Floating Point Numbers. David Sommer October 31,

4 Rückblick Übungen Woche 5 Aufgabe 1: Charakterisierung Floating Point Numbers. F (β = 2, p = 4, e min = 3, e max = 3) (1) David Sommer October 31,

5 Rückblick Übungen Woche 5 Aufgabe 1: Charakterisierung Floating Point Numbers. Aufgabe Bi): 0.11 (10) = F (β = 2, p = 4, e min = 3, e max = 3) (1) David Sommer October 31,

6 Rückblick Übungen Woche 5 Aufgabe 1: Charakterisierung Floating Point Numbers. F (β = 2, p = 4, e min = 3, e max = 3) (1) Aufgabe Bi): 0.11 (10) = (2) = David Sommer October 31,

7 Rückblick Übungen Woche 5 Aufgabe 1: Charakterisierung Floating Point Numbers. F (β = 2, p = 4, e min = 3, e max = 3) (1) Aufgabe Bi): 0.11 (10) = (2) = (2) 2 3 David Sommer October 31,

8 Rückblick Übungen Woche 5 Aufgabe 1: Charakterisierung Floating Point Numbers. F (β = 2, p = 4, e min = 3, e max = 3) (1) Aufgabe Bi): 0.11 (10) = (2) = (2) 2 3 Aber: Die erste Zahl muss eine 1 sein! [ F*(..) ] Nur 4 signifikante Stellen (p=4, inklusive der führenden 1) David Sommer October 31,

9 Rückblick Übungen Woche 5 Aufgabe 1: Charakterisierung Floating Point Numbers. F (β = 2, p = 4, e min = 3, e max = 3) (1) Aufgabe Bi): 0.11 (10) = (2) = (2) 2 3 Aber: Die erste Zahl muss eine 1 sein! [ F*(..) ] Nur 4 signifikante Stellen (p=4, inklusive der führenden 1) David Sommer October 31,

10 Rückblick Übungen Woche 5 Aufgabe 1: Charakterisierung Floating Point Numbers. F (β = 2, p = 4, e min = 3, e max = 3) (1) Aufgabe Bi): 0.11 (10) = (2) = (2) 2 3 Aber: Die erste Zahl muss eine 1 sein! [ F*(..) ] Nur 4 signifikante Stellen (p=4, inklusive der führenden 1) (nicht 0, da 2 3 näher ist) David Sommer October 31,

11 Rückblick Übungen Woche 5 Aufgabe 2: Liegt Punkt auf Parabel David Sommer October 31,

12 Rückblick Übungen Woche 5 Aufgabe 2: Liegt Punkt auf Parabel Niemals double auf Gleicheit testen! David Sommer October 31,

13 Rückblick Übungen Woche 5 Aufgabe 2: Liegt Punkt auf Parabel Niemals double auf Gleicheit testen! // a,b, c are already defined double x, y; std :: cin >>x std :: cin >>y; double res = a * x * x + b * x + c; // berechne y des inputs David Sommer October 31,

14 Rückblick Übungen Woche 5 Aufgabe 2: Liegt Punkt auf Parabel Niemals double auf Gleicheit testen! // a,b, c are already defined double x, y; std :: cin >>x std :: cin >>y; double res = a * x * x + b * x + c; // berechne y des inputs if( res == y ){.. } David Sommer October 31,

15 Rückblick Übungen Woche 5 Aufgabe 2: Liegt Punkt auf Parabel Niemals double auf Gleicheit testen! // a,b, c are already defined double x, y; std :: cin >>x std :: cin >>y; double res = a * x * x + b * x + c; // berechne y des inputs if( res == y ){.. } // so nicht! Sondern: if ( std :: abs ( res - y ) < 1. 0/ ) {..} David Sommer October 31,

16 Rückblick Übungen Woche 5 Aufgabe 3: Runden von Integern. David Sommer October 31,

17 Rückblick Übungen Woche 5 Aufgabe 3: Runden von Integern. Casting: double int: David Sommer October 31,

18 Rückblick Übungen Woche 5 Aufgabe 3: Runden von Integern. Casting: double int: Assume double a; David Sommer October 31,

19 Rückblick Übungen Woche 5 Aufgabe 3: Runden von Integern. Casting: double int: Assume double a; Zwei Möglichkeiten: David Sommer October 31,

20 Rückblick Übungen Woche 5 Aufgabe 3: Runden von Integern. Casting: double int: Assume double a; Zwei Möglichkeiten: int b = ( int )a; David Sommer October 31,

21 Rückblick Übungen Woche 5 Aufgabe 3: Runden von Integern. Casting: double int: Assume double a; Zwei Möglichkeiten: int b = ( int )a; (C Style) David Sommer October 31,

22 Rückblick Übungen Woche 5 Aufgabe 3: Runden von Integern. Casting: double int: Assume double a; Zwei Möglichkeiten: int b = ( int )a; (C Style) int b = int (a); David Sommer October 31,

23 Rückblick Übungen Woche 5 Aufgabe 3: Runden von Integern. Casting: double int: Assume double a; Zwei Möglichkeiten: int b = ( int )a; (C Style) int b = int (a); (C++ Style) David Sommer October 31,

24 Rückblick Übungen Woche 5 Aufgabe 4: Convert decimal to 16-bit binary number. David Sommer October 31,

25 Rückblick Übungen Woche 5 Aufgabe 4: Convert decimal to 16-bit binary number. # include <iostream > using namespace std ; int main (){ double x; cin >>x; int i; for (i =1;i <65536; i *=2){ if (x >=1.0/ i){ cout < <1; x -=1.0/ i; } else { cout < <0; } if (i ==1) cout <<"."; } David Sommer October 31,

26 Rückblick Übungen Woche 5 Aufgabe 5b) David Sommer October 31,

27 Rückblick Übungen Woche 5 Aufgabe 5b) } double invert ( double x) { double result ; if (x!= 0) result = 1 / x; return result ; David Sommer October 31,

28 Rückblick Übungen Woche 5 Aufgabe 5b) } double invert ( double x) { double result ; if (x!= 0) result = 1 / x; return result ; double result nicht initialisiert. David Sommer October 31,

29 Rückblick Übungen Woche 5 Aufgabe 5b) } double invert ( double x) { double result ; if (x!= 0) result = 1 / x; return result ; double result nicht initialisiert. // PRE : x is not zero // POST : returns the // inverse of x double invert ( double x) { assert (x!= 0); return 1 / x; } David Sommer October 31,

30 Rückblick Übungen Woche 5 Aufgabe 5b) } double invert ( double x) { double result ; if (x!= 0) result = 1 / x; return result ; double result nicht initialisiert. // PRE : x is not zero // POST : returns the // inverse of x double invert ( double x) { assert (x!= 0); return 1 / x; } // POST : returns either the // inverse of x, or zero // if x is zero double invert ( double x) { double result = 0; if (x!= 0) result = 1 / x; return result ; } David Sommer October 31,

31 Software Library Was ist eine Library? David Sommer October 31,

32 Software Library Was ist eine Library? Zu Deutsch: Bibliothek David Sommer October 31,

33 Software Library Was ist eine Library? Zu Deutsch: Bibliothek Sammlung von Funktionen. David Sommer October 31,

34 Software Library Was ist eine Library? Zu Deutsch: Bibliothek Sammlung von Funktionen. Wieso Libraries? David Sommer October 31,

35 Software Library Was ist eine Library? Zu Deutsch: Bibliothek Sammlung von Funktionen. Wieso Libraries? Code nur einmal schreiben David Sommer October 31,

36 Software Library Was ist eine Library? Zu Deutsch: Bibliothek Sammlung von Funktionen. Wieso Libraries? Code nur einmal schreiben Weniger Bugs David Sommer October 31,

37 Software Library Was ist eine Library? Zu Deutsch: Bibliothek Sammlung von Funktionen. Wieso Libraries? Code nur einmal schreiben Weniger Bugs David Sommer October 31,

38 Software Library Was ist eine Library? Zu Deutsch: Bibliothek Sammlung von Funktionen. Wieso Libraries? Code nur einmal schreiben Weniger Bugs Beispiele: David Sommer October 31,

39 Software Library Was ist eine Library? Zu Deutsch: Bibliothek Sammlung von Funktionen. Wieso Libraries? Code nur einmal schreiben Weniger Bugs Beispiele: # include <cmath > # include <iostream > # include <vector > import com. github. sarxos. Webcam ; // java from matplotlib import pyplot as plt # python David Sommer October 31,

40 cmath (math.h) # include <iostream > # include <cmath > int main () { std :: cout << std :: pow (3.3, 6.5) << "\ n" // computes 3.3 ^ 6.5 // computes 3.0 ^ 6.0, all arguments are implicitly // converted to double << std :: pow (3,6) << "\n" // computes the square root of 9.1, the argument has // needs to be >0 << std :: sqrt (9.1) << "\n" } << std :: abs ( -3.0) << "\n" return 0; David Sommer October 31,

41 cmath (math.h) # include <iostream > # include <cmath > int main () { std :: cout << std :: pow (3.3, 6.5) << "\ n" // computes 3.3 ^ 6.5 // computes 3.0 ^ 6.0, all arguments are implicitly // converted to double << std :: pow (3,6) << "\n" // computes the square root of 9.1, the argument has // needs to be >0 << std :: sqrt (9.1) << "\n" } std :: << std :: abs ( -3.0) << "\n" return 0; ist der namespace der Standartbilbiothek. David Sommer October 31,

42 std :: pow und std :: sqrt sind nur numerische Approximationen. David Sommer October 31,

43 std :: pow und std :: sqrt sind nur numerische Approximationen. Nicht genau! David Sommer October 31,

44 std :: pow und std :: sqrt sind nur numerische Approximationen. Nicht genau! Grund: Genauigkeit Fliesskommazahlen! David Sommer October 31,

45 std :: pow und std :: sqrt sind nur numerische Approximationen. Nicht genau! Grund: Genauigkeit Fliesskommazahlen! David Sommer October 31,

46 cmath (math.h) std::sqrt(x) * std::sqrt(x) - x = err int main () { double x; std :: cin >> x; assert (x > 0); double sqrtx = std :: sqrt ( x); std :: cout << std :: abs ( sqrtx * sqrtx - x) << "\n"; } return 0; David Sommer October 31,

47 cmath (math.h) std::sqrt(x) * std::sqrt(x) - x = err int main () { double x; std :: cin >> x; assert (x > 0); double sqrtx = std :: sqrt ( x); std :: cout << std :: abs ( sqrtx * sqrtx - x) << "\n"; } return 0; Relativer Fehler: David Sommer October 31,

48 cmath (math.h) std::sqrt(x) * std::sqrt(x) - x = err int main () { double x; std :: cin >> x; assert (x > 0); double sqrtx = std :: sqrt ( x); std :: cout << std :: abs ( sqrtx * sqrtx - x) << "\n"; } return 0; Relativer Fehler: (log 10 (2 53 ) ) David Sommer October 31,

49 cmath (math.h) # include <iostream > # include <cmath > using namespace std ; // no std :: anymore int main () { double x; double y; double radius ; cin >> x >> y >> radius ; cout << sqrt ( x* x + y* y) < radius ; cout << x* x + y* y < radius * radius ; return 0; } David Sommer October 31,

50 cmath (math.h) # include <iostream > # include <cmath > using namespace std ; // no std :: anymore int main () { double x; double y; double radius ; cin >> x >> y >> radius ; cout << sqrt ( x* x + y* y) < radius ; cout << x* x + y* y < radius * radius ; return 0; } Numerik: sqrt ist sehr teuer (viele CPU-Taktzyklen). Optimalerweise weglassen. David Sommer October 31,

51 min und max # include <iostream > # include <algorithm > int main () { std :: cout << std :: min (3.5, 5.1) << "\n" << std :: max (4.3, 7.9) << "\n" return 0; } David Sommer October 31,

52 min und max # include <iostream > # include <algorithm > int main () { std :: cout << std :: min (3.5, 5.1) << "\n" << std :: max (4.3, 7.9) << "\n" return 0; } Da gibt es noch viel mehr: David Sommer October 31,

53 Vorteile von Libraries: Einmal geschrieben, kann er von allen benutzt werden. David Sommer October 31,

54 Vorteile von Libraries: Einmal geschrieben, kann er von allen benutzt werden. (Oft) von einem Experten des jeweiigen Gebietes programmiert. David Sommer October 31,

55 Vorteile von Libraries: Einmal geschrieben, kann er von allen benutzt werden. (Oft) von einem Experten des jeweiigen Gebietes programmiert. Shared Libraries: Easy maintainable. Man muss sie nur an einem Ort austauschen statt bei jedem Programm. David Sommer October 31,

56 Vorteile von Libraries: Einmal geschrieben, kann er von allen benutzt werden. (Oft) von einem Experten des jeweiigen Gebietes programmiert. Shared Libraries: Easy maintainable. Man muss sie nur an einem Ort austauschen statt bei jedem Programm. Weniger Zeit wird für den Unterhalt von Code verschwendet. David Sommer October 31,

57 Vorteile von Libraries: Einmal geschrieben, kann er von allen benutzt werden. (Oft) von einem Experten des jeweiigen Gebietes programmiert. Shared Libraries: Easy maintainable. Man muss sie nur an einem Ort austauschen statt bei jedem Programm. Weniger Zeit wird für den Unterhalt von Code verschwendet. Mehr Zeit für die Optimierung des Codes. David Sommer October 31,

58 Vorteile von Libraries: Einmal geschrieben, kann er von allen benutzt werden. (Oft) von einem Experten des jeweiigen Gebietes programmiert. Shared Libraries: Easy maintainable. Man muss sie nur an einem Ort austauschen statt bei jedem Programm. Weniger Zeit wird für den Unterhalt von Code verschwendet. Mehr Zeit für die Optimierung des Codes. Und viiiiiiiiele mehr... David Sommer October 31,

59 Vorteile von Libraries: Einmal geschrieben, kann er von allen benutzt werden. (Oft) von einem Experten des jeweiigen Gebietes programmiert. Shared Libraries: Easy maintainable. Man muss sie nur an einem Ort austauschen statt bei jedem Programm. Weniger Zeit wird für den Unterhalt von Code verschwendet. Mehr Zeit für die Optimierung des Codes. Und viiiiiiiiele mehr... (z.b. weniger Bugs) David Sommer October 31,

60 Beispiele für Libraries: Standard Library (cmath, iostream, algorithm, vector, etc) David Sommer October 31,

61 Beispiele für Libraries: Standard Library (cmath, iostream, algorithm, vector, etc) Boost (wurde in C++14 übernommen) David Sommer October 31,

62 Beispiele für Libraries: Standard Library (cmath, iostream, algorithm, vector, etc) Boost (wurde in C++14 übernommen) Eigen (Lineare Algebra) David Sommer October 31,

63 Beispiele für Libraries: Standard Library (cmath, iostream, algorithm, vector, etc) Boost (wurde in C++14 übernommen) Eigen (Lineare Algebra).. David Sommer October 31,

64 Referenzen David Sommer October 31,

65 Referenzen void increment ( int m) { m ++; } int main () { int n = 3; increment (n); std :: cout <<n; return 0; } David Sommer October 31,

66 Referenzen void increment ( int m) { m ++; } int main () { int n = 3; increment (n); std :: cout <<n; return 0; } void increment ( int & m) { m ++; } int main () { int n = 3; increment (n); std :: cout <<n; return 0; } David Sommer October 31,

67 Referenzen Call by Value void increment ( int m) { m ++; } int main () { int n = 3; increment (n); std :: cout <<n; return 0; } Call by Reference void increment ( int & m) { m ++; } int main () { int n = 3; increment (n); std :: cout <<n; return 0; } David Sommer October 31,

68 Referenzen David Sommer October 31,

69 Referenzen Referenzen sind Aliase von Variablen (anderer Name): David Sommer October 31,

70 Referenzen Referenzen sind Aliase von Variablen (anderer Name): int i = 1; int & j = i; i ++; std :: cout <<i; j ++; std :: cout <<j; David Sommer October 31,

71 Referenzen Referenzen sind Aliase von Variablen (anderer Name): int i = 1; int & j = i; i ++; std :: cout <<i; j ++; std :: cout <<j; Referenzen benötigen direkt eine Definition. David Sommer October 31,

72 Referenzen Referenzen sind Aliase von Variablen (anderer Name): int i = 1; int & j = i; i ++; std :: cout <<i; j ++; std :: cout <<j; Referenzen benötigen direkt eine Definition. int & j; // kompiliert nicht! David Sommer October 31,

73 Call By... David Sommer October 31,

74 Call By... Wie Funktionsparameter übergeben werden. David Sommer October 31,

75 Call By... Wie Funktionsparameter übergeben werden. Call By Value Call by Reference David Sommer October 31,

76 Call By... Wie Funktionsparameter übergeben werden. Call By Value Copies Parameter Call by Reference Uses a Reference David Sommer October 31,

77 Call By... Wie Funktionsparameter übergeben werden. Call By Value Copies Parameter Call by Reference Uses a Reference Cannot make changes to the parameter outside of function scope Can make them David Sommer October 31,

78 Call By... Wie Funktionsparameter übergeben werden. Call By Value Copies Parameter Call by Reference Uses a Reference Cannot make changes to the parameter outside of function scope Can make them Copying needs time Sometimes more efficient David Sommer October 31,

79 Call By Reference David Sommer October 31,

80 Call By Reference x 1,2 = b ± b 2 4ac 2a (2) David Sommer October 31,

81 Call By Reference x 1,2 = b ± b 2 4ac 2a (2) // POST : return value is the number of distinct real solutions // of the quadratic equation ax ^2 + bx + c = 0. If there are // infinitely many solutions ( a = b = c = 0), the return value // is -1. Otherwise, the return value is a number n from // {0,1,2} and the solutions are written to s1,..., sn int solve_quadratic_equation ( const double a, const double b, const double x, double & s1, double & s2) David Sommer October 31,

82 Call By Reference x 1,2 = b ± b 2 4ac 2a (2) // POST : return value is the number of distinct real solutions // of the quadratic equation ax ^2 + bx + c = 0. If there are // infinitely many solutions ( a = b = c = 0), the return value // is -1. Otherwise, the return value is a number n from // {0,1,2} and the solutions are written to s1,..., sn int solve_quadratic_equation ( const double a, const double b, const double x, double & s1, double & s2) Zu viele Rückgabewerte: David Sommer October 31,

83 Call By Reference x 1,2 = b ± b 2 4ac 2a (2) // POST : return value is the number of distinct real solutions // of the quadratic equation ax ^2 + bx + c = 0. If there are // infinitely many solutions ( a = b = c = 0), the return value // is -1. Otherwise, the return value is a number n from // {0,1,2} and the solutions are written to s1,..., sn int solve_quadratic_equation ( const double a, const double b, const double x, double & s1, double & s2) Zu viele Rückgabewerte: Benutze Referenzen. David Sommer October 31,

84 Exercise: Swap

85 Exercise: Swap Write a function swap that swaps the values of two int-variables. Example: int a = 5; int b = 6; // here comes your function call std::cout << a << "\n"; // outputs 6 std::cout << b << "\n"; // outputs 5 (From: Script Exercise 95) 2

86 Exercise: Swap Solution: // POST: the values of i and j are swapped void swap (int& i, int& j) { const int h = i; i = j; j = h; } int a = 5; int b = 6; swap(a, b); std::cout << a << "\n"; // outputs 6 std::cout << b << "\n"; // outputs 5 (From: Script Exercise 95) 3

87 Exercise: Swap Solution: // POST: the values of i and j are swapped void swap (int& i, int& j) { const int h = i; i = j; j = h; } int a = 5; int b = 6; swap(a, b); std::cout << a << "\n"; // outputs 6 std::cout << b << "\n"; // outputs 5 a: 5 (From: Script Exercise 95) 4

88 Exercise: Swap Solution: // POST: the values of i and j are swapped void swap (int& i, int& j) { const int h = i; i = j; j = h; } int a = 5; int b = 6; swap(a, b); std::cout << a << "\n"; // outputs 6 std::cout << b << "\n"; // outputs 5 a: 5 b: 6 (From: Script Exercise 95) 5

89 Exercise: Swap Solution: // POST: the values of i and j are swapped void swap (int& i, int& j) { const int h = i; i = j; j = h; } int a = 5; int b = 6; swap(a, b); std::cout << a << "\n"; // outputs 6 std::cout << b << "\n"; // outputs 5 a: 5 b: 6 (From: Script Exercise 95) 6

90 Exercise: Swap Solution: // POST: the values of i and j are swapped void swap (int& i, int& j) { const int h = i; i = j; j = h; } int a = 5; int b = 6; swap(a, b); std::cout << a << "\n"; // outputs 6 std::cout << b << "\n"; // outputs 5 i: a: 5 b: 6 (From: Script Exercise 95) 7

91 Exercise: Swap Solution: // POST: the values of i and j are swapped void swap (int& i, int& j) { const int h = i; i = j; j = h; } int a = 5; int b = 6; swap(a, b); std::cout << a << "\n"; // outputs 6 std::cout << b << "\n"; // outputs 5 i: j: a: 5 b: 6 (From: Script Exercise 95) 8

92 Exercise: Swap Solution: // POST: the values of i and j are swapped void swap (int& i, int& j) { const int h = i; i = j; j = h; } int a = 5; int b = 6; swap(a, b); std::cout << a << "\n"; // outputs 6 std::cout << b << "\n"; // outputs 5 i: j: h: 5 a: 5 b: 6 (From: Script Exercise 95) 9

93 Exercise: Swap Solution: // POST: the values of i and j are swapped void swap (int& i, int& j) { const int h = i; i = j; j = h; } int a = 5; int b = 6; swap(a, b); std::cout << a << "\n"; // outputs 6 std::cout << b << "\n"; // outputs 5 i: j: h: 5 a: 6 b: 6 (From: Script Exercise 95) 10

94 Exercise: Swap Solution: // POST: the values of i and j are swapped void swap (int& i, int& j) { const int h = i; i = j; j = h; } int a = 5; int b = 6; swap(a, b); std::cout << a << "\n"; // outputs 6 std::cout << b << "\n"; // outputs 5 i: j: h: 5 a: 6 b: 5 (From: Script Exercise 95) 11

95 Exercise: Swap Solution: // POST: the values of i and j are swapped void swap (int& i, int& j) { const int h = i; i = j; j = h; } int a = 5; int b = 6; swap(a, b); std::cout << a << "\n"; // outputs 6 std::cout << b << "\n"; // outputs 5 a: 6 b: 5 (From: Script Exercise 95) 12

96 Exercise: Swap Solution: // POST: the values of i and j are swapped void swap (int& i, int& j) { const int h = i; i = j; j = h; } int a = 5; int b = 6; swap(a, b); std::cout << a << "\n"; // outputs 6 std::cout << b << "\n"; // outputs 5 a: 6 b: 5 (From: Script Exercise 95) 13

97 Stepwise Refinement David Sommer October 31,

98 Stepwise Refinement Stufenweise Verbesserung des Codes. David Sommer October 31,

99 Stepwise Refinement Stufenweise Verbesserung des Codes. Grobe Planung zuerst. David Sommer October 31,

100 Stepwise Refinement Stufenweise Verbesserung des Codes. Grobe Planung zuerst. Erst danach die Details. David Sommer October 31,

101 Stepwise Refinement Stufenweise Verbesserung des Codes. Grobe Planung zuerst. Erst danach die Details. Ziel: Bessere Strukturierung David Sommer October 31,

102 Stepwise Refinement Stufenweise Verbesserung des Codes. Grobe Planung zuerst. Erst danach die Details. Ziel: Bessere Strukturierung Grössere Projekte benötigen klare Absprachen David Sommer October 31,

103 Stepwise Refinement Stufenweise Verbesserung des Codes. Grobe Planung zuerst. Erst danach die Details. Ziel: Bessere Strukturierung Grössere Projekte benötigen klare Absprachen Modularisierung David Sommer October 31,

104 Stepwise Refinement Stufenweise Verbesserung des Codes. Grobe Planung zuerst. Erst danach die Details. Ziel: Bessere Strukturierung Grössere Projekte benötigen klare Absprachen Modularisierung Klassen (später im Kurs) David Sommer October 31,

105 Perfect numbers via stepwise refinement

106

107

108

109 Absenz Nächste Woche werde ich nicht hier sein. Prof Dr. Gärtner wird euch orientieren. David Sommer October 31,

110 Fragen? David Sommer October 31,

Introduction to Python. Introduction. First Steps in Python. pseudo random numbers. May 2016

Introduction to Python. Introduction. First Steps in Python. pseudo random numbers. May 2016 to to May 2016 to What is Programming? All computers are stupid. All computers are deterministic. You have to tell the computer what to do. You can tell the computer in any (programming) language) you

Mehr

Die erste C++ Funktion

Die erste C++ Funktion Die erste C++ Funktion Funktion zur Potenzberechnung // PRE: e >= 0 b!= 0.0 // POST: return value is b^e double pow (double b, int e) { double result = 1.0; if (e < 0) { // b^e = (1/b)^(-e) b = 1.0/b;

Mehr

7. Einführung in C++ Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt

7. Einführung in C++ Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt 7. Einführung in C++ Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt 1 Kontrollfragen Rekursion Was bedeutet Rekursion? Geben Sie Beispiele

Mehr

Programmier-Befehle - Woche 10

Programmier-Befehle - Woche 10 Funktionen Rekursion Selbstaufruf einer Funktion Jeder rekursive Funktionsaufruf hat seine eigenen, unabhängigen Variablen und Argumente. Dies kann man sich sehr gut anhand des in der Vorlesung gezeigten

Mehr

Algorithms & Datastructures Midterm Test 1

Algorithms & Datastructures Midterm Test 1 Algorithms & Datastructures Midterm Test 1 Wolfgang Pausch Heiko Studt René Thiemann Tomas Vitvar

Mehr

Grundlagen C und C++ Einheit 04: Weitere Grundlagen in C++ Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme

Grundlagen C und C++ Einheit 04: Weitere Grundlagen in C++ Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Grundlagen C und C++ Einheit 04: Weitere Grundlagen in C++ Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda Teil 1: Weitere Grundlagen von C++ Das assert Statement File Input und

Mehr

Lindenmayer-Systeme: Fraktale rekursiv zeichnen

Lindenmayer-Systeme: Fraktale rekursiv zeichnen Lindenmayer-Systeme: Fraktale rekursiv zeichnen Lindenmayer-Systeme: Definition o Alphabet Σ ( Beispiel: {F, +, -} ) Lindenmayer-Systeme: Definition o Alphabet Σ ( Beispiel: {F, +, -} ) o Σ * = Menge aller

Mehr

C++ Teil 4. Sven Groß. 30. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 16

C++ Teil 4. Sven Groß. 30. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 16 C++ Teil 4 Sven Groß IGPM, RWTH Aachen 30. Apr 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 4 30. Apr 2015 1 / 16 Themen der letzten Vorlesung Funktionen: Definition und Aufruf Wert- und Referenzparameter,

Mehr

Lindenmayer-Systeme: Fraktale rekursiv zeichnen. Definition. Definition. Definition. o Alphabet Σ ( Beispiel: {F, +, -} )

Lindenmayer-Systeme: Fraktale rekursiv zeichnen. Definition. Definition. Definition. o Alphabet Σ ( Beispiel: {F, +, -} ) Fraktale rekursiv zeichnen Definition o Alphabet Σ ( Beispiel: F, +, - ) Definition o Alphabet Σ ( Beispiel: F, +, - ) o Σ * = Menge aller endlichen Wörter über Σ ( Beispiel: F+F+ ist in Σ * ) Definition

Mehr

Variablen in C++ Einfache Variablen Strukturen Arrays und Zeichenketten Zeiger und Referenzen Parameter Dynamische Speicherverwaltung

Variablen in C++ Einfache Variablen Strukturen Arrays und Zeichenketten Zeiger und Referenzen Parameter Dynamische Speicherverwaltung Variablen in C++ Einfache Variablen Strukturen Arrays und Zeichenketten Zeiger und Referenzen Parameter Dynamische Speicherverwaltung Einfache Variablen Typen int, long, short, unsigned bool char float,

Mehr

Grundlagen der Informatik 8. Funktionen I

Grundlagen der Informatik 8. Funktionen I 8. Funktionen I Motivation Grundlagen Parameterübergabe Struktogramme Grundlagen der Informatik (Alex Rempel) 1 Motivation Funktionen sind Mittel der Programmstrukturierung Modularisierung Aufteilung in

Mehr

Structs, Referenztypen und Const-Typen

Structs, Referenztypen und Const-Typen Structs, Referenztypen und Const-Typen Rechnen mit rationalen Zahlen o Rationale Zahlen (Q) sind von der Form n/d, mit n und d ausz o C++ hat keinen eingebauten Typ für rationale Zahlen Rechnen mit rationalen

Mehr

Visuelle Kryptographie. Anwendung von Zufallszahlen

Visuelle Kryptographie. Anwendung von Zufallszahlen Visuelle Kryptographie Anwendung von Zufallszahlen Verschlüsseln eines Bildes Wir wollen ein Bild an Alice und Bob schicken, so dass Verschlüsseln eines Bildes Wir wollen ein Bild an Alice und Bob schicken,

Mehr

Zusammenfassung. Mit bjam und ein paar Zeilen in einem Jamroot oder Jamfile lässt sich das Kompilieren und Linken einfach automatisieren

Zusammenfassung. Mit bjam und ein paar Zeilen in einem Jamroot oder Jamfile lässt sich das Kompilieren und Linken einfach automatisieren Zusammenfassung Deklaration einer Klasse im Header-File /.h-file Header-Files mit #pragma once vor double inclusion schützen möglichst Vorwärts-Deklarationen verwenden statt include-files einzubinden mindestens

Mehr

Grundlagen der Informatik 6. Arrays I

Grundlagen der Informatik 6. Arrays I 6. Arrays I Motivation Array (konstante Länge) Speicherbereich Eingabe von Arrays Grundlagen der Informatik (Alex Rempel) 1 Motivation Beispiel: Bildschirmpixel zeichnen Auflösung 800x600, d.h. insgesamt

Mehr

Grundlagen der Informatik 5. Kontrollstrukturen II

Grundlagen der Informatik 5. Kontrollstrukturen II 5. Kontrollstrukturen II Schleifen Sprünge Grundlagen der Informatik (Alex Rempel) 1 Schleifen Schleifen allgemein und in C++ Schleifen (Loops) ermöglichen die Realisierung sich wiederholender Aufgaben

Mehr

Algorithm Theory 3 Fast Fourier Transformation Christian Schindelhauer

Algorithm Theory 3 Fast Fourier Transformation Christian Schindelhauer Algorithm Theory 3 Fast Fourier Transformation Institut für Informatik Wintersemester 2007/08 Chapter 3 Fast Fourier Transformation 2 Polynomials Polynomials p over real numbers with a variable x p(x)

Mehr

Unit 4. The Extension Principle. Fuzzy Logic I 123

Unit 4. The Extension Principle. Fuzzy Logic I 123 Unit 4 The Extension Principle Fuzzy Logic I 123 Images and Preimages of Functions Let f : X Y be a function and A be a subset of X. Then the image of A w.r.t. f is defined as follows: f(a) = {y Y there

Mehr

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften Programmiertechnik Teil 4 C++ Funktionen: Prototypen Overloading Parameter C++ Funktionen: Eigenschaften Funktionen (Unterprogramme, Prozeduren) fassen Folgen von Anweisungen zusammen, die immer wieder

Mehr

Exercise 3. Data Types and Variables. Daniel Bogado Duffner - n.ethz.ch/~bodaniel. Informatik I für D-MAVT

Exercise 3. Data Types and Variables. Daniel Bogado Duffner - n.ethz.ch/~bodaniel. Informatik I für D-MAVT Exercise 3 Data Types and Variables Daniel Bogado Duffner - bodaniel@student.ethz.ch n.ethz.ch/~bodaniel Informatik I für D-MAVT Agenda Quiz Feedback Übung 2/Recap Variables Declaration and assignment

Mehr

Ein kleiner Blick auf die generische Programmierung

Ein kleiner Blick auf die generische Programmierung TgZero Technik.Blosbasis.net June 3, 2013 1 Inhaltsverzeichnis 1 Vorwort 3 2 Ein kleines Beispiel 3 3 Templates 3 4 Verschiedene Datentypen 4 5 Variadic Templates 5 6 Unterschied zwischen den Programmiersprachen

Mehr

Von C zu C++ Karl Gmeiner

Von C zu C++ Karl Gmeiner Karl Gmeiner 2015 1 Beziehung C und C++ C ist (fast) vollständig in C++ enthalten C++ = C with classes C++ bietet Features, die es in C nicht gibt Vererbung/Polymorphismus Operatorenüberlagerung Generizität

Mehr

6. Fliesskommazahlen II. Fliesskommazahlensysteme; IEEE Standard; Grenzen der Fliesskommaarithmetik; Fliesskomma-Richtlinien; Harmonische Zahlen

6. Fliesskommazahlen II. Fliesskommazahlensysteme; IEEE Standard; Grenzen der Fliesskommaarithmetik; Fliesskomma-Richtlinien; Harmonische Zahlen 163 6. Fliesskommazahlen II Fliesskommazahlensysteme; IEEE Standard; Grenzen der Fliesskommaarithmetik; Fliesskomma-Richtlinien; Harmonische Zahlen Fliesskommazahlensysteme 164 Ein Fliesskommazahlensystem

Mehr

DAP2-Programmierpraktikum Einführung in C++ (Teil 1)

DAP2-Programmierpraktikum Einführung in C++ (Teil 1) DAP2-Programmierpraktikum Einführung in C++ (Teil 1) Carsten Gutwenger 11. April 2008 Lehrstuhl 11 Algorithm Engineering Fakultät für Informatik, TU Dortmund Überblick Mein erstes C++-Programm Namensräume

Mehr

Informatik I (D-MAVT)

Informatik I (D-MAVT) Informatik I (D-MAVT) Übungsstunde 1 simon.mayer@inf.ethz.ch Distributed Systems Group, ETH Zürich kurze Stunden mit Stoffueberblick -> mehr Zeit fuer Fragen This semester s menu... Imperative Programmierung

Mehr

Themen. Formatierte und unformatierte Eingabe Bedingungsoperator Namespaces Kommandozeilenargumente

Themen. Formatierte und unformatierte Eingabe Bedingungsoperator Namespaces Kommandozeilenargumente Themen Formatierte und unformatierte Eingabe Bedingungsoperator Namespaces Kommandozeilenargumente Formatierte Eingabe mit cin Die Formatierung der Eingabe ist der Ausgabe sehr ähnlich: Die Flags werden

Mehr

Grundlagen der Informatik 2. Typen

Grundlagen der Informatik 2. Typen Grundlagen der Informatik 2. Typen Speicher, Speicherbedarf Ein-/Ausgabe Grundlagen der Informatik (Alex Rempel) 1 Wiederholung // root calculation #include #include using namespace

Mehr

Abgeleitete Datentypen

Abgeleitete Datentypen Abgeleitete Datentypen Prof. Dr. Markus Gross Informatik I für D-MAVT (FS 2014) Felder (Arrays) Zeichenketten (Strings) Strukturen (Structs) union, enum & typedef Arrays Ein Array ist ein Datentyp, der

Mehr

C++ Kurs Teil 3. Standard Template Library (STL) Kommunikation mit der shell Hyper Text Markup Language (HTML)

C++ Kurs Teil 3. Standard Template Library (STL) Kommunikation mit der shell Hyper Text Markup Language (HTML) C++ Kurs Teil 3 Standard Template Library (STL) Übersicht vector algorithm: sort, for_each map Kommunikation mit der shell Hyper Text Markup Language (HTML) O. Ronneberger: C++ Kurs Teil 3 Seite 1

Mehr

kurze Wiederholung class templates

kurze Wiederholung class templates kurze Wiederholung class templates Ein class template ist ein Template, dass mit einem oder mehreren typename -Parametern implementiert wird. Um solch ein Template zu benutzen, übergibt man dem Template

Mehr

C++ - Funktionen und mehr. Kerstin Gößner und Ralf Wondratschek

C++ - Funktionen und mehr. Kerstin Gößner und Ralf Wondratschek C++ - Funktionen und mehr Kerstin Gößner und Ralf Wondratschek Übersicht Deklaration, Definition und Initialisierung Variablen- und Konstantendeklaration Funktionsaufrufe und rückgabewerte Technische Grundlage

Mehr

8. Referenzen und Zeiger

8. Referenzen und Zeiger 8. Referenzen und Zeiger Motivation Variable werden in C++ an speziellen Positionen im Speicher abgelegt. An jeder Position befindet sich 1 Byte. Sie sind durchnummeriert beginnend bei 0. Diese Positionen

Mehr

C++ - Einführung in die Programmiersprache Header-Dateien und Funktionen. Leibniz Universität IT Services Anja Aue

C++ - Einführung in die Programmiersprache Header-Dateien und Funktionen. Leibniz Universität IT Services Anja Aue C++ - Einführung in die Programmiersprache Header-Dateien und Funktionen Leibniz Universität IT Services Anja Aue Modularisierung Logische Gliederung von Programmteilen mit Hilfe von Namensräumen. Aufteilung

Mehr

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur Unterprogramme Unterprogramme sind abgekapselte Programmfragmente, welche es erlauben, bestimmte Aufgaben in wiederverwendbarer Art umzusetzen. Man unterscheidet zwischen Unterprogrammen mit Rückgabewert

Mehr

Beispiel 2a Die eigenen ersten Schritte mit dem Gnu-Debugger GDB für Remote-Debugging

Beispiel 2a Die eigenen ersten Schritte mit dem Gnu-Debugger GDB für Remote-Debugging Beispiel 2a Die eigenen ersten Schritte mit dem Gnu-Debugger GDB für Remote-Debugging Das Beispiel orientiert sich am selben Code, der im Teil 1 der Serie verwendet wurde. Text Styles: Shell Prompt mit

Mehr

Konstruktor/Destruktor

Konstruktor/Destruktor 1/23 Konstruktor/Destruktor Florian Adamsky, B. Sc. (PhD cand.) florian.adamsky@iem.thm.de http://florian.adamsky.it/ cbd Softwareentwicklung im WS 2014/15 2/23 Outline 1 2 3/23 Inhaltsverzeichnis 1 2

Mehr

Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Gute Lösung:

Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Gute Lösung: Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Der Sourcecode wird an den entsprechenden Stellen im Programm wiederholt Programm wird lang

Mehr

5. Abgeleitete Datentypen

5. Abgeleitete Datentypen 5. Abgeleitete Datentypen Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)!Felder (Arrays)!Zeichenketten (Strings)!Strukturen (Structs) Copyright: M. Gross, ETHZ, 2003 2 Arrays! Ein Array ist

Mehr

Verschlüsseln eines Bildes. Visuelle Kryptographie. Verschlüsseln eines Bildes. Verschlüsseln eines Bildes

Verschlüsseln eines Bildes. Visuelle Kryptographie. Verschlüsseln eines Bildes. Verschlüsseln eines Bildes Verschlüsseln eines Bildes Visuelle Kryptographie Anwendung von Zufallszahlen Wir wollen ein Bild an Alice und Bob schicken, so dass Alice allein keine Information über das Bild bekommt Bob allein keine

Mehr

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 1. Teil 11. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches

Mehr

Introduction FEM, 1D-Example

Introduction FEM, 1D-Example Introduction FEM, D-Example /home/lehre/vl-mhs-/inhalt/cover_sheet.tex. p./22 Table of contents D Example - Finite Element Method. D Setup Geometry 2. Governing equation 3. General Derivation of Finite

Mehr

Umrechnungsfunktionen Simatic S5-Gleitpunkt-Format in S7 Real und zurück Converting Simatic S5 floating point format to S7 real and reverse

Umrechnungsfunktionen Simatic S5-Gleitpunkt-Format in S7 Real und zurück Converting Simatic S5 floating point format to S7 real and reverse Standard-Software für Simatic S7 Umrechnungsfunktionen Simatic S5-Gleitpunkt-Format in S7 Real und zurück Converting Simatic S5 floating point format to S7 real and reverse Inhalt / Contents A. Beschreibung

Mehr

Ein- und Ausgabe mit Dateien

Ein- und Ausgabe mit Dateien Ein- und Ausgabe mit Dateien Edouard Lamboray Informatik I für D-ITET (2004) Ein- und Ausgabekonzepte in C und C++ fstream header Streamobjekt Files schreiben und lesen Argumente von main 2 Vorbemerkungen

Mehr

Grundlagen der Informatik 11. Zeiger

Grundlagen der Informatik 11. Zeiger 11. Zeiger Motivation Zeiger und Adressen Zeiger und Funktionen Zeiger und Arrays Dynamische Objekte Grundlagen der Informatik (Alex Rempel) 1 Motivation Dynamische Speicherverwaltung Oft müssen große

Mehr

7. Fliesskommazahlen II. Fliesskommazahlensysteme; IEEE Standard; Grenzen der Fliesskommaarithmetik; Fliesskomma-Richtlinien; Harmonische Zahlen

7. Fliesskommazahlen II. Fliesskommazahlensysteme; IEEE Standard; Grenzen der Fliesskommaarithmetik; Fliesskomma-Richtlinien; Harmonische Zahlen 238 7. Fliesskommazahlen II Fliesskommazahlensysteme; IEEE Standard; Grenzen der Fliesskommaarithmetik; Fliesskomma-Richtlinien; Harmonische Zahlen 239 Fliesskommazahlensysteme Ein Fliesskommazahlensystem

Mehr

Algorithmen zur Datenanalyse in C++

Algorithmen zur Datenanalyse in C++ Algorithmen zur Datenanalyse in C++ Hartmut Stadie 16.04.2012 Algorithmen zur Datenanalyse in C++ Hartmut Stadie 1/ 39 Einführung Datentypen Operatoren Anweisungssyntax Algorithmen zur Datenanalyse in

Mehr

Übung 3: VHDL Darstellungen (Blockdiagramme)

Übung 3: VHDL Darstellungen (Blockdiagramme) Übung 3: VHDL Darstellungen (Blockdiagramme) Aufgabe 1 Multiplexer in VHDL. (a) Analysieren Sie den VHDL Code und zeichnen Sie den entsprechenden Schaltplan (mit Multiplexer). (b) Beschreiben Sie zwei

Mehr

Einführung in die STL

Einführung in die STL 1/29 in die STL Florian Adamsky, B. Sc. (PhD cand.) florian.adamsky@iem.thm.de http://florian.adamsky.it/ cbd Softwareentwicklung im WS 2014/15 2/29 Outline 1 3/29 Inhaltsverzeichnis 1 4/29 Typisierung

Mehr

Dynamische Datentypen

Dynamische Datentypen Dynamische Datentypen Tupel und Folgen o Wertebereich eines Structs / einer Klasse: T1 T2... Tk Werte sind k-tupel Tupel und Folgen o Wertebereich eines Structs / einer Klasse: T1 T2... Tk Werte sind k-tupel

Mehr

Prüfung Informatik D-MATH/D-PHYS :00 11:00

Prüfung Informatik D-MATH/D-PHYS :00 11:00 Prüfung Informatik D-MATH/D-PHYS 24. 1. 2014 09:00 11:00 Prof. Bernd Gartner Kandidat/in: Name:... Vorname:... Stud.-Nr.:... Ich bezeuge mit meiner Unterschrift dass ich die Prufung unter regularen Bedingungen

Mehr

Schriftlicher Test (120 Minuten) VU Einführung ins Programmieren für TM. 25. Jänner 2016

Schriftlicher Test (120 Minuten) VU Einführung ins Programmieren für TM. 25. Jänner 2016 Familienname: Vorname: Matrikelnummer: Aufgabe 1 (3 Punkte): Aufgabe 2 (4 Punkte): Aufgabe 3 (2 Punkte): Aufgabe 4 (2 Punkte): Aufgabe 5 (2 Punkte): Aufgabe 6 (1 Punkte): Aufgabe 7 (3 Punkte): Aufgabe

Mehr

VDK-Informatik

VDK-Informatik Florian Andritsch 7. Juli 2010 1 / 16 Übersicht Heute: Mittwoch Themen, Dynamische Arrays, Wiederholung Funktionen-Arrays- Rekursionen, Structs 2 / 16 Übersicht Was gabs gestern? Themen double, float Konversion

Mehr

Cilk Sprache für Parallelprogrammierung. IPD Snelting, Lehrstuhl für Programmierparadigmen

Cilk Sprache für Parallelprogrammierung. IPD Snelting, Lehrstuhl für Programmierparadigmen Cilk Sprache für Parallelprogrammierung IPD Snelting, Lehrstuhl für Programmierparadigmen David Soria Parra Geschichte Geschichte Entwickelt 1994 am MIT Laboratory for Computer Science Cilk 1: Continuations

Mehr

Polymorphismus 179. Function.h. #include <string>

Polymorphismus 179. Function.h. #include <string> Polymorphismus 179 #include Function.h class Function { public: virtual ~Function() {}; virtual std::string get_name() const = 0; virtual double execute(double x) const = 0; }; // class Function

Mehr

Übung 1 - Betriebssysteme I

Übung 1 - Betriebssysteme I Prof. Dr. Th. Letschert FB MNI 13. März 2002 Aufgabe 0: Basiswissen Rechnerarchitektur: Übung 1 - Betriebssysteme I Aus welchen Komponenten besteht ein Rechner mit Von-Neumann Architektur? Was sind Bits

Mehr

Einführung in den Einsatz von Objekt-Orientierung mit C++ I

Einführung in den Einsatz von Objekt-Orientierung mit C++ I Einführung in den Einsatz von Objekt-Orientierung mit C++ I ADV-Seminar Leiter: Mag. Michael Hahsler Syntax von C++ Grundlagen Übersetzung Formale Syntaxüberprüfung Ausgabe/Eingabe Funktion main() Variablen

Mehr

Programmieren II Abstrakte Klassen / Virtuelle Methoden. Programmieren II Abstrakte Klassen / Virtuelle Methoden

Programmieren II Abstrakte Klassen / Virtuelle Methoden. Programmieren II Abstrakte Klassen / Virtuelle Methoden Einleitende Bemerkungen Einleitende Bemerkungen Aspekte Aufbau von sinnvollen Klassenhierarchien Verwaltung von Objekten unterschiedlichen Typs Mitarbeiter Besonderheiten der Anwendung jeder Angehörige

Mehr

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22 C++ Teil 2 Sven Groß IGPM, RWTH Aachen 16. Apr 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 2 16. Apr 2015 1 / 22 Themen der letzten Vorlesung Hallo Welt Elementare Datentypen Ein-/Ausgabe Operatoren Sven

Mehr

Gestrige Themen. Benutzung des Compilers und Editors. Variablen. Ein- und Ausgabe mit cin, cout (C++) Verzweigungen. Schleifen

Gestrige Themen. Benutzung des Compilers und Editors. Variablen. Ein- und Ausgabe mit cin, cout (C++) Verzweigungen. Schleifen 1 Gestrige Themen Benutzung des Compilers und Editors Variablen Ein- und Ausgabe mit cin, cout (C++) Verzweigungen Schleifen Ausdrücke 2 Themen heute Elementare Datentypen Zusatz zu Kontrollstrukturen

Mehr

VGM. VGM information. HAMBURG SÜD VGM WEB PORTAL USER GUIDE June 2016

VGM. VGM information. HAMBURG SÜD VGM WEB PORTAL USER GUIDE June 2016 Overview The Hamburg Süd VGM Web portal is an application that enables you to submit VGM information directly to Hamburg Süd via our e-portal Web page. You can choose to enter VGM information directly,

Mehr

Objektorientierte Programmierung mit C++ SS 2007

Objektorientierte Programmierung mit C++ SS 2007 Objektorientierte Programmierung mit C++ SS 2007 Andreas F. Borchert Universität Ulm 5. Juni 2007 Polymorphismus #include Function.h class Function { public: virtual ~Function() {}; virtual std::string

Mehr

Einführung in die C++ Programmierung für Ingenieure

Einführung in die C++ Programmierung für Ingenieure Einführung in die C++ Programmierung für Ingenieure MATTHIAS WALTER / JENS KLUNKER Universität Rostock, Lehrstuhl für Modellierung und Simulation 14. November 2012 c 2012 UNIVERSITÄT ROSTOCK FACULTY OF

Mehr

Logik für Informatiker Logic for computer scientists

Logik für Informatiker Logic for computer scientists Logik für Informatiker Logic for computer scientists Till Mossakowski WiSe 2007/08 2 Rooms Monday 13:00-15:00 GW2 B1410 Thursday 13:00-15:00 GW2 B1410 Exercises (bring your Laptops with you!) either Monday

Mehr

Lösungen zu Aufgabe 3 Mathematik

Lösungen zu Aufgabe 3 Mathematik Lösungen zu Aufgabe 3 Mathematik David Ploog, Frithjof Schulze Aufgabe 1. Die Dreieckszahlen kleiner als 100 sind 1, 3, 6, 10, 15, 1, 8, 36, 45, 55, 66, 78, 91. Diese Zahlen folgen der Vorschrift d n =

Mehr

Kap 7. Funktionen und Arrays

Kap 7. Funktionen und Arrays Kap 7. Funktionen und Arrays Elementare Algorithmen Allgemein Mathematik Text Eingabe ٧ Skalarprodukt wie Allgemein Ausgabe ٧ Länge ersetzen Summation Winkel Laenge Maximum ٧ Polynome berechnen ausschneiden

Mehr

Einführung in die Programmierung

Einführung in die Programmierung : Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte

Mehr

Grundlagen C und C++ Einheit 03: Grundlagen in C++ Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme

Grundlagen C und C++ Einheit 03: Grundlagen in C++ Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Grundlagen C und C++ Einheit 03: Grundlagen in C++ Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Teil 1: Wiederholung C Heutige Agenda Nutzereingaben verarbeiten Teil 2: Grundlagen in C++ Erstes

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung P2.1. Gliederung Rechnerpraktikum zu Kapitel 2 Objektorientierte Programmierung C++-Standardbibliothek, Rekursion Beispiel: Fast Fourier Transformation Beispiel: Klasse für komplexe Zahlen Folie 1 P2.2.

Mehr

Informatik für Elektrotechnik und Informationstechnik

Informatik für Elektrotechnik und Informationstechnik Informatik für Elektrotechnik und Informationstechnik Praktikum 1 Wintersemester 2013/14 1 Kennenlernen der Entwicklungsumgebung Netbeans Netbeans ist eine moderne Entwicklungsumgebung für mehrere Programmiersprachen,

Mehr

a) Name and draw three typical input signals used in control technique.

a) Name and draw three typical input signals used in control technique. 12 minutes Page 1 LAST NAME FIRST NAME MATRIKEL-NO. Problem 1 (2 points each) a) Name and draw three typical input signals used in control technique. b) What is a weight function? c) Define the eigen value

Mehr

Grundlagen der Informatik 4. Kontrollstrukturen I

Grundlagen der Informatik 4. Kontrollstrukturen I 4. Kontrollstrukturen I Anweisungen und Blöcke Grundlagen der Informatik (Alex Rempel) 1 Anweisungen und Blöcke Anweisungen ("statements") Immer mit Semikolon abzuschließen "Leere" Anweisung besteht aus

Mehr

1.5. Strukturierte Anweisungen

1.5. Strukturierte Anweisungen 1.5. Strukturierte Anweisungen Switch-Anweisung (C++): Initialisierungen dürfen nicht 'übersprungen' werden: switch (i) { int v1 = 2; // ERROR: jump past initialized variable case 1: int v2 = 3; //...

Mehr

Einführung in die Programmierung

Einführung in die Programmierung : Inhalt Einführung in die Programmierung Wintersemester 2009/0 : Technik vs. Iteration Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund 2 Definition (einfache,

Mehr

Prüfung Informatik D-MATH/D-PHYS :00 11:00

Prüfung Informatik D-MATH/D-PHYS :00 11:00 Prüfung Informatik D-MATH/D-PHYS 25. 1. 2013 09:00 11:00 Dr. Bernd Gartner Kandidat/in: Name:... Vorname:... Stud.-Nr.:... Ich bezeuge mit meiner Unterschrift, dass ich die Prufung unter regularen Bedingungen

Mehr

3D Programmierpraktikum: Einführung in C++ - Teil 1

3D Programmierpraktikum: Einführung in C++ - Teil 1 3D Programmierpraktikum: Einführung in C++ - Teil 1 Praktikum 3D Programmierung Sebastian Boring, Otmar Hilliges Donnerstag, 27. April 2006 LMU München Medieninformatik Boring/Hilliges 3D Programmierpraktikum

Mehr

C++ - Funktionen und mehr -

C++ - Funktionen und mehr - C++ - Funktionen und mehr - Friedrich-Schiller-Universität Jena Kerstin Gößner und Ralf Wondratschek Prof. Dr. habil. Wolfram Amme Dipl.-Inf. Thomas Heinze Inhaltsverzeichnis 1 Einleitung 3 2 Deklaration,

Mehr

C++11. neu in C++11: range-based for. Objektorientierte Programmierung mit C++ Ersetzung durch: 1. Elementares C++ int array[] = { 1, 2, 3, 4, 5 };

C++11. neu in C++11: range-based for. Objektorientierte Programmierung mit C++ Ersetzung durch: 1. Elementares C++ int array[] = { 1, 2, 3, 4, 5 }; neu in C++11: range-based for int array[] = { 1, 2, 3, 4, 5 ; for (int x : array) // value x *= 2; C++11 for (int& x : array) // reference x *= 2; Ersetzung durch: { auto && range = range-init; for ( auto

Mehr

HDNUM. Peter Bastian (IWR) Numerik November / 158

HDNUM. Peter Bastian (IWR) Numerik November / 158 HDNUM C++ kennt keine Matrizen und Vektoren,... Wir haben C++ erweitert um die Heidelberg Educational Numerics Library, kurz HDNum. Alle in der Vorlesung behandelten Beispiele sind dort enthalten. Peter

Mehr

Kurze Einführung in die Programmiersprache C++ und in Root

Kurze Einführung in die Programmiersprache C++ und in Root Kurze Einführung in die Programmiersprache C++ und in Root Statistik, Datenanalyse und Simulation; 31.10.2006 Inhalt 1 Einführung in die Programmiersprache C++ Allgemeines Variablen Funktionen 2 1 Einführung

Mehr

VGM. VGM information. HAMBURG SÜD VGM WEB PORTAL - USER GUIDE June 2016

VGM. VGM information. HAMBURG SÜD VGM WEB PORTAL - USER GUIDE June 2016 Overview The Hamburg Süd VGM-Portal is an application which enables to submit VGM information directly to Hamburg Süd via our e-portal web page. You can choose to insert VGM information directly, or download

Mehr

Elementare Datentypen in C++

Elementare Datentypen in C++ Elementare Datentypen in C++ bool signed/unsigned char signed/unsigned short int signed/unsigned int signed/unsigned long int (signed/unsigned long long int) float double long double void enum char Der

Mehr

v+s Output Quelle: Schotter, Microeconomics, , S. 412f

v+s Output Quelle: Schotter, Microeconomics, , S. 412f The marginal cost function for a capacity-constrained firm At output levels that are lower than the firm s installed capacity of K, the marginal cost is merely the variable marginal cost of v. At higher

Mehr

Objektorientiertes Programmieren für Ingenieure

Objektorientiertes Programmieren für Ingenieure Uwe Probst Objektorientiertes Programmieren für Ingenieure Anwendungen und Beispiele in C++ 18 2 Von C zu C++ 2.2.2 Referenzen und Funktionen Referenzen als Funktionsparameter Liefert eine Funktion einen

Mehr

Informatik I - Übung 2 Programmieren in Eclipse

Informatik I - Übung 2 Programmieren in Eclipse Informatik I - Übung 2 Programmieren in Eclipse. / Info1 / HelloWorld / HelloWorld Wort1 Wort2 Daniel Hentzen dhentzen@student.ethz.ch 5. März 2014 1.2 Häufigste Fehler im Terminal auf Gross-/Kleinschreibung

Mehr

Exercise 4. Logical Operators and Branching. Daniel Bogado Duffner - n.ethz.ch/~bodaniel. Informatik I für D-MAVT

Exercise 4. Logical Operators and Branching. Daniel Bogado Duffner - n.ethz.ch/~bodaniel. Informatik I für D-MAVT Exercise 4 Logical Operators and Branching Daniel Bogado Duffner - bodaniel@student.ethz.ch n.ethz.ch/~bodaniel Informatik I für D-MAVT Feedback/Quiz Branching (Bedingte Anweisung und Verzweigung) Relational

Mehr

Ein- und Ausgabe mit Dateien

Ein- und Ausgabe mit Dateien Ein- und Ausgabe mit Dateien Edouard Lamboray Informatik I für D-ITET (2004) Ein- und Ausgabekonzepte in C und C++ fstream header Streamobjekt Files schreiben und lesen Argumente von main Vorbemerkungen

Mehr

Einführung in die Programmierung Wintersemester 2016/17

Einführung in die Programmierung Wintersemester 2016/17 Einführung in die Programmierung Wintersemester 2016/17 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : Gültigkeitsbereiche Inhalt Lokale und globale

Mehr

Anweisungsblöcke (dazu zählen auch Programme) werden in geschweifte Klammern eingeschlossen.

Anweisungsblöcke (dazu zählen auch Programme) werden in geschweifte Klammern eingeschlossen. Programmierung in C++ Seite: 1 Beispielprogramm 1: Programmierung in C++ int main() int hoehe = 3; int grundseite = 5; double flaeche = hoehe*grundseite*0.5; cout

Mehr

NOREA Sprachführer Norwegisch: Ein lustbetonter Sprachkurs zum Selbstlernen (German Edition)

NOREA Sprachführer Norwegisch: Ein lustbetonter Sprachkurs zum Selbstlernen (German Edition) NOREA Sprachführer Norwegisch: Ein lustbetonter Sprachkurs zum Selbstlernen (German Edition) Click here if your download doesn"t start automatically NOREA Sprachführer Norwegisch: Ein lustbetonter Sprachkurs

Mehr

Unterlagen. CPP-Uebungen-08/

Unterlagen.  CPP-Uebungen-08/ Unterlagen http://projects.eml.org/bcb/people/ralph/ CPP-Uebungen-08/ http://www.katjawegner.de/lectures.html Kommentare in C++ #include /* Dies ist ein langer Kommentar, der über zwei Zeilen

Mehr

Funktionales C++ zum Ersten

Funktionales C++ zum Ersten Funktionales C++ zum Ersten WiMa-Praktikum 1, Teil C++, Tag 1 Christoph Ott, Büro: Helmholtzstr.18, E22 Tel.: 50-23575, Mail: christoph.ott@uni-ulm.de Institut für Angewandte Informationsverarbeitung 26.08.08

Mehr

A Classification of Partial Boolean Clones

A Classification of Partial Boolean Clones A Classification of Partial Boolean Clones DIETLINDE LAU, KARSTEN SCHÖLZEL Universität Rostock, Institut für Mathematik 25th May 2010 c 2010 UNIVERSITÄT ROSTOCK MATHEMATISCH-NATURWISSENSCHAFTLICHE FAKULTÄT,

Mehr

C-Kurs 2010 Pointer. 16. September v2.7.3

C-Kurs 2010 Pointer. 16. September v2.7.3 C-Kurs 2010 Pointer Sebastian@Pipping.org 16. September 2010 v2.7.3 This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 License. C-Kurs Mi Konzepte, Syntax,... printf, scanf Next

Mehr

Exercise 6. Compound Types and Control Flow. Informatik I für D-MAVT. M. Gross, ETH Zürich, 2017

Exercise 6. Compound Types and Control Flow. Informatik I für D-MAVT. M. Gross, ETH Zürich, 2017 Exercise 6 Compound Types and Control Flow Daniel Bogado Duffner Slides auf: Informatik I für D-MAVT bodaniel@student.ethz.ch n.ethz.ch/~bodaniel Agenda Recap/Quiz Structures Unions Enumerations Loops

Mehr

Mathematics (M4) (English version) ORIENTIERUNGSARBEIT (OA 11) Gymnasium. Code-Nr.:

Mathematics (M4) (English version) ORIENTIERUNGSARBEIT (OA 11) Gymnasium. Code-Nr.: Gymnasium 2. Klassen MAR Code-Nr.: Schuljahr 2005/2006 Datum der Durchführung Donnerstag, 6.4.2006 ORIENTIERUNGSARBEIT (OA 11) Gymnasium Mathematics (M4) (English version) Lesen Sie zuerst Anleitung und

Mehr

Introduction FEM, 1D-Example

Introduction FEM, 1D-Example Introduction FEM, 1D-Example home/lehre/vl-mhs-1-e/folien/vorlesung/3_fem_intro/cover_sheet.tex page 1 of 25. p.1/25 Table of contents 1D Example - Finite Element Method 1. 1D Setup Geometry 2. Governing

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 18

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 18 Kapitel 3 Datentypen und Variablen Seite 1 von 18 Datentypen - Einführung - Für jede Variable muss ein Datentyp festgelegt werden. - Hierdurch werden die Wertemenge und die verwendbaren Operatoren festgelegt.

Mehr

Lösung Übungsblatt 7

Lösung Übungsblatt 7 M4 Numerik für Physiker Lösung Übungsblatt 7 SoSe 008 Lösung Übungsblatt 7 Aufgabe 1: Lineare Ausgleichsrechnung Ein mehrdimensionales, lineares Ausgleichungsproblem lässt sich folgendermaßen darstellen:

Mehr

Name: Klausur Informatik III WS 2003/04

Name: Klausur Informatik III WS 2003/04 1 : Methodenimplementierung ca. 42 Punkte Gegeben ist die Klasse Mitarbeiter. Listing 1: (./Code1/Mitarbeiter.h) using namespace std; // globale Variable fuer Ausgabedatei // kann entsprechend

Mehr

pue13 January 28, 2017

pue13 January 28, 2017 pue13 January 28, 2017 1 Aufgabe 1 (Klammern und Anweisungsblöcke) Wie Sie in der Vorlesung gelernt haben, werden Anweisungsblöcke in Java nicht durch Einrückung, sondern mithilfe von geschweiften Klammern

Mehr