C++ Programmierkurs. Wintersemester 04 / 05. Christian Hagemeier. Lehrstuhl Prof. Dr. Schrader Institut für Informatik Universität zu Köln

Größe: px
Ab Seite anzeigen:

Download "C++ Programmierkurs. Wintersemester 04 / 05. Christian Hagemeier. Lehrstuhl Prof. Dr. Schrader Institut für Informatik Universität zu Köln"

Transkript

1 C++ Programmierkurs 1 Wintersemester 04 / 05 Christian Hagemeier Lehrstuhl Prof. Dr. Schrader Institut für Informatik Universität zu Köln mittwochs 17 18:30 Uhr Hörsaal II der Physikalischen Institute Gliederung der Vorlesung : Organisatorisches und Einführung : Einführung und Kontrollstrukturen : Kontrollstrukturen : Kontrollstrukturen und Funktionen : Funktionen, Vektoren : Zeiger, Strings : Klassen und Datenabstraktion : Klassen : Überladen von Operatoren : Vererbung : Polymorphismus : Stream Ein /Ausgabe : Datei Ein /Ausgabe 2

2 3 Wiederholung Kontrollstrukturen if Auswahlstruktur if/else Auswahlstruktur while Wiederholungsstruktur for Wiederholungsstruktur switch Mehrfachauswahl Struktur do/while Wiederholungsstruktur Schleifenarten vs. Wiederholungsstrukturen 4 Schleifenarten: zählergesteuert for (while) (do/while) mit Abbruchwert while do/while Besonderheiten der Wiederholungsstrukturen: while: wiederholt solange bis Bedingung erfüllt ist do/while: mindestens ein Schleifendurchlauf garantiert for: Vereinfachung für zählergesteuerte Schleifen Prinzipiell kann jede Schleifenart durch jede Wiederholungsstruktur implementiert werden!

3 5 2.8 Zuweisungen in C++ Abkürzende Schreibweise: c = c + 3; c += 3; weitere Beispiele: d -= 4 (d = d - 4) e *= 5 (e = e * 5) f /= 3 (f = f / 3) g %= 9 (g = g % 9) Inkrement (+1) und Dekrement ( 1) Operatoren Pre Version: Ausführung vor Ausdruckauswertung Post Version: Ausführung nach Ausdruckauswertung 2.12 break und continue break Befehl sofortige Beendigung von while, for, do/while, switch Programm wird mit erster Anweisung nach beendeter Struktur fortgesetzt Übliche Anwendung: Vorzeitiges Beenden einer Schleife Rest von switch überspringen continue Befehl Nächste Iteration in while, for, do/while Überspringt Rest des Schleifenkörpers Bei while und do/while: Schleifenbedingung wird direkt nach continue überprüft Bei for: Inkrementierung wird direkt vorgenommen dann wird Schleifenbedingung überprüft 6

4 Logische Operatoren zur Verwendung in Bedingungen von Schleifen und if Befehlen Syntax: ( bedingung1 ) operator ( bedingung2 ) && (logisches und) wahr, wenn beide Bedingungen wahr sind Beispiel: if ( geschlecht == 1 && alter >= 65 ) ++maennlichersenior; (logisches oder) wahr, wenn mindestens eine der beiden Bedingungen wahr ist Logische Operatoren (2)! (logisches nicht, Negation) hier Syntax:!( bedingung ) liefert wahr, falls Bedingung falsch ist (und umgekehrt) if (! ( note == abbruchwert ) ) cout << nächste Note << grade << endl; Alternativ: if (note!= abbruchwert) cout << nächste Note << grade << endl; 8

5 9 Verwechselung von = und == Erzeugt meist keinen Syntaxfehler Problemaspekte: Ausdrücke, die einen Wert haben, können zur Entscheidung genutzt werden (Null = falsch, Nichtnull = wahr) Zuweisungen besitzen in diesem Sinne einen Wert (nämlich der, der zugewiesen wird) Verwechselung von = und == (2) Beispiel: if ( paycode == 4 ) cout << Bonus zugeteilt << endl; wenn paycode 4 ist, wird Bonus zugeteilt 10 Ersetzung von == durch =: if ( paycode = 4 ) cout << Bonus zugeteilt << endl; paycode wird auf 4 gesetzt (unabhängig vom Wert zuvor) Bedingung ist wahr (da 4 Nichtnull ist) Bonus wird in jedem Fall zugeteilt

6 11 Lvalues und Rvalues Lvalues Ausdrücke, die auf der linken Seite eines Ausdrucks benutzt werden können Können modifiziert werden (Variablen) x = 4 Rvalues Dürfen nur auf rechter eines Ausdrucks verwendet werden! Konstanten (wie beispielsweise Zahlen) 4 = x darf daher nicht geschrieben werden Lvalues können als Rvalues verwendet werden, jedoch nicht umgekehrt! 3. Funktionen 3.1 Programmkomponenten in C Mathematische Funktionen in C Funktionen 3.4 Zufallszahlen 3.5 Details zu Variablen 3.6 Rekursion 3.7 Referenzen 3.8 Besondere Funktionstypen 12

7 Programmkomponenten in C++ Module: Funktionen und Klassen Programme kombinieren neue und fertig erstellte Module: Neu: vom Programmierer erstellt Funktionen/Klassen Fertig erstellte: Standard Template Library Funktionen werden durch Funktionsaufruf gestartet Name und nötige Informationen (Argumente) Zum Verständnis: Analogie Chef zu Angestelltem: Ein Chef (die aufrufende Funktion) beauftragt einen Angestellten (die aufgerufene Funktion) eine Aktion auszuführen und nach Fertigstellung das Ergebnis zu berichten (Ergebnis zurückliefern). 14

8 Mathematische Funktionen in C++ Um gängige mathematische Berechnungen durchzuführen Headerdatei <cmath> muß dazu eingebunden werden Method Description Exa m p le ceil( x ) rounds x to the smallest integer not less than x ceil( 9.2 ) is 10.0 ceil( -9.8 ) is -9.0 cos( x ) trigonometric cosine of x cos( 0.0 ) is 1.0 (x in radians) exp( x ) exponential function ex exp( 1.0 ) is exp( 2.0 ) is fabs( x ) absolute value of x fabs( 5.1 ) is 5.1 fabs( 0.0 ) is 0.0 fabs( ) is 8.76 floor( x ) rounds x to the largest integer not greater than x floor( 9.2 ) is 9.0 floor( -9.8 ) is fmod( x, y ) remainder of x/y as a floatingpoint fmod( , ) is number log( x ) natural logarithm of x (base e) log( ) is 1.0 log( ) is 2.0 log10( x ) logarithm of x (base 10) log10( 10.0 ) is 1.0 log10( ) is 2.0 pow( x, y ) x raised to power y (xy) pow( 2, 7 ) is 128 pow( 9,.5 ) is 3 sin( x ) trigonometric sine of x sin( 0.0 ) is 0 (x in radians) sqrt( x ) square root of x sqrt( ) is 30.0 sqrt( 9.0 ) is 3.0 tan( x ) trigonometric tangent of x (x in radians) tan( 0.0 ) is 0 Fig. 3.2 M a th lib ra ry func tio ns. 16

9 Funktionen Modularisieren Programme Wiederverwendbarkeit: Funktionen können mehrfach aufgerufen werden Lokale Veriablen: Sind nur in der Funktion bekannt, in der sie definiert wurden Bis jetzt: alle in Funktionen definierten Variablen sind lokal Parameter: sind lokale Variablen, die beim Aufruf erzeugt werden stellen Informationen des Aufrufers bereit Funktionsdeklaration Nur nötig, wenn Funktionsdefinition nach Funktionsaufruf stattfindet Teilt Compiler Name, Rückgabewert und Parameter mit Funktionsprototyp Teilt Compiler Name, Argumenttypen und Rückgabewerttyp mit int square( int ); Funktion benötigt ein int Argument und gibt eine int Zahl zurück Funktionssignatur (= Name + Arrgumenttypen) double maximum( double, double, double ); 18 Funktionssignatur

10 19 Typumwandlung Beim Aufruf werden die Typen der übergebenen Werte wenn nötig entsprechend umgewandelt Beispiel: cout << sqrt( 4 ); wandelt int 4 in double 4.0 um. Regeln: Typen werden normalerweise automatisch konvertiert Wechsel von double zu int schneidet Nachkommastellen ab Sind in einem Ausdruck verschiedene Typen enthalten, so wird das Ergebnis in den höchsten Typ gewandelt (siehe nächste Folie) Beispiel: int * double double Datentypenhierarchie 20 long double double float unsigned long int long int unsigned int int unsigned short int (synonym für unsigned long) (synonym für long) (synonym für unsigned) (synonym für unsigned short) short int (synonym für short) unsigned char char bool (false wird 0, true wird 1)

11 21 Funktionsdefinition Beschreibt die Funktionsweise (Funktionskörper) Vor anderen Funktionen verborgen Format für Funktionsdefinition: rückgabewerttyp funktionsname( parameterliste ) { Deklarationen und Befehle } Parameterliste: Liste mit Typ Name für jedes Argument; kommasepariert Falls keine Argumente: void Rückgabewerttyp: Typ des Rückgabewerts (void falls keine Rückgabe) Funktionsdefinition (2) Beispiel: int square( int y ) { return y * y; } Schlüsselwort return: Liefert Rückgabewert zurück und gibt Kontrollfluß an Aufrufer zurück (falls kein Rückgabewert: return;) Funktionen können innerhalb anderer Funktionen definiert werden 22

12 23 Funktionsaufruf Beispiel: square( x ); Klammern sind Operator zum Funktionsaufruf Übermitteln Argument (hier: x) Funktion erhält eigene Kopie der Argumente Nach Ferfigstellung: Ergebnis wird zurückgegeben Funktionsargumente Konstanten: sqrt( 4 ); Variablen: sqrt( x ); Ausdrücke: sqrt( sqrt( x ) ); sqrt( 3 6x ); 24

13 25 Beispiel: Quadrieren 1 // Fig. 3.3: fig03_03.cpp 2 // Erzeugen und Verwenden einer benutzerdefinierten Funktion. 3 #include <iostream> 4 5 using std::cout; 6 using std::endl; 7 8 int square( int ); // Funktionsprototyp 9 10 int main() 11 { 12 // Wiederhole 10 mal und berechne und gib 13 // Quadrat jedes x aus 14 for ( int x = 1; x <= 10; x++ ) 15 cout << square( x ) << " "; // Funktionsaufruf cout << endl; return 0; // erfolgreiches Ende } // main 22 Beispiel: Quadrieren 26 1 // Fig. 3.3: fig03_03.cpp 2 // Erzeugen und Verwenden einer benutzerdefinierten Funktion. 3 #include <iostream> 4 5 using std::cout; 6 using std::endl; 7 8 int square( int ); // Funktionsprototyp 9 10 int main() 11 { 12 // Wiederhole 10 mal und berechne und gib 13 // Quadrat jedes x aus 14 for ( int x = 1; x <= 10; x++ ) 15 cout << square( x ) << " "; // Funktionsaufruf cout << endl; return 0; // erfolgreiches Ende } // main 22 Funktionsdeklaration: legt Datentyp des Rückgabewerts und der Argumente fest. square erwartet int und liefert int zurück. Klammern () bedeuten Funktionsaufruf. Wenn fertig wird Ergebnis zurückgeliefert.

14 27 Beispiel: Quadrieren (2) 23 // Funktionsdefinition zum Quadrieren: liefert int zurück 24 int square( int y ) // y ist eine Kopie des übergebenen Arguments 25 { 26 return y * y; // gibt Quadrat von y als int zurück } // square Definition von square. y ist eine Kopie des Arguments. Rückgabe: y * y. Beispiel: Maximum 28 1 // Fig. 3.4: fig03_04.cpp 2 // Ermittlung des Maximums von drei Fließkommazahlen. 3 #include <iostream> 5 using std::cout; 6 using std::cin; 7 using std::endl; 8 9 double maximum( double, double, double ); // Funktionsprototyp int main() 12 { 13 double number1; 14 double number2; 15 double number3; 17 cout << Drei Fließkommazahlen eingeben: "; 18 cin >> number1 >> number2 >> number3; // number1, number2 und number3 sind Argumente 21 // des Funktionsaufrufs der Funktion maximum 22 cout << "Maximum ist: " 23 << maximum( number1, number2, number3 ) << endl; return 0; // Funktion war erfolgreich Funktion maximum nimmt 3 Argumente (alle double), Rückgabetyp: double.

15 29 Beispiel: Maximum (2) 27 } // end main 28 Liste durch Kommata getrennt 29 // function maximum definition; für mehrere Parameter. 30 // x, y and z are parameters 31 double maximum( double x, double y, double z ) 32 { 33 double max = x; // assume x is largest if ( y > max ) // if y is larger, 36 max = y; // assign y to max if ( z > max ) // if z is larger, 39 max = z; // assign z to max return max; // max is largest value 43 } // end function maximum Drei Fließkommazahlen eingeben: Maximum ist: Drei Fließkommazahlen eingeben: Maximum ist: Drei Fließkommazahlen eingeben: Maximum ist: Zufallszahlen Funktion rand() (<cstdlib>) erzeugt Zufallszahl vom Typ unsigned int im Bereich 0 bis RAND_MAX (meist 32767) Aufruf: unsigned int i = rand(); Skalieren und Shiften von Zufallszahlen: Modulo Operator 10 % 3 ergibt 1 x % y liefert Zahl zwischen 0 und y-1 Beispiel: i = rand() % rand() % 6 erzeugt Zufallszahl zwischen 0 und 5 (Skalieren) +1 verschiebt den Bereich nach 1 bis 6 (Shiften) 30

16 31 Beispiel: Zufallszahlen (1) 1 // Fig. 3.7: fig03_07.cpp 2 // Beispiel für rand(). 3 #include <iostream> 5 using std::cout; 6 using std::endl; 7 8 #include <iomanip> 10 using std::setw; #include <cstdlib> // enthält Funktionsprototypen für rand() int main() 15 { 16 // Iteriere 20 mal 17 for ( int counter = 1; counter <= 20; counter++ ) { // erzeuge Zufallszahl [1,6] und gib sie aus 20 cout << setw( 10 ) << ( 1 + rand() % 6 ); // jede 5. Zahl beendet laufende Zeile 23 if ( counter % 5 == 0 ) 24 cout << endl; Beispiel Zufallszahlen (2) } // for return 0; // erfolgreiches Ende } // main()

17 33 Beispiel: Zufallszahlenverteilung Ermittele Verteilung der von rand() erzeugten Zufallszahlen: Simuliere 6000 Würfelwürfe Gib Anzahl der gewürfelten 1en, 2en,... Aus Sollten alle ca sein. Quellcode: Zufallszahlenverteilung (1) 34 1 // Fig. 3.8: fig03_08.cpp 2 // Werfe einen Würfel 6000 mal. 3 #include <iostream> 4 5 using std::cout; 6 using std::endl; 7 8 #include <iomanip> 9 10 using std::setw; #include <cstdlib> // enthält Funktionsprototyp von rand() int main() 15 { 16 int frequency1 = 0; 17 int frequency2 = 0; 18 int frequency3 = 0; 19 int frequency4 = 0; 20 int frequency5 = 0; 21 int frequency6 = 0; 22 int face; // enthält Ergebnis eines Würfelwurfs 23

18 35 Quellcode: Zufallszahlenverteilung (2) 24 // iteriere 6000 mal und speichere Ergebnis 25 for ( int roll = 1; roll <= 6000; roll++ ) { 26 face = 1 + rand() % 6; // Zufallszahl zwischen 1 und // ermittele gewürfelte Zahl und inkrementiere entspr. Zähler 29 switch ( face ) { case 1: // 1 gewürfelt 32 ++frequency1; 33 break; case 2: // 2 gewürfelt 36 ++frequency2; 37 break; case 3: // 3 gewürfelt 40 ++frequency3; 41 break; case 4: // 4 gewürfelt 44 ++frequency4; 45 break; 46 Quellcode: Zufallszahlenverteilung (3) case 5: // 5 gewürfelt 48 ++frequency5; 49 break; case 6: // 6 gewürfelt 52 ++frequency6; 53 break; default: // ungültige Zahl 56 cout << "Programm sollte hier nie landen! << endl; } // switch } // for // zeige Ergebnis in Tabellenform an 63 cout << Zahl" << setw( 13 ) << Häufigkeit << endl 64 << " 1" << setw( 13 ) << frequency1 << endl 65 << " 2" << setw( 13 ) << frequency2 << endl 66 << " 3" << setw( 13 ) << frequency3 << endl 67 << " 4" << setw( 13 ) << frequency4 << endl 68 << " 5" << setw( 13 ) << frequency5 << endl 69 << " 6" << setw( 13 ) << frequency6 << endl;

19 37 Quellcode: Zufallszahlenverteilung (4) return 0; // Programm erfolgreich } // main() Zahl Häufigkeit Pseudozufällige Zahlen Wird rand() mehrfach hintereinander aufgerufen, erzeugt es gleich Zufallszahlenfolge Pseudozufallszahlen: Voreingestellte Folge an Zufalls zahlen Gleiche Folge wird bei jedem Programmaufruf erzeugt Um unterschiedliche Folgen zu erhalten: Verwende Initialisierungszahl (seed) Entspricht einem zufälligen Startpunkt in der Folge Gleiche Initialisierungszahl erzeugt gleiche Zahlensequenz srand( seed ); Definiert in <cstdlib> muß vor rand() aufgerufen werden um Startpunkt festzulegen 38

20 39 Beispiel: Randomisierung der Zufallszahlen 1 // Fig. 3.9: fig03_09.cpp 2 // Randomisiertes Würfelprogramm. 3 #include <iostream> 4 5 using std::cout; 6 using std::cin; 7 using std::endl; 8 9 #include <iomanip> using std::setw; // enthält Prototypen für rand() und srand() 14 #include <cstdlib> int main() 18 { 19 unsigned seed; cout << Bitte seed eingeben: "; 22 cin >> seed; 23 srand( seed ); // wähle Startpunkt der Zahlenfolge Beispiel: Randomisierung der Zufallszahlen // wiederhole 10 mal 26 for ( int counter = 1; counter <= 10; counter++ ) { // wähle Zufallszahl aus [1,6] und gib sie aus 29 cout << setw( 10 ) << ( 1 + rand() % 6 ); // nach jeder 5. Zahl neue Zeile 32 if ( counter % 5 == 0 ) 33 cout << endl; } // for return 0; // Programm war erfolgreich } // main()

21 41 Beispiel: Randomisierung der Zufallszahlen Bitte seed eingeben: Bitte seed eingeben: Bitte seed eingeben: rand() erzeugt gleiche Folge bei gleichem Startwert. Wahl des Startpunktes Verwendung der aktuellen Uhrzeit als Startpunkt Seed braucht nicht mehr eingegeben werden srand( time ( 0 ) ); time( 0 ); <ctime> Liefert aktuelle Uhrzeit in Sekunden zurück 42

22 43 Aufzählungstyp Typ enum: Eine Menge an ints mit Namen: enum typename {constant1, constant2 }; Werte der Konstanten beginnen bei 0 und werden immer um 1 inkrementiert Konstanten benötigen eindeutige Namen Zuweisung eines int zu einem enum ist nicht erlaubt Verwendung der Konstanten! Beispiel: enum Status {CONTINUE, WON, LOST}; Status enumvar; enumvar = WON; // nicht erlaubt: enumvar = 1 Name der neuen Aufzählung wie Typ (beispielsweise int) zu verwenden! Beispiel: Würfelspiel Würfele mit zwei Würfeln Bei 7 oder 11 im ersten Wurf: Spieler gewinnt Bei 2, 3 oder 12 im ersten Wurf: Spieler verliert 4, 5, 6, 8, 9, 10: Wert wird Punktzahl ( points ) des Spielers Spieler muß erneut diese Punktzahl werfen, bevor er eine 7 würfelt um zu gewinnen Programm siehe Datei fig03_10.cpp im Internet 44

23 Details zu Variablen Attribute von Variablen: Bekannt: Name, Typ, Größe, Wert Speicherungsklasse Wie lange existieren sie im Speicher Geltungsbereich Von wo aus können Variablen referenziert werden Bindung (linkage) Falls Programm auf mehrere Dateien aufgeteilt ist: welche Dateien können Variablen nutzen Automatische Speicherungsklasse Variable wird erzeut, wenn Programm entsprechenden Block ausführt Variable wird zerstört, wenn Programm Block verläßt Nur lokale Variablen in Funktionen können automatisch sein Typ automatisch ist Defaultwert für solche Variablen Explizite Angabe durch Schlüsselwort auto Schlüsselwort register: Hinweis für Compiler, diese Variable in Hochgeschwindigkeitsregister zu speichern Meist unnötig, da Compiler dies selbsttätig entscheidet register und auto schließen sich aus Beispiel: register int counter = 1; 46

24 47 Statische Speicherungsklasse Variablen existieren während gesamtem Programmlauf Kann trotzdem nicht verfügbar sein: siehe Geltungsbereichsregeln (später) Schlüsselwort static: Für lokale Variablen in Funktionen Erhält Wert zwischen verschiedenen Funktionsaufrufen Weiterhin nur in eigener Funktion bekannt Geltungsbereich von Variablen (1) Geltungsbereich ist (bezogen auf eine Variable) der Teil des Programms, in dem diese Variable angesprochen werden kann 1. Datei Geltungsbereich: Ist etwas außerhalb einer Funktion definiert, so gilt es in der gesamten Datei z.b. bei globalen Variablen, Definition und Prototyp von Funktionen 2. Funktions Geltungsbereich: Betrifft nur Label (z.b. case Teil bei switch) Kann nur innerhalb der entsprechenden Funktion verwendet werden 48

25 49 Geltungsbereich von Variablen (2) 3. Block Geltungsbereich: Fängt bei Definition an und endet bei entsprechender } Kann nur in diesem Bereich angesprochen werden Betrifft lokale Variablen und Funktionsparameter Auch bei static Variablen gilt Block Geltungsbereich! Konzeptueller Unterschied: Speicherungsklasse vs. Geltungsbereich 4. Funktionsprototyp Geltungsbereich: Betrifft Parameterliste im Prototypen Namen im Prototypen sind optional (werden vom Compiler ignoriert) In einem Prototypen dürfen Namen nicht doppelt vorkommen Beispiel für Geltungsbereich 50 fig03_12.cpp im Internet Programm in Eigenarbeit anschauen und ausführen Was passiert bei Modifikationen bezüglich Speicehrungsklasse und Geltungsbereich?

C++ Programmierkurs. Wintersemester 04 / 05. Christian Hagemeier. Lehrstuhl Prof. Dr. Schrader Institut für Informatik Universität zu Köln

C++ Programmierkurs. Wintersemester 04 / 05. Christian Hagemeier. Lehrstuhl Prof. Dr. Schrader Institut für Informatik Universität zu Köln C++ Programmierkurs 1 Wintersemester 04 / 05 Christian Hagemeier Lehrstuhl Prof. Dr. Schrader Institut für Informatik Universität zu Köln mittwochs 17 18:30 Uhr Hörsaal II der Physikalischen Institute

Mehr

C++ Programmierkurs. Variablen. Wintersemester 04 / 05. Christian Hagemeier. mittwochs 17 18:30 Uhr Hörsaal II der Physikalischen Institute

C++ Programmierkurs. Variablen. Wintersemester 04 / 05. Christian Hagemeier. mittwochs 17 18:30 Uhr Hörsaal II der Physikalischen Institute C++ Programmierkurs Wintersemester 0 / 05 Christian Hagemeier Lehrstuhl Prof. Dr. Schrader Institut für Informatik Universität zu Köln 1 Variablen Stelle im Speicher, wo ein Wert von einem bestimmten Datentyp

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

Einführung in die Programmierung Wintersemester 2008/09

Einführung in die Programmierung Wintersemester 2008/09 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 : Funktionen Inhalt Funktionen - mit / ohne Parameter

Mehr

Beispiel: Vom Problem zum Code

Beispiel: Vom Problem zum Code Beispiel: Vom Problem zum Code High-Level Pseudo-Code: Eingabe: Anzahl Scheiben: n (jede mit aufgedruckter Nummer) Quell-Stange, Ziel-Stange, Zwischenspeicher-Stange Vorbedingungen: Auf Quell-Stange befinden

Mehr

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

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

Mehr

Informatik I (D-ITET)

Informatik I (D-ITET) Informatik I (D-ITET) Übungsstunde 2, 5.10.2009 ETH Zürich? Übungsgruppenwechsel? Abgabe der Übungen... Bis Mo, 24:00 Theorie: Programme: per mail oder auf Papier.cpp Datei per mail Bin euch noch Demos

Mehr

Repetitorium Programmieren I + II

Repetitorium Programmieren I + II Repetitorium Programmieren I + II Stephan Gimbel Johanna Mensik Michael Roth 6. März 2012 Agenda 1 Operatoren 2 Datentypen Gleitpunkt Zahl Typkonvertierung 3 Strommanipulatoren 4 Bedingungen if-else switch-case

Mehr

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML. JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung

Mehr

Vorkurs C++ Programmierung

Vorkurs C++ Programmierung Vorkurs C++ Programmierung Funktionen Rückblick Operatoren logische Verknüpfungen Zusammengesetzte Operatoren ( Zuweisungsoperatoren ) Kontrollstrukturen Bedingte Anweisungen (if-abfrage, switch-konstrukt)

Mehr

C++ Teil 5. Sven Groß. 12. Nov IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Nov / 16

C++ Teil 5. Sven Groß. 12. Nov IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Nov / 16 C++ Teil 5 Sven Groß IGPM, RWTH Aachen 12. Nov 2014 Sven Groß (IGPM, RWTH Aachen) C++ Teil 5 12. Nov 2014 1 / 16 Themen der letzten Vorlesung Eingabestrom, Verhalten von cin Namensräume Live Programming

Mehr

Einführung in die Programmierung Wintersemester 2011/12

Einführung in die Programmierung Wintersemester 2011/12 Einführung in die Programmierung Wintersemester 2011/12 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : Kontrollstrukturen Inhalt Wiederholungen - while

Mehr

Funktionen: Rückgabewert

Funktionen: Rückgabewert Funktionen: Rückgabewert Jede Funktion in C++ (außer Konstruktoren und Destruktoren siehe später) MUSS einen Rückgabewert-Typ vereinbaren. Gibt sie nichts zurück, muss der Rückgabetyp void sein. Jede return-anweisung

Mehr

Angewandte Mathematik und Programmierung

Angewandte Mathematik und Programmierung Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS 2013/14 Operatoren Operatoren führen Aktionen mit Operanden aus. Der

Mehr

C++ Programmierkurs. Wintersemester 04 / 05. Christian Hagemeier. Lehrstuhl Prof. Dr. Schrader Institut für Informatik Universität zu Köln

C++ Programmierkurs. Wintersemester 04 / 05. Christian Hagemeier. Lehrstuhl Prof. Dr. Schrader Institut für Informatik Universität zu Köln C++ Programmierkurs 1 Wintersemester 04 / 05 Christian Hagemeier Lehrstuhl Prof. Dr. Schrader Institut für Informatik Universität zu Köln mittwochs 17 18:30 Uhr Hörsaal II der Physikalischen Institute

Mehr

Einführung in die Programmierung

Einführung in die Programmierung : Inhalt Einführung in die Programmierung Wintersemester 2017/18 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund Wiederholungen - while - do-while - for

Mehr

Wiederholung, Abbruch von Schleifen, switch-anweisung Datentypen, char, formatierte Ausgabe

Wiederholung, Abbruch von Schleifen, switch-anweisung Datentypen, char, formatierte Ausgabe Informatik Vorlesung 03b Wiederholung, Abbruch von Schleifen, switch-anweisung Datentypen, char, formatierte Ausgabe 12. November 2018 WiSe 2018 FB Ing - SB Umwelttechnik und Dienstleistung - Informatik

Mehr

Kapitel 5: Funktionen. Inhalt

Kapitel 5: Funktionen. Inhalt Wintersemester 2007/08 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich Informatik Lehrstuhl

Mehr

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) Wintersemester 2005/06 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich Informatik Lehrstuhl

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

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

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

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny 7. Funktionen Einleitung Nach dem Prinzip Divide and Conquer bietet es sich an, größere Aufgaben in kleinere Teile zu unterteilen. Anweisungsblöcke,

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

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung C Sprachelemente für Übung 2 Typumwandlungen (type casts) Bei Ausdrücken, in denen Operanden mit unterschiedlichem Typ vorkommen, werden diese vom Compiler vor der Ausführung automatisch in einen gemeinsamen

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

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

Programmierung und Angewandte Mathematik

Programmierung und Angewandte Mathematik Programmierung und Angewandte Mathematik C++ /Scilab Programmierung und Einführung in das Konzept der objektorientierten Anwendungen zu wissenschaftlichen Rechnens SS 2012 Ablauf Was sind Funktionen/Methoden

Mehr

PIC16 Programmierung in HITECH-C

PIC16 Programmierung in HITECH-C PIC16 Programmierung in HITECH-C Operatoren: Arithmetische Operatoren - binäre Operatoren + Addition - Subtraktion * Multiplikation / Division % Modulo + - * / sind auf ganzzahlige und reelle Operanden

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

4.2 Programmiersprache C

4.2 Programmiersprache C 4.2.1. Elementare Datentypen (signed) int, unsigned int, (signed) short (int), unsigned short (int), (signed) long (int), unsigned long (int) Elementare Datentypen für ganze Zahlen mit oder ohne Vorzeichen.

Mehr

Kontrollstrukturen (1)

Kontrollstrukturen (1) Kontrollstrukturen (1) Selektionen, if ermöglicht das alternative Ausführen von Programteilen in Abhängigkeit einer Bedingung if (Bedingung) Block 1 else Block 2 Ist die Bedingung wahr, also ungleich 0,

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren 3. Kontrollstrukturen 04.11.2015 Prof. Dr. Ralf H. Reussner Version 1.1 LEHRSTUHL FÜR SOFTWARE-DESIGN UND QUALITÄT (SDQ) INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD),

Mehr

Strukturierte Programmierung und Funktionen

Strukturierte Programmierung und Funktionen Strukturierte Programmierung und Funktionen Um ein Programm übersichtlicher zu gestalten, zerlegt man seine Funktionalität meist in mehrere (oder auch ganz viele) Teile. Dadurch lässt sich das Programm

Mehr

Themen der Übung. Methoden und Wrapperklassen. Vorteile von Methoden. Methoden. Grundlagen

Themen der Übung. Methoden und Wrapperklassen. Vorteile von Methoden. Methoden. Grundlagen Themen der Übung 1 Organisatorisches Methoden und Wrapperklassen 2 Methoden 3 Wrapper-Klassen CoMa-Übung IV TU Berlin 07.11.2012 Organisatorisches: Im Pool nur auf die Abgabeliste setzen, wenn ihr wirklich

Mehr

Methoden und Wrapperklassen

Methoden und Wrapperklassen Methoden und Wrapperklassen CoMa-Übung IV TU Berlin 06.11.2012 CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 06.11.2012 1 / 24 Themen der Übung 1 Methoden 2 Wrapper-Klassen CoMa-Übung IV (TU Berlin)

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

Java: Eine kurze Einführung an Beispielen

Java: Eine kurze Einführung an Beispielen Java: Eine kurze Einführung an Beispielen Quellcode, javac und die JVM Der Quellcode eines einfachen Java-Programms besteht aus einer Datei mit dem Suffix.java. In einer solchen Datei wird eine Klasse

Mehr

Herzlich willkommen!

Herzlich willkommen! Programmiertechnik 1 Herzlich willkommen! Dozent: Dipl.-Ing. Jürgen Wemheuer Teil 6: Zusammenfassung und Beispiele Mail: wemheuer@ewla.de Online: http://cpp.ewla.de/ Zusammenfassung (1) 2 1. Programm in

Mehr

Brückenkurs Programmieren

Brückenkurs Programmieren Brückenkurs Programmieren Tag 2: Schleifen und Funktionen Christopher Schölzel Technische Hochschule Mittelhessen 27. März 2018 Inhalt Schleifen Einleitung While For Funktionen 2 / 23 Inhalt Schleifen

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

4.2 Gleitkommazahlen. Der Speicherbedarf (in Bits) ist üblicherweise. In vielen Anwendungen benötigt man gebrochene Werte. Physikalische Größen

4.2 Gleitkommazahlen. Der Speicherbedarf (in Bits) ist üblicherweise. In vielen Anwendungen benötigt man gebrochene Werte. Physikalische Größen . Gleitkommazahlen In vielen Anwendungen benötigt man gebrochene Werte. Physikalische Größen Umrechnen von Einheiten und Währungen Jede Zahl x Q mit x 0 lässt sich folgendermaßen schreiben: x = s m e mit

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

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8 Java 8 Elmar Fuchs Grundlagen Programmierung 1. Ausgabe, Oktober 2014 JAV8 5 Java 8 - Grundlagen Programmierung 5 Kontrollstrukturen In diesem Kapitel erfahren Sie wie Sie die Ausführung von von Bedingungen

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

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

7 Funktionen. 7.1 Definition. Prototyp-Syntax: {Speicherklasse} {Typ} Name ({formale Parameter});

7 Funktionen. 7.1 Definition. Prototyp-Syntax: {Speicherklasse} {Typ} Name ({formale Parameter}); S. d. I.: Programieren in C Folie 7-1 7 Funktionen 7.1 Definition Prototyp-Syntax: Speicherklasse Typ Name (formale Parameter); der Funktions-Prototyp deklariert eine Funktion, d.h. er enthält noch nicht

Mehr

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen.

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen. Ziele sind das Arbeiten mit Zeigern, sowie Records und Funktionen Aufgabe 5: Diese Aufgabe basiert auf der Aufgabe 4. Es ist ein Programm zu erstellen, in welchem der Anwender aus einer Anzahl möglicher

Mehr

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

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

Mehr

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten Operatoren, Ausdrücke und Anweisungen Kontrollstrukturen (Steuerfluss)

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren 3. Kontrollstrukturen 09.11.2016 Jun.-Prof. Dr.-Ing. Anne Koziolek Version 1.1 ARBEITSGRUPPE ARCHITECTURE-DRIVEN REQUIREMENTS ENGINEERING (ARE) INSTITUT FÜR PROGRAMMSTRUKTUREN UND

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

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 4

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 4 Fakultät Verkehrswissenschaften Friedrich List, Professur für Verkehrsbetriebslehre und Logistik Modul Entscheidungsunterstützung in der Logistik Einführung in die Programmierung mit C++ Übung 4 SS 2016

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

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

Übung zur Vorlesung EidP (WS 2018/19) Blatt 4

Übung zur Vorlesung EidP (WS 2018/19) Blatt 4 Lutz Oettershagen Jurij Kuzmic Dortmund, den 8. November 2018 Übung zur Vorlesung EidP (WS 2018/19) Blatt 4 Block gelb Es können 4 Punkte erreicht werden. Abgabedatum: 15. November 2018, 2:59 Uhr Hinweise

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

PVK Informatik I 1.Teil. Grundlagen Variablen Operatoren Fallunterscheidung Schleifen Kurzschreibweise Pointer Array Dynamische Strukturen Funktionen

PVK Informatik I 1.Teil. Grundlagen Variablen Operatoren Fallunterscheidung Schleifen Kurzschreibweise Pointer Array Dynamische Strukturen Funktionen PVK Informatik I 1.Teil Grundlagen Variablen Operatoren Fallunterscheidung Schleifen Kurzschreibweise Pointer Array Dynamische Strukturen Funktionen 1 Grundlagen #include #include using

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 21.03.2018 1 Ablauf Quiz und Recap Floating Point

Mehr

Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Wiederholung Kapitel 4. Birgit Engels, Anna Schulze WS 07/08

Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Wiederholung Kapitel 4. Birgit Engels, Anna Schulze WS 07/08 Kapitel 4 Programmierkurs Birgit Engels, Anna Schulze Wiederholung Kapitel 4 ZAIK Universität zu Köln WS 07/08 1 / 23 2 Datentypen Arten von Datentypen Bei der Deklaration einer Variablen(=Behälter für

Mehr

Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom

Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom Einstieg in die Informatik mit Java, Vorlesung vom 2.5.07 Übersicht 1 2 definition 3 Parameterübergabe, aufruf 4 Referenztypen bei 5 Überladen von 6 Hauptprogrammparameter 7 Rekursion bilden das Analogon

Mehr

Auswahlen (Selektionen)

Auswahlen (Selektionen) 1 Anhang 10.3 Ein/Ausgaben Eingabe mit Prompt (Beispiel) cout ; // Prompt ohne endl cin

Mehr

Grundlagen der Informatik Ergänzungen WS 2007/2008 Prof. Dr. Rainer Lütticke

Grundlagen der Informatik Ergänzungen WS 2007/2008 Prof. Dr. Rainer Lütticke Grundlagen der Informatik Ergänzungen WS 2007/2008 Prof. Dr. Rainer Lütticke 1 Links Stellenwertsysteme mit Links zu Zahlensysteme: http://de.wikipedia.org/wiki/stellenwertsystem ASCII-Code: http://de.wikipedia.org/wiki/ascii

Mehr

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja Aue

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

RO-Tutorien 3 / 6 / 12

RO-Tutorien 3 / 6 / 12 RO-Tutorien 3 / 6 / 12 Tutorien zur Vorlesung Rechnerorganisation Christian A. Mandery WOCHE 2 AM 06./07.05.2013 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft

Mehr

Die einfachsten Anweisungen

Die einfachsten Anweisungen 2 Die einfachsten Anweisungen 2-1 Inhalt Die einfachsten Anweisungen Einführung Datentypen Arithmetische Operatoren Mathematische Funktionen Mehrfache Zuweisungen Übungsaufgaben Einführung Wir wollen unser

Mehr

C++ Programmierkurs. Wintersemester 04 / 05. Christian Hagemeier. Lehrstuhl Prof. Dr. Schrader Institut für Informatik Universität zu Köln

C++ Programmierkurs. Wintersemester 04 / 05. Christian Hagemeier. Lehrstuhl Prof. Dr. Schrader Institut für Informatik Universität zu Köln C++ Programmierkurs 1 Wintersemester 04 / 05 Christian Hagemeier Lehrstuhl Prof. Dr. Schrader Institut für Informatik Universität zu Köln mittwochs 17 18:30 Uhr Hörsaal II der Physikalischen Institute

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

C# - Einführung in die Programmiersprache Methoden. Leibniz Universität IT Services

C# - Einführung in die Programmiersprache Methoden. Leibniz Universität IT Services C# - Einführung in die Programmiersprache Methoden Leibniz Universität IT Services 02.07.12 Methoden... sind Subroutinen in einer Klasse. können einen Wert an den Aufrufer zurückgeben. verändern die Eigenschaften

Mehr

4 Formelsammlung C/C++

4 Formelsammlung C/C++ 4 Formelsammlung C/C++ 4.1 Datentypen Datentyp stdint.h type Bits Sign Wertebereich (unsigned) char uint8_t 8 Unsigned 0.. 255 signed char int8_t 8 Signed -128.. 127 unsigned short uint16_t 16 Unsigned

Mehr

Informatik. Strukturen und Aufzählungstypen. Vorlesung

Informatik. Strukturen und Aufzählungstypen. Vorlesung Informatik Vorlesung 06 Strukturen und Aufzählungstypen 03. Dezember 2018 WiSe 2018 FB Ing - SB Umwelttechnik und Dienstleistung - Informatik Thomas Hoch 1 Datentypen Die bisher benutzten Datentypen waren

Mehr

Abschlußtest Programmieren 30. Juni 2017 Name: Punkte von 32: Gruppe: Haase-Di Haase-Do Stanek-Di Stanek-Do

Abschlußtest Programmieren 30. Juni 2017 Name: Punkte von 32: Gruppe: Haase-Di Haase-Do Stanek-Di Stanek-Do Abschlußtest Programmieren 30. Juni 2017 Name: Punkte von 32: Gruppe: Haase-Di Haase-Do Stanek-Di Stanek-Do 1. (6 P) Schreiben Sie die folgenden mathematischen Ausdrücke als korrekte C++- Anweisungen (Variablendeklarationen,

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

Hochschule Darmstadt Informatik-Praktikum SS 2018 EIT Bachelor 3. Aufgabenblatt Funktionen - Unterprogramme

Hochschule Darmstadt Informatik-Praktikum SS 2018 EIT Bachelor 3. Aufgabenblatt Funktionen - Unterprogramme Ziel ist die Aufteilung eines Programms in Funktionen und Dateien Aufgabe 3: Diese Aufgabe ist die Weiterentwicklung von Aufgabe 2. Es ist ein Programm zu erstellen, in welchem der Anwender aus einer Anzahl

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

Funktionen. mehrfach benötigte Programmteile nur einmal zu schreiben und mehrfach aufzurufen

Funktionen. mehrfach benötigte Programmteile nur einmal zu schreiben und mehrfach aufzurufen Funktionen Funktionen erlauben, dem Programmcode hierarchisch zu strukturieren ein Hauptprogramm steuert dabei die Abfolge von Schritten, die einzelnen Schritte können durch Funktionen realisiert werden

Mehr

RO-Tutorien 15 und 16

RO-Tutorien 15 und 16 Tutorien zur Vorlesung Rechnerorganisation Tutorienwoche 2 am 04.05.2011 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft

Mehr

Schachtelung der 2. Variante (Bedingungs-Kaskade): if (B1) A1 else if (B2) A2 else if (B3) A3 else if (B4) A4 else A

Schachtelung der 2. Variante (Bedingungs-Kaskade): if (B1) A1 else if (B2) A2 else if (B3) A3 else if (B4) A4 else A 2.4.6. Kontrollstrukturen if-anweisung: Bedingte Ausführung (Verzweigung) 2 Varianten: if (Bedingung) Anweisung (Anweisung = einzelne Anweisung oder Block) Bedeutung: die Anweisung wird nur ausgeführt,

Mehr

Java Methoden. Informatik 1 für Nebenfachstudierende Grundmodul. Kai-Steffen Hielscher Folienversion: 1. Februar 2017

Java Methoden. Informatik 1 für Nebenfachstudierende Grundmodul. Kai-Steffen Hielscher Folienversion: 1. Februar 2017 Informatik 1 für Nebenfachstudierende Grundmodul Java Methoden Kai-Steffen Hielscher Folienversion: 1. Februar 2017 Informatik 7 Rechnernetze und Kommunikationssysteme Inhaltsübersicht Kapitel 3 - Java

Mehr

Programmierkurs C++ Datenstrukturen Seite 1

Programmierkurs C++ Datenstrukturen Seite 1 Programmierkurs C++ Datenstrukturen Seite 1 3 Datenstrukturen 3.1 Arrays Zur Wiederholung als Strukturelement der Programmierung gehört auf der Seite der Datenstrukturen die Liste. Eine Liste kann auf

Mehr

Einführung Sprachfeatures Hinweise, Tipps und Styleguide Informationen. Einführung in C. Patrick Schulz

Einführung Sprachfeatures Hinweise, Tipps und Styleguide Informationen. Einführung in C. Patrick Schulz Patrick Schulz patrick.schulz@paec-media.de 29.04.2013 1 Einführung Einführung 2 3 4 Quellen 1 Einführung Einführung 2 3 4 Quellen Hello World in Java Einführung 1 public class hello_ world 2 { 3 public

Mehr

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 1 - Variablen und Kontrollstrukturen

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 1 - Variablen und Kontrollstrukturen Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 1 - Variablen und Kontrollstrukturen main Methode Startpunkt jeder Java Anwendung String[] args ist ein Array aus Parametern, die beim Aufruf über die Kommandozeile

Mehr

1.8.5 Wiederholungen. Beispiele Unendliche Schleife: 1.8 Kontrollstrukturen 75. ( Bedingung ) AnweisungOderBlock. ja Anweisung. Bedingung erfüllt?

1.8.5 Wiederholungen. Beispiele Unendliche Schleife: 1.8 Kontrollstrukturen 75. ( Bedingung ) AnweisungOderBlock. ja Anweisung. Bedingung erfüllt? 1.8 Kontrollstrukturen 75 1.8.5 Wiederholungen Häufig muss die gleiche Teilaufgabe oft wiederholt werden. Denken Sie nur an die Summation von Tabellenspalten in der Buchführung oder an das Suchen einer

Mehr

HSR Rapperswil 2001 Markus Rigling. Programmieren: Exceptions Auflage

HSR Rapperswil 2001 Markus Rigling. Programmieren: Exceptions Auflage HSR Rapperswil 2001 Markus Rigling Programmieren: Exceptions 1 1. Auflage Inhaltsverzeichnis: 1. Was sind Exceptions?... 3 2. Struktur des Exception Handling... 3 3. Try-Block... 4 4. Exception Handler

Mehr

Nachklausur: Grundlagen der Informatik I, am 02. April 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Nachklausur: Grundlagen der Informatik I, am 02. April 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr. 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 ( / 6 Pkt.) a) Erklären

Mehr

Nachklausur: Grundlagen der Informatik I, am 02. April 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Nachklausur: Grundlagen der Informatik I, am 02. April 2008 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 ( / 4 Pkt.) Gegeben

Mehr

Arithmetik in der tcsh

Arithmetik in der tcsh Arithmetik in der tcsh Variablen speichern Zeichenketten (also Strings/Wörter) @ statt set Interpretation als arithmetische Ausdrücke (aus Ziffern, (, ), +, -, *, /, % bestehend) Beispiele: @ var = (3

Mehr

Verwendung Vereinbarung Wert einer Funktion Aufruf einer Funktion Parameter Rekursion. Programmieren in C

Verwendung Vereinbarung Wert einer Funktion Aufruf einer Funktion Parameter Rekursion. Programmieren in C Übersicht Funktionen Verwendung Vereinbarung Wert einer Funktion Aufruf einer Funktion Parameter Rekursion Sinn von Funktionen Wiederverwendung häufig verwendeter nicht banaler Programmteile Wiederverwendung

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

Ziele sind das Arbeiten mit Funktionen (Modularisierung, Parameterübergabe), sowie - Reihentyp (Array)

Ziele sind das Arbeiten mit Funktionen (Modularisierung, Parameterübergabe), sowie - Reihentyp (Array) Ziele sind das Arbeiten mit Funktionen (Modularisierung, Parameterübergabe), sowie - Aufgabe 3: Diese Aufgabe baut auf der 2. Aufgabe auf und erweitert diese. Die Funktionalität der 2. Aufgabe wird also

Mehr

C# - Einführung in die Programmiersprache Bedingte Anweisungen und Schleifen

C# - Einführung in die Programmiersprache Bedingte Anweisungen und Schleifen C# - Einführung in die Programmiersprache Bedingte Anweisungen und Schleifen Gehe nach links oder rechts Gehe solange geradeaus... Leibniz Universität IT Services Anja Aue Programmabläufe grafisch abbilden

Mehr

Projekt 3 Variablen und Operatoren

Projekt 3 Variablen und Operatoren Projekt 3 Variablen und Operatoren Praktisch jedes Programm verarbeitet Daten. Um mit Daten programmieren zu können, muss es Möglichkeiten geben, die Daten in einem Programm zu verwalten und zu manipulieren.

Mehr