17. Rekursion 2. Bau eines Taschenrechners, Formale Grammatiken, Ströme, Backus Naur Form (BNF), Parsen

Größe: px
Ab Seite anzeigen:

Download "17. Rekursion 2. Bau eines Taschenrechners, Formale Grammatiken, Ströme, Backus Naur Form (BNF), Parsen"

Transkript

1 Rekursion 2 Bau eines Taschenrechners, Formale Grammatiken, Ströme, Backus Naur Form (BNF), Parsen

2 Taschenrechner 508 Beispiel Eingabe: Ausgabe: 8 Binäre Operatoren +, -, *, / und Zahlen

3 Taschenrechner 508 Beispiel Eingabe: 3 / 5 Ausgabe: 0.6 Binäre Operatoren +, -, *, / und Zahlen Fliesskommaarithmetik

4 Taschenrechner 508 Beispiel Eingabe: * 20 Ausgabe: 103 Binäre Operatoren +, -, *, / und Zahlen Fliesskommaarithmetik Präzedenzen und Assoziativitäten wie in C++

5 Taschenrechner 508 Beispiel Eingabe: (3 + 5) * 20 Ausgabe: 160 Binäre Operatoren +, -, *, / und Zahlen Fliesskommaarithmetik Präzedenzen und Assoziativitäten wie in C++ Klammerung

6 Taschenrechner 508 Beispiel Eingabe: -(3 + 5) + 20 Ausgabe: 12 Binäre Operatoren +, -, *, / und Zahlen Fliesskommaarithmetik Präzedenzen und Assoziativitäten wie in C++ Klammerung Unärer Operator -

7 Naiver Versuch (ohne Klammern) double lval; std::cin >> lval; char op; while (std::cin >> op && op!= = ) { double rval; std::cin >> rval; if (op == + ) lval += rval; else if (op == ) lval = rval; else... } std::cout << "Ergebnis " << lval << "\n"; 509

8 Scheint zu klappen... double lval; std::cin >> lval; char op; while (std::cin >> op && op!= = ) { double rval; std::cin >> rval; if (op == + ) lval += rval; else if (op == ) lval = rval; else... Eingabe 1 * 2 * 3 * 4 = Ergebnis 24 } std::cout << "Ergebnis " << lval << "\n"; 509

9 Oops, Strich- vor Punktrechnung... double lval; std::cin >> lval; char op; while (std::cin >> op && op!= = ) { double rval; std::cin >> rval; if (op == + ) lval += rval; else if (op == ) lval = rval; else... Eingabe * 3 = Ergebnis 15 } std::cout << "Ergebnis " << lval << "\n"; 509

10 Analyse des Problems 510 Beispiel Eingabe:

11 Analyse des Problems 510 Beispiel Eingabe:

12 Analyse des Problems 510 Beispiel Eingabe: (15...

13 Analyse des Problems 510 Beispiel Eingabe: (

14 Analyse des Problems 510 Beispiel Eingabe: (15 7 3) = Muss gespeichert bleiben, damit jetzt ausgewertet werden kann!

15 Analyse des Problems 510 Beispiel Ergebnis: (15 21)

16 Analyse des Problems 510 Beispiel Ergebnis: 13+4 ( 6)

17 Analyse des Problems 510 Beispiel Ergebnis: 13 + ( 24)

18 Analyse des Problems 510 Beispiel Ergebnis: 11

19 Analyse des Problems 510 Beispiel Ausdruck: (15 7 3) Das Verstehen eines Ausdrucks erfordert Vorausschau auf kommende Symbole!

20 Analyse des Problems 510 Beispiel Ausdruck: (15 7 3) Das Verstehen eines Ausdrucks erfordert Vorausschau auf kommende Symbole! Beispiel Diese

21 Analyse des Problems 510 Beispiel Ausdruck: (15 7 3) Das Verstehen eines Ausdrucks erfordert Vorausschau auf kommende Symbole! Beispiel Diese Vorlesung

22 Analyse des Problems 510 Beispiel Ausdruck: (15 7 3) Das Verstehen eines Ausdrucks erfordert Vorausschau auf kommende Symbole! Beispiel Diese Vorlesung ist

23 Analyse des Problems 510 Beispiel Ausdruck: (15 7 3) Das Verstehen eines Ausdrucks erfordert Vorausschau auf kommende Symbole! Beispiel Diese Vorlesung ist insgesamt

24 Analyse des Problems 510 Beispiel Ausdruck: (15 7 3) Das Verstehen eines Ausdrucks erfordert Vorausschau auf kommende Symbole! Beispiel Diese Vorlesung ist insgesamt recht

25 Analyse des Problems 510 Beispiel Ausdruck: (15 7 3) Das Verstehen eines Ausdrucks erfordert Vorausschau auf kommende Symbole! Beispiel Diese Vorlesung ist insgesamt recht rekursiv.

26 Formale Grammatiken 511 Alphabet: endliche Menge von Symbolen Σ Sätze: endlichen Folgen von Symbolen Σ

27 Formale Grammatiken 511 Alphabet: endliche Menge von Symbolen Σ Sätze: endlichen Folgen von Symbolen Σ Eine formale Grammatik definiert, welche Sätze gültig sind.

28 Berge 512 Alphabet: {/, \} Berge: M {/, \} (gültige Sätze) m = //\/\\ /\/\ / \

29 Berge 512 Alphabet: {/, \} Berge: M {/, \} (gültige Sätze) m = //\\///\\\ /\ /\ / \ / \/ \

30 Falsche Berge 513 Alphabet: {/, \} Berge: M {/, \} (gültige Sätze) m = //\\\ /\ / \ \

31 Falsche Berge Alphabet: {/, \} Berge: M {/, \} (gültige Sätze) m = //\\\ / M /\ / \ \ Beide Seiten müssen gleiche Starthöhe haben. 513

32 Falsche Berge 513 Alphabet: {/, \} Berge: M {/, \} (gültige Sätze) m = /\\//\ /\ /\ \/

33 Falsche Berge 513 Alphabet: {/, \} Berge: M {/, \} (gültige Sätze) m = /\\//\ / M /\ /\ \/ Ein Berg darf nicht unter seine Starthöhe fallen.

34 Berge in Backus-Naur-Form (BNF) 514 berg = "/\" "/" berg "\" berg berg.

35 Berge in Backus-Naur-Form (BNF) 514 Mögliche Berge berg = "/\" "/" berg "\" berg berg.

36 Berge in Backus-Naur-Form (BNF) 514 Mögliche Berge 1 /\ berg = "/\" "/" berg "\" berg berg.

37 Berge in Backus-Naur-Form (BNF) 514 Mögliche Berge 1 /\ 2 berg = "/\" "/" berg "\" berg berg. /\/\ /\/\ / \ / \ / \

38 Berge in Backus-Naur-Form (BNF) 514 Mögliche Berge 1 /\ 2 3 berg = "/\" "/" berg "\" berg berg. /\/\ /\/\ / \ / \ / \ /\/\ / \ /\ /\ /\ / \ /\/\ /\ / \ / \/ \ / \/ \/ \

39 Berge in Backus-Naur-Form (BNF) 514 berg = "/\" "/" berg "\" berg berg. Regel Alternativen

40 Berge in Backus-Naur-Form (BNF) 514 berg = "/\" "/" berg "\" berg berg. Nichtterminal Terminal

41 Ströme 515 Ein Programm verarbeitet Eingaben von einem konzeptuell unbegrenzten Eingabestrom.

42 Ströme 515 Ein Programm verarbeitet Eingaben von einem konzeptuell unbegrenzten Eingabestrom. Bisher: Eingabestrom der Kommandozeile std::cin while (std::cin >> op && op!= = ) {... } Konsumiere op von std::cin, Leseposition schreitet fort.

43 Ströme 515 Ein Programm verarbeitet Eingaben von einem konzeptuell unbegrenzten Eingabestrom. Bisher: Eingabestrom der Kommandozeile std::cin while (std::cin >> op && op!= = ) {... } Konsumiere op von std::cin, Leseposition schreitet fort. Wir wollen zukünftig aber auch von Dateien lesen können!

44 Beispiel: BSD 16-bit Checksum 516 #include <iostream> int main () { } char c; int checksum = 0; while (std::cin >> c) { checksum = checksum / 2 + checksum % 2 0x c; checksum %= 0x10000; } std::cout << "checksum = " << std::hex << checksum << "\n";

45 Beispiel: BSD 16-bit Checksum #include <iostream> int main () { } Eingabe: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. char c; Erfordert in der Konsole manuelles Ende der Eingabe int checksum = 0; while (std::cin >> c) { checksum = checksum / 2 + checksum % 2 0x c; checksum %= 0x10000; } std::cout << "checksum = " << std::hex << checksum << "\n";

46 Beispiel: BSD 16-bit Checksum 516 #include <iostream> int main () { } char c; int checksum = 0; while (std::cin >> c) { Eingabe: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Ausgabe: 67fd checksum = checksum / 2 + checksum % 2 0x c; checksum %= 0x10000; } std::cout << "checksum = " << std::hex << checksum << "\n";

47 Beispiel: BSD 16-bit Checksum mit Datei 517 #include <iostream> #include <fstream> int main () { std::ifstream filestream ("loremispum.txt"); char c; int checksum = 0; while (filestream >> c) { checksum = checksum / 2 + checksum % 2 0x c; checksum %= 0x10000; } std::cout << "checksum = " << std::hex << checksum << "\n"; }

48 Beispiel: BSD 16-bit Checksum mit Datei #include <iostream> #include <fstream> int main () { std::ifstream filestream ("loremispum.txt"); } char c; int checksum = 0; while (filestream >> c) { Gibt am Dateiende false zurück. checksum = checksum / 2 + checksum % 2 0x c; checksum %= 0x10000; } std::cout << "checksum = " << std::hex << checksum << "\n";

49 Beispiel: BSD 16-bit Checksum mit Datei 517 #include <iostream> #include <fstream> int main () { std::ifstream filestream ("loremispum.txt"); } char c; int checksum = 0; while (filestream >> c) { Ausgabe: 67fd Gibt am Dateiende false zurück. checksum = checksum / 2 + checksum % 2 0x c; checksum %= 0x10000; } std::cout << "checksum = " << std::hex << checksum << "\n";

50 Beispiel: BSD 16-bit Checksum 518 Wiederverwendung gemeinsam genutzter Funktionalität?

51 Beispiel: BSD 16-bit Checksum 518 Wiederverwendung gemeinsam genutzter Funktionalität? Richtig: mit einer Funktion. Aber wie?

52 Beispiel: BSD 16-bit Checksum generisch! 519 #include <iostream> #include <fstream> int checksum (std::istream& is) { char c; int checksum = 0; while (is >> c) { checksum = checksum / 2 + checksum % 2 0x c; checksum %= 0x10000; } return checksum; }

53 Beispiel: BSD 16-bit Checksum generisch! 519 #include <iostream> #include <fstream> Referenz nötig: wir verändern den Strom! int checksum (std::istream& is) { char c; int checksum = 0; while (is >> c) { checksum = checksum / 2 + checksum % 2 0x c; checksum %= 0x10000; } return checksum; }

54 Gleiches Recht für alle! 520 #include <iostream> #include <fstream> int checksum (std::istream& is) {... } int main () { std::ifstream filestream("loremipsum.txt"); } if (checksum (filestream) == checksum (std::cin)) std::cout << "checksums match.\n"; else std::cout << "checksums differ.\n";

55 Gleiches Recht für alle! #include <iostream> #include <fstream> int checksum (std::istream& is) {... } int main () { std::ifstream filestream("loremipsum.txt"); } Eingabe: Lorem Yps mit Gimmick if (checksum (filestream) == checksum (std::cin)) std::cout << "checksums match.\n"; else std::cout << "checksums differ.\n";

56 Gleiches Recht für alle! 520 #include <iostream> #include <fstream> int checksum (std::istream& is) {... } int main () { std::ifstream filestream("loremipsum.txt"); } Eingabe: Lorem Yps mit Gimmick Ausgabe: checksums differ if (checksum (filestream) == checksum (std::cin)) std::cout << "checksums match.\n"; else std::cout << "checksums differ.\n";

57 Warum geht das? 521 std::cin ist eine Variable vom Typ std::istream. Sie repräsentiert einen Eingabestrom.

58 Warum geht das? 521 std::cin ist eine Variable vom Typ std::istream. Sie repräsentiert einen Eingabestrom. Unsere Variable filestream ist vom Typ std::ifstream. Sie repräsentiert einen Eingabestrom auf einer Datei.

59 Warum geht das? 521 std::cin ist eine Variable vom Typ std::istream. Sie repräsentiert einen Eingabestrom. Unsere Variable filestream ist vom Typ std::ifstream. Sie repräsentiert einen Eingabestrom auf einer Datei. Ein std::ifstream ist auch ein std::istream, kann nur etwas mehr.

60 Warum geht das? 521 std::cin ist eine Variable vom Typ std::istream. Sie repräsentiert einen Eingabestrom. Unsere Variable filestream ist vom Typ std::ifstream. Sie repräsentiert einen Eingabestrom auf einer Datei. Ein std::ifstream ist auch ein std::istream, kann nur etwas mehr. Somit kann filestream überall dort verwendet werden, wo ein std::istream verlangt ist.

61 Nochmal gleiches Recht für alle! #include <iostream> #include <fstream> #include <sstream> int checksum (std::istream& is) {... } int main () { std::ifstream filestream ("loremipsum.txt"); std::stringstream stringstream ("Lorem Yps mit Gimmick"); } if (checksum (filestream) == checksum (stringstream)) std::cout << "checksums match.\n"; else std::cout << "checksums differ.\n"; 522

62 Nochmal gleiches Recht für alle! #include <iostream> #include <fstream> #include <sstream> int checksum (std::istream& is) {... } int main () { std::ifstream filestream ("loremipsum.txt"); std::stringstream stringstream ("Lorem Yps mit Gimmick"); } Eingabe aus stringstream if (checksum (filestream) == checksum (stringstream)) std::cout << "checksums match.\n"; else std::cout << "checksums differ.\n";

63 Nochmal gleiches Recht für alle! #include <iostream> #include <fstream> #include <sstream> int checksum (std::istream& is) {... } Eingabe aus stringstream Ausgabe: checksums differ int main () { std::ifstream filestream ("loremipsum.txt"); std::stringstream stringstream ("Lorem Yps mit Gimmick"); } if (checksum (filestream) == checksum (stringstream)) std::cout << "checksums match.\n"; else std::cout << "checksums differ.\n"; 522

64 Ausdrücke 523 -(3-(4-5))*(3+4*5)/6 Was benötigen wir in einer BNF?

65 Ausdrücke 523 -(3-(4-5))*(3+4*5)/6 Was benötigen wir in einer BNF? Zahl

66 Ausdrücke 523 -(3-(4-5))*(3+4*5)/6 Was benötigen wir in einer BNF? Zahl, (? )

67 Ausdrücke 523 -(3-(4-5))*(3+4*5)/6 Was benötigen wir in einer BNF? Zahl, (? ) -Zahl, -(? )

68 Ausdrücke 523 -(3-(4-5))*(3+4*5)/6 Was benötigen wir in einer BNF? Zahl, (? ) -Zahl, -(? )? *?,? *? /?,...

69 Ausdrücke 523 -(3-(4-5))*(3+4*5)/6 Was benötigen wir in einer BNF? Zahl, (? ) -Zahl, -(? )? *?,? *? /?,...? -?,? +?,...

70 Ausdrücke Punktrechnung 523 -(3-(4-5))*(3+4*5)/6 Was benötigen wir in einer BNF? Zahl, (? ) -Zahl, -(? )? *?,? *? /?,...? -?,? +?,... Faktor

71 Ausdrücke Punktrechnung 523 -(3-(4-5))*(3+4*5)/6 Was benötigen wir in einer BNF? Zahl, (? ) -Zahl, -(? ) Faktor * Faktor, Faktor * Faktor / Faktor,...? -?,? +?,... Faktor

72 Ausdrücke Strichrechnung 523 -(3-(4-5))*(3+4*5)/6 Was benötigen wir in einer BNF? Zahl, (? ) -Zahl, -(? ) Faktor * Faktor, Faktor * Faktor / Faktor,...? -?,? +?,... Faktor Term

73 Ausdrücke Strichrechnung 523 -(3-(4-5))*(3+4*5)/6 Was benötigen wir in einer BNF? Zahl, (? ) -Zahl, -(? ) Faktor * Faktor, Faktor Faktor * Faktor / Faktor,...? -?,? +?,... Faktor Term

74 Ausdrücke 523 -(3-(4-5))*(3+4*5)/6 Was benötigen wir in einer BNF? Zahl, (? ) -Zahl, -(? ) Faktor * Faktor, Faktor Faktor * Faktor / Faktor,... Term + Term, Term - Term,... Faktor Term

75 Ausdrücke 523 -(3-(4-5))*(3+4*5)/6 Was benötigen wir in einer BNF? Zahl, (? ) -Zahl, -(? ) Faktor * Faktor, Faktor Faktor * Faktor / Faktor,... Term + Term, Term - Term,... Faktor Term Ausdruck

76 Ausdrücke 523 -(3-(4-5))*(3+4*5)/6 Was benötigen wir in einer BNF? Zahl, (? ) -Zahl, -(? ) Faktor * Faktor, Faktor Faktor * Faktor / Faktor,... Term + Term, Term Term - Term,... Faktor Term Ausdruck

77 Ausdrücke 523 -(3-(4-5))*(3+4*5)/6 Was benötigen wir in einer BNF? Zahl, ( Ausdruck ) -Zahl, -( Ausdruck ) Faktor * Faktor, Faktor Faktor * Faktor / Faktor,... Term + Term, Term Term - Term,... Faktor Term Ausdruck

78 Die BNF für Ausdrücke 524 factor = unsigned_number "(" expression ")" " " factor.

79 Die BNF für Ausdrücke 524 factor = unsigned_number "(" expression ")" " " factor. term = factor factor " " term factor "/" term.

80 Die BNF für Ausdrücke 524 factor = unsigned_number "(" expression ")" " " factor. term = factor factor " " term factor "/" term. expression = term term "+" expression term " " expression.

81 Parsen 525 Parsen: Feststellen, ob ein Satz nach der BNF gültig ist.

82 Parsen 525 Parsen: Feststellen, ob ein Satz nach der BNF gültig ist. Parser: Programm zum Parsen

83 Parsen 525 Parsen: Feststellen, ob ein Satz nach der BNF gültig ist. Parser: Programm zum Parsen Praktisch: Aus der BNF kann (fast) automatisch ein Parser generiert werden: Regeln werden zu Funktionen Alternativen werden zu if Anweisungen Nichtterminale Symbole auf der rechten Seite werden zu Funktionsaufrufen

84 Regeln factor term = unsigned_number "(" expression ")" " " factor. = factor factor " " term factor "/" term. expression = term term "+" expression term " " expression. 526

85 Funktionen (Parser) 526 Ausdruck wird aus einem Eingabestrom gelesen. // POST: returns true if and only if is = factor... // and in this case extracts factor from is bool factor (std::istream& is); // POST: returns true if and only if is = term..., // and in this case extracts all factors from is bool term (std::istream& is); // POST: returns true if and only if is = expression..., // and in this case extracts all terms from is bool expression (std::istream& is);

86 Funktionen (Parser mit Auswertung) 526 Ausdruck wird aus einem Eingabestrom gelesen. // POST: extracts a factor from is // and returns its value double factor (std::istream& is); // POST: extracts a term from is // and returns its value double term (std::istream& is); // POST: extracts an expression from is // and returns its value double expression (std::istream& is);

87 527 Vorausschau von einem Zeichen um jeweils die richtige Alternative zu finden. // POST: leading whitespace characters are extracted // from is, and the first non whitespace character // is returned (0 if there is no such character) char lookahead (std:: istream& is) { if ( is. eof ()) return 0; is >> std :: ws; // skip whitespaces if ( is. eof ()) return 0; // end of stream return is.peek(); // next character in is }

88 Rosinenpickerei 528 // POST: if ch matches the next lookahead then consume it // and return true. return false otherwise bool consume (std::istream& is, char ch) { if (lookahead(is) == ch){ is >> ch; return true; } return false ; }

89 529 Faktoren auswerten double factor (std::istream& is) { double v; if (consume(is, ( )){ v = expression (is); assert(consume(is, ) ));} else if (consume(is, )) v = factor (is); else if (lookahead(is)!= 0) } is >> v; return v; factor = "(" expression ")" " " factor unsigned_number.

90 Terme auswerten 530 double term (std::istream& is) { double v = factor(is); if (consume(is, )) v = term (is); else if (consume(is, / )) v /= term (is); return v; } term = factor factor " " term factor "/" term.

91 Ausdrücke auswerten 531 double expression (std::istream& is) { double v = term(is); if (consume(is, + )) v += expression(is); else if (consume(is, )) v = expression(is); return v; } expression = term term "+" expression term " " expression.

92 Rekursion! Factor Term Expression

93 Rekursion! Factor Term Expression

94 Rekursion! Factor Term Expression

95 Rekursion! Factor Term Expression

96 Rekursion! Factor Term Expression

97 Rekursion! 532 Factor Term Expression

98 Wir testen 533 Eingabe: -(3-(4-5))*(3+4*5)/6 Ausgabe:

99 Wir testen 533 Eingabe: -(3-(4-5))*(3+4*5)/6 Ausgabe:

100 Wir testen 533 Eingabe: -(3-(4-5))*(3+4*5)/6 Ausgabe:

101 Wir testen 533 Eingabe: Ausgabe:

102 Wir testen 533 Eingabe: Ausgabe: 4

103 Wir testen 533 Eingabe: Ausgabe: 4

104 Wir testen 534 Ist die BNF falsch?

105 Wir testen 534 Ist die BNF falsch? expression = term term "+" expression term " " expression.

106 Wir testen 534 Ist die BNF falsch? expression = term term "+" expression term " " expression. Nein, denn sie spricht nur über die Gültigkeit von Ausdrücken, nicht über deren Werte!

107 Wir testen 534 Ist die BNF falsch? expression = term term "+" expression term " " expression. Nein, denn sie spricht nur über die Gültigkeit von Ausdrücken, nicht über deren Werte! Die Auswertung haben wir naiv obendrauf gesetzt.

108 Dem Problem auf den Grund gehen 535 Reduktion auf den kritischen Fall (Fast) minimale BNF: sum = val val " " sum val "+" sum

109 536 Dem Problem auf den Grund gehen double sum (std::istream& is){ double v = val (is); if (consume(is, + )) v += sum (is); else if (consume (is, )) v -= sum (is); return v; } " "... std::stringstream input ("3 4 5"); std::cout << sum (input) << "\n"; // 4

110 536 Dem Problem auf den Grund gehen double sum (std::istream& is){ double v = val (is); if (consume(is, + )) v += sum (is); else if (consume (is, )) v -= sum (is); return v; 3 - "4-5" } " "... std::stringstream input ("3 4 5"); std::cout << sum (input) << "\n"; // 4

111 536 Dem Problem auf den Grund gehen double sum (std::istream& is){ double v = val (is); if (consume(is, + )) v += sum (is); else if (consume (is, )) v -= sum (is); return v; }... std::stringstream input ("3 4 5"); std::cout << sum (input) << "\n"; // "5" 3 - "4-5" " "

112 536 Dem Problem auf den Grund gehen double sum (std::istream& is){ double v = val (is); if (consume(is, + )) v += sum (is); else if (consume (is, )) v -= sum (is); return v; }... std::stringstream input ("3 4 5"); std::cout << sum (input) << "\n"; // "5" 3 - "4-5" " "

113 536 Dem Problem auf den Grund gehen double sum (std::istream& is){ double v = val (is); if (consume(is, + )) v += sum (is); else if (consume (is, )) v -= sum (is); return v; }... std::stringstream input ("3 4 5"); std::cout << sum (input) << "\n"; // "5" 3 - "4-5" " "

114 536 Dem Problem auf den Grund gehen double sum (std::istream& is){ double v = val (is); if (consume(is, + )) v += sum (is); else if (consume (is, )) v -= sum (is); return v; }... std::stringstream input ("3 4 5"); std::cout << sum (input) << "\n"; // "5" 3 - "4-5" " " -1

115 536 Dem Problem auf den Grund gehen double sum (std::istream& is){ double v = val (is); if (consume(is, + )) v += sum (is); else if (consume (is, )) v -= sum (is); return v; }... std::stringstream input ("3 4 5"); std::cout << sum (input) << "\n"; // "5" 3 - "4-5" " " -1 4

116 536 Dem Problem auf den Grund gehen double sum (std::istream& is){ double v = val (is); if (consume(is, + )) v += sum (is); else if (consume (is, )) v -= sum (is); return v; }... std::stringstream input ("3 4 5"); std::cout << sum (input) << "\n"; // "5" 3 - "4-5" " "

117 Was ist denn falsch gelaufen? 537 Die BNF spricht offiziell zwar nicht über Werte,

118 Was ist denn falsch gelaufen? 537 Die BNF spricht offiziell zwar nicht über Werte, legt uns aber trotzdem die falsche Klammerung (von rechts nach links) nahe.

119 Was ist denn falsch gelaufen? 537 Die BNF spricht offiziell zwar nicht über Werte, legt uns aber trotzdem die falsche Klammerung (von rechts nach links) nahe. sum = val " " sum führt sehr natürlich zu = 3 (4 5)

120 Der richtige Wert einer Summe v ± s 538 Bisher (Auswertung von rechts nach links): Summe(v±s) = { v ± v, falls s = v v ± Summe(s), sonst

121 Der richtige Wert einer Summe v ± s 538 Bisher (Auswertung von rechts nach links): Summe(v±s) = { v ± v, falls s = v v ± Summe(s), Neu (Auswertung von links nach rechts): Summe(v±s) = sonst v ± v, falls s = v

122 Der richtige Wert einer Summe v ± s 538 Bisher (Auswertung von rechts nach links): Summe(v±s) = { v ± v, falls s = v v ± Summe(s), Neu (Auswertung von links nach rechts): Summe(v±s) = sonst v ± v, falls s = v Summe((v ± v )±s ), falls s = v +s Summe((v ± v ) s ), falls s = v s

123 Summe(v±s) double sum (double v, char sign, std :: istream& s){ if (sign == + ) v += val (s); else if (sign == ) v = val (s); if (consume(is, + )) return sum (v, +, s ); else if (consume(is, )) return sum (v,, s ); else return v; 0, +," " }... std :: stringstream input ("3 4 5"); std :: cout << sum (0, +, input) << "\n"; // 6... in C++

124 Summe(v±s) double sum (double v, char sign, std :: istream& s){ if (sign == + ) v += val (s); else if (sign == ) v = val (s); if (consume(is, + )) return sum (v, +, s ); else if (consume(is, )) return sum (v,, s ); else return v; 3, -,"4-5", 0, +," " }... std :: stringstream input ("3 4 5"); std :: cout << sum (0, +, input) << "\n"; // 6... in C++

125 Summe(v±s) double sum (double v, char sign, std :: istream& s){ if (sign == + ) v += val (s); else if (sign == ) v = val (s); if (consume(is, + )) return sum (v, +, s ); -1, -, "5" else if (consume(is, )) return sum (v,, s ); else return v; 3, -,"4-5", 0, +," " }... std :: stringstream input ("3 4 5"); std :: cout << sum (0, +, input) << "\n"; // 6... in C++

126 Summe(v±s) double sum (double v, char sign, std :: istream& s){ if (sign == + ) v += val (s); else if (sign == ) v = val (s); if (consume(is, + )) return sum (v, +, s ); -1, -, "5" -6 else if (consume(is, )) return sum (v,, s ); else return v; 3, -,"4-5", 0, +," " }... std :: stringstream input ("3 4 5"); std :: cout << sum (0, +, input) << "\n"; // 6... in C++

127 Summe(v±s) double sum (double v, char sign, std :: istream& s){ if (sign == + ) v += val (s); else if (sign == ) v = val (s); if (consume(is, + )) return sum (v, +, s ); -1, -, "5" -6 else if (consume(is, )) return sum (v,, s ); else return v; 3, -,"4-5", 0, +," " }... std :: stringstream input ("3 4 5"); std :: cout << sum (0, +, input) << "\n"; // in C++

128 Summe(v±s) double sum (double v, char sign, std :: istream& s){ if (sign == + ) v += val (s); else if (sign == ) v = val (s); if (consume(is, + )) return sum (v, +, s ); -1, -, "5" -6 else if (consume(is, )) return sum (v,, s ); else return v; 3, -,"4-5", 0, +," " }... std :: stringstream input ("3 4 5"); std :: cout << sum (0, +, input) << "\n"; // in C++ 539

129 Zurück zur Vollversion 540 double expression (double v, char sign, std :: istream& is) { if (sign == + ) v += term (0, x,is ); else if (sign == ) v = term (0, x,is ); else v = term(0, x, is ); if (consume(is, + )) return expression(v, +, is ); } else if (consume(is, )) return expression(v,, is ); return v; expression = term term "+" expression term " " expression.

130 Das gleiche für Terme 541 double term (double v, char sign, std :: istream& is) { if (sign == ) v = factor ( is ); else if (sign == / ) v /= factor ( is ); else v = factor( is ); if (consume(is, )) return term(v,, is ); else if (consume(is, / )) return term(v, /, is ); return v; term = factor } factor " " term factor "/" term.

131 Faktoren (fast) unverändert fertig. 542 double factor (std :: istream& is) { double v; if (consume(is, ( )){ v = expression (0, x, is ); assert (consume(is, ) ));} else if (consume(is, )) v = factor (is ); else if (lookahead(is)!= 0) is >> v; return v; } factor = "(" expression ")" " " factor unsigned_number.

15. Rekursion 2. Bau eines Taschenrechners, Ströme, Formale Grammatiken, Extended Backus Naur Form (EBNF), Parsen von Ausdrücken

15. Rekursion 2. Bau eines Taschenrechners, Ströme, Formale Grammatiken, Extended Backus Naur Form (EBNF), Parsen von Ausdrücken 426 15. Rekursion 2 Bau eines Taschenrechners, Ströme, Formale Grammatiken, Extended Backus Naur Form (EBNF), Parsen von Ausdrücken Motivation: Taschenrechner 427 Beispiel Eingabe: 3 + 5 Ausgabe: 8 Binäre

Mehr

17. Rekursion 2. Bau eines Taschenrechners, Ströme, Formale Grammatiken, Extended Backus Naur Form (EBNF), Parsen von Ausdrücken

17. Rekursion 2. Bau eines Taschenrechners, Ströme, Formale Grammatiken, Extended Backus Naur Form (EBNF), Parsen von Ausdrücken 564 17. Rekursion 2 Bau eines Taschenrechners, Ströme, Formale Grammatiken, Extended Backus Naur Form (EBNF), Parsen von Ausdrücken Motivation: Taschenrechner 565 Beispiel Eingabe: 3 + 5 Ausgabe: 8 Binäre

Mehr

15. Rekursion. Rekursive Funktionen, Korrektheit, Terminierung, Aufrufstapel, Bau eines Taschenrechners, BNF, Parsen

15. Rekursion. Rekursive Funktionen, Korrektheit, Terminierung, Aufrufstapel, Bau eines Taschenrechners, BNF, Parsen 453 15. Rekursion Rekursive Funktionen, Korrektheit, Terminierung, Aufrufstapel, Bau eines Taschenrechners, BNF, Parsen Mathematische Rekursion 454 Viele mathematische Funktionen sind sehr natürlich rekursiv

Mehr

Typo & Layout CHRISTOPH RAUSCHER

Typo & Layout CHRISTOPH RAUSCHER Typo & Layout CHRISTOPH RAUSCHER Typo & Layout CHRISTOPH RAUSCHER Interface Design, Berlin www.christowski.de mail@christowski.de ? WORUM ES HEUTE GEHT Schrift & Buchstaben Texte & Inhalte Layout & Grundwissen

Mehr

15. Rekursion 2. Motivation: Taschenrechner. Naiver Versuch (ohne Klammern) Analyse des Problems (15 7 3) = Eingabe * 3 = Ergebnis 15

15. Rekursion 2. Motivation: Taschenrechner. Naiver Versuch (ohne Klammern) Analyse des Problems (15 7 3) = Eingabe * 3 = Ergebnis 15 Motivation: Taschenrechner 15. Rekursion 2 Bau eines Taschenrechners, Formale Grammatiken, Extended Backus Naur Form (EBNF), Parsen von Ausdrücken Ziel: Bau eines Kommandozeilenrechners Beispiel Eingabe:

Mehr

Sind E-Books eigentlich innovativ?

Sind E-Books eigentlich innovativ? Sind E-Books eigentlich innovativ? Strategische Innovation im Spannungsfeld von Geschäftsmodell und kulturellem Anspruch Ingrid Goldstein Knowledge Architectures Jana Steinmetz Universität St. Gallen 8.

Mehr

Von Likes wird keiner reich! von der Krux die PR Arbeit wirtschaftlich zu messen

Von Likes wird keiner reich! von der Krux die PR Arbeit wirtschaftlich zu messen Miracles come in moments. Be ready and willing Wayne Dyer Von Likes wird keiner reich! von der Krux die PR Arbeit wirtschaftlich zu messen 1 Thomas Leitner PR Arbeit = Earned Media Earned Media ist die

Mehr

kleine Designhilfe Logo Schrift Farbe Das Facettenkreuz als grafisches Element Anwendungen

kleine Designhilfe Logo Schrift Farbe Das Facettenkreuz als grafisches Element Anwendungen kleine Designhilfe Logo Schrift Farbe Das Facettenkreuz als grafisches Element Anwendungen Das Erscheinungsbild der Evangelischen Kirche in Hessen und Nassau 1 (Matth. 6,22) Kirche darf sich nicht verstecken,

Mehr

Neue Mailing-Produkte

Neue Mailing-Produkte Neue Mailing-Produkte Frank Bitterlich Leiter IT Günter Schmidt GmbH 1 Themen Jahresspendenmailing Neue periodische Mailingprodukte Newsletter Geburtstags- und Jubiläumsaktionen Response-Aktionen 2 Themen

Mehr

Schuldrecht I (Vertragsschuldverhältnisse) 41 - Klausurvorbereitung

Schuldrecht I (Vertragsschuldverhältnisse) 41 - Klausurvorbereitung Schuldrecht I (Vertragsschuldverhältnisse) 41 - Klausurvorbereitung Prof. Dr. Michael Beurskens, LL.M. (Gew. Rechtsschutz), LL.M. (University of Chicago), Attorney at Law (New York) Was behandeln wir heute?

Mehr

S e m i n a r a r b e i t im Wissenschaftspropädeutischen Seminar Pseudo Latin Languages

S e m i n a r a r b e i t im Wissenschaftspropädeutischen Seminar Pseudo Latin Languages Lorem-Ipsum-Test-Gymnasium Abiturjahrgang 2014 Qualifikationsphase S e m i n a r a r b e i t im Wissenschaftspropädeutischen Seminar Pseudo Latin Languages Lorem Ipsum Verfasser: Leitfach: Seminarleiter:

Mehr

Mobile UX Konzepte: Wie man vermeidet, vom User gehasst zu werden. Johannes Fahrenkrug @jfahrenkrug springenwerk.com

Mobile UX Konzepte: Wie man vermeidet, vom User gehasst zu werden. Johannes Fahrenkrug @jfahrenkrug springenwerk.com Mobile UX Konzepte: Wie man vermeidet, vom User gehasst zu werden Johannes Fahrenkrug @jfahrenkrug springenwerk.com : t, u Johannes Fahrenkrug @jfahrenkrug springenwerk.com Was User hassen 10 Wege, nicht

Mehr

mittelstand Der Handel & HORIZONT Das Magazin von der Handel und Horizont Jetzt gezielt die Hidden Champions von Ihrem Angebot überzeugen!

mittelstand Der Handel & HORIZONT Das Magazin von der Handel und Horizont Jetzt gezielt die Hidden Champions von Ihrem Angebot überzeugen! Der Handel & HORIZONT PRÄSENTIEREN m 2 marketing im mittelstand Jetzt gezielt die Hidden Champions von Ihrem Angebot überzeugen! Das Magazin von der Handel und Horizont Marketing im Mittelstand. Ein Magazin

Mehr

HORIZONT 7PRÄSENTIERT. Das Magazin: Das Wissen der Vergangenheit gestaltet die Zukunft. Die dfv Mediengruppe feiert Jubiläum.

HORIZONT 7PRÄSENTIERT. Das Magazin: Das Wissen der Vergangenheit gestaltet die Zukunft. Die dfv Mediengruppe feiert Jubiläum. HORIZONT 7PRÄSENTIERT Das Magazin: Das Wissen der Vergangenheit gestaltet die Zukunft. Die dfv Mediengruppe feiert Jubiläum. 70 jahre dfv mediengruppe das magazin zum jubiläum 2 Die dfv Mediengruppe. Die

Mehr

HORIZONT 7PRÄSENTIERT. Das Magazin: Das Wissen der Vergangenheit gestaltet die Zukunft. Die dfv Mediengruppe feiert Jubiläum.

HORIZONT 7PRÄSENTIERT. Das Magazin: Das Wissen der Vergangenheit gestaltet die Zukunft. Die dfv Mediengruppe feiert Jubiläum. HORIZONT 7PRÄSENTIERT Das Magazin: Das Wissen der Vergangenheit gestaltet die Zukunft. Die dfv Mediengruppe feiert Jubiläum. 70 jahre dfv mediengruppe das magazin zum jubiläum 2 Die dfv Mediengruppe. Die

Mehr

Pascal Schärli

Pascal Schärli Informatik I - Übung 8 Pascal Schärli pascscha@student.ethz.ch 12.04.2019 1 Was gibts heute? Best-Of Vorlesung: Prefix / Infix EBNF Vorbesprechung Problem of the Week 2 Vorlesung 3. 1 Prefix Notation Infix

Mehr

Informationszentrum für Touristen oder Gäste

Informationszentrum für Touristen oder Gäste 11. 01. 2016 09:36:28 Allgemeines Titel der Umfrage Informationszentrum für Touristen oder Gäste Autor Richard Žižka Sprache der Umfrage Deutsch Öffentliche Web-Adresse der Umfrage (URL) http://www.survio.com/survey/d/x2d7w9l8e4f8u4i5j

Mehr

The Future of Energy is Here

The Future of Energy is Here PHOTOVOLTAIK-ANLAGEN FÜR DAS HAUS FÜR FIRMEN INVESTITIONEN time for solar energy is now The Future of Energy is Here Das Unternehmen REMOR Solar beschäftigt sich seit 2007 mit der Herstellung der Befestigungssysteme

Mehr

Hier steht die Headline. Hier steht die Subline.

Hier steht die Headline. Hier steht die Subline. www.idenko.de info@idenko.de Hier steht die Headline. Hier steht die Subline. www.clariant.com Clariant International AG Rothausstrasse 61 4132 Muttenz 1 Schweiz 14. Juli 2006 Clariant International AG

Mehr

Programmier-Befehle - Woche 08

Programmier-Befehle - Woche 08 Datentypen Vektoren (mehrdim.) eines bestimmten Typs Erfordert: #include Wichtige Befehle: Definition: std::vector my vec (n rows, std::vector(n cols, init value)) Zugriff:

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

+ Bildsprache. + Persönlichkeit

+ Bildsprache. + Persönlichkeit 1 Einkaufen in Gothas Innenstadt Unser Lösungsansatz: Ein Einkaufsführer darf sich nicht auf eine stupide tabellarische Auflistung der hiesigen Händlerschaft begrenzen. Um einen wirkungsvollen Einkaufsführer

Mehr

Titel der Arbeit. Untertitel (auch über mehrere Zeilen) Diplomarbeit

Titel der Arbeit. Untertitel (auch über mehrere Zeilen) Diplomarbeit Titel der Arbeit Untertitel (auch über mehrere Zeilen) Diplomarbeit zur Erlangung des akademischen Grades eines Magisters / einer Magistra der Sozial- und Wirtschaftswissenschaften eingereicht bei Herrn

Mehr

Hypertext Markup Language (HTML) Stefan Rothe, Thomas Jampen

Hypertext Markup Language (HTML) Stefan Rothe, Thomas Jampen Hypertext Markup Language (HTML) Stefan Rothe, Thomas Jampen 2013 09 13 Rechtliche Hinweise Dieses Werk von Stefan Rothe steht unter einer Attribution-NonCommercial-ShareAlike 3.0 License. Zudem verzichtet

Mehr

VO Sprachtechnologien. Informations- und Wissensmanagement. Bartholomäus Wloka. Zentrum für Translationswissenschaft

VO Sprachtechnologien. Informations- und Wissensmanagement. Bartholomäus Wloka. Zentrum für Translationswissenschaft , Informations- und Wissensmanagement Zentrum für Translationswissenschaft Umgang mit Textdaten Speichern von Texten in digitaler Form text.txt text.doc text.docx text.html text.xml text.pdf text.zip

Mehr

Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.

Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. ADC 106 W 29 th St, New York, NY United States of America ADC Awards Saison 2015 is offiziell eröffnet! Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor Diese incididunt

Mehr

Fünf-Minuten <div> Anlage mit KompoZer

Fünf-Minuten <div> Anlage mit KompoZer Fünf-Minuten Anlage mit KompoZer Fabien Cazenave (Kazé), KompoZer entwickler. Warum statt ? Ertes Layout «from scratch» Neue Seite erstellen 5. 6. 7. 8. Menü-Listen einfügen Erstes

Mehr

Molla Mills. MACH MAL MASCHE Häkle dein Zuhause bunt

Molla Mills. MACH MAL MASCHE Häkle dein Zuhause bunt Molla Mills MACH MAL MASCHE Häkle dein Zuhause bunt Titel der finnischen Originalausgabe: Virk Kuri Copyright Molla Mills 2013 Erstveröffentlichung in Finnland durch Kustannusosakeyhtiö Nemo Laivanvarustajankatu

Mehr

Web-basierte Anwendungssysteme XHTML- CSS

Web-basierte Anwendungssysteme XHTML- CSS Web-basierte Anwendungssysteme XHTML- CSS Prof. Dr. Sergej Alekseev (alekseev@fb2.fra-uas.de) Prof. Dr. Armin Lehmann (lehmann@e-technik.org) Fachbereich 2 Informatik und Ingenieurwissenschaften Wissen

Mehr

mittelstand Der Handel & HORIZONT Das Magazin von der Handel und Horizont Jetzt gezielt die Hidden Champions von Ihrem Angebot überzeugen!

mittelstand Der Handel & HORIZONT Das Magazin von der Handel und Horizont Jetzt gezielt die Hidden Champions von Ihrem Angebot überzeugen! Der Handel & HORIZONT PRÄSENTIEREN m 2 marketing im mittelstand Jetzt gezielt die Hidden Champions von Ihrem Angebot überzeugen! Das Magazin von der Handel und Horizont Marketing im Mittelstand. Ein Magazin

Mehr

Unternehmergeist braucht das Land Konjunkturforum RLB Kärnten Februar 2016 MEDIA LAUNCH

Unternehmergeist braucht das Land Konjunkturforum RLB Kärnten Februar 2016 MEDIA LAUNCH Unternehmergeist braucht das Land Konjunkturforum RLB Kärnten Februar 2016 MEDIA LAUNCH Unternehmerdefinition Person, die eine berufliche oder gewerbliche Tätigkeit selbständig ausübt. Übernimmt das Risiko

Mehr

ERP Systeme. Vorlesungsteil 6 2015S 27.04.2015. Siegfried Zeilinger. INSO - Industrial Software

ERP Systeme. Vorlesungsteil 6 2015S 27.04.2015. Siegfried Zeilinger. INSO - Industrial Software ERP Systeme Vorlesungsteil 6 2015S 27.04.2015 Siegfried Zeilinger INSO - Industrial Software Institut für Rechnergestützte Automation Fakultät für Informatik Technische Universität Wien Bild: http://www.ebusiness-lotse-dresden.de/uploads/rtemagicc_erp-begriffswolke.jpg.jpg

Mehr

Medienkompetenz, Grafik und DTP

Medienkompetenz, Grafik und DTP VO 340381 Informationsdesign; Medienkompetenz, Grafik und DTP Zentrum für Translationswissenschaften Outline Wahrnehmung Aufbau Wahrnehmung Wahrnehmung: Sinnesorgane Wahrnehmung = selektive Auswahl, Organisation

Mehr

CANNES. Horizont rollt den roten Teppich aus:

CANNES. Horizont rollt den roten Teppich aus: CANNES KREATIVFESTIVAL 2017 DAS MAGAZIN 1 Horizont rollt den roten Teppich aus: 2017 CANNES Das Magazin zum größten Kreativfestival der Welt. Ihr Lookbook zu den Cannes Lions. Mit Ihrer Kommunikation.

Mehr

Lektura. A modern blackletter typeface for headlines and copytext. Available in two weights and classic style lettersets.

Lektura. A modern blackletter typeface for headlines and copytext. Available in two weights and classic style lettersets. Lektura A modern blackletter typeface for headlines and copytext. Available in two weights and classic style lettersets. Moderne Fraktur Kekse aus der Dose gibt es in der Kantine nebenan. Klassiker: Der

Mehr

Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua!

Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua! Social Buttons Menü und Logo sind sticky, bleiben beim Scrollen sichtbar, Logo wird beim Scrollen kleiner MANIFFEST SHOOTING MARTINA KLEIN STyLING BERATUNG FREEBIE xy ausklappbare Submenüs Blogartikel-

Mehr

XSL-FO Formatting/Flow Objects

XSL-FO Formatting/Flow Objects Aufbauend auf XLST und CSS XSL-FO Formatting/Flow Objects Julian Raschke 1 Motivation Wir haben strukturierte XML-Daten Wir sollen diese ansehnlich drucken! Und: Consider that a single

Mehr

TITEL DES ENTWURFS PROJEKTTITEL

TITEL DES ENTWURFS PROJEKTTITEL PROJEKTTITEL TITEL DES ENTWURFS Vorname Nachname Matrikelnumme gewünschte Modul-Nr Dozent: Vorname Nachname Fachgebiet Architekturtheorie und Entwerfen/ Prof. Philipp Oswalt Universität Kassel - Wintersemester

Mehr

Gestaltungsgesetze finden

Gestaltungsgesetze finden Technische Dokumentation Grundlagen der visuellen Arbeit Gesetze der Gestaltung Von Lutz Dieffenbach Die Gestaltungsgesetze erklären, wie die bewusste und unbewusste Wahrnehmung von Menschen abläuft. Wie

Mehr

Till Brandenburger Vadim Kamkalov

Till Brandenburger Vadim Kamkalov Till Brandenburger Vadim Kamkalov Regional Sales Manager FACT Account Manager DACH/CEE Wien, 8. Mai 2014 Bureau van Dijk / FACT Gründungsjahr 1971 Zertifiziert nach ISO-Normen seit 1998 Zwei Geschäftsbereiche:

Mehr

Ganze Zahlen. Die Typen int, unsigned int; Auswertung arithmetischer Ausdrücke, arithmetische Operatoren

Ganze Zahlen. Die Typen int, unsigned int; Auswertung arithmetischer Ausdrücke, arithmetische Operatoren Ganze Zahlen Die Typen int, unsigned int; Auswertung arithmetischer Ausdrücke, arithmetische Operatoren Celsius to Fahrenheit // Program: fahrenheit.cpp // Convert temperatures from Celsius to Fahrenheit.

Mehr

1. Tragen Sie in die freien Felder Ihre Überschriften, Adresse bzw. Text ein.

1. Tragen Sie in die freien Felder Ihre Überschriften, Adresse bzw. Text ein. Sie benötigen: DIN A4-Qualitätspapier oder -karton Anleitung: 1. Tragen Sie in die freien Felder Ihre Überschriften, Adresse bzw. Text ein. Bei Verwendung von DIN A4-Kartonpapier legen Sie dieses in das

Mehr

Grundlagen 3. L A TEX-Kurs der Unix-AG. Klemens Schmitt

Grundlagen 3. L A TEX-Kurs der Unix-AG. Klemens Schmitt Grundlagen 3 L A TEX-Kurs der Unix-AG Klemens Schmitt 18.05.2016 Gleitobjekte Tabellen Weiteres zu Grafiken Zusammenfassung und Ausblick 2 / 32 Gleitobjekte Was sind Gleitobjekte? Positionierung Beschriftungen

Mehr

Leitfaden Adobe Premiere export - Pro Tools import

Leitfaden Adobe Premiere export - Pro Tools import LOREM IPSUM Leitfaden Adobe Premiere export - Pro Tools import DOMINIK DI ROSA KAPITEL 1 Adobe Premier export Man kann alle aktiven Audiospuren aus einer gesamten Sequenz von Premiere Pro in eine OMF-Datei

Mehr

Leutasch. Sonntag, den 19. Juni Sonntag: 19. Juni 2016

Leutasch. Sonntag, den 19. Juni Sonntag: 19. Juni 2016 Leutasch Sonntag, den 19. Juni 2016 Sonntag: 19. Juni 2016 Heute ganzer Tag Regenfall. Lesen viel und machen am Nachmittag einen Spaziergang über die obere Wiese am Leutascherbach entlang bis zum Alpenbad

Mehr

ThermePlus. Tief durchatmen

ThermePlus. Tief durchatmen ThermePlus Das ist neu in BadBevensen: Übernachten Sie in einem unserer Partnerhotels, so ist der Eintritt in die Jod-Sple- Therme gleich inbegriffen. Consectetuer adipiscing elit, sed diam nonummy nibh

Mehr

CANNES. Horizont rollt den roten Teppich aus:

CANNES. Horizont rollt den roten Teppich aus: CANNES KREATIVFESTIVAL 2016 DAS MAGAZIN 1 Horizont rollt den roten Teppich aus: 2016 CANNES Das Magazin zum größten Kreativfestival der Welt. Ihr Lookbook zu den Cannes Lions. Mit Ihrer Kommunikation.

Mehr

Kontrollfluss. man Verzweigungen und Sprünge. o bisher linear (von oben nach unten) o Für interessante Programme braucht

Kontrollfluss. man Verzweigungen und Sprünge. o bisher linear (von oben nach unten) o Für interessante Programme braucht Kontrollanweisungen Kontrollfluss o bisher linear (von oben nach unten) o Für interessante Programme braucht man Verzweigungen und Sprünge Kontrollfluss o bisher linear (von oben nach unten) o Für interessante

Mehr

2018

2018 2018 MLRP@stmelf.bayern.de Seite 2 von 20 vor der Zeichenfarbe-Wiederherstellung [complementary of #5E273 = #FA1D8C] nach der Zeichenfarbe-Wiederherstellung (und vor Textfarbe-Wiederherstellung) [white]

Mehr

Natürlich. ilex. Ilex crenata Dark Green Ilex crenata Blondie

Natürlich. ilex. Ilex crenata Dark Green Ilex crenata Blondie Natürlich ilex Ilex crenata Dark Green Ilex crenata Blondie L Inhalt orem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim

Mehr

Ganze Zahlen. Die Typen int, unsigned int; Auswertung arithmetischer Ausdrücke, arithmetische Operatoren

Ganze Zahlen. Die Typen int, unsigned int; Auswertung arithmetischer Ausdrücke, arithmetische Operatoren Ganze Zahlen Die Typen int, unsigned int; Auswertung arithmetischer Ausdrücke, arithmetische Operatoren Celsius to Fahrenheit // Program: fahrenheit.cpp // Convert temperatures from Celsius to Fahrenheit.

Mehr

Leutasch. Sunday, June 19th Sonntag: 19. Juni 2016

Leutasch. Sunday, June 19th Sonntag: 19. Juni 2016 Leutasch Sunday, June 19th 2016 Sonntag: 19. Juni 2016 Heute ganzer Tag Regenfall. Lesen viel und machen am Nachmittag einen Spaziergang über die obere Wiese am Leutascherbach entlang bis zum Alpenbad

Mehr

werbung treiber. Das jährliche Magazin von HORIZONT mit den Top-Themen der OWM! NOVEMBER 2017 DAS MAGAZIN treiber PeoPle, Trends, Cases

werbung treiber. Das jährliche Magazin von HORIZONT mit den Top-Themen der OWM! NOVEMBER 2017 DAS MAGAZIN treiber PeoPle, Trends, Cases werbung. treiber. Das jährliche Magazin von HORIZONT mit den Top-Themen der OWM! NOVEMBER 2017 DAS MAGAZIN werbung treiber PeoPle, Trends, Cases werbung. treiber. Das Magazin mit den Top-Themen der OWM

Mehr

M U S T E R G M B H, R O S E N W E G 2, 00000 IR G E N D W O. Gläubiger-Identifikationsnummer DE99ZZZ05678901234 Mandatsreferenz 66443

M U S T E R G M B H, R O S E N W E G 2, 00000 IR G E N D W O. Gläubiger-Identifikationsnummer DE99ZZZ05678901234 Mandatsreferenz 66443 M U S T E R G M B H, R O S E N W E G 2, 00000 IR G E N D W O Mandatsreferenz 66443 SEPA-Lastschriftmandat Ich ermächtige die Muster GmbH, E INM ALIG EINE ZAHLUNG von meinem Konto mittels Lastschrift einzuziehen.

Mehr

2 SEPA-Lastschriftmandat als separates Formular

2 SEPA-Lastschriftmandat als separates Formular 2 SEPA-Lastschriftmandat als separates Formular 2.1 Standardfall einer wiederkehrenden Lastschrift M U S T E R G M B H, R O S E N W E G 2, 0 0 0 0 0 I R G E N D W O Mandatsreferenz 987 543 CB2 SEPA-Lastschriftmandat

Mehr

Gymnsaium Salvatorkolleg Bad Wurzach Freie Studien Klasse 10a Schuljahr 2012/13 Die Bibel ein Buch für heute! Thema: Bibel und Dialog

Gymnsaium Salvatorkolleg Bad Wurzach Freie Studien Klasse 10a Schuljahr 2012/13 Die Bibel ein Buch für heute! Thema: Bibel und Dialog Gymnsaium Salvatorkolleg Bad Wurzach Freie Studien Klasse 10a Schuljahr 2012/13 Die Bibel ein Buch für heute! Thema: Bibel und Dialog vorgelegt von: Max Mustermann Musterstr. 123 12345 Musterdorf Bad Wurzach,

Mehr

mittelstand Der Handel & HORIZONT Das Magazin von der Handel und Horizont Jetzt gezielt die Hidden Champions von Ihrem Angebot überzeugen!

mittelstand Der Handel & HORIZONT Das Magazin von der Handel und Horizont Jetzt gezielt die Hidden Champions von Ihrem Angebot überzeugen! Der Handel & HORIZONT PRÄSENTIEREN m 2 marketing im mittelstand Jetzt gezielt die Hidden Champions von Ihrem Angebot überzeugen! Das Magazin von der Handel und Horizont 05 2018 Marketing im Mittelstand.

Mehr

Design macht sichtbar..designbüro14 Print. Web. Präsentationen

Design macht sichtbar..designbüro14 Print. Web. Präsentationen Design macht sichtbar..designbüro14 Print. Web. Präsentationen konzeption + design kompetenz + qualität Um die Qualität eines Produkts zu erkennen, muss man es erst einmal wahrnehmen. Ganz klar - Ihr Produkt

Mehr

1.1 SEPA-Lastschriftmandat als separates Formular

1.1 SEPA-Lastschriftmandat als separates Formular Seite 4 von 13 1.1 SEPA-Lastschriftmandat als separates Formular 1.1.1 Standardfall einer wiederkehrenden Lastschrift Mandatsreferenz 987543CB2 SEPA-Lastschriftmandat Ich ermächtige die Muster GmbH, Zahlungen

Mehr

Westfälische Wilhelms-Universität Münster Zentrum für Islamische Theologie. Titel der Arbeit

Westfälische Wilhelms-Universität Münster Zentrum für Islamische Theologie. Titel der Arbeit Westfälische Wilhelms-Universität Münster Zentrum für Islamische Theologie Titel der Arbeit Hausarbeit/Projektarbeit/Bachelorarbeit/Masterarbeit 1 im Studiengang Islamische Religionslehre/Islamische Theologie

Mehr

Streams, Kodierung und Funktionen. C++ Übung am 12. Mai 2016

Streams, Kodierung und Funktionen. C++ Übung am 12. Mai 2016 Streams, Kodierung und Funktionen C++ Übung am 12. Mai 2016 Wiederholung: Streams #include // Input-Output-Stream std::cout std::cin std::cerr // Standardausgabe // Standardeingabe // Standardfehlerausgabe

Mehr

Textvergleich-Gutachten

Textvergleich-Gutachten Textvergleich-Gutachten Der 60tools Textvergleich hat zwei Texte auf ihre Ähnlichkeit miteinander verglichen. Dabei wurde auftragsgemäß ermittelt, wie und worin sich die Texte unterscheiden. Für die ermittelten

Mehr

Heben Sie Ihren Vertrieb auf ein neues Level und begeistern Sie Ihre Kunden!

Heben Sie Ihren Vertrieb auf ein neues Level und begeistern Sie Ihre Kunden! Heben Sie Ihren Vertrieb auf ein neues Level und begeistern Sie Ihre Kunden! F F Firma Home Produkte Über UnsK ontakt aáé=` çéó=ï ~êåí É=Ç~ë=_äáåÇí ñí ÅÜÉåI É= Ç~I ï= ç =ëáé=üéêâžãé=ï ŽêÉ=ëáÉK _ r lq kq

Mehr

Software EMEA Performance Tour 2013. 17.-19 Juni, Berlin

Software EMEA Performance Tour 2013. 17.-19 Juni, Berlin Software EMEA Performance Tour 2013 17.-19 Juni, Berlin Effektives Projekt und Portfolio Management Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject

Mehr

Beispielschreiben zur Umstellung auf das SEPA-Basis- Lastschriftverfahren

Beispielschreiben zur Umstellung auf das SEPA-Basis- Lastschriftverfahren Quelle der nachstehenden Inhalte: Die Deutsche Kreditwirtschaft Beispiel-Formulare für das SEPA-Lastschriftmandat und das Kombimandat sowie Beispielschreiben zur Umstellung auf das SEPA-Basis- Lastschriftverfahren

Mehr

werbung. treiber. Das jährliche Magazin von HORIZONT mit den Top-Themen der OWM! NOVEMBER 2017 DAS MAGAZIN wer trei bung ber PeoPle, Trends, Cases

werbung. treiber. Das jährliche Magazin von HORIZONT mit den Top-Themen der OWM! NOVEMBER 2017 DAS MAGAZIN wer trei bung ber PeoPle, Trends, Cases werbung. treiber. Das jährliche Magazin von HORIZONT mit den Top-Themen der OWM! NOVEMBER 2017 DAS MAGAZIN wer trei bung ber PeoPle, Trends, Cases werbung. treiber. Das Magazin mit den Top-Themen der OWM

Mehr

Richtlinie zur Markenidentität 2015

Richtlinie zur Markenidentität 2015 Richtlinie zur Markenidentität 2015 DE Bild: David Lliff EVP-Fraktion im Europäischen Parlament Rue Wiertz 60 1047 Brüssel, Belgien Redakteur Inhaltsverzeichnis Einleitung... 2 Grafische Kohärenz... 2

Mehr

Kunden Forum 2007. Headline. TÜV SÜD Management Service GmbH

Kunden Forum 2007. Headline. TÜV SÜD Management Service GmbH Bereich Headline Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco

Mehr

Titel der Arbeit. Name Matrikelnummer:

Titel der Arbeit. Name Matrikelnummer: Titel der Arbeit Art der Arbeit von Name Matrikelnummer: An der Fakultät für Wirtschaftswissenschaften Institut für Angewandte Informatik und Formale Beschreibungsverfahren Gutachter: Betreuende Mitarbeiter:

Mehr

16. Structs und Klassen I. Rationale Zahlen, Struct-Definition, Operator-Überladung, Datenkapselung, Klassen-Typen

16. Structs und Klassen I. Rationale Zahlen, Struct-Definition, Operator-Überladung, Datenkapselung, Klassen-Typen 491 16. Structs und Klassen I Rationale Zahlen, Struct-Definition, Operator-Überladung, Datenkapselung, Klassen-Typen Rechnen mit rationalen Zahlen 492 Rationale Zahlen (Q) sind von der Form n d mit n

Mehr

Tipps und Tricks. für die PDF-Präsentation

Tipps und Tricks. für die PDF-Präsentation Tipps und Tricks für die PDF-Präsentation Um die Wirkung der einzelnen Punkte sehen zu können, muss die Präsentation zuerst heruntergeladen und dann mit folgenden Einstellungen im Adobe Acrobat Reader

Mehr

Spielplan SaiSon 09/10

Spielplan SaiSon 09/10 Spielplan 1. BundeS liga SaiSon 09/10 Liebe Fußballfreunde und freundinnen! Eine neue Saison der FußballBundesliga steht bevor. Sicher können auch Sie es kaum erwarten, bis in den Stadien wieder der Ball

Mehr

Lorem ip#um dolor #it amet, con#ectetur adipi#ici elit, #ed. Duis autem vel eum iriure dolor in hendrerit in vulputate

Lorem ip#um dolor #it amet, con#ectetur adipi#ici elit, #ed. Duis autem vel eum iriure dolor in hendrerit in vulputate Ihr kompetenter und zuverlässiger Partner bei der Erforschung, Darstellung und Vermittlung von Geschichte Lorem ip#um dolor #it amet, con#ectetur adipi#ici elit, #ed eiu#mod tempor incidunt ut labore et

Mehr

Über mich. Ulrike Holtzem Lebenskraft-Gestaltung Am Eschbichl München Fon Mobil

Über mich. Ulrike Holtzem Lebenskraft-Gestaltung Am Eschbichl München Fon Mobil Als Gestalterin, Artdirektorin und Werbefachfrau bin ich seit über 25 Jahren in der Werbebranche tätig, führte einige Jahre meine eigene Werbeagentur und habe Erfahrung sowohl mit Weltkonzernen sowie kleinen

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

Brigitte Lampert. DIN15, Brigitte Lampert, Dienerstrasse 15, 8004 Zürich, +41 44 291 61 85

Brigitte Lampert. DIN15, Brigitte Lampert, Dienerstrasse 15, 8004 Zürich, +41 44 291 61 85 2010 Brigitte Lampert Brigitte Lampert Brigitte Lampert, 1972, MA Communication Design; Kantonale Schule für Gestaltung St.Gallen, 4-jährige Ausbildung zur Grafikerin bei Hans-Peter Gassner in Vaduz; halbjähriges

Mehr

2. Ganze Zahlen int unsigned int

2. Ganze Zahlen int unsigned int 99 2. Ganze Zahlen Auswertung arithmetischer Ausdrücke, Assoziativität und Präzedenz, arithmetische Operatoren, Wertebereich der Typen int, unsigned int Celsius to Fahrenheit // Program: fahrenheit.cpp

Mehr

MEDIADATEN Gültig ab

MEDIADATEN Gültig ab MEDIADATEN 2018 - Gültig ab 01.01.2018 natur Leser sind bewusste Konsumenten mit hoher Bio- und Fairtrade-Affinität 2 Titelporträt natur-leser natur ist das Magazin für Natur, Umwelt und besseres Leben

Mehr

Inhaltsverzeichnis. 6 Plakate. Das Erscheinungsbild des Freistaates Sachsen

Inhaltsverzeichnis. 6 Plakate. Das Erscheinungsbild des Freistaates Sachsen 6 Inhaltsverzeichnis 6 6 01 Grundformat A3 6 01. 01 Grundformat A3 Vermaßung 6 01. 02 Grundformat A3 Platzierung von Zweitlogos 6 02. 01 Aushang Grundformat A2 6 02. 02 Aushang Grundformat A2 Vermaßung

Mehr

Ideen Visualisierung Realisation

Ideen Visualisierung Realisation Ideen Visualisierung Realisation Am Anfang steht das Wort Austausch und Dialog Lorem ipsum dolor sit amet, consectetuer Interesse elit, sed diam Planung nibh euismod tincidunt ut laoreet dolore magna aliquam

Mehr

Name der Projektarbeit

Name der Projektarbeit Auf dieser Seite Bilder einfügen und schön gestalten. Name der Projektarbeit Autor: Pauline Musterfrau Klasse: 9g Projektmitglieder: Paul, Peter, Pauline Betreuer: Herr Müller Projektarbeit GGemS Pönitz

Mehr

VORSPRUNG DURCH WISSEN

VORSPRUNG DURCH WISSEN SEMINARPROGRAMM 2010 VORSPRUNG DURCH WISSEN ZERTIFIZIERTER SENSOMOTORIK- THERAPEUT SPRINGER DIN EN ISO 13485 Institut für Qualitätssicherung und Zertifizierung in der Orthopädie-Technik 41 Fortbildungspunkte

Mehr

Beispiel-Formulare für das SEPA-Firmenlastschrift-Mandat Grundlage: SEPA-Firmenlastschrift, Regelwerk Version 1.2

Beispiel-Formulare für das SEPA-Firmenlastschrift-Mandat Grundlage: SEPA-Firmenlastschrift, Regelwerk Version 1.2 Z E N T R A L E R K R E D I T A U S S C H U S S MITGLIEDER: BUNDESVERBAND DER DEUTSCHEN VOLKSBANKEN UND RAIFFEISENBANKEN E.V. BERLIN BUNDESVERBAND DEUTSCHER BANKEN E.V. BERLIN BUNDESVERBAND ÖFFENTLICHER

Mehr

Dataforce Analytics Öko-Studie Beispielanalyse

Dataforce Analytics Öko-Studie Beispielanalyse Dataforce Analytics Öko-Studie 2016 Beispielanalyse Übersicht Zustimmung zu vorgelegten Aussagen Die zu bewertenden Aussagen lauten wie folgt: Der geringe CO 2 -Ausstoß des Fahrzeugs spielt bei der Auswahl

Mehr

6. Kontrollanweisungen II

6. Kontrollanweisungen II Sichtbarkeit 6. Kontrollanweisungen II Sichtbarkeit, Lokale Variablen, While-Anweisung, Do-Anweisung, Sprunganweisungen main block Deklaration in einem Block ist ausserhalb des Blocks nicht sichtbar. int

Mehr

Selbständige Projektarbeit 2008. Drogensucht. Kurzes Glück, langes Leiden. Anja Neuhaus Oberstufenzentrum Stockhorn Konolfingen. März 2008, Klasse s9b

Selbständige Projektarbeit 2008. Drogensucht. Kurzes Glück, langes Leiden. Anja Neuhaus Oberstufenzentrum Stockhorn Konolfingen. März 2008, Klasse s9b Selbständige Projektarbeit 2008 Drogensucht Kurzes Glück, langes Leiden Anja Neuhaus Oberstufenzentrum Stockhorn Konolfingen März 2008, Klasse s9b Drogensucht Selbständige Projektarbeit im Rahmen des Abschlussprojektes

Mehr

Grunddatentypen, Ausdrücke und Variablen Typkonversion, Überprüfen und Auswerten von Ausdrücken

Grunddatentypen, Ausdrücke und Variablen Typkonversion, Überprüfen und Auswerten von Ausdrücken Typkonversion, Überprüfen und Auswerten von Ausdrücken Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-12-13/infoeinf WS12/13 Grunddatentypen

Mehr

5. Kontrollanweisungen II

5. Kontrollanweisungen II Sichtbarkeit 5. Kontrollanweisungen II Sichtbarkeit, Lokale Variablen, While-Anweisung, Do-Anweisung, Sprunganweisungen main block Deklaration in einem Block ist ausserhalb des Blocks nicht sichtbar. int

Mehr

2. Ganze Zahlen. Auswertung arithmetischer Ausdrücke, Assoziativität und Präzedenz, arithmetische Operatoren, Wertebereich der Typen int, unsigned int

2. Ganze Zahlen. Auswertung arithmetischer Ausdrücke, Assoziativität und Präzedenz, arithmetische Operatoren, Wertebereich der Typen int, unsigned int 74 2. Ganze Zahlen Auswertung arithmetischer Ausdrücke, Assoziativität und Präzedenz, arithmetische Operatoren, Wertebereich der Typen int, unsigned int Celsius to Fahrenheit 75 // Program: fahrenheit.cpp

Mehr

Z E N T R A L E R K R E D I T A U S S C H U S S

Z E N T R A L E R K R E D I T A U S S C H U S S Z E N T R A L E R K R E D I T A U S S C H U S S MITGLIEDER: BUNDESVERBAND DER DEUTSCHEN VOLKSBANKEN UND RAIFFEISENBANKEN E.V. BERLIN BUNDESVERBAND DEUTSCHER BANKEN E.V. BERLIN BUNDESVERBAND ÖFFENTLICHER

Mehr

Grunddatentypen, Ausdrücke und Variablen Typkonversion, Überprüfen und Auswerten von Ausdrücken

Grunddatentypen, Ausdrücke und Variablen Typkonversion, Überprüfen und Auswerten von Ausdrücken 1 Typkonversion, Überprüfen und Auswerten von Ausdrücken Dr. Philipp Wendler Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung WS18/19 https://www.sosy-lab.org/teaching/2018-ws-infoeinf/

Mehr

1. Ganze Zahlen. 9 * celsius / Celsius to Fahrenheit. (9 * celsius / 5) + 32

1. Ganze Zahlen. 9 * celsius / Celsius to Fahrenheit. (9 * celsius / 5) + 32 1. Ganze Zahlen Auswertung arithmetischer Ausdrücke, Assoziativität und Präzedenz, arithmetische Operatoren, Wertebereich der Typen int, unsigned int 1 Celsius to Fahrenheit // Program: fahrenheit.cpp

Mehr

Kapitel 1 2 14. Februar 2010

Kapitel 1 2 14. Februar 2010 1 14. Februar 2010 Kapitel 1 2 14. Februar 2010 E-BusinessMarketing KPI MarketingOnline KPI Marketing Web Web Assessment Usability Benchmarking Controlling Controlling Benchmarking Usability E-Business

Mehr

Informationen für Autorinnen und Autoren Stand: Frühling 2012

Informationen für Autorinnen und Autoren Stand: Frühling 2012 Informationen für Autorinnen und Autoren Stand: Frühling 2012 Folgende Informationen stellen eine allgemeine Format-Anleitung für Artikel dar, die bei der»zeitschrift für junge Religionswissenschaft«eingereicht

Mehr

Seite 2 von 13. Inhalt

Seite 2 von 13. Inhalt Beispiel-Formulare für das SEPA-Lastschriftmandat und das Kombimandat sowie Beispielschreiben zur Umstellung auf das SEPA-Basis-Lastschriftverfahren Grundlage: Regelwerk für die SEPA-Basis-Lastschrift

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