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

Ähnliche Dokumente
Repetitorium Programmieren I + II

Unterlagen. CPP-Uebungen-08/

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

2 Programmieren in Java I noch ohne Nachbearbeitung

Folien zur AG: Objektorientiertes Programmieren in C++ Einheit 5: Funktionen. Michael Hahsler, Gottfried Rudorfer und Werner J.

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

Vorlesungsprüfung Programmiersprache 1

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

Elementare Datentypen in C++

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

Angewandte Mathematik und Programmierung

Grundlagen der Informatik 2. Typen

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

Informatik I (D-ITET)

Grundlagen der Informatik 4. Kontrollstrukturen I

Martin Unold INFORMATIK. Geoinformatik und Vermessung

C++ Teil 4. Sven Groß. 30. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 16

PROCESSING EINE ZUSAMMENFASSUNG. Created by Michael Kirsch & Beat Rossmy

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

Erste Java-Programme (Scopes und Rekursion)

Werkzeuge zur Programmentwicklung

Vorkurs Informatik WiSe 16/17

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

Java Einführung Methoden. Kapitel 6

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

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

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

Funktionales C++ zum Ersten

Einführung in die Programmierung

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

Teil II. Literatur zur C-Programmierung:

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren

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

Themen. Formatierte und unformatierte Eingabe Bedingungsoperator Namespaces Kommandozeilenargumente

Methoden und Wrapperklassen

Übungsblatt 1. Java Vorkurs (WS 2017)

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

Informatik II Prüfungsvorbereitungskurs

Elementare Konzepte von

Einführung in die Programmierung Wintersemester 2011/12

Martin Unold INFORMATIK. Geoinformatik und Vermessung

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

Implementieren von Klassen

Vorkurs Informatik WiSe 17/18

Die erste C++ Funktion

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH

F Zeiger, Felder und Strukturen in C

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

Herzlich willkommen!

Einführung in die Programmierung mit VBA

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

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems

Hello World! Eine Einführung in das Programmieren Variablen

Einführung in die Programmierung

Strukturierte Programmierung und Funktionen

Programmiervorkurs Einführung in Java Tag 1

RO-Tutorien 3 / 6 / 12

Grundlagen der Informatik 6. Arrays I

Fragenkatalog ESOP WS 16/17

1 Aufgaben 1.1 Objektorientiert: ("extended-hamster") Sammel-Hamster

RO-Tutorien 15 und 16

Grundlagen von C# - 1

2. Programmierung in C

Informatik I - Übung 2 Programmieren in Eclipse

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

4 Formelsammlung C/C++

Kapitel 3: Variablen

Informatik. Wiederholung Felder (Arrays), string. Vorlesung

C++ - Funktionen und mehr -

Repetitorium Programmieren I + II

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

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

Kapitel 2: Grundelemente der Programmierung

Informationsverarbeitung im Bauwesen

3 Grundstrukturen eines C++ Programms anhand eines Beispiels

Kurzeinführung in C99

Einstieg in die Informatik mit Java

Zeiger, Arrays und Strings in C und C++

4. Verzweigungen. Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 1 - Variablen und Kontrollstrukturen

Martin Unold INFORMATIK. Geoinformatik und Vermessung

8. Referenzen und Zeiger

Java I Vorlesung Imperatives Programmieren

Algorithmen zur Datenanalyse in C++

2. Programmierung in C

JAVA-Datentypen und deren Wertebereich

RO-Tutorien 17 und 18

Java Ablaufsteuerung (Beispiele)

Tag 5. Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme)

17. Klassen. Überladen von Funktionen. Funktionsüberladung. Operator-Überladung (Operator Overloading) operatorop

Programmierung und Angewandte Mathematik

C-Grundlagen. zur Programmierung des MicroControllersystems MiCoWi

Transkript:

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 Gültigkeitsbereich Operatoren Arrays Funktionen Steuerelemente Seite 2 Seite 1

Übersetzung So entsteht ein ausführbares Programm: Programm *.cc Preprozessor Compiler Objekt- Code *.o Linker Header- Datei *.h Ausführbares Programm Bibliotheken g++ -o program program.cc Seite 3 Formale Syntaxüberprüfung Jeder Befehl endet mit ; Groß-/Kleinschreibung ist relevant Blöcke werden mit geschwungenen Klammern gekennzeichnet {...} Kommentare: zwischen /* und */ oder in einer Zeile mit // am Anfang Preprozessor-Anweisungen beginnen mit # (z.bsp.: #include <iostream>) Seite 4 Seite 2

Ausgabe/Eingabe Ausgabe cout << Hello World << endl; cout << Wert: << variable << endl; Eingabe cin >> variable; benötigt: #include <iostream> Seite 5 Funktion main() Diese Funktion wird beim Start eines Programms aufgerufen. #include <iostream> int main() { cout << Hello World! << endl; } Seite 6 Seite 3

Variablen I - Grundtypen char short int long float double long double Character-Zeichen ganze Zahl ganze Zahl ganze Zahl Gleitkommazahl Gleitkommazahl Gleitkommazahl Seite 7 Variablen II - Deklaration Deklaration: Bei der Deklaration einer Variable wird diese dem Programm bekanntgegeben und fallweise gleich intialisiert. Beispiele: int a; int b=5; char answertoquestion='y'; float min=max=3; int fi=max; int iseven=(max/2==0); Seite 8 Seite 4

Variablen III - Typumwandlung Automatisch (Promotion) -> float oder double -> int Problem: gemischtes Rechnen Explizit (Cast) cout << (char) 65; //oder char(65) // gibt das Zeichen A aus Seite 9 Gültigkeitsbereich Variablen/Instanzen sind nur in dem Bereich gültig, in dem sie deklariert wurden. Scope: Global/File-Scope: Sichtbar vom Punkt der Deklaration bis zum Ende der Datei. Function-Scope: Sichtbar innerhalb der Funktion. Local-Scope: Nur sichtbar im Block ({... }), in dem die Deklaration ist. Class-Scope: Nur sichtbar für Member-Funktionen. Seite 10 Seite 5

Operatoren Zuweisung: a=b; Arithmetische Operatoren (+, -, *, /, %) c=a+b; Vergleichsoperatoren (==,!=, >, <, >=, <=) if (a==b) { cout << OK << endl; } Logische Operatoren (&&, ) if (a==1 && b!=12) { cout << OK << endl; } Abkürzungen a++; // a um 1 erhöhen a += b; // b zu a addieren Seite 11 Arrays I Felder von mehreren Variablen eines Typs: Setzkasten Elemente eines Arrays werden durch einen Index angesprochen. Der Index startet mit 0!!! Bsp: int lotto[6] = {10, 7,9,17, 28, 36} Index [0] [1] [2] [3] [4] [5] 10 7 9 17 28 36 Seite 12 Seite 6

Arrays II Index [0] [1] [2] [3] [4] [5] 10 7 9 17 28 36 Deklaration: int a[6]={10,7,9,18,28,36}; int lotto[6]; // 6 Elemente 0..5 int prim[15]={20}; //+Initialisierung, der Rest wird mit 0 initialisiert Verwendung: int a=lotto[3]; lotto[2]=lotto[4]; for (int i=0; i<6; i++){ lotto[i]=9; } Achtung Grenzen von Arrays werden nicht geprüft!!! Seite 13 Funktionen I Eine Funktion erledigt einen genau definierten Teil des Gesamtproblems. Die gleiche Funktion kann im Programm öfters verwendet werden. Deklaration: Wie sieht die Funktion aus (Argumente + Rückgabewert)? Definition: Programmcode der Funktion. Aufruf: Verwendung der Funktion Seite 14 Seite 7

Funktion II - Deklaration/Definition Deklaration (Prototyp): int maximal(int a, int b); Definition: int maximal(int a, int b) { int ergebnis; if (a>b){ ergebnis=a; } else { ergebnis=b; } return(ergebnis); // Rückgabe } Seite 15 Funktion III - Aufruf Aufruf: main() { int e; e=maximal(3,10); } Seite 16 Seite 8

Funktion IV - Überladen int maximal(int a, int b); int maximal(int a, int b, int c); float maximal(float a, float b); Compiler sucht sich die passende Funktion anhand der Function Signature (=Typ und Anzahl der Argumente) int r = maximal(12, 14); float t = maximal(28.5, 3.0); int s = maximal(28.5, 3); // Verwendet Konversion 2x Seite 17 Funktion V - Standardwerte int maximal(int a, int b=0, int c=0); Deklariert: int maximal(int); int maximal(int, int); int maximal(int, int, int); Standardwerte müssen von rechts beginnen!!! Seite 18 Seite 9

Funktion V - Argumente Pass by Value void print(string a_string); Argument muß kopierbar sein! Pass by Reference void print(string& a_string); Argument wird als Objekt übergeben Seite 19 Steuerelemente I Sequenz: Eine Anweisung folgt der anderen. cout << myvar << endl; i++; Verzweigung (Branch): Anhand einer Bedingung kann die Ausführung in 2 verschiedene Wege verzweigt werden. if(<bedingung>) { TRUE-Bl. } else { FALSE-Bl. } Schleife (Loop): Eine oder mehrere Anweisungen können anhand einer Bedingung mehrmals ausgeführt werden. while(<bedingung>) { Statements } Seite 20 Seite 10

Steuerelemente II - Schleifen Beispiel while: x=0; while (x < 100) { } x++; Beispiel for: for(x=0; x<100; x++) { cout << Run number: << x << endl; } Seite 21 Beispiel: Countdown Das Programm soll folgenden Output liefern: 10 9 8 7 6 5 4 3 Ignition 2 1 Liftoff 1. Erstellen Sie das Programm als Funktion: int main() {... }; 2. Erstellen Sie das Programm mit einer eigenen Funktion für die Ausgabe: int main() {... }; //Schleife,ruft print auf void print(int) {... }; // macht die Ausgabe Seite 22 Seite 11