Überblick. 1. Einführung C++ / Entwicklung / Sprachfamilie
|
|
- Greta Grosser
- vor 7 Jahren
- Abrufe
Transkript
1 Überblick 1. Einführung C++ / Entwicklung/ Sprachfamilie 2. Nicht objektorientierte Erweiterungen von C 2.1 Das Ein-/Ausgabekonzept von C Referenzen in C Heap-Allokatoren in C++ 3. Grundlagen des Typkonzepts von C++ 4. Ziele der Objektorientierung 5. Objekt und Klasse, Elementfunktionen (Methoden) 6. Konstruktoren, Copy-Konstruktor, Destruktor und Wertzuweisung 7. Operatoren, Überladen von Operatoren 8. Elementobjekte und Elementobjektkonstruktoren 9. Klassenhierarchien und Vererbung 10. Polymorphie 11. Abstrakte Klassen Peter Sobe 1 1. Einführung C++ / Entwicklung / Sprachfamilie Die folgenden Folien (inhaltlich von Helmke / Isernhagen übernommen) zeigen: die Charakteristik von C++ im Vergleich zu C die Nachteile die Vorteile die Entwicklungsstufen der Standards von C/C++ die Sprachfamilie Peter Sobe 2
2 Sowohl als auch! C++ Fortschritt oder Chaos? C++ bietet mehr Leistungsumfang gegenüber C Objektorientierung Abstrakte Datentypen Generische Programmierung Einiges könnte man aber auch chaotisch nennen: Adressarithmetik Umgang mit Pointern Klare Nachteile von C++: nicht durchweg systematischer Aufbau, geschuldet der Abwärtskompatibilität nicht konsequent statisch typisiert zum Teil kryptische Notation Peter Sobe 3 Vorteile von C++ Argumente für C/C++: Standardisiert und weit verbreitet Verschiedene Abstraktionsebenen und Programmierparadigmen Speicher- und Laufzeiteffizient C++ ist eine bessere Sprache für große Softwaresysteme: Man kann ein kleines Programm (ca Zeilen) zum Laufen bringen selbst wenn man jeden Programmierstil außer acht lässt. Für größere Programme gilt das nicht mehr! Weshalb? Wenn die Struktur eines Zeilen-Programms schlecht ist, führt fast jede Fehlerbereinigung zu einem neuen Fehler. C++ wurde so entworfen, dass auch größere Programme vernünftig strukturiert werden können und eine einzelne Person ein weitaus größere Menge an Programmcode überblicken kann. Zusätzlich sollte eine einzelne Programmzeile in C++ weitaus ausdrucksstärker sein als eine in C oder Pascal. Peter Sobe 4
3 Entwicklungsstufen von C zu C++ ANSI/ISO-C++ K&R C ANSI/ISO-C89 ANSI/ISO-C99 Peter Sobe 5 Die Großfamilie der C-Sprachen K&R C (1972, Kerningham-/Ritchie, Entwickler von C) ANSI/ISO-C89 ANSI/ISO-C99 C++ (1985, Bjarne Stroustrup) ANSI/ISO-C++ 98 ANSI/ISO-C++ 0x Java C++-ähnliche Programmiersprache, SUN 1995 C# C++-ähnlich, Microsoft 2001 Peter Sobe 6
4 Überblick 1. Einführung C++ / Entwicklung/ Sprachfamilie 2. Nicht objektorientierte Erweiterungen von C 2.1 Das Ein-/Ausgabekonzept von C Referenzen in C Heap-Allokatoren in C++ 3. Grundlagen des Typkonzepts von C++ 4. Ziele der Objektorientierung 5. Objekt und Klasse, Elementfunktionen (Methoden) 6. Konstruktoren, Copy-Konstruktor, Destruktor und Wertzuweisung 7. Operatoren, Überladen von Operatoren 8. Elementobjekte und Elementobjektkonstruktoren 9. Klassenhierarchien und Vererbung 10. Polymorphie 11. Abstrakte Klassen Peter Sobe 7 2. Überblick zu ausgewählten Konzepten von C++ (nicht objektorientierte Erweiterungen) 2.1 Das Ein-/Ausgabekonzept von C++ - Unterschiede gegenüber C - Ausgabe - Eingabe - Formatierung 2.2 Referenzen in C++ - Zeigerkonzept in C und Referenzen - Gemeinsamkeiten / Unterschiede 2.3 Speicherallokation in C++ Peter Sobe 8
5 2.1 Das Ein-/Ausgabekonzept von C++ Wir haben das E/A-Konzept von C kennen gelernt. Die Definitionsdatei <stdio.h> stellt alle notwendigen Moduln für eine formatgebundene E/A zur Verfügung. Dieses Konzept können Sie in C++ einschränkungslos auch verwenden. In C++ steht über die Definitionsdatei <iostream.h> ein weiteres E/A-Konzept zur Verfügung. Dieses Konzept realisiert eine Umwandlung zwischen einer Zeichenkettendarstellung und der internen Darstellung gemäß den bekannten Standardtypen (int, float,...), wobei Formate nicht angegeben werden müssen. Peter Sobe 9 Das Ein-/Ausgabekonzept von C++ Besonders wichtig ist die Erweiterbarkeit der E/A für vom Nutzer neu definierte Typen (Klassen). Die Realisierung dieser E/A ist objektorientiert angelegt (Klasse basic_ ios). Analog zu den C E/A-Dateien existieren in C++ E/A-Objekte: C C++ Objekt C++ Klasse stdin cin basic_ istream stdout cout basic_ ostream stderr cerr basic_ostream Die beiden folgenden Folien von Helmke / Isernhagen stellen übersichtlich die beiden E/A-Konzepte von C und C++ gegenüber. Peter Sobe 10
6 R.Großmann 11 R.Großmann 12
7 Das Ein-/Ausgabekonzept von C++ Nutzung des cout- und cin-objektes Der folgende Programmausschnitt zeigt die typische Nutzung der nicht-formatgebundenen E/A in C++: #include <iostream.h> void main() { int i; float f=7.5; char c[20]= i+f ist gleich ; cout<< \nprogrammstart ; cout<< \neingabe i= ; cin>>i; cout<<c<<i+f<< \n ; } Bemerkenswert ist das Fehlen von Formatierungen (es wird mit Standards gearbeitet) und die Nutzung von Operatoren >> bzw. << für die Ein- bzw. Ausgabe. Peter Sobe 13 Das Ein-/Ausgabekonzept von C++ Nutzung der <<- bzw. >>-Operatoren Die <<- bzw >>-Operatoren wurden bewusst als Infix-Operatoren gewählt ( op1 << op2) mit der Bedeutung: cout<< operand - wandle den operand in eine Zeichenkette um und gib sie in das cout-objekt aus cin>> operand - lies eine Zeichenkette aus dem cin- Objekt und wandle sie typgemäß in die Interndarstellung von operand um Damit ist es möglich, diesen Operator für neu definierte Typen, z.b. complex zu überladen und in gleicher Weise komplexe Werte auszugeben:... complex c;... cout<<c; Peter Sobe 14
8 Das Ein-/Ausgabekonzept von C++ Besonderheiten der Eingabe Der >> -Operator nimmt nur solche Zeichen entgegen, die für den jeweiligen Typ zugelassen sind. C-Trennzeichen: Enter, Leerzeichen, \n, \t, \r, \f und EOF(Ctrl - C) beenden eine Eingabe von cin. Damit wird die Eingabe von Zeichen und Zeichenketten ggf. problematisch.... char c;... cin>>c; Liest nächstes Zeichen ein, das von einem Trennzeichen verschieden ist. Peter Sobe 15 Das Ein-/Ausgabekonzept von C++ Besonderheiten der Eingabe get-funktion Um auch Trennzeichen wie Enter, Leerzeichen usw. mit zu lesen, muss die Funktion get() verwendet werden. Sie liest bis EOF(Ctrl - C), was allerdings auch das Programm beendet. (vgl. cin2.cpp) Wird get() mit Parametern aufgerufen, kann eine sichere Eingabe erfolgen:... char c[100];... cin.get(c,99, \n ); Es werden alle Zeichen bis zum Zeilenende gelesen, aber max. 99 Zeichen weiter gegeben. Ein weiteres Beispiel: char i[10]; // 10.Zeichen ist Stringabschluss cout<< "\nprogrammstart \n"; cin.get(i,10,'\n'); cout<<i; cout<<"\nende"; Peter Sobe 16
9 Das Ein-/Ausgabekonzept von C++ formatgebundene Ein- und Ausgabe Formatgebundene Ausgaben (teilweise auch für Eingaben möglich) können über ios-funktionen und Setzen von Flags oder Nutzung von Manipulatoren (<iomanip.h>) vorgenommen werden. Wichtige ios-funktionen: width(b) Breite der Ausgabe, b Zeichen fill( # ) Füllzeichen precision(b) b gültige Ziffern werden ausgegeben Peter Sobe 17 Mit der ios-funktion: Das Ein-/Ausgabekonzept von C++ ios-flags setf(ios:: flag1 ios:: flag2 ) auch nur 1 Parameter möglich können durch verschiedene Flagkombinationen z.b. Feldausrichtung (links,rechts), Ausgabeformen ganzer Zahlen (Oktal,Hexadezimal) oder Gleitkommazahlen (Dezimal oder mit Exponent) eingerichtet werden. Mit unsetf(... ) lassen sich Einstellungen rücksetzen. Peter Sobe 18
10 Das Ein-/Ausgabekonzept von C++ Manipulatoren Anstelle von ios-funktionen lassen sich zum Teil bequemer die gleichen Wirkungen mit sogenannten Manipulatoren erreichen. Manipulatoren können direkt mit << in den Ausgabestrom geschrieben werden, z.b....cout<<setw(20)<<scientific<<f; In den Beispielprogrammen kann die Wirkung der ios-flags und der Manipulatoren studiert werden. Peter Sobe 19 Beispiele ios und Manipulatoren (1) #include <iostream.h> #include <iomanip.h> #include <stdio.h> void main() { int i; // 1) Dezimal/Hexadezimal/Oktal // ============================ cout.setf(ios::showbase ios::uppercase ios::dec); for (i=0; i<=15; i++) { cout.width(4); cout << i; } cout << endl; cout.unsetf(ios::dec); cout.setf(ios::hex); for (i=0; i<=15; i++) { cout.width(4); cout << i; } cout << endl; cout.unsetf(ios::hex); cout.setf(ios::oct); for (i=0; i<=15; i++) { cout.width(4); cout << i; } cout << endl << endl; Peter Sobe 20
11 Beispiele ios und Manipulatoren (2) // 2) Ausrichtung und Fuellzeichen // =============================== cout.unsetf(ios::oct); cout.setf(ios::dec); cout.setf(ios::left); cout.fill('.'); cout.width(10); cout << 2002 << endl; cout.setf(ios.right); cout.fill('.'); cout.width(10); cout << 2003 << endl << endl; // 3) Ausgabe von Gleitkommazahlen // =============================== double x = 12.34, y = , z = 1e5; printf("festpunkt : (%12.2lf,%12.2lf,%12.2lf)\n", x, y, z); cout.fill(' '); cout.setf(ios::fixed); cout.precision(2); cout << "Festpunkt : ("; cout.width(12); cout << x << ','; cout.width(12); cout << y << ','; cout.width(12); cout << z << ')' << endl; Peter Sobe 21 Beispiele ios und Manipulatoren (3) printf("gleitpunkt : (%12.2le,%12.2le,%12.2le)\n", x, y, z); cout.unsetf(ios::floatfield ios::uppercase); cout.fill(' '); cout.setf(ios::scientific); cout.precision(2); cout << "Gleitpunkt : ("; cout.width(12); cout << x << ','; cout.width(12); cout << y << ','; cout.width(12); cout << z << ')' << endl; } Peter Sobe 22
12 2.2 Referenzen in C++ Eine Referenz ist ein alternativer Name (Alias) für ein Objekt. Die Hauptanwendungen in C++ sind: die Angabe von Argumenten (Parameterkonzept) und Rückkehrwerten bei Funktionen und beim Überladen von Operatoren in Klassen In C++ ist die Schreibweise X& und bedeutet Referenz auf Typ X. Beispiel:... int i=1; int& r =i; // r ist ein zweiter Name für i Peter Sobe 23 Initialisieren und Ändern von Referenzvariablen in C++ Eine Referenz muss stets initialisiert werden. Eine Referenz stellt so etwas wie einen konstanten Zeiger dar. Beispiel: int i=2; int& ri=i; // ri ist Referenz auf i ri++; // es wird der Wert von i auf 3 erhöht! ri=55; // auch das geht, i ist danach 55 const int& rc=2; // rc ist Referenz auf eine Konstante, // nur mit const möglich ri = rc; // danach bekommt rc und auch i den Wert 2 Falsch: rc = 42, rc++; // falsch, da rc eine Konstante // referenziert Peter Sobe 24
13 Referenzen bei der Parametervermittlung in C++ Aus C sind die beiden Parametervermittlungsarten: call by value und call by reference bekannt. Call by reference wird dabei über Zeiger realisiert. Das ist auch in C++ so möglich. Eine weitere Form des call by reference ist aber die Verwendung von Referenzen anstelle von Zeigern (vgl. Demo-Programme). Peter Sobe 25 Beispielcode für Referenzen void main() { int n1=2, n2, n3; int& r=n2; n2=n3=0; plus_minus(n1, n2, n3); cout <<"\n1="<<n1<<" n2="<<n2<<" n3="<<n3<<endl; //mit Referenz r das gleiche Resultat n2=n3=0; plus_minus(n1, r, n3); cout <<"\n1="<<n1<<" n2="<<n2<<" n3="<<n3<<endl; } void plus_minus(int a, int& b, int& c) { b=a+1; c=b-1; } Peter Sobe 26
14 2.3 Heap-Allokation in C++ Durch Allokation wird dynamisch zur Programmlaufzeit Speicher in einem speziellen Teil des Arbeitsspeichers, der Halde (Heap) reserviert. In C haben Sie die Funktionen malloc(...), calloc(...),... und die Freigabefunktion free(...) kennengelernt. In C++ stehen dafür die Operatoren new und delete zur Verfügung. Die folgenden Folien (inhaltlich von Helmke und Isernhagen übernommen) geben einen kurzen Einblick in das Wesen der Werte- und Zeigersemantik in C und C++ sowie die Syntax und Semantik der Operatoren new und delete! Peter Sobe 27 Zeigersemantik in C und C++ In C/C++ hat der Programmierer zwei verschiedene Möglichkeiten, auf Daten zuzugreifen Er kann direkt mit den Werten oder Variablen arbeiten (Wertesemantik) Er kann indirekt über einen Zeiger auf den Wert zugreifen (Zeigersemantik) Bei der Wertesemantik werden die Daten vom Laufzeitsystem auf den Programmstack verwaltet Bei der Zeigersemantik muss der Programmiere explizit auf dem Heap Speicherplatz reservieren und später auch wieder freigeben Peter Sobe 28
15 Zeigersemantik in C und C++ Wertesemantik in C/C++ Zeigersemantik in C Zeigersemantik in C++ int a,b; a = 123; b = a; int *a,*b; a = (int*)malloc(sizeof(int)); b = (int*)malloc(sizeof(int)); *a = 123; *b = *a; free(a); free(b); int *a, *b; a = new int; b = new int; *a = 123; *b = *a; delete a; delete b; Peter Sobe 29 Operator new (1) Mit dem Operator new wird Speicher im Heap-Speicher angefordert und der Zeigervariablen zugewiesen: Beispiele: int *iptr = new int; int *kptr = new int(64); int *jptr = new int[30]; // ein Speicherbereich für 30 int Werte // wird angefordert Keine Initialisierung für Standardtypen Wenn eine C++ Speicheranforderung nicht erfüllt werden kann, wird ein Ausnahmeobjekt vom Typ bad_alloc erzeugt, auf das dann im Rahmen der Ausnahmebehandlung reagiert werden kann. Peter Sobe 30
16 Operator new (2) In C++ gibt es auch die alternative Möglichkeit, die konventionelle Fehlerbehandlung wie in C zu benutzen #include <new> using namespace std; int vector = new (nothrow) int[20]; If (!vector) { } // kein Speicherplatz mehr verfügbar else { } // alles in Ordnung! Peter Sobe 31 Operator delete Wird der über new angeforderte Speicherbereich nicht mehr verwendet, so muss er per delete explizit wieder freigegeben werden. int *pint = new int; int *pintfeld = new int[64]; delete pint; delete [] pintfeld; delete kann nur in Verbindung mit new eingesetzt werden. int i, *pint = new int; int *pint2 = &i; delete pint; delete pint2; // Fehler, da nicht per new erzeugt delete auf einen Null-Pointer hat keine Auswirkungen. Peter Sobe 32
Überblick. 7. Überladen von Operatoren
Überblick 1. Einführung C++ / Entwicklung/ Sprachfamilie 2. Nicht objektorientierte Erweiterungen von C 2.1 Das Ein-/Ausgabekonzept von C++ 2.2 Referenzen in C++ 2.3 Heap-Allokatoren in C++ 3. Grundlagen
MehrProgrammierung mit C Zeiger
Programmierung mit C Zeiger Zeiger (Pointer)... ist eine Variable, die die Adresse eines Speicherbereichs enthält. Der Speicherbereich kann... kann den Wert einer Variablen enthalten oder... dynamisch
MehrInhalt Streams Eingabe / Ausgbe in C Dateizugriff in C Eingabe / Ausgabe in C++ Dateizugriff in C++ Error Handling
Input / Output in C, C++ Inhalt Streams Eingabe / Ausgbe in C Dateizugriff in C Eingabe / Ausgabe in C++ Dateizugriff in C++ Error Handling Page 1 Ausgaben in C,C++ - generell Fuer C basierte Ausgaben:
MehrC vs. C++ Sebastian Meyer. Proseminar C - Grundlagen und Konzepte. Universität Hamburg
C vs. C++ Sebastian Meyer Universität Hamburg Proseminar C - Grundlagen und Konzepte 2013 1 / 31 Gliederung 1 Einführung 2 Vergleich der Spracheigenschaften 3 Neue Sprachelemente in C++ 4 Fazit 5 Zusammenfassung
Mehr4. Objektorientierte Programmierung mit C++
4. Objektorientierte Programmierung mit C++ Einführung C++ / Entwicklung/ Sprachfamilie Nicht objektorientierte Erweiterungen von C Grundlagen des Typkonzepts von C++ Ziele der Objektorientierung Objekt
MehrDie Programmiersprache C
Die Programmiersprache C höhere Programmiersprache (mit einigen Assembler-ähnlichen Konstrukten) gut verständliche Kommandos muss von Compiler in maschinenlesbaren Code (Binärdatei) übersetzt werden universell,
MehrInhalte. Einführung. Algorithmus, Programmiersprache, Compiler und Linker. Kontrollstrukturen. Präprozessoranweisungen. Libraries
INFIO.1 Informatik I Einführung Algorithmus, Programmiersprache, Compiler und Linker Datentypen Kontrollstrukturen Präprozessoranweisungen Libraries Funktionen und Klassen Inhalte INFIO.2 Auszug Daten
MehrWintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 18
Kapitel 3 Datentypen und Variablen Seite 1 von 18 Datentypen - Einführung - Für jede Variable muss ein Datentyp festgelegt werden. - Hierdurch werden die Wertemenge und die verwendbaren Operatoren festgelegt.
MehrPass by Value Pass by Reference Defaults, Overloading, variable Parameteranzahl
Funktionen Zusammenfassung von Befehlssequenzen als aufrufbare/wiederverwendbare Funktionen in einem Programmblock mit festgelegter Schnittstelle (Signatur) Derartige prozedurale Programmierung erlaubt
Mehrmagnum C++ WALTER SAUMWEBER kompakt komplett kompetent
magnum C++ WALTER SAUMWEBER kompakt komplett kompetent Quickview... 5 Liebe Leserin, lieber Leser... 13 Teil 1 Grundlagen... 15 1 Was ist Programmieren?... 17 1.1 Was ist eigentlich ein Computerprogramm?...
MehrAngewandte Mathematik und Programmierung
Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens SS2013 Inhalt Projekt Vorlesung: praktische Implementierung üben Ein und
MehrTheorie zu Übung 8 Implementierung in Java
Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Theorie zu Übung 8 Implementierung in Java Klasse in Java Die Klasse wird durch das class-konzept
MehrUnterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur
Unterprogramme Unterprogramme sind abgekapselte Programmfragmente, welche es erlauben, bestimmte Aufgaben in wiederverwendbarer Art umzusetzen. Man unterscheidet zwischen Unterprogrammen mit Rückgabewert
Mehr10. Klassen. Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)
10. Klassen Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)!Objektorientierte Programmierung!Das Konzept der Klassen!Members!Objekte!Konstruktoren und Destruktoren!this-Pointer!Public und Private
MehrDeklarationen in C. Prof. Dr. Margarita Esponda
Deklarationen in C 1 Deklarationen Deklarationen spielen eine zentrale Rolle in der C-Programmiersprache. Deklarationen Variablen Funktionen Die Deklarationen von Variablen und Funktionen haben viele Gemeinsamkeiten.
MehrKapitel 1: Einführung
10 Kapitel 1: Einführung 1.1 Was ist eine Programmiersprache? 1.2 Details zu C++ 1.3 Phasen der Programmierung 1.4 Ein erstes Programm: Hello World! 1.5 Addition zweier Zahlen 1.6 Entscheidungen 1.1 Was
Mehr2. Programmierung in C
2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten Operatoren, Ausdrücke und Anweisungen Kontrollstrukturen (Steuerfluss)
MehrProgrammieren in C++ Arrays, Strings und Zeigerarithmetik
Programmieren in C++ Arrays, Strings und Zeigerarithmetik Inhalt Eindimensionale C-Arrays C-Strings und Strings (Mehrdimensionale C-Arrays) Arrays und Vektoren (C++) Unique Pointers (C++11) Zeigerarithmetik
MehrC++ - Eine Ubersicht fur Java-Programmierer
C++ - Eine Ubersicht fur Java-Programmierer Daniel Wasserrab Lehrstuhl fur Programmierparadigmen Universitat Karlsruhe 23. April 2008 C++ I Entwickelt Anfang der 80er von Bjarne Stroustrup I Beeinut von
MehrKlausur in Programmieren
Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Wintersemester 2010/11, 17. Februar 2011 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt)
MehrHochschule Darmstadt Informatik-Praktikum (INF 1) WS 2014/2015 Wirtschaftsingenieur Bachelor 4. Aufgabe Datenstruktur, Dateieingabe und -ausgabe
Aufgabenstellung Für ein Baumkataster sollen für maximal 500 Bäume Informationen gespeichert werden, die alle nach der gleichen Weise wie folgt strukturiert sind: Nummer Bauminfo Baumart Hoehe Baum Umfang
MehrPROGRAMMIEREN MIT C. }, wird kompiliert mit dem Befehl. (-o steht für output) und ausgeführt mit dem Befehl
PROGRAMMIEREN MIT C Allgemeine hinweise Alles was hier beschrieben wird, soll auch ausprobiert werden. Warum C? Weil die coolen Dinge mit C am einfachsten gehen. Das werden wir in den folgenden Übungen
MehrProgrammiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm
Programmiersprachen Einführung in C Teil 2: Prof. Dr. int main (int argc, char *argv[]) int sum = 0; for (i = 0; i
MehrAnwendung höherer Programmiersprachen. Formatierte Ausgabe mit cout. Angewandte Informatik I C / C++ Teil B: Formatierte Ein- und Ausgabe
Angewandte Informatik I Anwendung höherer Programmiersprachen C / C++ Vorlesung der FH Münster Prof. Dr.-Ing. H. Bösche // Programm b0301208 #include { int i = 1, j = 2; cout
MehrMethoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only
Methoden Wie Konstruktoren und Destruktoren zum Auf- und Abbau von Objekten definiert werden, Wie inline-methoden Methoden,, Zugriffsmethoden und Read-Only Only- Methoden einzusetzen sind, Der this-pointer
MehrEin erstes Java-Programm
Ein erstes Java-Programm public class Rechnung { public static void main (String [] arguments) { int x, y; x = 10; y = -1 + 23 * 33 + 3 * 7 * (5 + 6); System.out.print ("Das Resultat ist "); System.out.println
Mehr8. Objektorientierung und C++
8. Objektorientierung und C++ Inhalt: 8.1 Objektorientierung 8.2 Abstrakte Datentypen 8.3 Ziele der Objektorientierung 8.3 C++ - Erweiterungen 8.4 C++ - Klassen, Objekte und Methoden 8.5 C++ - Vererbung
MehrHochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe
Aufgabenstellung Für eine Hausverwaltung sollen für maximal 500 Wohnungen Informationen gespeichert werden, die alle nach der gleichen Weise wie folgt strukturiert sind: Art Baujahr Wohnung Whnginfo Nebenkosten
MehrRepetitorium Informatik (Java)
Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen
MehrEs ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen.
Ziele sind das Arbeiten mit Funktionen und dem Aufzählungstyp (enum), sowie - einfache Verzweigung (if else) - Alternativen switch case - einfache Schleifen (while oder do while) Aufgabe 3: Diese Aufgabe
MehrFunktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Gute Lösung:
Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Der Sourcecode wird an den entsprechenden Stellen im Programm wiederholt Programm wird lang
MehrProf. W. Henrich Seite 1
Klasse - ist ein benutzerdefinierter Datentyp (Referenztyp) - hat Datenelemente - hat Methoden - Konstruktor ist spezielle Methode zum Erstellen eines Objektes vom Typ der Klasse (Instanz) - jede Klasse
MehrObjektorientiertes Programmieren für Ingenieure
Uwe Probst Objektorientiertes Programmieren für Ingenieure Anwendungen und Beispiele in C++ 18 2 Von C zu C++ 2.2.2 Referenzen und Funktionen Referenzen als Funktionsparameter Liefert eine Funktion einen
MehrDie Programmiersprache C Eine Einführung
Die Programmiersprache C Eine Einführung Christian Gentsch Fakutltät IV Technische Universität Berlin Projektlabor 2. Mai 2014 Inhaltsverzeichnis 1 Einführung Entstehungsgeschichte Verwendung 2 Objektorientiert
MehrProgrammierkurs C++ Kapitel 9, Überladen Seite 1
Programmierkurs C++ Kapitel 9, Überladen Seite 1 Funktionen überladen int datum (int jahr); int datum (char person[]); sind in C++ zwei verschiedene Funktionen, die beide denselben Funktionsnamen haben.
MehrÜbungen zu C++ Kapitel 1
Übungen zu C++ Kapitel 1 Aufgabe 1 Ergänze den Text. a) Die sechs logischen Einheiten eines Computers sind Eingabe-Einheit, Ausgabe-Einheit, RAM, ALU, CPU, Plattenspeicher. b) Die Programme, welche Hochsprachenprogramme
MehrVorkurs C++ Programmierung
Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:
MehrAllgemeines. Verschiedene Sprachkonzepte C-Sprachfamilie C-ähnliche Programmiersprachen Allgemeines zu C. #include <stdio.h>
Allgemeines Verschiedene Sprachkonzepte C-Sprachfamilie C-ähnliche Programmiersprachen Allgemeines zu C #include main() { printf( hello world\n ); } Peter Sobe 1 Die Großfamilie der C-Sprachen
MehrKlausur in Programmieren
Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Sommer 2014, 16. Juli 2014 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt) Name: Matrikelnr.:
MehrInformationsverarbeitung
1/19 Informationsverarbeitung Einführung in das Programmieren mit C++ Markus Uhlmann Institut für Hydromechanik Karlsruher Institut für Technologie www.ifh.kit.edu WS 2011/2012 Vorlesung 13 (Download Quelldateien)
MehrPrimitive Datentypen
Primitive Datentypen 2 Arten von Datentypen: primitive Datentypen (heute) Objekte (später) Java ist streng typisiert, d.h. für jede Variable muß angegeben werden was für eine Art von Wert sie aufnimmt.
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
MehrC++ - Operatoren. Eigene Klassen mit neuen Funktionen
C++ - Operatoren Eigene Klassen mit neuen Funktionen Übersicht Klassen bisher Eigene Operatoren definieren 2 Bisher Durch Kapselung, Vererbung und Polymorphy können nun eigene Klassen definiert werden,
Mehr11.3 Virtuelle Methoden
11.3 Virtuelle Methoden Überdeckte Methoden: Betrachten wir noch einmal unsere Klassen Employee und Manager. class Employee void print() const cout
MehrThemen. Statische Methoden inline Methoden const Methoden this Zeiger Destruktor Kopierkonstruktor Überladen von Operatoren
Themen Statische Methoden inline Methoden const Methoden this Zeiger Destruktor Kopierkonstruktor Überladen von Operatoren Statische Methoden Klassenmethoden Merkmal der Klasse nicht eines einzelnen Objekts
Mehr2 Einfache Rechnungen
2 Einfache Rechnungen 2.1 Zahlen Computer, auch bekannt als Rechner, sind sinnvoller eingesetzt, wenn sie nicht nur feste Texte ausgeben, sondern eben auch rechnen. Um das Rechnen mit Zahlen zu verstehen,
MehrProbeklausur: Programmierung WS04/05
Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,
Mehr2. Semester, 2. Prüfung, Lösung
2. Semester, 2. Prüfung, Lösung Name Die gesamte Prüfung bezieht sich auf die Programmierung in C++! Prüfungsdauer: 90 Minuten Mit Kugelschreiber oder Tinte schreiben Lösungen können direkt auf die Aufgabenblätter
MehrDie elementare Ausgabe von Daten auf externe Medien, wie Dateien und das Einlesen davon wird demonstriert.
Ein- und Ausgabe Die elementare Ausgabe von Daten auf externe Medien, wie Dateien und das Einlesen davon wird demonstriert. Komplexe E/A-Operationen werden erst diskutiert, nachdem das Klassenkonzept erarbeitet
MehrObjektorientierte Programmierung
Programmierkurs C++ Kapitel 7:Objektorientierte Programmierung Seite 1 Objektorientierte Programmierung If programming in PASCAL is like put in a straightjacket, then programming in C is like playing with
MehrEinführung in die Programmierung Arrays, Zeiger, Strings. Arvid Terzibaschian
Einführung in die Programmierung Arvid Terzibaschian 1 Arrays 2 Arrays: Motivation Gegeben: monatliche Durchschnittstemperaturen der letzten 5 Jahre Gesucht: Mittelwerte für Jahre, Monate, Jahreszeiten,
MehrDr. Monika Meiler. Inhalt
Inhalt 11 Dynamische Feldvereinbarung... 11-2 11.1 Dynamische Vereinbarung von Vektoren... 11-3 11.2 Dynamische Vereinbarung von Matrizen... 11-5 11.3 Die Kommandozeile... 11-8 Propädeutikum 11-1/8 11
MehrGrundlagen der Programmiersprache C++
/ TU Braunschweig Grundlagen der Programmiersprache C++ Um den Studierenden den Einstieg in die FE-Programmierung zu erleichtern werden die wesentlichen Elemente eines C-Programmes beschrieben, soweit
MehrJavakurs zu Informatik I. Henning Heitkötter
Javakurs zu Informatik I Arrays vergleichen Implementieren Sie folgende Methode, die prüft, ob die Elemente der beiden Arrays an jeder Position übereinstimmen: public static boolean identisch(int[] a,
MehrDie Programmiersprache C99: Zusammenfassung
Die Programmiersprache C99: Zusammenfassung Jörn Loviscach Versionsstand: 7. Dezember 2010, 19:30 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen in der Vorlesung. Videos dazu: http://www.youtube.com/joernloviscach
MehrC# im Vergleich zu Java
C# im Vergleich zu Java Serhad Ilgün Seminar Universität Dortmund SS 03 Gliederung Entstehung von C# und Java Überblick von C# und Java Unterschiede und Gemeinsamkeiten Zusammenfassung und Ausblick Entstehung
MehrProgrammierung in C. Grundlagen. Stefan Kallerhoff
Programmierung in C Grundlagen Stefan Kallerhoff Vorstellungsrunde Name Hobby/Beruf Schon mal was programmiert? Erwartungen an den Kurs Lieblingstier Für zu Hause C-Buch online: http://openbook.rheinwerk-verlag.de/c_von_a_bis_z/
Mehr1. Erläutern Sie die Aufgaben von Datentypen in der imperativen Programmierung.
1. Erläutern Sie die Aufgaben von Datentypen in der imperativen Programmierung. Beschreiben Sie ferner je einen frei gewählten Datentyp aus der Gruppe der skalaren und einen aus der Gruppe der strukturierten
MehrJavaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden
Javaprogrammierung mit NetBeans Variablen, Datentypen, Methoden Programmieren 2 Java Bezeichner Bezeichner: Buchstabe _ $ Buchstabe _ $ Ziffer Groß- und Kleinbuchstaben werden strikt unterschieden. Schlüsselwörter
MehrModellierung und Programmierung 1
Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 19. November 2015 Gültigkeitsbereich (Scope) von Variablen { int m; {
MehrIn der Computersprache C ist die Standardmethode zur Behandlung von Matrizen durch
Kapitel Matrizen in C++ In der Computersprache C ist die Standardmethode zur Behandlung von Matrizen durch 1 const int n=10; 3 double a[n][n]; gegeben. Allerdings gibt es bei dieser Methode eine Reihe
MehrJava Einführung Methoden in Klassen
Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding
MehrC++ Programmierung. Uwe Naumann. LuFG Informatik 12, RWTH Aachen University, Germany
C++ Programmierung Uwe Naumann LuFG Informatik 12, RWTH Aachen University, Germany Leave me alone world... Hauptprogramm int main(); return 0; Ausgabe auf Bildschrim #include std :: cout
Mehr(allgemeine) OOP in C++ Klassen und header-files Konstruktorn / Destruktoren Speicherverwaltung C++ Standard Library / SLT
Architektur Übersicht (allgemeine) OOP in C++ Polymorphie Virtuelle Funktionen Kompilieren Linken dynamische/statische Bibliotheken Tutorial: vs2008+ogre+(campus modell) Architektur (allgemeine) OOP in
MehrModerne C-Programmierung
Xpert.press Moderne C-Programmierung Kompendium und Referenz Bearbeitet von Helmut Schellong 1. Auflage 2005. Buch. xii, 280 S. ISBN 978 3 540 23785 3 Format (B x L): 15,5 x 23,5 cm Weitere Fachgebiete
Mehr9 Zeiger (Pointer). Dynamischer Speicher
9 Zeiger (Pointer). Dynamischer Speicher Jörn Loviscach Versionsstand: 25. September 2013, 18:07 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen beim Ansehen der Videos: http://www.j3l7h.de/videos.html
MehrFakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012
WS 2011/2012 Fakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012 Prof. Dr. Robert Lorenz Musterlösung zur Vorlesung Informatik I, Extrablatt zu komplexen Datenstrukturen Aufgabe 45 **
MehrKapitel 8. Programmierkurs. Methoden. 8.1 Methoden
Kapitel 8 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Methoden Überladen von Methoden Der this-zeiger Konstruktoren Vererbung WS 07/08
MehrProbeklausur: Programmierung WS04/05
Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,
MehrInformatik Repetitorium SS 2009. Volker Jaedicke Volker.Jaedicke@web.de 0179 1322692
Informatik Repetitorium SS 2009 Volker Jaedicke Volker.Jaedicke@web.de 0179 1322692 Operatoren und Datentypen Beispiel: Anweisungen Variable int a float b int c a= a % (int) (++b-1/4) Vorher 36 3.5 c=b
Mehr3. Einführung in C Programmierung Einführung in C Programmierung
Einführung in C Programmierung 3-1 Warum die Programmiersprache C lernen? C Programme sind leicht zwischen verschiedenen Systemumgebungen portierbar. C ist eine geeignete Sprache zum Aufbau einer Programmbausteinbibliothek.
MehrObjektorientierte Programmierung mit C++ Zusammenfassung der wichtigsten Topics rund um die objektorientierte Programmierung mit C++11
Objektorientierte Programmierung mit C++ Zusammenfassung der wichtigsten Topics rund um die objektorientierte Programmierung mit C++11 Wozu objektorientiertes Programmieren? Die Welt besteht für den Menschen
MehrGrundlagen der Informatik - 6. Praktikum
Grundlagen der Informatik - 6. Praktikum In diesem Praktikum soll es neben der Anwendung von Funktionsdefinitionen auch um einfache Prinzipien der verteilten Quelltext-Strukturierung gehen. Diese spielt
MehrKurzeinführung in C/C++ Elementare Datentypen in C++
Elementare Datentypen in C++ Anders als in Java sind in C++ die Größen der Elementaren Datentypen maschinenabhängig Die Größe der Datentypen lässt sich mit sizeof ermitteln: int n=sizeof(int) In C++ gilt
MehrObjektorientierte Programmierung
Unterlagen zur Veranstaltung Einführung in die Objektorientierte Programmierung Mit Processing Alexis Engelke Sommer 2012 Alexis Engelke Inhalt Level 1: Geometrie Hintergrundfarben Punkte, Linien und deren
MehrInformatik für Elektrotechnik und Informationstechnik
Informatik für Elektrotechnik und Informationstechnik Praktikum 1 Wintersemester 2013/14 1 Kennenlernen der Entwicklungsumgebung Netbeans Netbeans ist eine moderne Entwicklungsumgebung für mehrere Programmiersprachen,
Mehr1. Von der Idee zur Software 2. Funktionen und Datenstrukturen Lehrbuch: 4.3 3. Organisation des Quellcodes 4. Werte- und Referenzsemantik
Software-Technik: Vom Programmierer zur erfolgreichen Software-Technik: Vom Programmierer zur erfolgreichen 1. Von der Idee zur Software 2. Funktionen und Datenstrukturen Lehrbuch: 4.3 3. Organisation
MehrPrimitive Datentypen und Felder (Arrays)
Primitive Datentypen und Felder (rrays) Primitive Datentypen Java stellt (genau wie Haskell) primitive Datentypen für Boolesche Werte, Zeichen, ganze Zahlen und Gleitkommazahlen zur Verfügung. Der wichtigste
MehrKlausur in Programmieren
Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Sommer 2009, 16. Juli 2009 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt) Name: Matrikelnr.:
MehrProgrammiertechnik Klassenmethoden
Programmiertechnik Klassenmethoden Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Motivation Programm zur Berechung von public class Eval1 { public static void main(string[] args) { java.util.scanner
MehrInformationsverarbeitung im Bauwesen
1/21 Informationsverarbeitung im Bauwesen Einführung in das Programmieren mit C++ Markus Uhlmann Institut für Hydromechanik Karlsruher Institut für Technologie www.ifh.kit.edu WS 2010/2011 Vorlesung 8
MehrTeil 10: Operator Überladung. Prof. Dr. Herbert Fischer Fachhochschule Deggendorf Prof. Dr. Manfred Beham Fachhochschule Amberg-Weiden
Teil 10: Operator Überladung Prof. Dr. Herbert Fischer Fachhochschule Deggendorf Prof. Dr. Manfred Beham Fachhochschule Amberg-Weiden Inhaltsverzeichnis 10 Operator-Überladung... 3 10.1 Übersicht aller
MehrProgrammierkurs Java
Programmierkurs Java Konstruktor, Statische Methoden Packages Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Initialisierung von Datenstrukturen
MehrC++ - Einführung in die Programmiersprache Polymorphismus und Vererbung. Eltern
C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung Eltern Kind Kind Vererbung Definition von Klassen auf Basis von bestehenden Klassen. Implementierung von ist ein. bildet ein hierarchisches
MehrII. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:
Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 04 Referenzen, Overloading, Klassen(hierarchien) Clemens Lang T2 18. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/13 Organisatorisches Nächster Übungstermin
MehrÜbersicht. Vorstellung des OO-Paradigmas
Java, OO und UML Vorstellung des OO-Paradigmas Übersicht Umsetzung des OO-Paradigmas in Java Einführung (seeeeeehr rudimenter) in UML zur graphischen Darstellung von OO Grammatik und Semantik von Java
MehrProgrammieren in C/C++ und MATLAB
Programmieren in C/C++ und MATLAB Sven Willert Christian-Albrechts-Universität zu Kiel CAU 2-1 Datentypen und Formate Mit der Festlegung des Datentyps wird die Art bestimmt, mit der der Computer die Informationen
Mehr3 Klassen, Attribute, Methoden
3 Klassen, Attribute, Methoden Jörn Loviscach Versionsstand: 10. April 2011, 10:25 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen in der Vorlesung. Videos dazu: http://www.j3l7h.de/videos.html
MehrJ.5 Die Java Virtual Machine
Java Virtual Machine Die Java Virtual Machine 22 Prof. Dr. Rainer Manthey Informatik II Java-Compiler und Java Virtual Machine Quellcode-Datei class C... javac D.java Java-Compiler - Dateien class class
MehrEinführung in die Programmierung
: Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte
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
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
MehrKurzeinführung in C++
Kurzeinführung in C++ Johannes J. Schneider 27.10.2004 1 Einleitung C++ ist eine heutzutage in vielen Bereichen sehr häufig verwendete Programmiersprache, die auf der Programmiersprache C aufsetzt, aber
MehrEinführung in die Informatik
Einführung in die Informatik Jochen Hoenicke Software Engineering Albert-Ludwigs-University Freiburg Sommersemester 2014 Jochen Hoenicke (Software Engineering) Einführung in die Informatik Sommersemester
Mehr1. Übung zu "Numerik partieller Differentialgleichungen"
1. Übung zu "Numerik partieller Differentialgleichungen" Simon Gawlok, Eva Treiber Engineering Mathematics and Computing Lab 22. Oktober 2014 1 / 15 1 Organisatorisches 2 3 4 2 / 15 Organisatorisches Ort:
MehrC++ Einführung. und Datenanalyse mit ROOT. Jörg Marks, Physikalisches Institut, INF 226
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
MehrJava Einführung VARIABLEN und DATENTYPEN Kapitel 2
Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Inhalt dieser Einheit Variablen (Sinn und Aufgabe) Bezeichner Datentypen, Deklaration und Operationen Typenumwandlung (implizit/explizit) 2 Variablen
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 02: Klassen & Objekte Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Klassen Grundstruktur einer Java-Klasse Eigenschaften (Attribute) Variablen
MehrJava Virtual Machine (JVM) Bytecode
Java Virtual Machine (JVM) durch Java-Interpreter (java) realisiert abstrakte Maschine = Softwareschicht zwischen Anwendung und Betriebssystem verantwortlich für Laden von Klassen, Ausführen des Bytecodes,
Mehr