C++ Einführung. und Datenanalyse mit ROOT. Jörg Marks, Physikalisches Institut, INF 226

Ähnliche Dokumente
Datenanalyse mit dem C++ Toolkit ROOT

1. Teil des Programms

Einführung in die Datenanalyse mit dem C++ Toolkit ROOT

C++ Teil des Programms

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

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

Grundlagen der Informatik 2. Typen

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

Variablen, Konstanten und Datentypen

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

Angewandte Mathematik und Programmierung

Elementare Datentypen in C++

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

Informatik. Wiederholung Felder (Arrays), string. Vorlesung

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

Algorithmen zur Datenanalyse in C++

if ( Logischer Operator ) { } else { Anweisungen false

Mikroeinführung in C/C+

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

Funktionales C++ zum Ersten

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

Informatik I (D-ITET)

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

2. Programmierung in C

Vorkurs Informatik WiSe 17/18

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

Übungen zur Vorlesung Wissenschaftliches Rechnen I

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

C++ - Einführung in die Programmiersprache Ein- und Ausgabe in die Konsole. Leibniz Universität IT Services Anja Aue

Vorkurs Informatik WiSe 16/17

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

Dr. Monika Meiler. Inhalt

2. Programmierung in C

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

Grundlagen der Programmentwicklung

Informatik I - Übung 2 Programmieren in Eclipse

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

3 Grundstrukturen eines C++ Programms anhand eines Beispiels

Allgemeines. Verschiedene Sprachkonzepte C-Sprachfamilie C-ähnliche Programmiersprachen Allgemeines zu C. #include <stdio.h>

1 EINFÜHRUNG PROGRAMMAUFBAU IN C++

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

Unterlagen. CPP-Uebungen-08/

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

2. Programmierung in C

C-Programmierkurs Mathematik

Vorlesungsprüfung Programmiersprache 1

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

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

Einführung in die Programmierung

Informatik I (D-ITET)

2. Programmierung in C

7. Einführung in C++ Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt

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

Pseudo-Programmiersprache

Inhalt. 1 Einstieg in die Welt von C Erste Schritte in C 31. Vorwort... 15

Programmierkurs C++ Variablen und Datentypen

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

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

Einführung in C ++ und die Objektorientierte Programierung

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.

Grundlagen. Die Komponenten eines C Programms. Das erste Programm

Abend 4 Übung : Erweitern von Klassen durch Vererbung

Hello World! Eine Einführung in das Programmieren Variablen

Grundlagen der Informatik 5. Kontrollstrukturen II

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

Informatik Vorkurs - Vorlesung 2

Informationsverarbeitung im Bauwesen

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

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

Programmierung und Angewandte Mathematik

Hydroinformatik I: Hello World

Ein- und Ausgabe (I/O)

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

Programmieren/Algorithmen und Datenstrukturen 1

6. Kontrollanweisungen II

Projekt 3 Variablen und Operatoren

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

5. Kontrollanweisungen II

Die Programmiersprache C

4.2 Programmiersprache C

Programmieren in C / C++ Grundlagen C 2

Programmieren in C/C++ und MATLAB

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

Ganze Zahlen, Ausdrücke Variablen/Konstanten

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

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

Transkript:

Sommer Semester 2016 C++ Einführung 10.4-14.4.2016 14:00 17:00 CIP Pool INF 226 und Datenanalyse mit ROOT Jörg Marks, Physikalisches Institut, INF 226 marks@physi.uni-heidelberg.de Inhalt Programmierwerkzeuge (shell, Editor, Compiler, Linker) Typen, Variablen, Operatoren Bedingte Anweisungen, Schleifen, Felder Zeiger, Funktionen, Klassen Input / Output Einführung in das Datenanalyseprogramm ROOT Kurs web page http://www.physi.uni-heidelberg.de/~marks/c++_und_root/

Ziel Ziel der Veranstaltung Nutzung eines Computers mit UNIX Betriebssystem zum Erstellen von C++ Programmen im Hinblick auf Datenanalyse Grundlagen zur Programmierung in C++ Einführung in das Datenanalysewerkzeug ROOT Beispielorientiert Konzepte so erläutern, dass Sie mit den Erklärungen selbständig kleine Aufgaben lösen können. Kein stringenter Programmierkurs Tutorial Grundlagen für ein problemorientiertes Selbststudium schaffen Voraussetzung Keine Vorkenntnisse notwendig, aber hohe Informationsdichte und Tempo User ID zur Benutzung der CIP Pools der Fakultät für Physik. Struktur des Kurses Vorlesung Bearbeiten von Übungsbeispielen (gemeinsam mit Ihrem Nachbarn!) Besprechung der Lösungen

Einführung UNIX Progammierwerkzeuge: Editor, Shell Commands, Compiler, Linker CIP Pool Programm 10.4.2016 C++ - ein Beispielprogramm Typen, Variablen, Operatoren Eingabe und Ausgabe C++ Bedingte Anweisungen und Schleifen Arrays und Pointer Funktionen C++ - Informationen und Beispiele http://www.cplusplus.com/ http://www.tutorialspoint.com/cplusplus/index.htm

Einleitung C++ wurde von Bjarne Stroustrup (Bell Laboratories, 1985) entwickelt um objektorientiertes Programmieren zu erleichtern. Erweiterung der Sprache C, die von Ritchie 1972 eingeführt wurde. GNU Compiler collection (gcc), ISO C++ standard von 1998, see http://www.open-std.org/jtc1/sc22/wg21/ Computerprogramm: Computer prozessieren Daten, führen Berechnungen durch, fällen Entscheidungen mit Hilfe eines Satzes von Anweisungen. Eine Aktion wird mit Hilfe von Schlüsselwörtern beschrieben, die eine Progrommiersprache, z. B. C++, charakterisieren. Benutzen von C++ mit Compiler und für ROOT mit Interpreter Arbeiten Sie zu zweit, dadurch werden Fehler beim Implementieren der Programme reduziert. Es ist ok Programme oder Programmteile zu kopieren, aber - Verwenden Sie nur code, den Sie auch verstehen - Urheberrechte beachten ( GNU General Public License )

UNIX Arbeitsumgebung Im Rahmen dieses Kurses wird keine Entwicklungsumgebung verwendet. Wir arbeiten auf der shell in der UNIX Umgebung des CIP pools. Kleine UNIX Einführung UnixEinfuehrung.pdf Übersicht zum Arbeiten im CIP Pool unter Unix cipeinfuehrung.pdf Arbeitsvorschläge: - loggen Sie sich mit Ihrem userid ein. - welchen Editor verwenden Sie? - finden wir den compiler g++? - haben Sie genügend Speicherplatz im AFS home. - haben Sie Zugang zur Kurs Web page

GNU Compiler Collection gcc Übernimmt folgende Aufgaben: preprocessing, compilation, assembly and linking Verhalten wird durch Optionen in Form von Flags und File-Namen gesteuert - optionen haben multi letter names, daher nicht wie in Unix Befehlen: -dv -d -v - File-Name Endungen bestimmen welcher compiler aktiviert wird - Details auf der shell mit dem Befehl man gcc Sprachoptionen: - c c-header cpp-output - c++ c++-header c++-cpp-output - objective-c objective-c-header objective-c-cpp-output - objective-c++ objective-c++-header objective-c++-cpp-output - assembler assembler-with-cpp - ada - f77 f77-cpp-input f95 f95-cpp-input - go - java Verwendung von g++ setzt Standard Library Pfade für den Linker

Ein Beispiel myfirst.cc

Ein Beispiel // oder /* */ Kommentare # include < > <iostream > Preprozessoranweisungen File suchen und einfügen Input/Output Definitionen

Ein Beispiel using namespace std ; Programm - namen kommen aus Standard C und C++ Bibliotheken

Ein Beispiel main() {C ++ Anweisungen} Haupt - programm Block, Anweisungen werden sequentiell ausgeführt

Ein Beispiel Definition von Variablen werden angegeben Typ und Name

Syntax Datentyp Name ; Variablen und Konstanten Typ Definitionen Datentyp Speicherbedarf Ganze Zahlen int 16/32 short int 16 long int 32 unsigned int 16/32 unsigned short int 16 unsigned long int 32 unsinged longlong int 64 Wertebereich ist limitiert durch Speichergrösse short int int long int Datentyp Speicherbedarf Reelle Zahlen float 32 double 64 long double 64 Buchstaben und Zeichen char 16/32 unsigned char 16/32 Logische Zeichen bool

Mit dem Zeichen Variablen und Konstanten Ermittlung des Speicherbedarfs von Variablen oder Typen Syntax sizeof ( Variable ) ; sizeof ( Datentyp ) ; Syntax Datentyp Name = Wert ; = werden Variablen Werte zugewiesen Mit dem Schlüsselwort const werden konstante Variable definiert. Der Wert wird zur Compile Zeit zugewiesen und darf nicht mehr geändert werden. Syntax const Datentyp Name = Wert ; Notwendig, sonst ist der Speicherinhalt zufällig! Für Zeichenketten werden weitere Definitionen gebraucht, string Syntax #include <string> ; const string ZeichenKette = Strings bestehen aus char ;

Variablen und Konstanten Umwandlung von Typen während der Ausführung des Programms erfolgt automatisch oder mit Anweisungen. Die automatische Konversion ist Compiler spezifisch und sollte Syntax vermieden werden! int myinteger ; float myfloat ; myfloat = (float) myinteger ; static_cast<type> expression ; Automatische Konversion Beispiele : double / float zu int char zu int Nachkommastellen werden abgeschnitten ohne zu runden Character werden mit einer Integer Zahl entsprechend des Ascii Zeichensatzes dargestellt. Bei einer Konversion werden diese Zeichen dargestellt

Ein Beispiel cout / cin Ausgabe und Eingabe von Variablen oder strings

Input / Output cout cerr C++ Input / Output an Konsole oder Tastatur Funktionsdefinitionen in #include <iostream>; Daten werden in einen output stream geschrieben, gepuffert und an die Konsole gesendet. 22 4 cin oder file handle - Output stream: cout - Input stream: cin Syntax - Output stream für Fehler: cerr cout << output string << Variable << endl; cin >> Variable1 >> Variable2 ; Beispiel: const double Pi = 3.14, d = 12.0 ; double myresult; myresult = Pi * d ; cout << Umfang = << myresult << endl; Viele Optionen für Formatierungen und Steuerzeichen. Hier keine Details!

Ein Beispiel myfirst.cc sum = a + b Zuweisung von Ausdrücken return 0 Rückgabewert des Programms

Operatoren Operatoren verknüpfen Variable zu neuen Ausdrücken, wir unterscheiden Arithmetische Operatoren Berechnung von Werten Bit Operatoren Manipulation einzelner Bits Vergleichsoperatoren Überprüfung von Aussagen Logische Operatoren Verknüpfung von Aussagen Operatoren Berechnungen * Multiplikation / Division % Division mit Rest + Summe - Differenz Operatoren Berechnungen *= Multiplikation /= Division %= Division mit Rest += Summe -= Differenz N++ N um 1 erhöhen m- - m um 1 verkleinern Benutzung von Klammern wie in der Mathematik Berechnung wird mit den linken Operatoren durchgeführt und verändern dann den links stehenden Wert.

Ein Beispiel Arbeitsanweisungen: - loggen Sie sich mit Ihrem userid ein. - erzeugen Sie ein Arbeits Directory. - starten Sie eine Editor, z.b. emacs - schreiben Sie ein C++ Program unserem Beispiel entsprechend und speichern sie es als myfirst.cc - Übersetzen Sie Ihr File und erzeugen Sie ein ausführbares Programm mit g++ myfirst.cc -o myfirst - Probieren Sie es mit./myfirst

Vergleiche gcc und g++: - Probieren Sie g++ myfirst.cc -o myfirst und gcc myfirst.cc -o myfirst - fügen Sie link Pfade in gcc hinzu um die Fehlermeldungen zu entfernen gcc myfirst.cc -L/usr/lib64/gcc/x86_64-suse-linux/4.8/ -lstdc++ -o myfirst -L setze Pfadnamen Pfad ist installationsabhängig! -l setze Bibliotheksnamen (dabei wird das beginnende lib weggelassen) - Sprache wird durch die Endungen festgelegt mv myfirst.cc myfirst.kk gcc myfirst.kk -L/usr/lib64/gcc/x86_64-suse-linux/4.8/ -lstdc++ -o myfirst Compiler Fehler Hinzufügen von -x c++ gcc -x c++ myfirst.kk -L/usr/lib64/gcc/x86_64-suse-linux/4.8/ -lstdc++ -o myfirst aktiviert den c++ Teil von gcc kein Compiler Fehler - Weitere Optionen mit der Online Hilfe auf der shell man gcc