Größe: px
Ab Seite anzeigen:

Download ""

Transkript

1 Formalien Intensivkurs C++ Tag 1: Grundlagen Der Kurs besteht aus 10 Einheiten von je (maximal) 8 Stunden. Jeder Tag wird von einer Vorlesung eingeleitet, an die sich betreute Programmierübungen anschließen. In beiden Wochen stehen die Freitage zur Wiederholung von Stoff zur Verfügung. Sebastian Houben Institut für Neuroinformatik Die Aufgaben können in Gruppen von bis zu drei Studierenden gelöst werden. Die Bearbeitung aller Aufgaben ist Voraussetzung für die erfolgreiche Teilnahme. Es gibt eine Liste, in der jeden Tag die erfolgreich bearbeiteten Aufgaben abgezeichnet werden. Alle Aufgaben sollten um 16:30 fertig bearbeitet sein, da der Raum pünktlich um 17:00 Uhr verlassen werden muss. Die Aufgaben werden benotet. Die Gesamtnote ergibt sich aus dem Durchschnitt der Tagesnoten. Intensivkurs C Sebastian Houben 3

2 Formalien Nicht vollständig bearbeitete Aufgaben können am Freitag derselben Woche nachgereicht werden. Es ist möglich, bis zu 3 Tage entschuldigt zu fehlen. Dies betrifft sowohl Krankheit wie auch anderweitige Termine wie z.b. Klausuren. Bitte melden Sie sich dazu entweder persönlich am Tag vorher beim Dozenten oder per Mail über cplusplus@ini.rub.de ab. Die Aufgaben können nachgereicht werden (siehe oben). Es gibt eine Kurs-Homepage mit aktuellem Material auf /courses/intensive course c winter term 2018/ Viel Spaß mit C++! Intensivkurs C Sebastian Houben 4

3 Warum C++? Stärken: C++ ist schnell! C++ ist unglaublich flexibel. C++ ist typsicher. C++ ist gut organisiert; für sehr große Projekte geeignet. C++ ist ein weit verbreiteter Industriestandard. C++ ist extrem portabel. Schwächen: C++ erscheint (dem Anfänger) oft unnötig komplex. Relativ viel boilerplate code Teilweise kryptische Syntax (bei fortgeschrittenen Konzepten, z.b. Funktionszeiger) Teils schwer lesbare Fehlermeldungen Intensivkurs C Sebastian Houben 5

4 Ziel dieses Kurses Einführung der Grundkonzepte der Programmiersprache C++ Es ist leicht, mit einer Darstellung von C++ ganze Regalwände zu füllen. C++ ist sehr umfangreich. Deshalb kann dieser Kurs keinen Anspruch auf Vollständigkeit haben. Ganz wichtig: Hands on! Dies ist ein Praktikum, keine Vorlesung! Learning by doing, sonst bleibt nur die Hälfte hängen. Intensivkurs C Sebastian Houben 6

5 Voraussetzungen Jeder Teilnehmer sollte Erfahrung mit einer halbwegs modernen (imperativen) Programmiersprache haben: Java, Javascript, Python, Lua, Pearl, PHP, C, Objective-C, C#,... Erfahrung mit einer objektorientierten Sprache (z.b. Java oder Python) ist von Vorteil. Intensivkurs C Sebastian Houben 7

6 Verwandschaft zu C, Java und anderen Sprachen C++ ist (fast) eine Obermenge von C. Das heißt, dass fast aller C-Code in C++ gültig ist. Allerdings bietet C++ wesentlich bessere Möglichkeiten zur Strukturierung eines Programms und ermutigt deshalb zu einem besseren Stil (modularer, gut wartbarer Code). Java verfolgt ähnliche Ziele wie C++. Viele aus Java bekannte Konzepte übertragen sich auf die Programmierung in C++, aber C++ bietet generell mehr Möglichkeiten, mehr Kontrolle, und als Preis dafür leider oft weniger Komfort. Viele moderne Sprachen orientieren sich an C++, insbesondere an seiner Syntax. Wer eine andere Programmiersprache kennt, wird deshalb vieles wiedererkennen, aber mit Sicherheit auch neue Konzepte lernen, die er dann möglicherweise in anderen Sprachen vermisst. Intensivkurs C Sebastian Houben 8

7 Hello World Für die ganz Ungeduldigen - Hello World sieht in C++ so aus: helloworld.cpp #include <iostream> using namespace std; int main() { cout << "Hello, World!" << endl; return 0; } Die Elemente dieses Programms werden nach und nach behandelt. Zuerst gilt es, unsere Arbeitsumgebung kennen zu lernen. Intensivkurs C Sebastian Houben 9

8 Hello World Starten Sie Visual Studio Legen Sie ein neues Projekt an: Neues Projekt Leeres Projekt; Name= HelloWorld Fügen Sie eine Datei hinzu: Projekt Neues Element hinzufügen Code C++-Datei; Name= main.cpp (Menü Projekt Eigenschaften) Konfigurationseigenschaften Linker System; Setzen Sie Subsystem auf Konsole. Tippen Sie das Hallo-Welt -Programm ein: #include <iostream> using namespace std; int main() { cout << "Hello, World!" << endl; return 0; } Menü Erstellen Projektmappe erstellen zum Kompilieren und Linken. Drücken Sie Ctrl+F5 zum Starten des Programms. Intensivkurs C Sebastian Houben 10

9 Dateistruktur, Compiler und Linker, Präprozessor Dateistruktur eines C++-Programms Ein typisches C++-Programm ist über mehrere Dateien (oft mit Endung.cpp) verteilt. Jede Datei kann einzeln vom Compiler in eine sogenannte Objektdatei übersetzt werden. In einem letzten Schritt bündelt der Linker die Objektdateien zu einem ausführbaren Programm. Beispiel: Ein Programm besteht aus den Dateien main.cpp, algo.cpp und tools.cpp. Daraus soll ein ausführbares Programm erstellt werden. Folgende Schritte sind notwendig: 1 Der Compiler übersetzt main.cpp in main.obj. 2 Der Compiler übersetzt algo.cpp in algo.obj. 3 Der Compiler übersetzt tools.cpp in tools.obj. 4 Der Linker setzt main.obj, algo.obj und tools.obj zum ausführbaren Programm (beispiel.exe) zusammen. Intensivkurs C Sebastian Houben 11

10 Dateistruktur, Compiler und Linker, Präprozessor Q: Wie können Programmteile (Funktionen, Klassen) in verschiedenen Dateien von einander wissen, so dass sie sich gegenseitig aufrufen können? A: Meist gibt es zu jeder.cpp-datei eine Header-Datei (.h oder.hpp). Die Header-Datei enthält ausschließlich Deklarationen, während die.cpp-datei die zugehörige Implementierung enthält. Einer.cpp-Datei wird Wissen über andere Programmteile durch Einbinden der entsprechenden Header-Dateien mitgeteilt. Intensivkurs C Sebastian Houben 12

11 Dateistruktur, Compiler und Linker, Präprozessor Q: Wo wird definiert, welche Dateien zusammengehören, um ein ausführbares Programm zu bilden? A: Das ist nicht Teil der Programmiersprache! Dies wird von jeder Programmierumgebung unterschiedlich gelöst. Visual Studio speichert diese Information in sogenannten Projektdateien (Solutions), die wiederum in Arbeitsbereiche organisiert sind. Jedes Projekt entspricht einer Bibliothek oder einem ausführbaren Programm. Ein Projekt definiert Quellen (.cpp) und Header (.h), sowie welche Bibliotheken verwendet werden sollen und wo diese zu finden sind. Intensivkurs C Sebastian Houben 13

12 Dateistruktur, Compiler und Linker, Präprozessor main.cpp #include "square.h" int main() { int s = square(7); } square.h #ifndef SQUARE_H #define SQUARE_H int square(int value); // Deklaration #endif square.cpp int square(int value) { return value * value; } // Implementierung Intensivkurs C Sebastian Houben 14

13 Dateistruktur, Compiler und Linker, Präprozessor Bibliotheken Niemand sollte das Rad neu erfinden. Für viele Standardaufgaben gibt es sehr gute Bibliotheken (z. B. die boost-bibliotheken, Qt, usw.). Eine Bibliothek besteht aus zwei Teilen: Die eigentliche Bibliothek (Windows:.lib oder.dll; Linux:.a oder.so; Mac:.a oder.dylib) enthält die Implementierung, also das, was den.cpp-dateien entspricht). Die Deklarationen zu einer Bibliothek stehen in den entsprechenden Header-Dateien. Diese gehören fest zur Bibliothek. Intensivkurs C Sebastian Houben 15

14 Dateistruktur, Compiler und Linker, Präprozessor Beispiel: Unser Programm (main.cpp, algo.cpp, tools.cpp) verwendet die Bibliothek matrix, bestehend aus matrix.lib und matrix.h. Nehmen wir an, dass die Routinen aus matrix nur innerhalb von algo.cpp verwendet werden. 1 Der Compiler übersetzt algo.cpp in algo.obj. Er liest die Definitionen aus matrix.h ein, wobei ihm völlig egal ist, ob sich die Implementierungen zu den Definitionen in einer anderen.cpp-datei oder in einer Bibliothek befinden. 2 Der Linker setzt main.obj, algo.obj, tools.obj und matrix.lib zum ausführbaren Programm (beispiel.exe) zusammen. Intensivkurs C Sebastian Houben 16

15 Dateistruktur, Compiler und Linker, Präprozessor Präprozessor-Macros Alle Präprozessor-Macros beginnen mit dem Symbol #. #include "dateiname" wird durch den Inhalt der Datei ersetzt. Die Datei wird zuerst im aktuellen Projekt gesucht. So werden Dateien aus dem eigenen Projekt eingebunden. #include <dateiname> wird durch den Inhalt der Datei ersetzt. Die Datei wird im Include-Suchpfad gesucht. Diese Syntax wird für Header aus Bibliotheken verwendet. #define NAME oder #define NAME Wert, z.b. #define WIDTH 80. Definition einer Konstanten. #ifdef, #ifndef, #else und #endif werden zur bedingten Kompilierung verwendet. Beispiel: #ifdef DEBUG cout << "Zwischenergebnis: " << z << endl; #endif Intensivkurs C Sebastian Houben 17

16 Dateistruktur, Compiler und Linker, Präprozessor Oft binden Header-Dateien weitere Header ein. Dies geschieht rekursiv, so dass ein einziges #include Statement eine große Menge an Headern einbinden kann. Deshalb ist oft unklar, ob ein Header bereits (implizit) eingebunden wurde oder nicht. Damit jeder Header nur maximal einmal in eine.cpp-datei eingebunden wird, verwendet man sogenannte Include-Guards: #ifndef MEIN_HEADER_H #define MEIN_HEADER_H...Inhalt... #endif Dabei ist MEIN HEADER H irgendein eindeutiger String, meist einfach der Dateiname. Intensivkurs C Sebastian Houben 18

17 Kommentare Zeilen-Kommentar: // Diese ganze Zeile ist ein Kommentar. int magic = 42; // siehe "Per Anhalter durch die Galaxis"... Block-Kommentar: int magic = /*42*/ 1001; /* Als magische Zahl ist 1001 viel schoener als 42. Das liegt an ihrer Primfaktorzerlegung: 7 * 11 * 13 = */ Intensivkurs C Sebastian Houben 19

18 Variablen und Funktionen Variablen: Typ Name; int a; int b = 7; int c, d = 3, e = f(b); Funktionen: Typ Name(Parameterliste) int f(int x); int f(int x) { return x * (1 - x); } // Deklaration von f // Implementierung von f int foo(int a, int b, float c, bool flag = true); Funktionsaufrufe int ergebnis = foo(f(7), d, ); foo(-42, 3, , true); Intensivkurs C Sebastian Houben 20

19 Vorwärtsdeklaration Beispiel: Rekursion über zwei Funktionen. void foo() { if (...) bar(); } void bar() { if (...) foo(); } Problem: Der Compiler arbeitet von vorn nach hinten und weiß deshalb nicht, was nach der aktuellen Stelle im Programm noch kommt. Innerhalb der Funktion foo ist bar noch nicht deklariert, wird aber aufgerufen. Fehler! Da hilft: die Vorwärtsdeklaration void bar(); void foo() { if (...) bar(); } void bar() { if (...) foo(); } // Vorwaertsdeklaration von bar Intensivkurs C Sebastian Houben 21

20 Datentypen void: kein Wert, tritt oft als Rückgabetyp von Funktionen auf Logik: bool, mit Werten true, false, belegt 1 Byte Ganzzahl: char (8 Bit), int (meist 32 Bit). Konstanten: 42, -5, a, \n, \\, \ Modifikatoren: unsigned, short, long, long long unsigned long long int (= unsigned long long) Fließkomma: float (meist 32 Bit IEEE), double (meist 64 Bit IEEE) Konstanten: -1.0, ,.01, +5.77e-18 C-Strings: char s[256] = "Hallo, Welt"; (char-array) C++-Strings: string s = "Hallo, Welt"; (String-Objekt) Intensivkurs C Sebastian Houben 22

21 Datentypen Zeiger: int* Referenz: int& Zeiger = Speicheradresse Referenz = anderer Name für eine Variable void*: Zeiger auf untypisierten Speicher Konstante nullptr: ungültiger Zeiger Aufzählungen: enum FileFormat { wav, mp3, ogg }; Intensivkurs C Sebastian Houben 23

22 Datentypen Zusammengesetzte Typen: class, struct, union C-Arrays: int a[20], bool b[64][64] STL-Container: vector, list, deque, set, multiset, map, multimap Alias-Namen für Typen: typedef Typ Name; Genauer: typedef [Variablendefinition mit neuem Namen als Variablennamen]; Es gibt viele weitere Typen, z.b. Funktionszeiger, STL-Iteratoren, Templates,... Intensivkurs C Sebastian Houben 24

23 Operatoren :: () []. -> dynamic cast static cast reinterpret cast const cast typeid ++ --! sizeof new delete * & + - (unary) (type).* ->* * / % + - (binary) << >> < > <= >= ==!= & ˆ && a? b : c = *= /= %= += -= >>= <<= &= ˆ= =, Intensivkurs C Sebastian Houben 25

24 Kontrollstrukturen Block { } Kommando1; Kommando2;... Bedingte Ausführung 1 if (Bedingung) Kommando1; [else Kommando2]; Bedingte Ausführung 2 switch (Ausdruck) { case Konstante1: Kommandos1; break; case Konstante2: Kommandos2; break;... default: KommandosN; } Intensivkurs C Sebastian Houben 26

25 Kontrollstrukturen For-Schleife for (Kommando1; Bedingung; Kommando2) Kommando3; For-Schleife (range-based) for (Typ Variable : Container/Range) Kommando; While-Schleife while (Bedingung) Kommando; Do-While-Schleife do Kommando; while (Bedingung); Die Schlüsselwörter break und continue sind in allen Schleifen verfügbar. goto existiert (considered harmful, of course). Intensivkurs C Sebastian Houben 27

26 Programm-Parameter Ein Konsolenprogramm kann mit Parametern aufgerufen werden: beispiel.exe -f 17 message=hallo Diese Parameter stehen der main-funktion zur Verfügung: int main(int argc, char** argv) {... return 0; } argc: argument count - Anzahl der Parameter (+ 1) argv: argument values oder argument vector Der Typ von argv ist char**: Ein Zeiger auf einen Zeiger von Zeichen (Characters). Für heute reicht es aus zu wissen, dass argv[1] das erste Argument des Programms ist. Es ist gültig, falls argc > 1 erfüllt ist. Intensivkurs C Sebastian Houben 28

27 Konsolen-Ausgabe Das Objekt cout im Namensraum std ist ein sogenannter Stream (Datenstrom). Jedes Konsolenprogramm hat drei Standard-Streams: (Tastatur-)Eingabe (cin), Ausgabe (cout), und Fehler (cerr). Wir benutzen hier nur cout. Beispiel: #include <iostream> using namespace std; cout << "Eine Zahl: " << 42 << endl; Zahlen und Strings können mit Hilfe des Stream-Operators << in den Stream geschoben werden. Bei cout führt dies dazu, dass die Werte in der Konsole ausgegeben werden. endl ist eine spezielle Konstruktion, die ein Ende-der-Zeile-Symbol ( \n ) ausgibt und zur Ausgabe von eventuell gepufferten Daten führt. Intensivkurs C Sebastian Houben 29

28 Typumwandlung Beispiele statischer Typumwandlung: int a = 3; double b = a; // impliziter cast int -> double double c = 2.7; int d = c; // impliziter cast double -> int: Warnung oder Fehler! int e = (int)c; // expliziter cast (okay), setzt e = 2. int f = int(c); // expliziter cast, neue Syntax. int g = int(round(c)); // setzt g = 3. bool b1 = 17; // 0 -> false, Rest -> true bool b2 = nullptr; // nullptr -> false, alle anderen Zeiger -> true Typecasts elementarer Typen sind meist unkritisch Das Thema wird im Zusammenhang mit Klassen und Vererbung komplizierter. In altem C-Code werden oft Zeiger in Integers und zurück umgewandelt. Das ist sehr gefährlich, denn Zeiger auf 64bit-Systemen passen nicht in einen int! Intensivkurs C Sebastian Houben 30

29 Typumwandlung Zahlen in Strings wandeln und zurück Umwandlung auf C-Art int wert = 42; char str[50]; sprintf(str, "%d", wert); // str = "42"; int wert2 = strtol(str, nullptr, 10); // wert2 = 42; Umwandlung auf C++-Art int wert = 42; stringstream ss; ss << wert; string str = ss.str(); // str = "42"; int wert2; istringstream(str) >> wert2; // wert2 = 42; Intensivkurs C Sebastian Houben 31

30 Debugging! HowTo Debug... Intensivkurs C Sebastian Houben 32

31 Hilfe, Referenz, Dokumentation gutes Tutorial: Referenz-Dokumentation: Linux/Mac: man-pages! Windows: MSDN Weitere Quellen: Programmierfragen, Fehlermeldungen: Google, Stack Overflow. Algorithmen: Wikipedia. Intensivkurs C Sebastian Houben 33

32 Anwesenheitsaufgabe (10 Punkte) Schreiben Sie ein Programm mit Namen inkrement, das eine ganze Zahl als Argument erwartet, eins addiert, und das Ergebnis ausgibt. Falls kein Argument übergeben wurde soll das Programm eine Fehlermeldung ausgeben. Beispiel: $ inkrement = 1235 $ inkrement = $ inkrement Fehler: Es wurde keine Zahl uebergeben. Intensivkurs C Sebastian Houben 34

33 Anwesenheitsaufgabe (40 Punkte) Schreiben Sie ein Programm mit Namen primzahltest, das als Argument eine positive ganze Zahl erwartet. Prüfen Sie, ob ein Argument vorhanden ist und ob die übergebene Zahl positiv ist. Das Programm bestimmt, ob diese Zahl prim ist oder nicht. Verwenden Sie den folgenden (ineffizienten aber korrekten) Algorithmus (hier als Pseudo-Code): bool ist_prim(unsigned int n) { if (n == 1) return false; schleife: fuer jedes i >= 2, i*i <= n { if (ist_prim(i)) { if (n durch i teilbar) return false; } } return true; } $ primzahltest ist keine Primzahl. $ primzahltest ist eine Primzahl. Intensivkurs C Sebastian Houben 35

34 Anwesenheitsaufgabe (30 Punkte) Schreiben Sie ein Programm, dass die Primfaktorzerlegung einer Zahl ausgibt. Beispiel: $ primfaktorzerlegung = 2 * 2 * 2 * 3 $ primfaktorzerlegung 1 1 = 1 Intensivkurs C Sebastian Houben 36

35 Anwesenheitsaufgabe (20 Punkte) Modifizieren Sie das Programm so, dass gleiche Primfaktoren zu Potenzen gruppiert werden. Beispiel: $ primfaktorzerlegung = 2 ˆ 3 * 3 Intensivkurs C Sebastian Houben 37

Intensivkurs C++ Tag 1: Grundlagen Sebastian Houben Institut für Neuroinformatik Rahmen Grundlagen Aufgaben

Intensivkurs C++ Tag 1: Grundlagen Sebastian Houben Institut für Neuroinformatik Rahmen Grundlagen Aufgaben Intensivkurs C++ Tag 1: Grundlagen Sebastian Houben Institut für Neuroinformatik www.ini.rub.de/rtcv 26.02.2018 Intensivkurs C++ 26.02.2018 Sebastian Houben 1 Inhalt 1 Rahmen 2 Grundlagen 3 Aufgaben Intensivkurs

Mehr

Sebastian Houben Intensivkurs C++ 1. Intensivkurs C++ 21. September 2015

Sebastian Houben Intensivkurs C++ 1. Intensivkurs C++ 21. September 2015 Sebastian Houben Intensivkurs C++ 1 Intensivkurs C++ 21. September 2015 Themen Sebastian Houben Intensivkurs C++ 2 Warum C++? Ziel dieses Kurses Voraussetzungen Verwandschaft zu C, Java und anderen Sprachen

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

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

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

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

DAP2-Programmierpraktikum Einführung in C++ (Teil 1) DAP2-Programmierpraktikum Einführung in C++ (Teil 1) Carsten Gutwenger 11. April 2008 Lehrstuhl 11 Algorithm Engineering Fakultät für Informatik, TU Dortmund Überblick Mein erstes C++-Programm Namensräume

Mehr

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

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

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

RO-Tutorien 17 und 18

RO-Tutorien 17 und 18 RO-Tutorien 17 und 18 Tutorien zur Vorlesung Rechnerorganisation Christian A. Mandery TUTORIENWOCHE 2 AM 10.05.2012 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der

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

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

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

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

Einleitung. Informationsquellen: - Webseite zur Vorlesung, Abschnitt Informationen zu C und C++ Kurzeinführung in C/C++

Einleitung. Informationsquellen: - Webseite zur Vorlesung, Abschnitt Informationen zu C und C++ Kurzeinführung in C/C++ Informationsquellen: - Webseite zur Vorlesung, Abschnitt Informationen zu C und C++ 1 Einleitung Vorteile von Java: gut strukturiert mit hohem Funktionsumfang (mächtige Standardbibliothek) weitestgehend

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

C++ vs. Java. Hello world! Java C++ class HelloWorld { static public void main(string args) { System.out.println("Hello World!

C++ vs. Java. Hello world! Java C++ class HelloWorld { static public void main(string args) { System.out.println(Hello World! Hello world! Java class HelloWorld { static public void main(string args) { System.out.println("Hello World!"); } } C #include main() { printf("hello World!\n"); } C++ #include using

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

Ü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

Pseudo-Programmiersprache

Pseudo-Programmiersprache 1 Erste Schritte in C++ 4 Beschreibungsmöglichkeiten für Algorithmen Struktogramm Das gezeigte Struktogramm enthält die elementaren Grundstrukturen Folge, Auswahl und Schleife. Diese werden in einem 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

DAP2 Praktikum Blatt 1

DAP2 Praktikum Blatt 1 Fakultät für Informatik Lehrstuhl 11 / Algorithm Engineering Prof. Dr. Petra Mutzel, Carsten Gutwenger Sommersemester 2009 DAP2 Praktikum Blatt 1 Ausgabe: 21. April Abgabe: 22. 24. April Kurzaufgabe 1.1

Mehr

Grundlagen von C# - 1

Grundlagen von C# - 1 Grundlagen von C# - 1 Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Über diesen Kurs 2. Benötigte Software 3. Exkurs: Architektur von.net und C# 4. Erstes Programm: Hello World Grundlegende Eigenschaften

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

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

Informatik. Wiederholung Felder (Arrays), string. Vorlesung

Informatik. Wiederholung Felder (Arrays), string. Vorlesung Informatik Vorlesung 04 Wiederholung Felder (Arrays), string 19. November 2018 WiSe 2018 FB Ing - SB Umwelttechnik und Dienstleistung - Informatik Thomas Hoch 1 Ein C++ Programm: Wiederholung #include

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

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 C. EDV1-04C-Einführung 1

Einführung in C. EDV1-04C-Einführung 1 Einführung in C 1 Helmut Erlenkötter C Programmieren von Anfang an Rowohlt Taschenbuch Verlag ISBN 3-4993 499-60074-9 19,90 DM http://www.erlenkoetter.de Walter Herglotz Das Einsteigerseminar C++ bhv Verlags

Mehr

Einleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens

Einleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens Grundlagen von C Jonas Gresens Proseminar C Grundlagen und Konzepte Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität

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

Inhaltsverzeichnis. Kapitel i: Schnelleinstieg 13. Kapitel 2: Was sind Programme? 17. Kapitel 3: Wie erstellt man eigene Programme?

Inhaltsverzeichnis. Kapitel i: Schnelleinstieg 13. Kapitel 2: Was sind Programme? 17. Kapitel 3: Wie erstellt man eigene Programme? Liebe Leserin, lieber Leser 10 Kapitel i: Schnelleinstieg 13 Kapitel 2: Was sind Programme? 17 Was ist ein Programm? 18 Sprechen Sie Computer? 18 Von der Idee zum Programm 19 Von Windows, Fenstern und

Mehr

Einführung in C. Alexander Batoulis. 5. Mai Fakutltät IV Technische Universität Berlin

Einführung in C. Alexander Batoulis. 5. Mai Fakutltät IV Technische Universität Berlin Fakutltät IV Technische Universität Berlin 5. Mai 2014 Inhaltsverzeichnis 1 2 3 4 5 6 7 Überblick Beispielprogramm in Java Beispielprogramm in C 1 2 3 4 5 6 7 Beispielprogramm in Java Beispielprogramm

Mehr

C++ Teil 6. Sven Groß. 27. Mai Sven Groß (IGPM, RWTH Aachen) C++ Teil Mai / 14

C++ Teil 6. Sven Groß. 27. Mai Sven Groß (IGPM, RWTH Aachen) C++ Teil Mai / 14 C++ Teil 6 Sven Groß 27. Mai 2016 Sven Groß (IGPM, RWTH Aachen) C++ Teil 6 27. Mai 2016 1 / 14 Themen der letzten Vorlesung Musterlösung A2 Wdh.: Zeiger und Felder Kopieren von Feldern Dynamische Speicherverwaltung

Mehr

C++ Teil 7. Sven Groß. 30. Nov Sven Groß (IGPM, RWTH Aachen) C++ Teil Nov / 13

C++ Teil 7. Sven Groß. 30. Nov Sven Groß (IGPM, RWTH Aachen) C++ Teil Nov / 13 C++ Teil 7 Sven Groß 30. Nov 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 7 30. Nov 2015 1 / 13 Themen der letzten Vorlesung Zeiger, Felder (Wdh.) dynamische Speicherverwaltung Sven Groß (IGPM, RWTH Aachen)

Mehr

Peter Prinz Ulla Kirch-Prinz C+ + Lernen und professionell anwenden. ffl mitp

Peter Prinz Ulla Kirch-Prinz C+ + Lernen und professionell anwenden. ffl mitp Peter Prinz Ulla Kirch-Prinz C+ + Lernen und professionell anwenden ffl mitp Inhaltsverzeichnis Einleitung 19 1 Grundlagen 21 Entwicklung und Eigenschaften von C + + 22 Objektorientierte Programmierung

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

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

Arnold Willemer. Einstieg in C++ Galileo Press

Arnold Willemer. Einstieg in C++ Galileo Press Arnold Willemer Einstieg in C++ Galileo Press Vorwort 13 1.1 Programmieren 17 1.1.1 Start eines Programms 17 1.1.2 Eintippen, übersetzen, ausführen 18 1.1.3 Der Algorithmus 20 1.1.4 Die Sprache C++ 21

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

Tutorium Rechnerorganisation

Tutorium Rechnerorganisation Woche 2 Tutorien 3 und 4 zur Vorlesung Rechnerorganisation 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

Mehr

Systemnahe Programmierung in C (SPiC)

Systemnahe Programmierung in C (SPiC) Systemnahe Programmierung in C (SPiC) 9 Funktionen Jürgen Kleinöder, Daniel Lohmann, Volkmar Sieh Lehrstuhl für Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg

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

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

Übungen zur Vorlesung EidP (WS 2015/16) Blatt 6

Übungen zur Vorlesung EidP (WS 2015/16) Blatt 6 Andre Droschinsky Ingo Schulz Dortmund, den 0. Dezember 2015 Übungen zur Vorlesung EidP (WS 2015/16) Blatt 6 Block rot Es können 4 + 1 Punkte erreicht werden. Abgabedatum: 10. Dezember 2015 2:59 Uhr Hinweise

Mehr

Polymorphismus 44. Function.hpp. #include <string>

Polymorphismus 44. Function.hpp. #include <string> Polymorphismus 44 #include Function.hpp class Function { public: virtual ~Function() {}; virtual const std::string& get_name() const = 0; virtual double execute(double x) const = 0; }; // class

Mehr

Variablen in C++ Einfache Variablen Strukturen Arrays und Zeichenketten Zeiger und Referenzen Parameter Dynamische Speicherverwaltung

Variablen in C++ Einfache Variablen Strukturen Arrays und Zeichenketten Zeiger und Referenzen Parameter Dynamische Speicherverwaltung Variablen in C++ Einfache Variablen Strukturen Arrays und Zeichenketten Zeiger und Referenzen Parameter Dynamische Speicherverwaltung Einfache Variablen Typen int, long, short, unsigned bool char float,

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

Teil II. Literatur zur C-Programmierung:

Teil II. Literatur zur C-Programmierung: Teil II 2Kurzeinführung in die Programmiersprache C Literatur zur C-Programmierung: Darnell, Margolis. C: A Software Engineering Approach. Springer 1991 Kernighan, Ritchie. The C Programming Language.

Mehr

Objektorientierte Programmierung mit C++ SS 2007

Objektorientierte Programmierung mit C++ SS 2007 Objektorientierte Programmierung mit C++ SS 2007 Andreas F. Borchert Universität Ulm 5. Juni 2007 Polymorphismus #include Function.h class Function { public: virtual ~Function() {}; virtual std::string

Mehr

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

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

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

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

Programmiervorkurs Einführung in Java Tag 1

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

Mehr

Kurzeinführung in C/C++ Informationsquellen: - Webseite zur Vorlesung, Abschnitt Informationen zu C und C++ Einleitung

Kurzeinführung in C/C++ Informationsquellen: - Webseite zur Vorlesung, Abschnitt Informationen zu C und C++ Einleitung Informationsquellen: - Webseite zur Vorlesung, Abschnitt Informationen zu C und C++ 1 Einleitung Vorteile von Java: gut strukturiert mit hohem Funktionsumfang (mächtige Standardbibliothek) weitestgehend

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

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

2 Eine einfache Programmiersprache. Variablen. Operationen Zuweisung. Variablen

2 Eine einfache Programmiersprache. Variablen. Operationen Zuweisung. Variablen Variablen Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Variablen dienen zur Speicherung von Daten. Um Variablen

Mehr

Wo und wie lange leben Objekte? globale Objekte lokale Objekte dynamische Objekte

Wo und wie lange leben Objekte? globale Objekte lokale Objekte dynamische Objekte Wo und wie lange leben Objekte? globale Objekte lokale Objekte dynamische Objekte entstehen durch... globale Objektvereinbarung: T o; blocklokale Objektvereinbarung: {.. T o;.. durch expliziten Aufruf

Mehr

Systemprogrammierung

Systemprogrammierung IEinführung I in die Programmiersprache C Literatur zur C-Programmierung: Darnell, Margolis. C: Software Engineering pproach. Springer 1991 Kernighan, Ritchie. The C Programming Language. Prentice-Hall

Mehr

3D Programmierpraktikum: Einführung in C++ - Teil 1

3D Programmierpraktikum: Einführung in C++ - Teil 1 3D Programmierpraktikum: Einführung in C++ - Teil 1 Praktikum 3D Programmierung Sebastian Boring, Otmar Hilliges Donnerstag, 27. April 2006 LMU München Medieninformatik Boring/Hilliges 3D Programmierpraktikum

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

C++ Teil 12. Sven Groß. 18. Jan Sven Groß (IGPM, RWTH Aachen) C++ Teil Jan / 11

C++ Teil 12. Sven Groß. 18. Jan Sven Groß (IGPM, RWTH Aachen) C++ Teil Jan / 11 C++ Teil 12 Sven Groß 18. Jan 2016 Sven Groß (IGPM, RWTH Aachen) C++ Teil 12 18. Jan 2016 1 / 11 Themen der letzten Vorlesung Wiederholung aller bisherigen Themen: Datentypen und Variablen Operatoren Kontrollstrukturen

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

Programmieren in C++ Templates

Programmieren in C++ Templates Programmieren in C++ Templates Inhalt Templates Funktions- und Klassen-Templates Spezialisierung von Templates Generische Klassen Einbinden von Templates Instantiierung (implizit und explizit) Templates

Mehr

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Martin Unold INFORMATIK. Geoinformatik und Vermessung Zusammenfassung Was ist eine Programmiersprache? Eine Sprache, die Formal eindeutig in Maschinenbefehle übersetzbar ist Für Menschen einfacher verständlich ist als Bytecode Zur Formulierung von Datenstrukturen

Mehr

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

Grundlagen C und C++ Einheit 03: Grundlagen in C++ Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Grundlagen C und C++ Einheit 03: Grundlagen in C++ Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Teil 1: Wiederholung C Heutige Agenda Nutzereingaben verarbeiten Teil 2: Grundlagen in C++ Erstes

Mehr

Programmierkurs C++ Variablen und Datentypen

Programmierkurs C++ Variablen und Datentypen Programmierkurs C++ Variablen und Datentypen Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Überblick Welche Datentypen gibt es in

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

Welche Informatik-Kenntnisse bringen Sie mit?

Welche Informatik-Kenntnisse bringen Sie mit? Welche Informatik-Kenntnisse bringen Sie mit? So gehen Sie vor! Lösen Sie die Aufgaben der Reihe nach von 1 bis 20, ohne das Lösungsblatt zur Hilfe zu nehmen. Der Schwierigkeitsgrad der Aufgaben nimmt

Mehr

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

Tag 5. Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme) Tag 5 Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Methoden Deklaration

Mehr

Institut für Programmierung und Reaktive Systeme 2. Februar Programmieren I. Übungsklausur

Institut für Programmierung und Reaktive Systeme 2. Februar Programmieren I. Übungsklausur Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 2. Februar 2017 Hinweise: Klausurtermine: Programmieren I Übungsklausur Programmieren I: 13. März

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

... Vorwort Einstieg in die Programmierung Ablaufsteuerung... 71

... Vorwort Einstieg in die Programmierung Ablaufsteuerung... 71 ... Vorwort... 13 1... Einstieg in die Programmierung... 15 1.1... Programmieren... 15 1.1.1... Start eines Programms... 15 1.1.2... Eintippen, übersetzen, ausführen... 16 1.1.3... Der Algorithmus... 18

Mehr

Syntax und Kontrollstrukturen

Syntax und Kontrollstrukturen Syntax und Kontrollstrukturen Praktikum C-Programmierung Eugen Betke, Nathanael Hübbe, Michael Kuhn, Jakob Lüttgau, Jannek Squar Wissenschaftliches Rechnen Fachbereich Informatik Universität Hamburg 2018-10-29

Mehr

Abend 4 Übung : Erweitern von Klassen durch Vererbung

Abend 4 Übung : Erweitern von Klassen durch Vererbung Abend 4 Übung : Erweitern von Klassen durch Vererbung Ziel, Inhalt Wir erweitern die Klassen, die wir zum Zeichnen mit TsuZeichnen verwenden. Dabei wenden wir die Vererbung an um die Klassen zu spezialisieren

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

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

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

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

Mehr

Grundlagen der Informatik 4. Kontrollstrukturen I

Grundlagen der Informatik 4. Kontrollstrukturen I 4. Kontrollstrukturen I Anweisungen und Blöcke Grundlagen der Informatik (Alex Rempel) 1 Anweisungen und Blöcke Anweisungen ("statements") Immer mit Semikolon abzuschließen "Leere" Anweisung besteht aus

Mehr

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

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

Mapra: C++ Teil 2. Felix Gruber, Sven Groß. 2. Mai 2017 IGPM. Felix Gruber, Sven Groß (IGPM) Mapra: C++ Teil 2 2. Mai / 11

Mapra: C++ Teil 2. Felix Gruber, Sven Groß. 2. Mai 2017 IGPM. Felix Gruber, Sven Groß (IGPM) Mapra: C++ Teil 2 2. Mai / 11 Mapra: C++ Teil 2 Felix Gruber, Sven Groß IGPM 2. Mai 2017 Felix Gruber, Sven Groß (IGPM) Mapra: C++ Teil 2 2. Mai 2017 1 / 11 Themen vom letzten Mal Kontrollstrukturen Funktionen const Referenzen Zeiger

Mehr

C++ Klassen, Vererbung. Philipp Lucas. Sebastian Hack. Wintersemester 2008/09. saarland.

C++ Klassen, Vererbung. Philipp Lucas. Sebastian Hack. Wintersemester 2008/09. saarland. C++ Klassen, Vererbung Philipp Lucas phlucas@cs.uni-sb.de Sebastian Hack hack@cs.uni-sb.de Wintersemester 2008/09 saarland university computer science 1 Inhalt Klassen in C++ Sichtbarkeit Erzeugen von

Mehr

Klausur Grundlagen der Programmierung

Klausur Grundlagen der Programmierung Klausur Grundlagen der Programmierung Aufgabenstellung: Martin Schultheiß Erreichte Punktzahl: von 60 Note: Allgemeine Hinweise: Schreiben Sie bitte Ihren Namen auf jedes der Blätter Zugelassene Hilfsmittel

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

Polymorphismus 179. Function.h. #include <string>

Polymorphismus 179. Function.h. #include <string> Polymorphismus 179 #include Function.h class Function { public: virtual ~Function() {}; virtual std::string get_name() const = 0; virtual double execute(double x) const = 0; }; // class Function

Mehr

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

Institut für Programmierung und Reaktive Systeme 25. Januar Programmieren I. Übungsklausur

Institut für Programmierung und Reaktive Systeme 25. Januar Programmieren I. Übungsklausur Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 25. Januar 2018 Hinweise: Klausurtermine: Programmieren I Übungsklausur Programmieren I: 17. Februar

Mehr

Erste Java-Programme (Scopes und Rekursion)

Erste Java-Programme (Scopes und Rekursion) Lehrstuhl Bioinformatik Konstantin Pelz Erste Java-Programme (Scopes und Rekursion) Tutorium Bioinformatik (WS 18/19) Konstantin: Konstantin.pelz@campus.lmu.de Homepage: https://bioinformatik-muenchen.com/studium/propaedeutikumprogrammierung-in-der-bioinformatik/

Mehr