goto low-level memory management: malloc, free (Java hat sehr wohl new) structs and unions (Java verwendet hierfür nur classes) header files (*.
|
|
- Sven Feld
- vor 6 Jahren
- Abrufe
Transkript
1
2
3
4 goto low-level memory management: malloc, free (Java hat sehr wohl new) structs and unions (Java verwendet hierfür nur classes) header files (*.h / *.cpp) global variables, functions (only methods) preprocessor, typedef and defines (static final) implicit type conversions operator overloading multiple inheritance (Java verwendet stattdessen interfaces) templates (Java 5 unterstützt mittlerweile generics)
5 Standards built-in types, sequence of evaluation,... Standard support für GUI programming kein AWT, Swing, Threads Networking Generators for documentation (javadoc) Reflection Garbage Collection Packages Machine (operating system) - independent object code Advantage: optimized machine code Disadvantage: need compiler per platform and compilation for target Bibliotheken für oben genannte Funktionen existieren, sind aber nicht Teil der C++-Sprache oder der STL (Standard template Library), z.b. QT LEDA
6 Hauptunterschiede C++ - Java Aus Programmierersicht Memory management Pointer Aus Anwendersicht Keine VM auf dem Zielsystem notwendig (eingebettete Systeme) Mehr Kontrolle, z.b. beim Löschen von Objekten (bessere Laufzeitabschätzung für Echtzeitsysteme) Bessere Performance (immer?) Einführung in C++ 6
7 Performance C++ vs. Java Integerarithmetik: unentschieden Floating Point: C++ ca. 30% schneller File-IO: C++ ist bis zu 35 mal schneller Objekthandling: Java ist etwa doppelt so schnell Java C Einführung in C++ 7
8 bool, char, short, (unsigned) int, long, float, double static _ int i = 3; float x = 10.0; i = i + 1; int j = i; int i = 3; float x=10.0, y=1.23;
9 Operatoren Arithmetische Operatoren: + - * / % pow(x,y) Vergleich < <= > >= ==!= Logik! && 0 entspricht false, ungleich 0 ist true Bit Operatoren ~ & ^ << >> Shift-Operatoren lassen Vorzeichen unbeeinflusst Einführung in C++ 9
10 Zuweisungsoperatoren Zuweisungsoperatoren wie in C x = y x += y, x -= y x *= y, x/= y x %= y x >>= n, x <<= n x &= y, x = y x ^= y ermöglicht kompakten Code Einführung in C++ 10
11 if else Ausdruck if (Bedingung) // Anweisung oder Block von Anweisungen else // Anweisung oder Block von Anweisungen else-teil optional Bedingung kann ein beliebiger Ausdruck sein der einen numerischen Wert ergibt Klammern sinnvoll um Fehlerquellen zu vermeiden Vorsicht vor Seiteneffekten in Bedingung Einführung in C++ 11
12 Schleifen while Schleife while (Bedingung) // Anweisung oder Block von Anweisungen do-while Schleife do // Anweisung oder Block von Anweisungen while (Bedingung) auf jeden Fall 1 Durchlauf for Schleife for (init-statement; test-expr; increment-expr) // Anweisung oder Block von Anweisungen break springt aus der aktuellen (innersten) Schleife continue springt in die nächste Iteration Einführung in C++ 12
13 Arrays Sammlung von Elementen des gleichen Typs Deklaration float x[100]; Abrufen der Elemente x[0]; x[99]; // erstes Element // letzes Element Initialisierung float x[3] = {1.1, 2.2, 3.3}; float Y[] = {1.1, 1.2, 1.3}; Mehrdimensionale Arrays float x[4][4]; // Matrix int m[2][3] = { {1, 2, 3} {4, 5, 6} }; Einführung in C++ 13
14 Einbindung von Programmbibliotheken Einbinden von Programmbibliotheken über #include <headerfile> Beispiel: // Einlesen eines Wertes in Grad und Ausgabe der Sinusfunktion #include <iostream> #include <cmath> int main() { } float angle; std::cin >> angle; // Winkel einlesen std::cout << sin(angle * M_PI / 180.0) << std::endl; return 0; // M_PI ist in <cmath> definiert Innerhalb von std::cout << können Funktionen benutzt werden Liste der verfügbaren Funktionen in cmath Einführung in C++ 14
15 Klassen und Objekte Grundstruktur einer Klassendefinition class Klassenname { einemethode(...); public: Klassenname(...); ~Klassenname(); }; // Konstruktor // Destruktor Schlüsselwörter public, private, protected steuern Zugriff von außerhalb Konstruktoren (bzw. Destruktoren) gibt es immer, aber man kodiert sie oft nicht explizit Konstruktoren werden beim Erstellen eines Objektes dieser Klasse aufgerufen Klassenname k1(1,2); Einführung in C++ 15
16 Hauptprogramm Nötig für alle Programme (wie in C) Einfachstes Bespiel: int main() Dateierweiterung:.C,.cc oder.cpp Beispiel mit Ein/Ausgabe #include <iostream> int main() { } // Einstiegspunkt vom OS { // Anfang des Funktionsbody return 0; // Rückmeldung an OS (success) } // Ende des Funktionsbody // Variablendefinitionen: float a, b, c; // Eingabe: std::cin >> a >> b >> c; // Ausgabe: std::cout << a << ", " << b << ", " << c << std::endl; return 0; Einführung in C++ 16
17 I/O in C++ generic output stream wird mit << operator angesprochen cout ist in <iostream> im Namespace std deklariert #include <iostream> using namespace std;... int main( ) { cout << "Hello!"; } // main( ) std::cout <<... Deklarationen der Standardlibrary haben immer den namespace std! Einführung in C++ 17
18 I/O Klassenhierarchie istream und ostream von ios abgeleitet iostream mittels Mehrfachvererbung von istream und ostream abgeleitet ios istream ostream cin iostream cerr cout clog Einführung in C++ 18
19 I/O Formatierung - Zahlenbasis #include <iostream> int main( ) { int c; cout << "Please enter an integer value for variable c:\n c = "; cin >> c; cout << "\toctal\tdecimal\thexadecimal\n" << "\t0_" << oct << c << "\t" << dec << c << "\t0x" << hex << c << endl; return 0; // "normal" end of execution } // main( ) Einführung in C++ 19
20 I/O Formatierung - Fließkommazahlen cout << << endl; cout.precision( 4 ); cout << "precision: " << cout.precision( ) << endl; cout << << endl; cout.setf(ios::fixed); cout << "fixed: " << << endl; precision: Einführung in C++ 20
21 I/O Formatierung iomanip #include <iomanip> Definiert wird Breite des Ausgabefeldes für das folgende Argument Ausrichtung Füllzeichen cout << ' ' << setw( 10 ) <<"xxx" <<' ' << endl; xxx cout << ' ' << setw( 10 ) << setfill('*')<<"xxx" <<' ' << endl; *******xxx cout << ' ' << setw( 10 ) << left <<"xxx" <<' ' << endl; cout << ' ' << setw( 10 ) << internal <<"xxx" <<' ' << endl; cout << ' ' << setw( 10 ) << right <<"xxx" <<' ' << endl; xxx******* ****xxx*** *******xxx Einführung in C++ 21
22 Formatierte Eingabe Operatoren analog zu jenen bei der formatierten Ausgabe: /* formatted input */ int i; double x; cout << "Enter a hex value: "; cin >> hex >> i; cout << "i = " << i << " = 0x" << hex << i << endl; ab i = 171 = 0xab cout << "Enter a floating point value: "; cin >> x; cout << "x = " << x << endl; e-3 x= Einführung in C++ 22
23 Fehlerbehandlung Fehlerbehandlung in C++ ähnlich wie in Java: basierend auf Ausnahmen mit den Schlüsselwörtern try, catch und throw throw kann beliebigen Datentyp oder Klasse mit Kopier-Konstruktor und Destruktor als Ausnahme werfen throw bricht Kontrollfluss im try-block ab; Programm wird im passenden catch-block weitergeführt try { // try-block throw exception; } catch (type1 arg) { // catch-block } catch (type2 arg) { // catch-block }... Einführung in C++ 23
24 Fehlerbehandlung - Beispiel Aufruf foo(0): Handler: catch (char e1) Aufruf foo(17): Handler: catch (...) Aufruf foo(1): Handler: catch(int e2) class MyException{};... void foo(char c) { try { if (c == 0) throw c; else if (c == 1) throw 1; else throw MyException(); } catch (char e1) {... } catch (int e2) {... } catch (...) {... } } 24
25 Java Entwicklungsschritte Editor $ javac javacclassname.java Java-Program Compiler $ java javaclassname Bytecode Java Virtual Machine (JVM) Library classes Bytecode Bytecode Bytecode ClassName.java e.g. Win ClassName.class e.g. Mac, Unix, Handy OS,... via Internet Einführung in C++ 25
26 C++ Entwicklungsschritte Editor C++ source Compiler Analyze, Analyze, check check consistency, consistency, generate generate code code Link Link further further classes classes $ gcc o main.exe *.o $ gcc c Wall *.cpp in DevC++ main.exe ClassName.cpp ClassName.h Object code Linker executable ClassName.o libraries Object code Object code Object code Object code Non-standard! Platform-dependent! Processor execute, execute, test, test, debug debug $./main.exe arg1 Einführung in C++ 26
27 C++ Programmierzyklus iterative edit compile link run (test,debug) cycle *.h Editor *.cpp Compiler *.o Linker make *.h *.cpp *.o *.exe *.h *.cpp *.o *.h *.cpp *.o test cases declarations definitions *.h Object files in libraries Can also include global data and functions! Einführung in C++ 27
28 Trennung Deklaration & Definition Deklaration (Struktur) in.h-datei (Headerfile) Definition (Implementierung) in.cpp-datei Bsp.: point.cpp #include point.h returns new point point point::add( point v ) { Object return point( x + v.x, y + v.y ); } // point::add( ) Class based visibility (like Java) #ifndef POINT_H #define POINT_H class point { private: double x, y; public: point( double a=0, double b=0): x( a ), y( b ) { }; point add( point v ); }; // class point #endif POINT_H default values for arguments Association to class Prevent multiple declarations StdConstructor point( ) == point( 0 ) == point( 0, 0 ) initialize Einführung in C++ attributes 28
29 Beispielprojekt mit Modul point Inkludieren des Headerfiles point.cpp #include "point.h" instead of Java tostring( ) method point point::add( point v ) { return point( x + v.x, y + v.y ); } could have also been void point::print( ) { cout << "(" << x << " " << y << ")"; } defined in point.cpp int main ( ) { main.cpp point u( 1.0 ), v( -0.5, 4.2 ), w; w = u.add( v ); cout << "u = "; u.print( ); cout << endl; cout << "v = "; v.print( ); cout << endl; cout << "w = "; w.print( ); cout << endl; return 0; } // main( ) object creation without new using three different constructors u = (1 0) v = ( ) Einführung in C++ 29 w = ( )
30 Kompilieren und Linken Jedes Modul separat kompilieren $ g++ c Wall pedantic-error -ansi point.cpp point.o $ g++ c Wall pedantic-error -ansi main.cpp main.o Objektdateien linken $ gcc o main main.o point.o main[.exe] Ausführen des Programms endlich! $./main Einführung in C++ 30
31 Tools und Entwicklungsumgebungen Gnu Compiler unter Linux/Unix oder cygwin: Dev C++ grafische Oberfläche für Windows: oder Code::Blocks: oder Eclipse: aber Beispielabgabe muss korrekt auf dem System der Übung laufen! Einführung in C++ 31
32 Danke für die Aufmerksamkeit! Fragen, Kommentare, Wünsche? Einführung in C++ 32
C++ - eine Einführung
Inhalt des Vortrags C++ - eine Einführung Wilfried Elmenreich Voraussetzungen Unterschiede C++ / Java C++ Grundkonzepte: Operatoren, Schleifen, I/O Klassenstruktur, Hauptprogramm Entwicklungschritte eines
MehrC++ - eine Einführung
C++ - eine Einführung Wilfried Elmenreich Folien basieren auf dem Vortrag From Java to C++ von Ulrik Schröder Inhalt des Vortrags Voraussetzungen Unterschiede C++ / Java C++ Grundkonzepte: Operatoren,
MehrAngewandte 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
MehrWintersemester 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
MehrVorlesungsprü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,
MehrFunktionales 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
MehrUnterlagen. 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
MehrTeil 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
MehrCrashkurs C++ Wiederholung
Crashkurs C++ Wiederholung #include int main(void) { int i, j; bool is_prime; for (j = 1; j < 1000; j += 2) { is_prime = true; for (i = 3; i
MehrHydroinformatik I: Hello World
Hydroinformatik I: Hello World Prof. Dr.-Ing. habil. Olaf Kolditz 1 Helmholtz Centre for Environmental Research UFZ, Leipzig 2 Technische Universität Dresden TUD, Dresden Dresden, 27. Oktober 2017 1/21
MehrAlgorithmen 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
MehrWiederholung, Abbruch von Schleifen, switch-anweisung Datentypen, char, formatierte Ausgabe
Informatik Vorlesung 03b Wiederholung, Abbruch von Schleifen, switch-anweisung Datentypen, char, formatierte Ausgabe 12. November 2018 WiSe 2018 FB Ing - SB Umwelttechnik und Dienstleistung - Informatik
MehrEinfü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
MehrThemen. 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
MehrThema heute: Vererbung und Klassenhierarchien. Abgeleitete Klassen. Vererbung von Daten und Funktionen. Virtuelle Funktionen
1 Thema heute: Vererbung und Klassenhierarchien Abgeleitete Klassen Vererbung von Daten und Funktionen Virtuelle Funktionen 2 Vererbung oft besitzen verschiedene Datentypen einen gemeinsamen Kern Beispiel:
MehrEinstieg 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
MehrInformatik 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
MehrAuswahlen (Selektionen)
1 Anhang 10.3 Ein/Ausgaben Eingabe mit Prompt (Beispiel) cout ; // Prompt ohne endl cin
MehrEinstieg 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
MehrUrsprünge. Die Syntax von Java. Das Wichtigste in Kürze. Konsequenzen. Weiteres Vorgehen. Rund um Java
Ursprünge Die Syntax von Java Borland Software Corp 1995 Syntax: Pascal Objektorientierte Prorammierung optional Plattformen: Windows (Linux, Mac OS X) Sun Microsystems 1995 Syntax: C/C++ Objektorientiert
MehrPolymorphismus 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
MehrC++ 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
MehrPolymorphismus 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
MehrEinfü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).
MehrWo 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
MehrObjektorientierte 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
MehrAusnahmebehandlung. (exceptionhandling) in C++
Ausnahmebehandlung (exceptionhandling) in C++ Diese Folien basieren auf Kapitel 19 in Herbert Schildt, C++ ENT-PACKT, mitp. Weiterführende Informationen zu diesem Themengebiet sind insbesondere dort zu
MehrRO-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
MehrJavakurs 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
MehrHydroinformatik I: Hello World
Hydroinformatik I: Hello World Prof. Dr.-Ing. habil. Olaf Kolditz 1 Helmholtz Centre for Environmental Research UFZ, Leipzig 2 Technische Universität Dresden TUD, Dresden Dresden, 28. Oktober 2016 1/15
Mehr3D 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
MehrVerwenden Sie für jede Aufgabe die C++ IDE von Eclipse (pro Aufgabe ein Projekt).
3 Erste Programme 3.1 Übungsaufgabe Verwenden Sie für jede Aufgabe die C++ IDE von Eclipse (pro Aufgabe ein Projekt). 3.1.1 Aufgabe 1 Schreiben Sie ein C++ Programm, das einen String einliest und testet,
MehrHydroinformatik I: Klassen
Hydroinformatik I: Klassen Prof. Dr.-Ing. habil. Olaf Kolditz 1 Helmholtz Centre for Environmental Research UFZ, Leipzig 2 Technische Universität Dresden TUD, Dresden Dresden, 27. November 2015 1/13 Prof.
Mehr2 Programmieren in Java I noch ohne Nachbearbeitung
1 2 Programmieren in Java I noch ohne Nachbearbeitung 2.1 Was sind Programme? Eingabe = Verarbeitung = Ausgabe Die Eingabe kann sein Konstanten im Quelltext; Kommandozeilenparameter oder interaktive Eingabe
MehrGrundkurs C++ IDE Klassenhierarchien
Grundkurs C++ IDE Klassenhierarchien Martin Knopp & Johannes Feldmaier 20.04.2016 Folie 1/35 GK C++: IDE, Klassenhierarchien Martin Knopp & Johannes Feldmaier 20.04.2016 IDE Integrated Development Environment
Mehr3 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
MehrKapitel 13. Definition von Klassen. OOP Thomas Klinker 1
Kapitel 13 Definition von Klassen OOP Thomas Klinker 1 OOP Thomas Klinker 2 Datenabstraktion Der Mensch abstrahiert, um komplexe Sachverhalte darzustellen. Dinge und Vorgänge werden auf das wesentliche
MehrEinfü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
Mehr1.5. Strukturierte Anweisungen
1.5. Strukturierte Anweisungen Switch-Anweisung (C++): Initialisierungen dürfen nicht 'übersprungen' werden: switch (i) { int v1 = 2; // ERROR: jump past initialized variable case 1: int v2 = 3; //...
MehrC++11. neu in C++11: range-based for. Objektorientierte Programmierung mit C++ Ersetzung durch: 1. Elementares C++ int array[] = { 1, 2, 3, 4, 5 };
neu in C++11: range-based for int array[] = { 1, 2, 3, 4, 5 ; for (int x : array) // value x *= 2; C++11 for (int& x : array) // reference x *= 2; Ersetzung durch: { auto && range = range-init; for ( auto
MehrDAP2-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
MehrDie Syntax von Java. Ursprünge. Konsequenzen. Das Wichtigste in Kürze. Weiteres Vorgehen. Rund um Java. Sun Microsystems. Borland Software Corp
Ursprünge Die Syntax von Java Borland Software Corp 1995 Syntax: Pascal Objektorientierte Prorammierung optional Plattformen: Windows (Linux, Mac OS X) Sun Microsystems 1995 Syntax: C/C++ Objektorientiert
MehrLösung der OOP-Prüfung WS12/13
2.1.2013 Lösung der OOP-Prüfung WS12/13 1. Aufgabe a) Da der Konstruktor im protected-bereich steht, können keine eigenständigen Objekte der Klasse angelegt werden. Durch den protected-konstruktor wird
MehrJAVA 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
MehrRO-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
MehrEin- und Ausgabe mit Dateien
Ein- und Ausgabe mit Dateien Edouard Lamboray Informatik I für D-ITET (2004) Ein- und Ausgabekonzepte in C und C++ fstream header Streamobjekt Files schreiben und lesen Argumente von main 2 Vorbemerkungen
MehrInformatik I. Übung 2 : Programmieren in Eclipse. 5. März Daniel Hentzen
Informatik I Übung 2 : Programmieren in Eclipse 5. März 2014 Daniel Hentzen dhentzen@student.ethz.ch Downloads : http://n.ethz.ch/~dhentzen/download/ Heute 1. Nachbesprechung Übung 1 2. Theorie 3. Vorbesprechung
MehrJava 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
MehrMartin 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
MehrGrundkurs C++ IDE Klassenhierarchien
Grundkurs C++ IDE Klassenhierarchien Martin Knopp 03.05.2017 Folie 1/34 GK C++: IDE, Klassenhierarchien Martin Knopp 03.05.2017 IDE Integrated Development Environment Wir empfehlen: Qt Creator (Bestandteil
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Dynamische Datenobjekte Pointer/Zeiger, Verkettete Liste Eigene Typdefinitionen 1 Zeigeroperatoren & und * Ein Zeiger ist die Speicheradresse irgendeines Objektes. Eine
MehrGrundkurs C++ IDE Klassenhierarchien
Grundkurs C++ IDE Klassenhierarchien Martin Gottwald und Stefan Röhrl 8 Mai 2019 Folie 1/34 GK C++: IDE, Klassenhierarchien Martin Gottwald und Stefan Röhrl 8 Mai 2019 IDE - Integrated Development Environment
MehrInformatik 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
MehrWoche 6. Cedric Tompkin. April 11, Cedric Tompkin Woche 6 April 11, / 29
Woche 6 Cedric Tompkin April 11, 2018 Cedric Tompkin Woche 6 April 11, 2018 1 / 29 Figure: Mehr Comics Cedric Tompkin Woche 6 April 11, 2018 2 / 29 Learning Objectives Dir kennst Return-by-value und Return-by-reference.
MehrRepetitorium 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
MehrHydroinformatik I: Klassen
Hydroinformatik I: Klassen Prof. Dr.-Ing. habil. Olaf Kolditz 1 Helmholtz Centre for Environmental Research UFZ, Leipzig 2 Technische Universität Dresden TUD, Dresden Dresden, 11. November 2016 1/20 Prof.
MehrJava-Schulung Grundlagen
Java-Schulung Grundlagen Java 2 Standard Edition JDK 5 / 6 31.05.2008 Marcel Wieczorek 1 Themenübersicht Basiswissen Objektorientierung Datentypen Fehlerbehandlung Sonstiges Einführung Klassen, Strings
MehrTHE GO PROGRAMMING LANGUAGE. Michael Karnutsch & Marko Sulejic
THE GO PROGRAMMING LANGUAGE Part 1: Michael Karnutsch & Marko Sulejic Gliederung Geschichte / Motivation Compiler Formatierung, Semikolons Variablen, eigene Typen Kontrollstrukturen Funktionen, Methoden
Mehr7. Einführung in C++ Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt
7. Einführung in C++ Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt 1 Kontrollfragen Rekursion Was bedeutet Rekursion? Geben Sie Beispiele
MehrJAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)
JAVA BASICS 2. Primitive Datentypen 1. Warum Java? zunehmend weit verbreitet einfach und (relativ) sicher keine Adressrechnung, aber Pointer keine gotos kein Präprozessor keine globalen Variablen garbage
MehrGrundlagen 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
MehrObjektorientierte Programmierung mit C Strukturierte Anweisungen: Exception Handling
1.5. Strukturierte Anweisungen: Exception Handling Exceptions sind Objekte beliebigen Typs stack unwinding ruft Destruktoren aller erfolgreich konstruierten Objekte in einem catch-block kann eine Exception
MehrC++ - 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
MehrGrundlagen 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
MehrAuD-Tafelübung T-B5b
6. Übung Sichtbarkeiten, Rekursion, Javadoc Di, 29.11.2011 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit 3 Stack und Heap Stack Heap 4 Blatt 6 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit
MehrEin- und Ausgabe mit Dateien
Ein- und Ausgabe mit Dateien Edouard Lamboray Informatik I für D-ITET (2004) Ein- und Ausgabekonzepte in C und C++ fstream header Streamobjekt Files schreiben und lesen Argumente von main Vorbemerkungen
MehrÜbungsstunde: Informatik 1 D-MAVT
Übungsstunde: Informatik 1 D-MAVT Daniel Bogado Duffner Übungsslides unter: n.ethz.ch/~bodaniel Bei Fragen: bodaniel@student.ethz.ch Daniel Bogado Duffner 21.03.2018 1 Ablauf Quiz und Recap Floating Point
MehrObjektorientierte Programmierung mit C Datentypen (Strukturtypen)! p.name = "Willibald Wusel";
1.2. Datentypen (Strukturtypen) p.name = "Willibald Wusel"; Kombination mit Zeigern (dynamische Strukturobjekte) Person* anewperson = new Person; anewperson->age = 32; // short hand for: (* anewperson).age
Mehr76,81,85 11' 16, 17 10, 13, 14,44,47,49,69, 70,75,99 42,43,44,49 94,95 97,98 42,48,49,50,56,63, 65,92,105 97,98 19,94,108 19, 101
149 15 REGISTER abgeleitete Klassen abgeleitete Typen abort abstrakte Datentypen abstrakter Typname Adresse aktueller Parameter Anweisung append arge Argument argv Elementare Anweisungen Kontrollanweisungen
MehrProgrammieren II Abstrakte Klassen / Virtuelle Methoden. Programmieren II Abstrakte Klassen / Virtuelle Methoden
Einleitende Bemerkungen Einleitende Bemerkungen Aspekte Aufbau von sinnvollen Klassenhierarchien Verwaltung von Objekten unterschiedlichen Typs Mitarbeiter Besonderheiten der Anwendung jeder Angehörige
MehrKurze Einführung in die Programmiersprache C++ und in Root
Kurze Einführung in die Programmiersprache C++ und in Root Statistik, Datenanalyse und Simulation; 31.10.2006 Inhalt 1 Einführung in die Programmiersprache C++ Allgemeines Variablen Funktionen 2 1 Einführung
MehrHydroinformatik I - WiSe 2018/2019 V5: Klassen
Hydroinformatik I - WiSe 2018/2019 V5: Klassen Prof. Dr.-Ing. habil. Olaf Kolditz 1 Helmholtz Centre for Environmental Research UFZ, Leipzig 2 Technische Universität Dresden TUD, Dresden 3 Center for Advanced
MehrC++ 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
MehrC++ Kurs Teil 1. Architektur, Anwendungsspektrum, primitive Datentypen, Funktionsaufrufe, Referenzen, Klassen
C++ Kurs Teil 1 "hello world" Vergleich von C++ und Java Architektur, Anwendungsspektrum, primitive Datentypen, Funktionsaufrufe, Referenzen, Klassen C++ Spezialitäten Schlüsselwort 'const', Copy Constructor,
MehrEINFÜHRUNG IN DIE PROGRAMMIERUNG
EINFÜHRUNG IN DIE PROGRAMMIERUNG GRUNDLAGEN Tobias Witt!! 24.03.2014 ORGANISATORISCHES 09:00-10:30! Täglich Übungen zur Vertiefung! Laptop hier nicht erforderlich! Linux, OS X! Freitag: http://hhu-fscs.de/linux-install-party/
MehrGrundlagen der Informatik 12. Strukturen
12. Strukturen Strukturen und deren Komponenten Strukturen im Projekt Dynamisch erstellte Strukturen Strukturen und Operatoren Strukturen und Funktionen Einfach verkettete Liste Grundlagen der Informatik
MehrC++ 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,
MehrArbeitsblä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
MehrJAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)
JAVA BASICS 2. Primitive Datentypen 1. Warum Java? zunehmend weit verbreitet einfach und (relativ) sicher keine Adressrechnung, aber Pointer keine gotos kein Präprozessor keine globalen Variablen garbage
MehrSyntax 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
Mehr2. Datentypen und Variablen I
2. Datentypen und Variablen I Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)!Elemente eines C++ Programmes!Präprozessor #include!main()-funktion!ein- und Ausgabe mit cin und cout-objekten!deklaration
MehrObjektorientierte Programmierung mite**
mc Jürgen Franz/Christoph Mattheis Objektorientierte Programmierung mite** Systemunabhängig umsteigen auf C ++ Windowsprogrammierung Beispiele für UNIX Mit 66 Abbildungen Franzis 9 Inhalt 1 Überblick C++
MehrInformatik - Übungsstunde
Informatik - Übungsstunde Jonas Lauener (jlauener@student.ethz.ch) ETH Zürich Woche 08-25.04.2018 Lernziele const: Reference const: Pointer vector: iterator using Jonas Lauener (ETH Zürich) Informatik
MehrC++ 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
MehrGrundlagen. 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
MehrC++ kompakt - Teil 1. Danke an Matthias Biedermann Markus Geimer
C++ kompakt - Teil 1 Danke an Matthias Biedermann Markus Geimer Programmorganisation (1) Ein C++ Projekt kann auf mehrere Quelldateien verteilt werden. Dabei muss in genau einer Quelldatei die Funktion
MehrC++ Teil 7. Sven Groß. 3. Juni Sven Groß (IGPM, RWTH Aachen) C++ Teil 7 3. Juni / 16
C++ Teil 7 Sven Groß 3. Juni 2016 Sven Groß (IGPM, RWTH Aachen) C++ Teil 7 3. Juni 2016 1 / 16 Themen der letzten Vorlesung dynamische Speicherverwaltung (Wdh.) Cast bei Zeigern STL-Vektoren + Live Programming
MehrVariablen 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,
MehrRO-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
MehrElementare 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
MehrGestrige 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
MehrEinführung in die Programmiersprache C
Einführung in die Programmiersprache C 4 Storage classes Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät Compilation units Compilierung eines mehrteiligen Programms:
MehrShort Introduction to C# C# (C SHARP) Microsofts Antwort auf Java
Short Introduction to C# C# (C SHARP) Microsofts Antwort auf Java Short Introduction to C# C# (C SHARP) Microsofts Antwort auf Java Standardisierung durch die ECMA und ISO Short Introduction to C# C# (C
MehrC++ - Einführung in die Programmiersprache Ein- und Ausgabe in die Konsole. Leibniz Universität IT Services Anja Aue
C++ - Einführung in die Programmiersprache Ein- und Ausgabe in die Konsole Leibniz Universität IT Services Anja Aue Eingabe (input) und Ausgabe (output) In diesem Kapitel wird nur das Lesen von und das
MehrInformatik für Mathematiker und Physiker Woche 7. David Sommer
Informatik für Mathematiker und Physiker Woche 7 David Sommer David Sommer 30. Oktober 2018 1 Heute: 1. Repetition Floats 2. References 3. Vectors 4. Characters David Sommer 30. Oktober 2018 2 Übungen
MehrMartin 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 Welche Arten von Anweisungen gibt es? Anweisungen
Mehr