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 : Funktionen : Vektoren, Zeiger und Strings : Klassen und Datenabstraktion : Klassen : Überladen von Operatoren : Vererbung : Polymorphismus : Stream Ein /Ausgabe : Datei Ein /Ausgabe : Standard Template Library : Templates : Diverse Feinheiten 2

2 3 Der Programmtext Hello World! 1 // Fig. 1.2: fig01_02.cpp 2 // Ein erstes Programm in C++. 3 #include <iostream> 4 5 // bei Funktion main beginnt Programmausführung 6 int main() 7 { 8 std::cout << Hello World! << std::endl; 9 10 return 0; // beendet Programm mit Erfolg } // beende Funktion main Hello World! Modifiziertes Hello World! 4 1 // Fig. 1.4: fig01_04.cpp 2 // Eine Ausgabezeile durch mehrere Befehle ausgeben. 3 #include <iostream> 4 5 // bei Funktion main beginnt Programmausführung 6 int main() 7 { 8 std::cout << Hello "; 9 std::cout << World!" << std::endl; return 0; // beendet Programm mit Erfolg } // beendet Funktion main Mehrmalige Verwendung des Ausgabeoperators erzeugt trotzdem nur eine Ausgabezeile. Hello World!

3 5 1.5 Addition zweier Zahlen Lernziele: Verständnis von Variablen Ein und Ausgabe von ganzen Zahlen Umgang mit ganzzahligen Variablen Einfache Rechenoperationen verwenden Unwichtig (= kommt später ): Wie sieht der genaue Aufbau der neuen Befehle im Detail aus? Wie kann ich diese Kombinieren? Deitel: Teil: Addition zweier Zahlen 6 1 // Fig. 1.6: fig01_06.cpp 2 // Addition zweier ganzer Zahlen. 3 #include <iostream> 4 5 // bei Funktion main beginnt Programmausführung 6 int main() 7 { Definiere ganzzahlige Variablen 8 int zahl1; // erste Zahl, die vom Benutzer eingegeben werden soll 9 int zahl2; // zweite Zahl zur Benutzereingabe Benutze Eingabeoperatormit 10 int summe; // Variable, in der die Summe gespeichert werden soll 11 Standard Eingabe um Berechnungen Benutzereingabe können auch einzulesen. direkt im Ausgabebefehl durchgeführt werden. Alternative für Zeilen 18 und 20: Berechne die Summe der beiden Zahlen und speichere 12 std::cout << Gib erste Zahl ein\n"; // Benutzerinteraktion 13 std::cin >> zahl1; // lies eine ganze Zahl ein std::cout << Gib std::cout zweite Zahl << ein\n"; "Summe // ist Benutzerinteraktion " << zahl1 + zahl2 << std::endl; 16 std::cin >> zahl2; sie in der neuen // Variable. lies eine ganze Zahl ein summe = zahl1 + zahl2; // weise Ergebnis der Addition der Variablen zu std::cout << "Summe ist " << summe << std::endl; // gib Summe aus Zusammensetzen oder Verketten mit Ausgabeoperator.

4 7 2. Teil: Addition zweier Zahlen return 0; // beendet Funktion mit Erfolg } // beendet Funktion main Gib erste Zahl ein 45 Gib zweite Zahl ein 72 Summe ist 117 Variablen Stelle im Speicher, wo ein Wert von einem bestimmten Datentyp gespeichert werden kann Gängige Datentypen: int ganze Zahlen char Zeichen (Buchstabe, Ziffer,...) double Fließkommazahl (rationale Zahl) Variablen müssen vor deren Nutzung mit Name und Datentyp definiert werden: int zahl1; int zahl2; mehrere Variablen gleichen Typs in einer Deklaration definieren: Trennung durch Kommata int zahl1, summe; 8

5 9 Variablennamen Zeichenkette (Buchstaben, Ziffern, Unterstrich _ ) Dürfen nicht mit Ziffer anfangen Unterscheidet zwischen Groß und Kleinschreibung Stream Eingabe und Zuweisung Stream Eingabe wird angesprochen durch std::cin Wartet auf Benutzereingabe; Abschluß durch Enter (Return ) Taste Eingabeoperator >> speichert den eingelesenen Wert in der Variablen auf der rechten Seite des Operators Falls nötig wird eingegebener Typ in den entsprechenden Typ umgewandelt Zuweisungsoperator = Weist einer Variablen einen Wert zu binärer Operator (2 Operatoren: Variable und Wert) Beispiel: summe = zahl1 + zahl2; 10

6 11 Speicherkonzept bei Variablen Variablennamen entsprechen Speicherplatz im Hauptspeicher des Computers Jede Variable besitzt Name, Typ, Größe und Wert. Wenn neuer Wert in Variable gespeichert wird, wird alter Wert überschrieben Auslesen von Variablen ist nicht destruktiv (Wert bleibt nach Auslesen erhalten) Deitel: 1.23 Speicherkonzept bei Variablen 12 std::cin >> zahl1; Annahme: Benutzer gibt 45 ein zahl1 45 std::cin >> zahl2; Annahme: Benutzer gibt 72 ein zahl1 45 zahl2 72 summe = zahl1 + zahl2; zahl1 45 zahl2 72 summe 117

7 13 Arithmetische Berechnungen * Multiplikation / Division Ganzzahlige Division schneidet den nicht ganzzahligen Rest ab. Beispiel: 7/5 ergibt 1 % Modulo Operation Liefert Rest der ganzzahligen Division zurück. Beispiel: 7%5 ergibt 2 Deitel: 1.24 Arithmetik: Evaluierungsreihenfolge Operatoren in Klammern werden als erstes ausgewertet (bei geschachtelter Klammerung innerste zuerst) Multiplikation, Division und Modulo als nächstes (von links nach rechts) Addition und Subtraktion als letztes (wieder von links nach rechts) 14

8 Entscheidungen Lernziele: Verständnis des if Befehls (Entscheidungen) Erste Formulierung von Bedingungen Gleichheit und relationale Operatoren Erste Verwendung des Befehls using Unterscheidung von Fehlerarten Unwichtgig (= kommt später ): Wie sieht der genaue Aufbau der neuen Befehle aus? Deitel: 1.25 Programmtext, 1. Teil 16 1 // Fig. 1.14: fig01_14.cpp 2 // Verwendung des Befehls if und von relationalen Operatoren 3 4 #include <iostream> 5 6 using std::cout; // Programm benutzt cout 7 using std::cin; // Programm benutzt cin 8 using std::endl; // Programm benutzt endl 9 10 // bei Funktion main startet Programmausführung 11 int main() 12 { 13 int zahl1; // erste vom Schreibweisecout Benutzer einzugebende undcinzahl 14 int zahl2; // zweite vom Benutzer einzugebende Zahl cout << Gib zwei Zahlen ein und ich ermittele << endl if Befehl vergleicht Werte 17 << deren Relation: "; 18 cin >> zahl1 >> zahl2; // lies die beiden ganzen Zahlen ein 19 auf Gleichheit zu überprüfen. 20 if ( zahl1 == zahl2 ) 21 cout << zahl1 << " ist gleich " << zahl2 << endl; 22 Deklariere Variablen. ohne std:: ist nun okay. using Befehle machen std:: Prefix überflüssig. von zahl1 undzahl2wenn um Bedingung wahr ist (d.h. Werte sind gleich), führe diesen Befehl aus.

9 17 Programmtext, Teil 2 23 if ( zahl1!= zahl2 ) 24 cout << zahl1 << " ist ungleich " << zahl2 << endl; if ( zahl1 < zahl2 ) 27 cout << zahl1 << " ist kleiner als " << zahl2 << endl; if ( zahl1 > zahl2 ) 30 cout << zahl1 << " ist größer als " << zahl2 << endl; if ( zahl1 <= zahl2 ) 33 cout << zahl1 << " ist kleiner oder gleich " 34 << zahl2 << endl; if ( zahl1 >= zahl2 ) 37 cout << zahl1 << " ist größer oder gleich " 38 << zahl2 << endl; return 0; // bedeutet, daß das Programm erfolgreich beendet ist } // beendet Funktion main if Befehl vergleicht Wert von Wenn Bedingung wahr ist zahl1 undzahl2 um auf (d.h. Werte sind ungleich), Ungleichheit zu überprüfen. führe diesen Befehl aus. Befehle können auf mehrere Zeilen aufgeteilt werden. Beispiele der Programmausführung 18 Gib zwei Zahlen ein und ich ermittele deren Beziehung: ist ungleich ist größer als ist größer oder gleich 12 Gib zwei Zahlen ein und ich ermittele deren Beziehung: ist gleich 7 7 ist kleiner oder gleich 7 7 ist größer oder gleich 7

10 19 Der if Befehl Der if Befehl fälle eine Entscheidung auf Grund des Wahrheitsgehalts der Bedingung wenn Bedingung erfüllt ist, führe Körper aus andernfalls wird Körper nicht ausgeführt Gleichheit und relationale Operatoren Solange keine Klammern innerhalb der Ausdrücke ins Spiel kommen gilt: Die Auswertung erfolgt bei allen diesen Operatoren gleichberechtigt, d.h. von links nach rechts. Relationale Operatoren 20 Operator Relationale Operatoren C++--Operator Beispiel einer C++-- Bedingung Bedeutung der C++--Bedingung > > x > y x ist größer als y < < x < y x ist kleiner als y >= x >= y x ist größer als oder gleich y <= x <= y x ist kleiner als oder gleich y Gleichheitsoperatoren = == x == y x ist gleich y!= x!= y x ist nicht gleich y

11 21 Der Befehl using Bei Verwendung braucht Bereichsauflösungsoperator :: mit Namensraum std nicht mehr verwendet zu werden using std::cout; Jetzt kann cout statt std::cout benutzt werden Fehlerarten Syntaxfehler Compilerfehler tritt dann auf, wenn der Compiler einen Befehl nicht erkennen kann Häufigste Ursachen (neben Tippfehlern): vergessenes Semikolon am Ende eines Befehls vergessene Klammern benutzte Variable nicht definiert logische Fehler Laufzeitfehler fatale logische Fehler führen zum Programmabbruch Beispielsweise Division durch 0 nichtfatale logische Fehler führen nicht zum Programmabbruch, resultieren aber meist in fehlerhaften Ergebnissen häufig bei Verwendung von = an Stelle von == 22

12 23 2. Kontrollstrukturen 2.1 Einführung 2.2 Arten von Kontrollstrukturen 2.3 if Auswahlstruktur 2.4 if/else Auswahlstruktur 2.5 while Wiederholungsstruktur 2.6 Zählergesteuerte Wiederholung 2.7 Wiederholung mit Abbruchwert 2.8 Schachtelung von Kontrollstrukturen 2.9 Zuweisungen in C for Wiederholungsstruktur 2.11 switch Mehrfachauswahl Struktur 2.12 do/while Wiederholungsstruktur 2.13 break und continue 2.14 Logische Operatoren 2.15 Zusammenfassung 2.1 Einführung Vor Schreiben eines Programmes: gutes Problemverständnis Entwicklung eines Lösungsansatzes 24 Während des Programmschreibens: Welche Programmstrukturen sind verfügbar? Programmierprinzipien umsetzen

13 25 Algorithmen lösen Probleme durch Ausführung von Anweisungen (Befehlen) in einer vordefinierten Reihenfolge Vorüberlegungen: Was muß getan werden? In welcher Reihenfolge? Beispiel: Kochrezept Kontrollfluß eines Programmes: Reihenfolge in der die Anweisungen ausgeführt werden sollen Pseudocode Künstliche, informelle Sprache zum Entwurf von Programmen Ähnlich zu gewöhnlichem Deutsch (bzw. Englisch) Wird nicht vom Computer ausgeführt dient zum Programmentwurf Leicht in C++ umzusetzen Enthält nur ausführbare Befehle (also beispielsweise keine Variablendeklarationen) 26

14 Arten von Kontrollstrukturen Sequentielle Ausführung Befehle werden in vorgegebener Reihenfolge abgearbeitet Kontrollflußsprünge Nächster ausgeführter Befehl nicht nächster Befehl in Quelltext 3 Kontrollstrukturen: 1. sequentielle Struktur Programm führt aufeinanderfolgende Befehle in angegebener Reihenfolge aus 2. Auswahlstrukturen if, if/else, switch 3. Wiederholungsstrukturen while, do/while, for Schlüsselwörter in C++ Dürfen nicht als Funktions-/Variablen-/... namen verwendet werden 28 auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while asm bool catch class const_cast delete dynamic_cast explicit false friend inline mutable namespace new operator private protected public reinterpret_cast static_cast template this throw true try typeid typename using virtual wchar_t

15 29 Kontrollflußdiagramme graphische Repräsentation eines Algorithmus spezielle Symbole durch Pfeile (Fluß) verbunden Beispiel für sequentielle Ausführung: 2.3 if Auswahlstruktur Wähle unter alternativen Ausführungssträngen Beispiel in Pseudocode: Wenn Punktzahl größer 60 ist Ausgabe Bestanden Wenn Bedingung wahr (true) Print Befehl wird ausgeführt, Programm fährt bei nächstem Befehl fort Wenn Bedingung falsch (false) Print Befehl wird ignoriert und es wird beim nächsten Befehl fortgefahren Adäquates Einrücken erhöht Programmlesbarkeit Compiler ignoriert whitespace Zeichen (Leerzeichen, Tabulator, etc.) 30

16 31 C++ und Kontrollflußdiagramm Umsetzung Übersetzung in C++: Wenn Punktzahl größer 60 ist Ausgabe Bestanden if ( punkte > 60 ) cout << Bestanden"; im Kontrollflußdiagramm: Raute (=Entscheidungssymbol) Zeigt Entscheidung an, die gefällt werden muß Enthält Ausdruck, der wahr oder falsch sein kann Überprüfe die Bedingung und folge entsprechendem Pfad im Diagramm Kontrollflußdiagrammumsetzung 32 Entscheidung kann auf Grund eines jeden Ausdrucks gefällt werden. Null falsch (false) Nichtnull wahr (true) Beispiel: 3-4 ist wahr (true)

17 33 if/else Auswahlstruktur if Befehl führt Anweisung aus, wenn Bedingung wahr ist if/else Befehl unterschiedliche Anweisungen, wenn Bedingung wahr oder falsch ist Pseudocode: Wenn Punktzahl größer 60 ist Ausgabe Bestanden sonst Ausgabe Durchgefallen C++ Code: if ( punkte > 60 ) cout << Bestanden"; else cout << Durchgefallen"; Kontrollflußdiagrammumsetzung 34

18 35 Geschachtelte if/else Befehle Zum Testen auf unterschiedliche Fälle Sobald eine der Bedingungen erfüllt ist, wird abgebrochen Wenn Punktzahl größer 90 ist Ausgabe sehr gut sonst Wenn Punktzahl größer 80 ist Ausgabe gut sonst Wenn Punktzahl größer 70 ist Ausgabe befriedigend sonst Wenn Punktzahl größer 60 ist Ausgabe ausreichend sonst Ausgabe mangelhaft Geschachtelte if/else Befehle C++ Code: if ( punkte > 90 ) // über 90 cout << sehr gut"; else if ( punkte > 80 ) // cout << gut"; else if ( punkte > 70 ) // cout << befriedigend"; else if ( punkte > 60 ) // cout << ausreichend"; else // less than 61 cout << mangelhaft"; 36

19 37 Gruppierung von Befehlen durch mehrere Befehle in einem paar geschweifter Klammern: if ( punkte > 60 ) cout << Bestanden. << endl; else { cout << Durchgefallen. << endl; cout << Der Kurs muß wiederholt werden. << endl; } Ohne Klammern würde zweiter Befehl cout << Der Kurs muß wiederholt werden. << endl; immer ausgeführt. Befehlsblock: Menge an Befehlen innerhalb von Klammern 2.5 while Wiederholungsstruktur Wiederholungsstruktur: Aktion wird solange ausgeführt wie Bedingung wahr bleibt Pseudocode: Solange noch Gegenstände auf meinem Einkaufszettel stehen Kaufe nächsten Gegenstand und streiche ihn von Zettel while Bedingung bricht ab, sobald Bedingung nicht mehr erfüllt ist 38 Beispiel in C++: int product = 2; while ( product <= 1000 ) product = 2 * product;

20 39 Kontrollflußdiagramm while 2.6 Zählergesteuerte Wiederholung Schleife wird durchlaufen bis Zähler bestimmten Wert erreicht Anzahl an Wiederholungen ist fest vorgegeben 40 Beispiel: Eine Kurs mit 10 Studenten hat einen Test geschrieben. Die Punktzahlen (ganze Zahlen zwischen 0 und 100) der Bewertung sind verfügbar. Ermittle die durchschnittliche Punktzahl aller Kursteilnehmer in diesem Test.

21 41 Pseudocode für Durchschnittspunktzahl Setze Summe auf Null Setze Anzahl auf Null Solange Anzahl kleiner oder gleich Zehn ist Lies nächste Punktzahl ein Füge ihn Summe hinzu Zähle Anzahl eins hoch Setze Kursdurchschnitt auf Summe / 10 Ausgabe Kursdurchschnitt C++ Code für Durchschnittspunktzahl (1) 42 1 // Fig. 2.7: fig02_07.cpp 2 // Class average program with counter-controlled repetition. 3 #include <iostream> 4 5 using std::cout; 6 using std::cin; 7 using std::endl; 8 9 // function main begins program execution 10 int main() 11 { 12 int summe; // Summe der bisher eingegebenen Punktzahlen 13 int anzahl; // Nummer der nächsten eingegebenen Punktzahl 14 int punkte; // gerade eingegebene Punktzahl 15 int durchschnitt; // Durchschnitt der Punktzahlen // Initialisierungsphase 18 summe = 0; // initialisiere Summe 19 anzahl = 1; // initialisiere Schleifenzähler 20

22 43 C++ Code für Durchschnittspunktzahl (2) 21 // Verarbeitungsphase 22 while ( anzahl <= 10 ) { // 10 Schleifendurchläufe 23 cout << Gibt Punktzahl ein: "; // Eingabeaufforderung 24 cin >> punkte; // lies Punkte vom Benutzer 25 summe = summe + punkte; // addiere Punkte zu Summe 26 anzahl = anzahl + 1; // erhöhe Zähler 27 } // Beendigung 30 durchschnitt = summe / 10; // ganzzahlige division // Ergebnis anzeigen 33 cout << Durchschnittspunktzahl ist " << durchschnitt << endl; return 0; // indicate program ended successfully } // end function main Der Zähler wird bei jedem Schleifendurchlauf erhöht. Nach dem 10. Durchlauf beendet er die Schleife. Ausgabe von Durchschnittspunktzahl 44 Gib Punktzahl ein: 98 Gib Punktzahl ein: 76 Gib Punktzahl ein: 71 Gib Punktzahl ein: 87 Gib Punktzahl ein: 83 Gib Punktzahl ein: 90 Gib Punktzahl ein: 57 Gib Punktzahl ein: 79 Gib Punktzahl ein: 82 Gib Punktzahl ein: 94 Durchschnittspunktzahl ist 81

23 Wiederholung mit Abbruchwert Sei das Problem nun wie folgt: Entwickle ein Durchschnittsermittlungsprogramm das eine nicht vorher bekannte Menge an Punktzahlen bearbeitet. Probleme: Unbekannte Anzahl an Punktzahlen Wie soll Programm wissen, wann Ende ist? Abbruchwert bedeutet Ende der Daten Schleife bricht nach Eingabe des Abbruchwerts ab Abbruchwert muß so gewählt werden, daß er nicht mit regulärer Eingabe verwechselt werden kann! Hier z.b. -1 Algorithmenentwurf: Top Down schrittweise Verfeinerung Beginne mit Pseudocode für oberste (=ungenaueste) Ebene: Ermittle den Kursdurchschnitt des Test Verfeinere in kleinere Teile: Initialisiere Variablen Lies Punkte ein, summiere und zähle sie Durchschnitt berechnen und ausgeben 46

24 47 Verfeinerungsschritte Verfeinere Initialisierungsphase: Initialisiere Variablen wird zu Initialisiere Summe auf Null Initialisiere Anzahl auf Null Verarbeitungsphase: Lies Punkte ein, summiere und zähle sie wird zu Lies erste Punktzahl ein (evtl. Abbruchwert) Solange Benutzer noch nicht Abbruchwert eingegeben hat Füge diese Zahl in Gesamtsumme ein Zähle eins zur Anzahl hinzu Lies nächste Punktzahl ein (evtl. Abbruchwert) Verfeinerungsschritte Beendigung Durchschnitt berechnen und ausgeben wird zu Wenn der Zähler nicht Null ist Setze Durchschnitt auf Punktzahl / Anzahl Ausgabe Durchschnitt Sonst Ausgabe Es wurden keine Punktzahlen eingegeben! 48

25 49 Quellcode Durchschnittsberechnung 2 (1) 1 // Fig. 2.9: fig02_09.cpp 2 // Class average program with sentinel-controlled repetition. 3 #include <iostream> 4 5 using std::cout; 6 using std::cin; 7 using std::endl; 8 using std::fixed; // Fließkommaausgabe im Format #include <iomanip> // Stream-Manipulatoren using std::setprecision; // Setzt numerische Ausgabeprzision // function main begins program execution 15 int main() 16 { 17 int summe; // Summe der Punkte 18 int anzahl; // Anzahl eingegebener Punktezahlen 19 int punkte; // aktuelle Punktzahl double durchschnitt; // Fließkommazahl zur Durchschnittsberechnung 22 Datentyp double zum Speichern von Dezimalzahlen. Quellcode Durchschnittsberechnung 2 (2) // Initialisierungsphase 24 summe = 0; // initialisiere Summe 25 anzahl = 0; // initialisiere Anzahl // Verarbeitungsphase 28 // lies erste Zahl vom Benutzer ein 29 cout << Gib Punkte ein, -1 zum Beenden: "; // Eingabeaufforderung 30 cin >> punkte; // Lies Punkte vom Benutzer // wiederhole solange Abbruchwert nicht eingegeben 33 while ( punkte!= -1 ) { 34 summe = summe + punkte; // füge Punkte zur Summe hinzu 35 anzahl = anzahl + 1; // erhöhe Zähler cout << Gib Punkte ein, -1 zum Beenden: "; // Eingabeaufforderung 38 cin >> punkte; // Lies Punkte vom Benutzer } // end while 41

26 51 Quellcode Durchschnittsberechnung 2 (3) 42 // Beendigung 43 // Wenn Benutzer mindestens eine Punktzahl eingegeben hat if ( anzahl > 0 ) { // berechne Durchschnitt aller eingegebenen Punktzahlen 47 durchschnitt = static_cast<double>( summe ) / anzahl; // zeige Durchschnitt mit zwei Nachkommastellen Genauigkeit an 50 cout << Durchschnittspunktzahl ist " << setprecision( 2 ) 51 << fixed << durchschnitt << endl; } // end if part of if/else else // wenn keine Punktzahlen eingegeben wurden gib entspr. aus 56 cout << Es wurden keine Punktzahlen eingegeben!" << endl; return 0; // indicate program ended successfully } // end function main Quellcode Durchschnittsberechnung 2 (3) // Beendigung 43 // Wenn Benutzer mindestens eine Punktzahl eingegeben hat if ( anzahl > 0 ) { // berechne Durchschnitt aller eingegebenen Punktzahlen 47 durchschnitt = static_cast<double>( summe ) / anzahl; // zeige Durchschnitt mit zwei Nachkommastellen Genauigkeit an 50 cout << Durchschnittspunktzahl ist " << setprecision( 2 ) 51 << fixed << durchschnitt << endl; } // end if part of if/else else fixed // zwingt wenn keine zur Ausgabe Punktzahlen eingegeben wurden gib entspr. aus im fixed point Format für Dezimalzahlen (nicht wissenschaftliches Format). 56 cout << Es wurden keine Punktzahlen eingegeben!" << endl; return 0; // indicate program ended successfully } // end function main <iostream> einbinden. static_cast<double>() behandelt summe temporär als double (casting). Benötigt, da ganzzahlige Division Rest abschneidet. setprecision(2)gibt zwei Ziffern nach Dezimalpunkt aus (entsprechend gerundet). Zur Benutzung <iomanip> einbinden.

27 53 Ausgabe Durchschnittsberechnung 2 Gib Punkte ein, -1 zum Beenden: 75 Gib Punkte ein, -1 zum Beenden: 94 Gib Punkte ein, -1 zum Beenden: 97 Gib Punkte ein, -1 zum Beenden: 88 Gib Punkte ein, -1 zum Beenden: 70 Gib Punkte ein, -1 zum Beenden: 64 Gib Punkte ein, -1 zum Beenden: 83 Gib Punkte ein, -1 zum Beenden: 89 Gib Punkte ein, -1 zum Beenden: -1 Durchschnittspunktzahl ist 82.50

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

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

Einführung in die Programmierung Wintersemester 2008/09

Einführung in die Programmierung Wintersemester 2008/09 Einführung in die Programmierung Wintersemester 28/9 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : Darstellung von Information Inhalt Einfache Datentypen

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

3 Grundstrukturen eines C++ Programms anhand eines Beispiels

3 Grundstrukturen eines C++ Programms anhand eines Beispiels 3 Grundstrukturen eines C++ Programms anhand eines Beispiels 3.1 Einige Grundbegriffe Mit Hilfe eines Programmes wird dem Computer mitgeteilt, wie er eine bestimmte Aufgabe bearbeiten soll. Es besteht

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

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

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

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

Praktikum zur Vorlesung Einführung in die Programmierung WS 14/15 Blatt 3

Praktikum zur Vorlesung Einführung in die Programmierung WS 14/15 Blatt 3 Michael Jugovac Dominik Kopczynski Jan Quadflieg Till Schäfer Stephan Windmüller Dortmund, den 30. Oktober 2014 Praktikum zur Vorlesung Einführung in die Programmierung WS 14/15 Blatt 3 Es können 12 (+5

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

Vorkurs Informatik WiSe 16/17

Vorkurs Informatik WiSe 16/17 Java Ausdrücke und Variablen Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 05.10.2016 Technische Universität Braunschweig, IPS Überblick Ausdrücke, Datentypen und Variablen Kontrollstrukturen 05.10.2016

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

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

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 22 Einstieg in die Informatik mit Java Grundlagen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form

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

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

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

Gedächtnis. Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet. Zugriff.

Gedächtnis. Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet. Zugriff. Gedächtnis Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet Hauptspeicher 38265 Telefon CPU Gedächtnis Vorlesender Zugriff Verarbeitungseinheit

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

Programmierkurs C++ Lösungen zum Übungsblatt 3. Nils Eissfeldt und Jürgen Gräfe. 2. November Aufgabe 5

Programmierkurs C++ Lösungen zum Übungsblatt 3. Nils Eissfeldt und Jürgen Gräfe. 2. November Aufgabe 5 Zentrum für Angewandte Informatik Köln Arbeitsgruppe Faigle / Schrader Universität zu Köln Lösungen zum Übungsblatt 3 Programmierkurs C++ Nils Eissfeldt und Jürgen Gräfe. November 001 Aufgabe 5 Innerhalb

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

Ü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

Java vs. C++: Different by Design

Java vs. C++: Different by Design Java vs. C++: Different by Design Java starke Anlehnung an C++ Deployment Schema: Interpretation OO ist (nahezu) zwingend primäres Kriterium: Komfort diverse (und zumeist nicht abschaltbare) implizite

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 06: Einführung in Kontrollstrukturen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Einführung in Kontrollstrukturen 3 Grundstrukturen von

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

Einführung in die C-Programmierung

Einführung in die C-Programmierung Einführung in die C-Programmierung Warum C? Sehr stark verbreitet (Praxisnähe) Höhere Programmiersprache Objektorientierte Erweiterung: C++ Aber auch hardwarenahe Programmierung möglich (z.b. Mikrokontroller).

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

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Martin Unold INFORMATIK. Geoinformatik und Vermessung Wiederholung So sieht ein leeres Java-Programm aus public class Programmname { public static void main (String[] args) { // Hier stehen die Anweisungen Anweisungen mit Variablen Wiederholung Deklaration

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

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

Intensivübung zu Algorithmen und Datenstrukturen

Intensivübung zu Algorithmen und Datenstrukturen Intensivübung zu Algorithmen und Datenstrukturen Silvia Schreier Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Übersicht Programmierung Fallunterscheidung Flussdiagramm Bedingungen Boolesche

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

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 04: Einführung in Kontrollstrukturen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Einführung in Kontrollstrukturen 3 Grundstrukturen von

Mehr

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Martin Unold INFORMATIK. Geoinformatik und Vermessung Wiederholung So sieht ein leeres Java-Programm aus public class Programmname { public static void main (String[] args) { // Hier stehen die Anweisungen Wiederholung Anweisungen durch Methodenaufrufe Ausgabe

Mehr

Grundlagen der Modellierung und Programmierung, Übung

Grundlagen der Modellierung und Programmierung, Übung Grundlagen der Modellierung und Programmierung Übung Prof. Wolfram Amme LS Softwaretechnik Prof. Klaus Küspert LS Datenbanksysteme Prof. Birgitta König-Ries LS Verteilte Systeme Prof. Dr. Wilhelm Rossak

Mehr

Schleifenanweisungen

Schleifenanweisungen Schleifenanweisungen Bisher: sequentielle Abarbeitung von Befehlen (von oben nach unten) Nun: Befehle mehrfach ausführen (= Programmschleife): for-anweisung - wenn feststeht, wie oft z.b.: eine Berechnung

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

WS2018/ Oktober 2018

WS2018/ Oktober 2018 Einführung in die Programmierung Ronja Düffel WS2018/19 02. Oktober 2018 RBI-Account Account für das Rechnernetz der Informatik RBI-Account HRZ-Account zum Arbeiten an und auf den Rechnern des Instituts

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

Teil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen

Teil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen Teil 5 - Java Programmstruktur Operatoren Schlüsselwörter Datentypen 1 Kommentare in Java In Java gibt es drei Möglichkeiten zur Kommentierung: // Kommentar Alle Zeichen nach dem // werden ignoriert. für

Mehr

Hello World! Eine Einführung in das Programmieren Variablen

Hello World! Eine Einführung in das Programmieren Variablen Hello World! Eine Einführung in das Programmieren Variablen Görschwin Fey Institute of Embedded Systems Hamburg University of Technology Slide 2 Wie werden Daten in Programmen gespeichert und manipuliert?

Mehr

Java I Vorlesung Imperatives Programmieren

Java I Vorlesung Imperatives Programmieren Java I Vorlesung 2 Imperatives Programmieren 3.5.2004 Variablen -- Datentypen -- Werte Operatoren und Ausdrücke Kontrollstrukturen: if Imperatives Programmieren Im Kern ist Java eine imperative Programmiersprache.

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

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

Primitive Datentypen

Primitive Datentypen Primitive Datentypen 2 Arten von Datentypen: primitive Datentypen (heute) Objekte (später) Java ist streng typisiert, d.h. für jede Variable muß angegeben werden was für eine Art von Wert sie aufnimmt.

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

Grundlagen der Programmierung

Grundlagen der Programmierung Grundlagen der Programmierung 4. Vorlesung 07.11.2017 1 Konzepte Imperative Programmierung neue Befehle erstellen Prozedurale Programmierung: Top/Down Programmierung Wiederholungen vermeiden (DRY-Prinzip:

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

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

Grundelemente von C++

Grundelemente von C++ - Zeichensatz - Kommentare - Token - Bezeichner - Schlüsselwörter - Einfache Typen - Literale Ganze Zahlen Reelle Zahlen Wahrheitswerte Zeichen - Variablen und Variablendeklarationen - Benannte Konstanten

Mehr

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen Programmieren I Martin Schultheiß Hochschule Darmstadt Wintersemester 2011/2012 1 / 25 Operatoren für elementare Datentypen Bedingte Schleifen 2 / 25 Zuweisungsoperator Die Zuweisung von Werten an Variablen

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

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

C++ Notnagel. Ziel, Inhalt. Programmieren in C++

C++ Notnagel. Ziel, Inhalt. Programmieren in C++ C++ Notnagel Ziel, Inhalt Ich versuche in diesem Dokument noch einmal die Dinge zu erwähnen, die mir als absolut notwendig für den C++ Unterricht und die Prüfungen erscheinen. C++ Notnagel 1 Ziel, Inhalt

Mehr

Einheit Datentypen in der Programmiersprache C Schwerpunkt: Elementare (arithmetische) Datentypen

Einheit Datentypen in der Programmiersprache C Schwerpunkt: Elementare (arithmetische) Datentypen Einheit Datentypen in der Programmiersprache C Schwerpunkt: Elementare (arithmetische) Datentypen Kurs C/C++ Programmierung, WS 2008/2009 Dipl.Inform. R. Spurk Arbeitsgruppe Programmierung FR 6.2 Informatik

Mehr

C++ Teil 1. Sven Groß. 9. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil 1 9. Apr / 19

C++ Teil 1. Sven Groß. 9. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil 1 9. Apr / 19 C++ Teil 1 Sven Groß IGPM, RWTH Aachen 9. Apr 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 1 9. Apr 2015 1 / 19 Organisatorisches Anmeldung zu Vorlesung und Praktikum über CampusOffice heute! Zugang zu

Mehr

Schleifen in C/C++/Java

Schleifen in C/C++/Java Schleifen in C/C++/Java Alle 3 Sprachen stellen mindestens die folgenden 3 Schleifenkonstruktionen zur Verfügung. In C gibt es auch keine weiteren, C++, Java und C# haben noch weitere nützliche Varianten.

Mehr

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

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf  Seite 1 von 25 Kapitel 9 Schleifen Seite 1 von 25 Schleifen - Schleifen werden zur wiederholten Ausführung von Anweisungen verwendet. - Es werden drei Arten von Schleifen unterschieden: o for -Schleife o while -Schleife

Mehr

Tutoraufgabe 1 (Zweierkomplement): Lösung: Programmierung WS16/17 Lösung - Übung 2

Tutoraufgabe 1 (Zweierkomplement): Lösung: Programmierung WS16/17 Lösung - Übung 2 Prof. aa Dr. J. Giesl Programmierung WS16/17 F. Frohn, J. Hensel, D. Korzeniewski Tutoraufgabe 1 (Zweierkomplement): a) Sei x eine ganze Zahl. Wie unterscheiden sich die Zweierkomplement-Darstellungen

Mehr

Auswahlen (Selektionen)

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

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

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1 Fachhochschule Stralsund Fachbereich Maschinenbau Lehrgebiet Informatik Prof. Dr.-Ing. Ch.Wahmkow Arbeitsblätter für die Lehrveranstaltung OOP I. Aufbau eines Java-Programmes JAVA 1 Escape-Sequenzen zur

Mehr

Grundlagen der Programmierung

Grundlagen der Programmierung Grundlagen der Programmierung 7. Vorlesung 18.05.2016 1 Konstanten Ganzzahlkonstante Dezimal: 42, 23, -2 Oktal (0 vorangestellt): 052 Hexadezimal (0x vorangestellt): 0x2A Gleitkommazahlen: 3.1415, 2.71,

Mehr

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

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2 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 2 SS 2016

Mehr

PROCESSING EINE ZUSAMMENFASSUNG. Created by Michael Kirsch & Beat Rossmy

PROCESSING EINE ZUSAMMENFASSUNG. Created by Michael Kirsch & Beat Rossmy PROCESSING EINE ZUSAMMENFASSUNG Created by Michael Kirsch & Beat Rossmy INHALT 1. Typen und Operatoren 1. Datentypen 3. Klassen und Objekte 1. Klassen und Objekte 2. Operatoren 2. Konstruktor 3. Typkonversion

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

2 Eine einfache Programmiersprache

2 Eine einfache Programmiersprache 2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir

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

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH 1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH Die Umgebungsvariable CLASSPATH kann im Hamster-Simulator sowohl für Compiler als auch für die Ausführung des Hamster-Programms gesetzt werden: Hierdurch

Mehr

Java - Schleifen. Bedingung. wiederhole. Anweisung Anweisung Anweisung. Leibniz Universität IT Services Anja Aue

Java - Schleifen. Bedingung. wiederhole. Anweisung Anweisung Anweisung. Leibniz Universität IT Services Anja Aue Java - Schleifen Bedingung wiederhole ja Anweisung Anweisung Anweisung Leibniz Universität IT Services Anja Aue Anweisung int zahl; zahl = 2; zahl = zahl * 10; int zahl; ; Jede Anweisung endet mit einem

Mehr

Java Übung. Übung 2. Werner Gaulke. 19. April Universität Duisburg-Essen Kommedia, Übung EinPro SS06, Einführung in Java - Übung.

Java Übung. Übung 2. Werner Gaulke. 19. April Universität Duisburg-Essen Kommedia, Übung EinPro SS06, Einführung in Java - Übung. Java Übung Übung 2 Universität Duisburg-Essen Kommedia, Übung EinPro SS06, 19. April 2006 (UniDUE) 19. April 2006 1 / 13 Java Programme Java Programme bestehen aus (meist mehreren) Klassen. In den Klassen

Mehr

Klausur: Grundlagen der Informatik I, am 05. Februar 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:

Klausur: Grundlagen der Informatik I, am 05. Februar 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte: 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 ( / 10 Pkt.) a) Geben

Mehr

Kontrollstrukturen -- Schleifen und Wiederholungen

Kontrollstrukturen -- Schleifen und Wiederholungen Kontrollstrukturen -- Schleifen und Wiederholungen Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14

Mehr

Grundlagen der Programmierung

Grundlagen der Programmierung Grundlagen der Programmierung 8. Vorlesung 25.05.2016 1 Ausdrücke "Befehle", die ein Ergebnis liefern 3 + 4 sin(x) x < 10 getchar() Ausdrücke können Teil eines anderen Ausdrucks sein x = sin( x + y ) Auswertung:

Mehr

4.2 Basisdatentypen und einfache Anweisungen

4.2 Basisdatentypen und einfache Anweisungen Inhalt Inhalt: 4. Programmiersprache C 4.1 Programmaufbau in C 4.2 Basisdatentypen und einfache Anweisungen 4.3 Steuerfluss-Konstrukte 4.4 Arbeit mit indizierten Größen (Felder) 4.5 Arbeit mit Pointern

Mehr

1 Bedingte Anweisungen. 2 Vergleiche und logische Operatoren. 3 Fallunterscheidungen. 4 Zeichen und Zeichenketten. 5 Schleifen.

1 Bedingte Anweisungen. 2 Vergleiche und logische Operatoren. 3 Fallunterscheidungen. 4 Zeichen und Zeichenketten. 5 Schleifen. Themen der Übung Kontrollstrukturen, Pseudocode und Modulo-Rechnung CoMa-Übung III TU Berlin 9.10.01 1 Bedingte Anweisungen Vergleiche und logische Operatoren 3 Fallunterscheidungen 4 Zeichen und Zeichenketten

Mehr

Objektorientierte Programmierung mit C++

Objektorientierte Programmierung mit C++ BTW: C++ Literaturempfehlungen beginners level Kaufen: Bafög-Ausgabe 19,95 Ausleihen: im Handel leider vergriffen " 33 BTW: C++ Literaturempfehlungen expert level 34 BTW: C++ Literaturempfehlungen guru

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

C++ Teil Schleifen. Man kann bestimme Anweisungen in einem Programm mehrfach ausführen lassen. Dazu gibt es in C++ verschiedene Schleifen.

C++ Teil Schleifen. Man kann bestimme Anweisungen in einem Programm mehrfach ausführen lassen. Dazu gibt es in C++ verschiedene Schleifen. C++ Teil 3 3.3 Schleifen Man kann bestimme en in einem Programm mehrfach ausführen lassen. Dazu gibt es in C++ verschiedene Schleifen. for-schleife for-schleife while-schleife do-while-schleife for ( Ausdruck1;

Mehr

JAVA-Datentypen und deren Wertebereich

JAVA-Datentypen und deren Wertebereich Folge 8 Variablen & Operatoren JAVA 8.1 Variablen JAVA nutzt zum Ablegen (Zwischenspeichern) von Daten Variablen. (Dies funktioniert wie beim Taschenrechner. Dort können Sie mit der Taste eine Zahl zwischenspeichern).

Mehr

Einführung in die Programmierung

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

Mehr

Annehmende Schleife do while

Annehmende Schleife do while Annehmende Schleife do while Schleife mit nachfolgender Bedingungsprüfung: annehmende Schleife B S Mit B wird eine Bedingung (logischer Ausdruck) bezeichnet, S ist ein Strukturblock. Zuerst wird S ausgeführt,

Mehr

Kapitel 2: Darstellung von Information Inhalt Einführung in die Informatik für Naturwissenschaftler und Ingenieure

Kapitel 2: Darstellung von Information Inhalt Einführung in die Informatik für Naturwissenschaftler und Ingenieure Kapitel : Wintersemester 6/7 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Inhalt Einfache Datentypen Zahldarstellungen im Rechner

Mehr

Grundlagen. Die Komponenten eines C Programms. Das erste Programm

Grundlagen. Die Komponenten eines C Programms. Das erste Programm Grundlagen 1. Die Komponenten eines C Programms 2. Ein Programm erzeugen und übersetzen 3. Variablen Deklarieren und Werte zuweisen 4. Zahlen eingeben mit der Tastatur 5. Arithmetische Ausdrücke und Berechnungen

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 2006/07 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

Numerische Methoden und Algorithmen in der Physik

Numerische Methoden und Algorithmen in der Physik Numerische Methoden und Algorithmen in der Physik Hartmut Stadie, Christian Autermann 30.10.2008 Numerische Methoden und Algorithmen in der Physik Hartmut Stadie 1/ 48 Einführung Datentypen Operatoren

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

2 Eine einfache Programmiersprache

2 Eine einfache Programmiersprache 2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir

Mehr

Kapitel 1: Einführung

Kapitel 1: Einführung 10 Kapitel 1: Einführung 1.1 Was ist eine Programmiersprache? 1.2 Details zu C++ 1.3 Phasen der Programmierung 1.4 Ein erstes Programm: Hello World! 1.5 Addition zweier Zahlen 1.6 Entscheidungen 1.1 Was

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 41 Einstieg in die Informatik mit Java Weitere Anweisungen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 41 1 Überblick 2 Verbundanweisung 3 Bedingte Anweisung 4 Auswahlanweisung

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dynamische Datenobjekte Pointer/Zeiger, Verkettete Liste Eigene Typdefinitionen 1 Zeigeroperatoren & und * Ein Zeiger ist die Speicheradresse irgendeines Objektes. Eine

Mehr