Übungsstunde: Informatik 1 D-MAVT

Größe: px
Ab Seite anzeigen:

Download "Übungsstunde: Informatik 1 D-MAVT"

Transkript

1 Übungsstunde: Informatik 1 D-MAVT Daniel Bogado Duffner Übungsslides unter: n.ethz.ch/~bodaniel Bei Fragen: bodaniel@student.ethz.ch Daniel Bogado Duffner

2 Ablauf Quiz und Recap Floating Point Binary Representation Funktionen Übung 4 Vorstellung und Tipps Daniel Bogado Duffner

3 If - / Else Ausdrücke 7 Fehler Daniel Bogado Duffner

4 If - / Else Ausdrücke // iostream und using namespace std fehlt //void main geht nicht, muss int sein //Pfeile in die falsche Richtung, std fehlt //falscher Vergleich, kein == //h ist in scope main nicht bekannt und Variable kann auch nicht in der Bedingung deklariert werden //if und else vertauscht, falsche reihenfolge //return nur richtig wenn nicht void //endl ist ohne std nicht bekannt Daniel Bogado Duffner

5 Binäre Darstellung von Floating Point Zahlen binär dezimal /2 1/4 1/8 Darstellung von: 1.9 x bi x - bi Wenn x grösser als 1 ist, wird die binäre Zahl 1, ansonsten 0 - xneu = 2 * (xalt bi) - Bis sich ein x wiederholt oder x = 0 Daniel Bogado Duffner

6 Binäre Darstellung von Floating Point Zahlen Übung: Schreibe die Binäre Darstellung folgender Zahlen: (i) 0.25 (ii) 11.1 Lösung: (i) 0.01 (ii) Daniel Bogado Duffner

7 Ein 10 bit floating point Typ - Beispiel Wir erstellen uns unseren eigenen 10 bit floating point Typ zur Übung Wir wollen so viele verschiedene Nicht Integer Zahlen wie möglich speichern Erster Ansatz: Wissenschaftliche Schreibweise: 2.73 * 10 ^ (12) Wir benutzen aber statt 10 ^ einfach 2 ^ Vor dem. nur ein bit -> wir haben damit 9 weitere bits zur Verfügung 5 bits für die Dezimalzahl, 4 bits für Exponent * 2 ^ 15 = oder * 2 ^ 0 = Man kann das benennen als Floating Point System F(beta, p, e_min, e_max) Bei uns beta=2 (die Basis), p = 6 (Ziffern die kein Exponent sind) e_min = - 8 (unsigned int system für 4 bit), e_max = 7 => F(2,6,-8,7) Daniel Bogado Duffner

8 Ein 10 bit floating point Typ - Beispiel Wir erstellen uns unseren eigenen 10 bit floating point Typ zur Übung Man kann das benennen als Floating Point System F(beta, p, e_min, e_max) Bei uns beta=2 (die Basis), p = 6 (Ziffern die kein Exponent sind) e_min = - 8 (unsigned int system für 4 bit), e_max = 7 => F(2,6,-8,7) ABER: 2 Änderungen: Wir wollen negative Zahlen + Immer nur eine Ziffer vor dem. => F*(2,6,-8,7) -> * 2 ^ 7 (grösste Zahl); *2 ^ 7 (kleinste Zahl) oder * 2 ^ -8 (kleinste positive Zahl) Problem: Darstellung von 0: Lösung Wenn wir Exponent -8 haben, besondere Zahlen, Beispiel: = 0, = + unendlich, = -unendlich und = Keine Zahl => F*(2,6,-7,7) Daniel Bogado Duffner

9 Floating Point System F*(2,24,-126,127) Das echte Float System funktioniert genauso (IEEE 754 Standard) Für Float: F* (2,24,-126,127) Für Double: F*(2,53,-1022,1023) Übung: Grösste und kleinste positive Zahl Welche Zahlen sind nach diesem Standard die grössten und kleinsten Float und Double Zahlen? Lösung: Kleinste Zahl immer 2^e_min also 2 ^ (-126), für double 2 ^ (-1022) Grösste Zahl 2 ^ e_max also bei float: * 2 ^ 127 bzw bei double * 2 ^ 1023 Formel für grösste Zahl: (1 1 β p ) β e max +1 Daniel Bogado Duffner

10 Floating Point Guidelines

11 Guidelines Guideline 1: them «Do not test two floating point numbers for equality, if at least one of was rounded before.» 11

12 Guideline 1 Example Guideline 1: them «Do not test two floating point numbers for equality, if at least one of was rounded before.» Example: This is false double a = 1.1; if (100 * a == 110) std::cout << "no output\n"; 12

13 Guideline 1 Example Guideline 1: them «Do not test two floating point numbers for equality, if at least one of was rounded before.» Example: This is false Problem: 1.1 not representable double a = 1.1; if (100 * a == 110) std::cout << "no output\n"; 13

14 Guideline 1 Example Guideline 1: them «Do not test two floating point numbers for equality, if at least one of was rounded before.» Example: This is false Problem: 1.1 not representable double a = 1.1; if (100 * a == 110) std::cout << "no output\n"; (rounding) 24bit 1.1 = =

15 Guidelines Guideline 1: them «Do not test two floating point numbers for equality, if at least one of was rounded before.» Guideline 2: «Avoid the addition of numbers of extremely different sizes!» 15

16 Guideline 2 Example Guideline 2: «Avoid the addition of numbers of extremely different sizes!» Example: float a = f + 1.0f; if (a > f) std::cout << "This is not output... \n"; 16

17 Guideline 2 Example Guideline 2: «Avoid the addition of numbers of extremely different sizes!» Problem: Example: Significand too short float a = f + 1.0f; if (a > f) std::cout << "This is not output... \n"; 17

18 Guideline 2 Example Guideline 2: «Avoid the addition of numbers of extremely different sizes!» Problem: Example: Significand too short float a = f + 1.0f; if (a > f) std::cout << "This is not output... \n"; 24bit = = = =

19 Guideline 2 Example Guideline 2: «Avoid the addition of numbers of extremely different sizes!» Problem: Example: Significand too short float a = f + 1.0f; if (a > f) std::cout << "This is not output... \n"; (rounding) 24bit = = = =

20 Guidelines Guideline 1: them «Do not test two floating point numbers for equality, if at least one of was rounded before.» Guideline 2: «Avoid the addition of numbers of extremely different sizes!» Guideline 3: «Avoid the subtraction of numbers of similar sizes!» 20

21 Guideline 3 Example Guideline 3: «Avoid the subtraction of numbers of similar sizes!» Example: Consider sequence x n+1 = 6x n 1 Computing some sequences for given x 0 : e.g. x 0 = 1 x 1 = 5, x 2 = 29, x 3 = 173, e.g. x 0 = 0.2 x 1 = 0.2, x 2 = 0.2, x 3 = 0.2, 21

22 Guideline 3 Example Guideline 3: «Avoid the subtraction of numbers of similar sizes!» Example: Consider sequence x n+1 = 6x n 1 Computing some sequences for given x 0 : e.g. x 0 = 1 x 1 = 5, x 2 = 29, x 3 = 173, e.g. x 0 = 0.2 x 1 = 0.2, x 2 = 0.2, x 3 = 0.2, 22

23 Guideline 3 Example Guideline 3: «Avoid the subtraction of numbers of similar sizes!» Example: Consider sequence x n+1 = 6x n 1 Computing some sequences for given x 0 : e.g. x 0 = 1 x 1 = 5, x 2 = 29, x 3 = 173, e.g. x 0 = 0.2 x 1 = 0.2, x 2 = 0.2, x 3 = 0.2, 23

24 Guideline 3 Example Guideline 3: «Avoid the subtraction of numbers of similar sizes!» Example: Consider sequence x n+1 = 6x n 1 Computing some sequences for given x 0 : e.g. x 0 = 1 x 1 = 5, x 2 = 29, x 3 = 173, e.g. x 0 = 0.2 x 1 = 0.2, x 2 = 0.2, x 3 = 0.2, 24

25 Guideline 3 Example Guideline 3: «Avoid the subtraction of numbers of similar sizes!» Example: Consider sequence x n+1 = 6x n 1 Computing some sequences for given x 0 : e.g. x 0 = 1 x 1 = 5, x 2 = 29, x 3 = 173, e.g. x 0 = 0.2 x 1 = 0.2, x 2 = 0.2, x 3 = C++ claims 0.2, x

26 Guideline 3 Example Guideline 3: «Avoid the subtraction of numbers of similar sizes!» Example: What went wrong? float represents 0.2 as Thus: 6 x but rather: x 1 = x 2 = x 3 =

27 Guideline 3 Example Guideline 3: «Avoid the subtraction of numbers of similar sizes!» Example: What went wrong? float represents 0.2 as Thus: 6 x but rather: x 1 = x 2 = x 3 =

28 Guideline 3 Example Guideline 3: «Avoid the subtraction of numbers of similar sizes!» Example: What went wrong? float represents 0.2 as Thus: 6 x but rather: x 1 = x 2 = x 3 =

29 Guideline 3 Example Guideline 3: «Avoid the subtraction of numbers of similar sizes!» Example: What went wrong? float represents 0.2 as Thus: 6 x but rather: x 1 = x 2 = x 3 = Note how error increases! 29

30 Funktionen Definition und Deklarierung void funktiong ( ); // Deklaration von Funktion g void funktionf ( ) { g( ); // Deklaration und Definiton von F void funktiong ( ) // Definition von g { f( ); Daniel Bogado Duffner

31 Funktionen Pre und Post Bedingungen Durch Pre und Post Bedingungen können wir Funktionen verwenden ohne zu wissen, was eigentlich in der Funktion passiert Beispiel: Cosinus Funktion aus cmath-library // PRE: Wert stellt einen Winkel in radian dar. Ein Radian ist äquivalent zu 180/PI grad // POST: Cosinus von x in radian double cos (double x); Bedingung: Einfügen von Bibliothek #include <cmath> Andere Funktion aus cmath: cos, sin, tan, log, exp, log10, pow, sqrt Bei Funktionen immer dazuschreiben, welche die Pre und Post Bedingungen sind Daniel Bogado Duffner

32 Funktionen Pre und Post Bedingungen Bei Funktionen immer dazuschreiben, welche die Pre und Post Bedingungen sind // PRE: y!= 0 // POST: returns Quotien x/y double quotient (double x, double y){ return x / y; Daniel Bogado Duffner

33 Exercise 1

34 Exercise 1 Find PRE- and POSTconditions for this function. 1. Function: double f (const double i, const double j, const double k) { if (i > j) if (i > k) return i; else return k; else if (j > k) return j; else return k; (From: Script Exercise 79) 34

35 Exercise 1 1. Function: PRE-Condition: (not needed) POST-Condition: // POST: return value is // the maximum of // i,j and k double f (const double i, const double j, const double k) { if (i > j) if (i > k) return i; else return k; else if (j > k) return j; else return k; (From: Script Exercise 79) 35

36 Exercise 1 Find PRE- and POST-conditions for this function. 2. Function: double g (const int i, const int j) { double r = 0.0; for (int k = i; k <= j; ++k) r += 1.0 / k; return r; (From: Script Exercise 79) 36

37 Exercise 1 2. Function: double g (const int i, const int j) { double r = 0.0; for (int k = i; k <= j; ++k) r += 1.0 / k; return r; PRE-Condition: // PRE: 0 not contained in {i,..., j POST-Condition: // POST: return value is the sum // 1/i + 1/(i+1) /j (From: Script Exercise 79) 37

38 Exercise 2

39 Exercise 2 Find 3 mistakes in this program. # include <iostream> double f (const double x) { return g(2.0 * x); bool g (const double x) { return x % 2.0 == 0; void h () { std::cout << result; int main () { const double result = f(3.0); h(); return 0; (From: Script Exercise 82) 39

40 Exercise 2 # include <iostream> Problem 1: g() not yet known scope of g starts later double f (const double x) { return g(2.0 * x); bool g (const double x) { return x % 2.0 == 0; void h () { std::cout << result; int main () { const double result = f(3.0); h(); return 0; (From: Script Exercise 82) 40

41 Exercise 2 # include <iostream> Problem 1: g() not yet known scope of g starts later double f (const double x) { return g(2.0 * x); bool g (const double x) { return x % 2.0 == 0; Problem 2: Modulo no modulo for double void h () { std::cout << result; int main () { const double result = f(3.0); h(); return 0; (From: Script Exercise 82) 41

42 Exercise 2 # include <iostream> Problem 1: g() not yet known scope of g starts later double f (const double x) { return g(2.0 * x); bool g (const double x) { return x % 2.0 == 0; Problem 2: Modulo no modulo for double Problem 3: h() does not «see» result result is out-of-scope void h () { std::cout << result; int main () { const double result = f(3.0); h(); return 0; (From: Script Exercise 82) 42

43 Exercise 3

44 Exercise 3 #include <iostream> What is the return value of this program? You can neglect possible over- or underflows for this exercise. int f (const int i) { return i * i; int g (const int i) { return i * f(i) * f(f(i)); void h (const int i) { std::cout << g(i) << "\n"; int main () { int i; std::cin >> i; h(i); return 0; (From: Script Exercise 81) 44

45 Exercise 3 #include <iostream> i * f(i) * f(f(i)) int f (const int i) { return i * i; int g (const int i) { return i * f(i) * f(f(i)); void h (const int i) { std::cout << g(i) << "\n"; int main () { int i; std::cin >> i; h(i); return 0; (From: Script Exercise 81) 45

46 Exercise 3 #include <iostream> i * f(i) * f(f(i)) int f (const int i) { return i * i; int g (const int i) { return i * f(i) * f(f(i)); f(i) void h (const int i) { std::cout << g(i) << "\n"; int main () { int i; std::cin >> i; h(i); return 0; (From: Script Exercise 81) 46

47 Exercise 3 #include <iostream> i * f(i) * f(f(i)) int f (const int i) { return i * i; int g (const int i) { return i * f(i) * f(f(i)); i*i void h (const int i) { std::cout << g(i) << "\n"; int main () { int i; std::cin >> i; h(i); return 0; (From: Script Exercise 81) 47

48 Exercise 3 #include <iostream> i * (i*i) * f(f(i)) int f (const int i) { return i * i; int g (const int i) { return i * f(i) * f(f(i)); i*i void h (const int i) { std::cout << g(i) << "\n"; int main () { int i; std::cin >> i; h(i); return 0; (From: Script Exercise 81) 48

49 Exercise 3 #include <iostream> i * (i*i) * f(f(i)) int f (const int i) { return i * i; int g (const int i) { return i * f(i) * f(f(i)); f(f(i)) void h (const int i) { std::cout << g(i) << "\n"; int main () { int i; std::cin >> i; h(i); return 0; (From: Script Exercise 81) 49

50 Exercise 3 #include <iostream> i * (i*i) * f(f(i)) int f (const int i) { return i * i; int g (const int i) { return i * f(i) * f(f(i)); f(f(i)) f(i) void h (const int i) { std::cout << g(i) << "\n"; int main () { int i; std::cin >> i; h(i); return 0; (From: Script Exercise 81) 50

51 Exercise 3 #include <iostream> i * (i*i) * f(f(i)) int f (const int i) { return i * i; int g (const int i) { return i * f(i) * f(f(i)); f(f(i)) i*i void h (const int i) { std::cout << g(i) << "\n"; int main () { int i; std::cin >> i; h(i); return 0; (From: Script Exercise 81) 51

52 Exercise 3 #include <iostream> i * (i*i) * f(f(i)) int f (const int i) { return i * i; int g (const int i) { return i * f(i) * f(f(i)); f(i*i) i*i void h (const int i) { std::cout << g(i) << "\n"; int main () { int i; std::cin >> i; h(i); return 0; (From: Script Exercise 81) 52

53 Exercise 3 #include <iostream> i * (i*i) * f(f(i)) int f (const int i) { return i * i; int g (const int i) { return i * f(i) * f(f(i)); f(i*i) void h (const int i) { std::cout << g(i) << "\n"; int main () { int i; std::cin >> i; h(i); return 0; (From: Script Exercise 81) 53

54 Exercise 3 #include <iostream> i * (i*i) * f(f(i)) int f (const int i) { return i * i; int g (const int i) { return i * f(i) * f(f(i)); (i*i)*(i*i) void h (const int i) { std::cout << g(i) << "\n"; int main () { int i; std::cin >> i; h(i); return 0; (From: Script Exercise 81) 54

55 Exercise 3 #include <iostream> i * (i*i) * ((i*i)*(i*i)) int f (const int i) { return i * i; int g (const int i) { return i * f(i) * f(f(i)); (i*i)*(i*i) void h (const int i) { std::cout << g(i) << "\n"; int main () { int i; std::cin >> i; h(i); return 0; (From: Script Exercise 81) 55

56 Exercise 3 #include <iostream> i * (i*i) * ((i*i)*(i*i)) int f (const int i) { return i * i; int g (const int i) { return i * f(i) * f(f(i)); void h (const int i) { std::cout << g(i) << "\n"; int main () { int i; std::cin >> i; h(i); return 0; (From: Script Exercise 81) 56

57 Exercise 3 #include <iostream> i * (i*i) * ((i*i)*(i*i)) This is int f (const int i) { return i * i; int g (const int i) { return i * f(i) * f(f(i)); void h (const int i) { std::cout << g(i) << "\n"; int main () { int i; std::cin >> i; h(i); return 0; (From: Script Exercise 81) 57

58 Aufgabe 1: Floating Point Darstellung, Umwandlung zwischen Binär und dezimal -> Vorlesungsfolien, Slides hier aus der Übung + Skript Aufgabe 2: Liegt ein Punkt auf der Parabel: - Ist eine Toleranz sinnvoll? Aufgabe 3: Rundung von Float Zahlen -> Wichtig, keine Rundungsfunktion verwenden -> 0 Punkte Aufgabe 4: Selbes Verfahren verwenden wie ganz zu Beginn (der Übung + Vorlesung Slide 20 ff) und in Code formulieren Aufgabe 5: Fehler finden Übung 4 - Tipps und Tricks Daniel Bogado Duffner

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

Informatik für Mathematiker und Physiker Woche 5. David Sommer Informatik für Mathematiker und Physiker Woche 5 David Sommer David Sommer October 24, 2017 1 Heute: 1. Self-Assesment II 2. Rückblick Übungen Woche 4 3. # include " tests.h" 4. Fliesskommazahlen (in all

Mehr

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

Informatik für Mathematiker und Physiker Woche 6. David Sommer Informatik für Mathematiker und Physiker Woche 6 David Sommer David Sommer October 31, 2017 1 Heute: 1. Rückblick Übungen Woche 5 2. Libraries 3. Referenzen 4. Step-Wise Refinement David Sommer October

Mehr

Übungsstunde: Informatik 1 D-MAVT

Übungsstunde: Informatik 1 D-MAVT Übungsstunde: Informatik 1 D-MAVT Daniel Bogado Duffner Übungsslides unter: n.ethz.ch/~bodaniel Bei Fragen: bodaniel@student.ethz.ch Daniel Bogado Duffner 24.03.2018 1 Ablauf Administratives Integer Division

Mehr

Richtig Rechnen. // Program: fahrenheit.c // Convert temperatures from Celsius to Fahrenheit.

Richtig Rechnen. // Program: fahrenheit.c // Convert temperatures from Celsius to Fahrenheit. Fliesskommazahlen Richtig Rechnen // Program: fahrenheit.c // Convert temperatures from Celsius to Fahrenheit. #include int main() { // Input std::cout

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

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

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

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

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

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

Dynamische Datentypen. Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren

Dynamische Datentypen. Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren Dynamische Datentypen Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren Probleme mit Feldern (variabler Länge) man kann sie nicht direkt kopieren und zuweisen Probleme mit

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

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

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

Informatik I (D-MAVT)

Informatik I (D-MAVT) Informatik I (D-MAVT) Übungsstunde 2 simon.mayer@inf.ethz.ch Distributed Systems Group, ETH Zürich Ablauf Besprechung der Vorlesung Vorbesprechung Übung 2 Variablen + Scopes Zahlensysteme Bits&Bytes Datentypen

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

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

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

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

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

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

3. Ganze Zahlen int unsigned int

3. Ganze Zahlen int unsigned int 110 3. 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

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

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

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. 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

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

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

Mehr

Informatik 1 ( ) D-MAVT F2010. Schleifen, Felder. Yves Brise Übungsstunde 5

Informatik 1 ( ) D-MAVT F2010. Schleifen, Felder. Yves Brise Übungsstunde 5 Informatik 1 (251-0832-00) D-MAVT F2010 Schleifen, Felder Nachbesprechung Blatt 3 Aufgabe 1 ASCII... A > a Vorsicht: Lösen Sie sich von intuitiven Schlussfolgerungen. A ist nicht grösser als a, denn in

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

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

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

Klausur: Grundlagen der Informatik I, am 06. Februar 2009 Gruppe: B Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Klausur: Grundlagen der Informatik I, am 06. Februar 2009 Gruppe: B Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr. Seite 1 von 8 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 12 Pkt.) Was liefert

Mehr

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

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 16 Kapitel 5 Arithmetische Operatoren Seite 1 von 16 Arithmetische Operatoren - Man unterscheidet unäre und binäre Operatoren. - Je nachdem, ob sie auf einen Operanden wirken, oder eine Verknüpfung zweier

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

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

Vorlesungsprüfung Programmiersprache 1

Vorlesungsprüfung Programmiersprache 1 Vorlesungsprüfung Programmiersprache 1 Termin der Prüfung: 1) Di 20.03.2018 16:15 17:00 HSB 3 2) Di 15.05.2018 16:15 17:00 HSB 3 3) Di 12.06.2018 16:15 17:00 HSB 3 Stoffgebiete: 1) Ganzzahltypen: char,

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 29

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf  Seite 1 von 29 Kapitel 2 Einführung in C++ Seite 1 von 29 C++ Zeichensatz - Buchstaben: a bis z und A bis Z. - Ziffern: 0 bis 9 - Sonderzeichen: ; :,. # + - * / % _ \! < > & ^ ~ ( ) { } [ ]? Seite 2 von 29 Höhere Elemente

Mehr

Escape-Sequenzen. Dr. Norbert Spangler

Escape-Sequenzen. Dr. Norbert Spangler Escape-Sequenzen Einzelzeichen Bedeutung ASCII- ASCII-Code \a alert BEL 07 \b backspace BS 08 \t horizontal tab HT 09 \n line feed LF 0A \v vertical tab VT 0B \f form feed FF 0C \r carriage return CR 0D

Mehr

5. Elementare Befehle und Struktogramme

5. Elementare Befehle und Struktogramme 5. Elementare Befehle und Struktogramme Programmablauf Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme Dr. Norbert Spangler / Grundlagen

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

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

Einführung in die Programmiersprache C

Einführung in die Programmiersprache C Einführung in die Programmiersprache C Marcel Arndt arndt@ins.uni-bonn.de Institut für Numerische Simulation Universität Bonn Der Anfang Ein einfaches Programm, das Hello World! ausgibt: #include

Mehr

Klausur Informatik WS 2012/13

Klausur Informatik WS 2012/13 Klausur Informatik WS 2012/13 Name Gruppe 1 Vorname Dauer 90 min Matrikelnummer Hilfsmittel keine Die Klausur ist mit 50 Punkten sicher bestanden. Hinweies: Voraussetzung für die Teilnahme ist das Bestehen

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

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

Prüfung Informatik D-MATH/D-PHYS :00 17:00 Prüfung Informatik D-MATH/D-PHYS 9. 8. 0 5:00 7:00 Prof. Bernd Gartner Kandidat/in: Name:. Vorname:. Stud.-Nr.:. Ich bezeuge mit meiner Unterschrift, dass ich die Prufung unter regularen Bedingungen ablegen

Mehr

Einführung Programmierpraktikum C Michael Zwick

Einführung Programmierpraktikum C Michael Zwick Einführung Programmierpraktikum C Michael Zwick Vorlesung, Übung & Fragestunde Dr.-Ing. Michael Zwick Raum Z945 zwick@tum.de (089) 289 23609 Tutorium Ab Dienstag: Auswahl Tutoriumsplatz auf www.ldv.ei.tum.de/lehre/computertechnik

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

Klausur: Informatik I am 06. Februar 2009 Gruppe: D Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:

Klausur: Informatik I am 06. Februar 2009 Gruppe: D Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte: Seite 1 von 10 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 12 Pkt.) Was liefert

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

Informatik 1 ( ) D-MAVT F2011. Klassen, Funktionen. Yves Brise Übungsstunde 9

Informatik 1 ( ) D-MAVT F2011. Klassen, Funktionen. Yves Brise Übungsstunde 9 Informatik 1 (251-0832-00) D-MAVT F2011 Klassen, Funktionen Nachbesprechung Blatt 7, Aufgabe 1 Wenn Funktion void als Rückgabetyp hat, dann ist return nicht notwendig. void swap3(int* a, int* b) { int

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

Klausur: Grundlagen der Informatik I, am 06. Februar 2009 Gruppe: A Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Klausur: Grundlagen der Informatik I, am 06. Februar 2009 Gruppe: A Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr. Seite 1 von 9 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 12 Pkt.) Was liefert

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

Richtig Rechnen. // Program: fahrenheit.c // Convert temperatures from Celsius to Fahrenheit.

Richtig Rechnen. // Program: fahrenheit.c // Convert temperatures from Celsius to Fahrenheit. Fliesskommazahlen Richtig Rechnen // Program: fahrenheit.c // Convert temperatures from Celsius to Fahrenheit. #include int main() { // Input std::cout

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

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

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

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

4. Zahlendarstellungen

4. Zahlendarstellungen 121 4. Zahlendarstellungen Wertebereich der Typen int, float und double Gemischte Ausdrücke und Konversionen; Löcher im Wertebereich; Fliesskommazahlensysteme; IEEE Standard; Grenzen der Fliesskommaarithmetik;

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

Problem: Keine Integers in JavaCard. ToDo: Rechnen mit Bytes und Shorts

Problem: Keine Integers in JavaCard. ToDo: Rechnen mit Bytes und Shorts Kapitel 6: Arithmetik in JavaCard Problem: Keine Integers in JavaCard ToDo: Rechnen mit Bytes und Shorts Java SmartCards, Kap. 6 (1/20) Hex-Notation 1 Byte = 8 Bit, b 7 b 6 b 5 b 4 b 3 b 2 b 1 b 0 0101

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

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

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 - Ü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

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

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

3. Wahrheitswerte. Boolesche Funktionen; der Typ bool; logische und relationale Operatoren; Kurzschlussauswertung; Assertions und Konstanten

3. Wahrheitswerte. Boolesche Funktionen; der Typ bool; logische und relationale Operatoren; Kurzschlussauswertung; Assertions und Konstanten 114 3. Wahrheitswerte Boolesche Funktionen; der Typ bool; logische und relationale Operatoren; Kurzschlussauswertung; Assertions und Konstanten Wo wollen wir hin? 115 int a; std::cin >> a; if (a % 2 ==

Mehr

Variablen, Konstanten und Datentypen

Variablen, Konstanten und Datentypen Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14 Variablen, Konstanten und Datentypen Überblick

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

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

4. Zahlendarstellungen

4. Zahlendarstellungen Bin are Zahlendarstellungen Binäre Darstellung ("Bits" aus {0, 1) 4. Zahlendarstellungen bn bn 1... b1 b0 entspricht der Zahl bn 2n + + b1 2 + b0 Wertebereich der Typen int, float und double Gemischte

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

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

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke Java 2 Markus Reschke 07.10.2014 Datentypen Was wird gespeichert? Wie wird es gespeichert? Was kann man mit Werten eines Datentyps machen (Operationen, Methoden)? Welche Werte gehören zum Datentyp? Wie

Mehr

Programmiervorkurs Einführung in Java Tag 1

Programmiervorkurs Einführung in Java Tag 1 Programmiervorkurs Einführung in Java Tag 1 Sebastian Glutsch SS 2018 namen Inhaltsübersicht Vorkurs Tag 1:,, en,, Einführung Tag 2: Boolesche Ausdrücke,, If-Abfragen, Switch-Case Tag 3: Arrays, (Do-)While-Schleife,

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

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

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

Informatik 1 ( ) D-MAVT F2010. Letzte Übungsstunde. Yves Brise Übungsstunde 12

Informatik 1 ( ) D-MAVT F2010. Letzte Übungsstunde. Yves Brise Übungsstunde 12 Informatik 1 (251-0832-00) D-MAVT F2010 Letzte Übungsstunde Evaluation S3 Frage zu Assistierenden INFK Anz. Der/die Assistent/in war fachlich k.ä. 0 kompetent 1 0 2 0 3 0 4 23% 3 5 77% 10 MW = 4.8 SA =

Mehr

Informatik I. Übung 2 : Programmieren in Eclipse. 5. März Daniel Hentzen

Informatik I. Übung 2 : Programmieren in Eclipse. 5. März Daniel Hentzen Informatik I Übung 2 : Programmieren in Eclipse 5. März 2014 Daniel Hentzen dhentzen@student.ethz.ch Downloads : http://n.ethz.ch/~dhentzen/download/ Heute 1. Nachbesprechung Übung 1 2. Theorie 3. Vorbesprechung

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

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

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

Algebraische Spezifikation von Software und Hardware II

Algebraische Spezifikation von Software und Hardware II Algebraische Spezifikation von Software und Hardware II Markus Roggenbach Mai 2008 3. Signaturen 3. Signaturen 2 Grundlegende Frage Wie lassen sich Interfaces beschreiben? Signaturen = Sammlung aller bekannten

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

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

Numerisches Programmieren, Übungen

Numerisches Programmieren, Übungen Technische Universität München SS 0 Institut für Informatik Prof Dr Thomas Huckle Dipl-Inf Christoph Riesinger Dipl-Math Alexander Breuer Dr-Ing Markus Kowarschik Numerisches Programmieren, Übungen Musterlösung

Mehr

1.4. Funktionen. Objektorientierte Programmierung mit C++

1.4. Funktionen. Objektorientierte Programmierung mit C++ mehrfache Deklarationen sind erlaubt für jede Funktion muss es (GENAU) eine Definition geben, ansonsten linker error [the one definition rule ODR] Deklarationen in *.h - Files, Definitionen in *.cpp -

Mehr

Informatik I Übung, Woche 41

Informatik I Übung, Woche 41 Giuseppe Accaputo 8. Oktober, 2015 Plan für heute 1. Fragen & Nachbesprechung Übung 3 2. Zusammenfassung der bisherigen Vorlesungsslides 3. Tipps zur Übung 4 Informatik 1 (D-BAUG) Giuseppe Accaputo 2 Nachbesprechung

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

Data Structures. Christian Schumacher, Info1 D-MAVT Linked Lists Queues Stacks Exercise

Data Structures. Christian Schumacher, Info1 D-MAVT Linked Lists Queues Stacks Exercise Data Structures Christian Schumacher, chschuma@inf.ethz.ch Info1 D-MAVT 2013 Linked Lists Queues Stacks Exercise Slides: http://graphics.ethz.ch/~chschuma/info1_13/ Motivation Want to represent lists of

Mehr

Wissenschaftliches Rechnen

Wissenschaftliches Rechnen Institut für Numerische und Angewandte Mathematik 11.04.2012 FB Mathematik und Informatik der Universität Münster Prof. Dr. Christian Engwer, Dipl. Math. Dipl. Inf. Sebastian Westerheide Übung zur Vorlesung

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

Informatik I Übung, Woche 41

Informatik I Übung, Woche 41 Giuseppe Accaputo 9. Oktober, 2014 Plan für heute 1. Fragen & Nachbesprechung Übung 3 2. Zusammenfassung der bisherigen Vorlesungsslides 3. Tipps zur Übung 4 Informatik 1 (D-BAUG) Giuseppe Accaputo 2 Nachbesprechung

Mehr

Crashkurs C++ Wiederholung

Crashkurs C++ Wiederholung Crashkurs C++ Wiederholung #include int main(void) { int i, j; bool is_prime; for (j = 1; j < 1000; j += 2) { is_prime = true; for (i = 3; i

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

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch) JAVA BASICS 2. Primitive Datentypen 1. Warum Java? weit verbreitet einfach und (relativ) sicher keine Pointer (?) keine gotos kein Präprozessor keine globalen Variablen garbage collection objekt-orientiert

Mehr

0. Einführung & Motivation

0. Einführung & Motivation 0. Einführung & Motivation Ansatz: "C++ für Java-Kenner" Konzentration auf semantische Unterschiede 'gleichartiger' Konzepte Erörterung der C++ -spezifischen Konzepte (Overloading, Templates) Anspruch

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