Unterlagen. CPP-Uebungen-08/

Ähnliche Dokumente
Algorithmen zur Datenanalyse in C++

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

Sprachkonstrukte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg

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

Modellierung und Programmierung 1

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

Elementare Datentypen in C++

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

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

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Programmieren I. Martin Schultheiß. Hochschule Darmstadt Wintersemester 2010/2011

Einführung in C. EDV1-04C-Einführung 1

float: Fließkommazahl nach IEEE 754 Standard mit 32 bit

Primitive Datentypen

Funktionales C++ zum Ersten

Einführung in die C-Programmierung

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

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

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Java I Vorlesung Imperatives Programmieren

Programmieren in C/C++ und MATLAB

Numerische Methoden und Algorithmen in der Physik

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe

4 Formelsammlung C/C++

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

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

Variablen. CoMa-Übung VIII TU Berlin. CoMa-Übung VIII (TU Berlin) Variablen / 15

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 1 - Variablen und Kontrollstrukturen

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

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

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

Kapitel 3: Variablen

JAVA-Datentypen und deren Wertebereich

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

Grundlagen der Informatik 2. Operatoren

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung

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

Einstieg in die Informatik mit Java

2. Programmierung in C

Programmiervorkurs Einführung in Java Tag 1

Einführung in die Programmierung Wintersemester 2011/12

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

Java Einführung Operatoren Kapitel 2 und 3

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Themen. Formatierte und unformatierte Eingabe Bedingungsoperator Namespaces Kommandozeilenargumente

Einführung Java Programmieren in Java Arrays Schleifen Fehler. Einführung in Java. Arne Hüffmeier. Michelle Liebers, Dennis Hoffmann

3 Befehle in Java. Variablen, Ausrücke, Anweisungen und zusammengesetzte Anweisungen. Variablen sind über einen Namen angesprochene Speicherplätze.

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

4.2 Programmiersprache C

Einführung Programmierpraktikum C Michael Zwick

3 Grundstrukturen eines C++ Programms anhand eines Beispiels

Kurzeinführung in C99

Anweisungen zur Ablaufsteuerung

Übungen zur Vorlesung Wissenschaftliches Rechnen I. Grundelemente von Java. Eine Anweisung. wird mit dem Wertzuweisungsoperator = geschrieben.

Grundlagen der Informatik 4. Kontrollstrukturen I

RO-Tutorien 3 / 6 / 12

Projekt 3 Variablen und Operatoren

Grundlagen der Programmierung Teil1 Einheit III Okt. 2009

Kompaktkurs C++ Volker Reichelt. Frühjahr Institut für Geometrie und Praktische Mathematik RWTH Aachen

Grundlagen der Informatik 2. Typen

Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

Die Sprache C# Datentypen, Speicherverwaltung Grundelemente der Sprache. Dr. Beatrice Amrhein

Programmieren in C/C++ und MATLAB

Grundlagen der Programmierung Teil1 Einheit III Okt. 2010

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

Intensivübung zu Algorithmen und Datenstrukturen

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1

Operatoren (1) Operatoren (2)

RO-Tutorien 15 und 16

Grundlagen der Programmierung Prof. H. Mössenböck. 2. Einfache Programme

C++ Kurs Teil 1. Architektur, Anwendungsspektrum, primitive Datentypen, Funktionsaufrufe, Referenzen, Klassen

Vorlesungsprüfung Programmiersprache 1

Die Sprache C# Datentypen, Speicherverwaltung Grundelemente der Sprache. Dr. Beatrice Amrhein

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff

Die einfachsten Anweisungen

Grundlagen der C++ - Programmierung für das MiniBoard von qfix 1

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

Einführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015

Einführung in die Programmiersprache C

3. Java - Sprachkonstrukte I

Programmieren in C. C Syntax Datentypen, Operatoren und Kontrollstrukturen. Prof. Dr. Nikolaus Wulff

Javakurs für Anfänger

Variablen, Konstanten und Datentypen

Informatik I - Einstiegskurs

Imperative Programmierung in Java. Algorithmen und Datenstrukturen II 1

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH

Primitive Datentypen, Eingaben, Kontrollstrukturen und Methodendeklaration

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

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

Girls Day 2017 Programmierung

Transkript:

Unterlagen http://projects.eml.org/bcb/people/ralph/ CPP-Uebungen-08/ http://www.katjawegner.de/lectures.html

Kommentare in C++ #include <iostream> /* Dies ist ein langer Kommentar, der über zwei Zeilen geht. */ int main() { // kurzer Kommentar: es folgt eine Ausgabe std::cout << Hello World\n ; return 0; }

Einfache Ausgabe Eingabe und Ausgabe in C++ werden via streams erledigt Die nötigen Deklarationen für die Bildschirmausgabe sind in der Datei iostream Die Deklarationen werden mit der Präprozessordirektive #include eingebunden Ausgabe eines Objektes: std::cout << OBJECT1 [<< OBJECT2...];

main Routine gibt es in zwei Varianten: int main() {...} oder int main(int argc, char** argv) {...}

Erstellen einer ausführbaren Datei g++ HelloWorld.cpp Generiert eine ausführbare Datei namens a.out welche mit./a.out gestartet wird. Die Quelldatei muss die Endung.cc oder.cpp haben damit g++ sie als C++ Datei akzeptiert.

Was macht g++? (1/5) Header 1 Header 2 Header 3... Sourcecode Präprozessor Expandierter Sourcecode

Was macht g++? (2/5) Expandierter Sourcecode Optimierung Intermediäre, systemunabhängige Datenstrukturen

Was macht g++? (3/5) Intermediäre, systemunabhängige Datenstrukturen Assemblercode (systemabhängig )

Was macht g++? (4/5) Assemblercode (systemabhängig) Assembler Objektdatei (Maschinensprache)

Was macht g++? (5/5) Objektdatei 1 Objektdatei 2 Objektdatei 3... Programm / Bibliothek Linker Bibliothek 1 Bibliothek 2 Bibliothek 3...

Gängige g++ Optionen -o DESTINATION -c -Wall -Olevel -g -I INCLUDEPATH -L LIBRARYPATH -l LIBRARY -D SYMBOLNAME[=VALUE]

g++ Option (-o) -o DESTINATION weist g++ an das Ergebnis nach DESTINATION zu speichern z.b. g++ -o HelloWorld HelloWorld.cpp würde die Datei HelloWorld aus HelloWorld.cpp erstellen

g++ Option (-Wall) -Wall weist g++ an möglichst viele Warnungen zu erzeugen. g++ versucht so vor möglichen Fehlern zu warnen, selbst wenn es sich um gültigen C++ Code handelt. z.b. wenn eine Variable zwar deklariert aber nicht initialisiert wurde

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

boolean bool kann nur die Werte true oder false annehmen Zuweisung: z.b. bool success = false;

(unsigned) int int = signed int wenn nicht anders angegeben ist ein int immer vorzeichenbehaftet z.b. unsigned int x = 45671;

Variablen (1/2) Speicherplätze um Informationen eines bestimmten Typs zu speichern Variablen haben einen Typ und einen Namen Groß-/Kleinschreibung ist wichtig Namen beginnen immer mit einem Buchstaben oder einem Unterstrich (_), der Rest können Buchstaben, Zahlen oder Understrich sein Variablenname darf nicht identisch sein zu reservierten Wörtern in C++

Variablen (2/2) Variablen können einfache Datentypen (int, float,...), Zeiger, Referenzen oder Objekte enthalten Eine Variable muss deklariert werden bevor man sie benutzen kann Variablen sollten auf jeden Fall initialisiert werden Variablen die als const deklariert wurden können nicht geändert werden

Beispiele für Variablennamen RICHTIG hello HELLO Hello _test my_variable DOUBLE v1 this_is_a_very_long_variable_name FALSCH 012 my.variable $test double 2bad class

Variablendeklaration bool result; int x; signed int y; unsigned int i; int a,b,c,d;

Variableninitialisierung unsigned int i; i = 0; bool result; result = true;

Variablendeklaration & initialisierung unsigned int i = 0; unsigned int j = i; bool result = false; int a=1,b=2,c=3,d=4;

const Variablen const unsigned int MAX = 10; MAX = 20; // ERROR

Operatoren Operatoren in C++ sind in vier Klassen eingeteilt: primäre Operatoren unäre Operatoren binäre Operatoren Zuweisungsoperatoren

Binäre Operatoren 1/2 heissen so weil sie zwei Operanden besitzen die beiden Operanden stehen links und rechts des Operators und können beliebige Ausdrücke sein mathematische Operationen: Multiplikation: z.b. 3 * 4 Division: z.b. 12 / 3 Addition: z.b. 3 + 4 Subraktion: z.b. 5 1 Falsch: 4 / true

Binäre Operatoren 2/2 Vergleichsoperatoren: Gleich: z.b. x == 4 // Doppeltes ==!!! Ungleich: z.b. x!= 4 Kleiner als: z.b. x < 4 Grösser als: z.b. x > 4 Kleiner oder Gleich: z.b. x <= 4 Gösser oder Gleich: z.b. x >= 4 Das Ergebnis eines Vergleichs ist immer ein boolscher Wert (true oder false)

Zuweisungsoperatoren weisen einer Variablen einen Wert zu: x = 4; x += 4; // äquivalent zu: x = x + 4; x -= 4; // x = x - 4; x *= 4; // x = x * 4; x /= 4; // x = x / 4; x %= 4; // x = x % 4;

Primäre Operatoren der einzige primäre Operator den wir an dieser Stelle einführen ist die runde Klammer dienen dazu die Ausführungsreihenfolge von Ausdrücken zu ändern z.b. 2 * 3 + 5 -> 11 aber 2 * (3 + 5) -> 16 primäre Operatoren haben die höchste Priorität!!!

Unäre Operatoren heissen so, weil sie nur einen Operanden besitzen: unäres Minus: -1 logisches Not:!true -> false Inkrement: x++ oder ++x x++ ist das Gleiche wie x=x+1 Dekrement: x-- oder x x-- ist das Gleiche wie x=x-1

Operatorpriorität primäre Operatoren > unäre Operatoren > binäre Operatoren > Zuweisungsoperatoren die Prioritäten unterscheiden sich manchnal auch innerhalb einer Gruppe bei den mathematischen Operationen kommt Punktrechnung (*,/,%) vor Strichrechnung (+,-) Um die Auswertungsreihenfolge zu ändern benutzt man den Klammeroperator () (Operator mit höchster Priorität)

Beispiele 5 + 3 * 4 -> 17 (5 + 3) * 4 -> 32 int x = 4 * 2; -> x = 8;

Postfix/Präfix In- & Decrement #include <iostream> int main() { int x = 4 * 2; int y = ++x; y = x++; return 0; }

Was sind Kontrollstrukturen? Normalerweise hat jedes Programm einen Anfang und ein Ende und all Anweisungen dazwischen werden nacheinander abgearbeitet. Kontrollstrukturen gestatten es dem Programmierer in Abhängigkeit einer Bedingung Verzweigungen in den Programmablauf einzubauen.

C++ Kontrollstrukturen if... else for... while... do... while switch... case...

if... else wertet eine Bedingung aus und wenn sie zutrifft wird ein Programmblock ausgeführt ( if ), und wenn nicht ein anderer ( else ) der Block falls die Bedingung ( else ) nicht erfüllt ist ist optional

if-flussdiagramm 1 BEDINGUNG true false TRUE BLOCK FALSE BLOCK CODE

if-flussdiagramm 2 true BEDINGUNG TRUE BLOCK false CODE

if Beispiel if( x < 5 ) { std::cout << x is smaller than 5\n ; }

if Beispiel if( x < 5 ) { std::cout << x is smaller than 5\n ; } if( x < 5 ) std::cout << x is smaller than 5\n ;

if... else Beispiel if( x < 5 ) { std::cout << x is smaller than 5\n ; } else { std::cout << x is not smaller than 5\n ; }

for Schleifen eine for Schleife iteriert über einen Programmblock solange eine bestimmte Bedingung erfüllt ist meist ist die Bedingung eine feste Zahl, welche mit einem Zähler verglichen wird, der in jedem Schleifendurchgang erhöht wird

for Beispiel Initialisierung Bedingung Endcode for(int x=1; x<=10; ++x) { std::cout << x: << x << \n ; }

for-flussdiagramm FOR INITIALISIERUNG FOR BEDINGUNG true SCHLEIFENBLOCK false FOR ENDCODE CODE

int x=1; for( ; x<=10 ; ++x) {... } for Example 2

for(int x=1 ; x<=10 ; ) {... ++x; } for Example 3

for Example 4 for(int x=1, y=10 ; x<=10 ; ++x, ++y) {... }

Workaround for MS VC++6 int x; for(x=1 ; x<=10 ; ++x) {... }

Verschachtelte for Schleife for(int x=1; x<=5; ++x) { int result = 1; for(int y=1; y<=x; ++y) { result *= x; } std::cout << result << \n ; }