Grundlagen der Informatik 11. Zeiger
|
|
- Mona Lang
- vor 7 Jahren
- Abrufe
Transkript
1 11. Zeiger Motivation Zeiger und Adressen Zeiger und Funktionen Zeiger und Arrays Dynamische Objekte Grundlagen der Informatik (Alex Rempel) 1
2 Motivation Dynamische Speicherverwaltung Oft müssen große Speicherblöcke verwaltet werden Eine Speicherarithmetik wird gebraucht, um den Adressraum im Code komfortabel duchzugehen Beispiel Mehrdimensionale Arrays sind sehr unhandlich, stattdessen wird oft ein großer eindimensinaler Array verwendet Vorteil: Parameterübergabe an Funktionen vereinfacht int iarray[12][5]; int i = iarray[3][2]; int iarray[60]; // 12x5 int i = iarray[3*5+2]; Grundlagen der Informatik (Alex Rempel) 2
3 Motivation Dynamische Speicheranpassung Arrays müssen eine feste Größe haben, aber oft werden Arrays mit dynamischer Größe gebraucht Beispiel: Benutzer gibt Anzahl n der einzugebenden Elemente ein Array wird erst danach dynamisch mit der Größe n erzeugt Dynamische Parameterübergabe Ferner auch die Möglichkeit, Arrays zurückzugeben Etc. Grundlagen der Informatik (Alex Rempel) 3
4 Zeiger und Adressen Zeiger (Pointer) sind Variablen type * name; Inhalt der Variable: Adresse im Speicher oder NULL Adresse im Speicher ist bei 32b Systemen eine 32b große Zahl Ändert sich der Inhalt, zeigt die Variable auf eine andere Speicherzelle Inhalt NULL bedeutet, dass die Variable auf nichts zeigt Beim Anwenden von Rechenoperatoren auf den Zeiger kann der Speicher entsprechend durchlaufen werden Beim Dereferenzieren eines Zeigers bekommt man die Variable, auf welche der Zeiger zeigt Der type des Zeigers gibt dabei den Typ der Variable an Grundlagen der Informatik (Alex Rempel) 4
5 Deklaration Grundlagen der Informatik Zeiger und Adressen Von rechts nach links interpretieren: type * name; Variable name ist ein Zeiger auf etwas vom Typ type Initialisierung Zuweisung einer Adresse: ipointer zeigt nun auf Variable inumber Falls nicht sofort zugewiesen wird, sollte immer die Initialisierung auf NULL erfolgen (sonst Fehlerquelle): int* ipointer = NULL; int inumber = 42; int* ipointer = &inumber; Grundlagen der Informatik (Alex Rempel) 5
6 Zeiger und Adressen double* ppointer = NULL; Name Adresse Inhalt ppointer 0x0031FB60 0x == &ppointer == ppointer double* ppointer = NULL; double dnumber = 0.2; dnumber 0x0031FC == &dnumber == dnumber double* ppointer = NULL; double dnumber = 0.2; ppointer = &dnumber; ppointer 0x0031FB60 0x0031FC50 == &ppointer == ppointer == &dnumber dnumber 0x0031FC == &dnumber == ppointer == dnumber == *ppointer Grundlagen der Informatik (Alex Rempel) 6
7 Zeiger und Adressen double* ppointer = NULL; double dnumber = 0.2; ppointer = &dnumber; Name Adresse Inhalt ppointer 0x0031FB60 0x0031FC50 == &ppointer == ppointer == &dnumber dnumber 0x0031FC == &dnumber == ppointer == dnumber == *ppointer double* ppointer = NULL; double dnumber = 0.2; ppointer = &dnumber; *ppointer = *ppointer + 1.3; ppointer 0x0031FB60 0x0031FC50 == &ppointer == ppointer == &dnumber dnumber 0x0031FC == &dnumber == ppointer == dnumber == *ppointer Dereferenzierung Grundlagen der Informatik (Alex Rempel) 7
8 Zeiger und Adressen p is saved in 0x0031FB60 and points to 0x (no value)...dnumber=0.2 in address 0x0031FC50 #include <iostream> p is saved in 0x0031FB60 and points to 0x0031FC50 (value = 0.2) #include <iomanip> using namespace std; const unsigned char g_ucaddresswidth = 8; void printpointer(double*& p) { cout << "p is saved in 0x" << setw(g_ucaddresswidth) << &p << " and points to 0x" << setw(g_ucaddresswidth) << p; if (p!= NULL) cout << " (value = " << *p << ")" << endl; else cout << " (no value)" << endl; void main() { cout << hex << setfill('0'); // set format for all cout double* ppointer = NULL; printpointer(ppointer); // pointing to NULL double dnumber = 0.2; cout << "...dnumber=" << dnumber << " in address 0x" << setw(g_ucaddresswidth) << &dnumber << endl; ppointer = &dnumber; printpointer(ppointer); // pointing to dnumber Grundlagen der Informatik (Alex Rempel) 8
9 Zeiger und Adressen Übung für zu Hause: welche Ausgabe wird erzeugt? (Hinweis: Adressen können nicht vorhergesagt werden) #include <iostream> using namespace std; void main() { double d1 = 1, d2 = 2; const double dconst1 = 11, dconst2 = 12; double* pdouble = &d1; const double* pconstdouble = &dconst1; double* const pdoubleconst = &d2; const double* const pconstdoubleconst = &dconst2; cout << d1 - *pdouble << "..." << *pdouble << "..." << pdouble << endl; cout << *pconstdouble << "..." << pconstdouble << endl; cout << *pdoubleconst << "..." << pdoubleconst << endl; cout << *pconstdoubleconst << "..." << pconstdoubleconst << endl; pconstdouble = &dconst2; cout << *pdouble + *pconstdouble + *pdoubleconst + *pconstdoubleconst << endl; Grundlagen der Informatik (Alex Rempel) 9
10 Zeiger und Adressen Merken: Zeiger immer initialisieren Immer mit NULL initialisieren, falls nicht gleich zugewiesen, sonst gibt es folgende Auswirkungen: Inhalt eines nicht initialisierten Zeigers ist undefiniert Die Zeigervariable zeigt somit auf eine unbekannte Adresse Lesen und Schreiben wird auf fremden Speicher ausgeführt int* p; cout << p << "=" << *p << endl; *p = 42; cout << p << "=" << *p << endl; Grundlagen der Informatik (Alex Rempel) 10
11 Zeiger und Adressen Merken: Zeiger immer initialisieren Immer mit NULL initialisieren, falls nicht gleich zugewiesen, sonst gibt es folgende Auswirkungen: Inhalt eines nicht initialisierten Zeigers ist undefiniert Die Zeigervariable zeigt somit auf eine unbekannte Adresse Lesen und Schreiben wird auf fremden Speicher ausgeführt p zeigt auf eine unbekannte Adresse int* p; cout << p << "=" << *p << endl; *p = 42; cout << p << "=" << *p << endl; 759AB6F0= AB6F0=42 Im Release Modus ausführbar Es wird eine Adresse gelesen und geschrieben, die zu diesem Zeitpunkt sehr wahrscheinlich einer anderen Variable gehört Grundlagen der Informatik (Alex Rempel) 11
12 Zeiger und Adressen Konstante Zeiger und Zeiger auf Konstanten Zeiger auf Konstanten, Beispiel: const int i = 4; Somit kann und darf i nicht mehr geändert werden Folgendes funktioniert also nicht: Sonst könnte man so i ändern: Richtige Deklaration: int* p = &i; *p = 7; const int* p = &i; Konstante Zeiger double* const p = &dnumber; Zeiger wird sofort initialisiert und wird nicht mehr geändert Der Wert der Variable auf die er zeigt kann aber verändert werden (außer die ist auch konstant) Grundlagen der Informatik (Alex Rempel) 12
13 Zeiger und Adressen Zeiger auf Zeiger (auf Zeiger...) Zeiger speichern Adressen von anderen Variablen Zeiger selbst sind auch Variablen Zeiger können also auch auf andere Zeiger zeigen Tipp: Deklaration immer von rechts nach links lesen #include <iostream> #include <string> using namespace std; strtext 0x... What the hell?! pempty 0x... &strtext void main() { string* pempty = NULL; string** ppstring = &pempty; string strtext = "What the hell?!"; *ppstring = &strtext; ppstring 0x... &pempty cout << *pempty << endl; What the hell?!...am Ende... Grundlagen der Informatik (Alex Rempel) 13
14 Zeiger und Funktionen Parameterübergabe mit Zeigern wie mit Variablen Wertübergabe und Referenzübergabe möglich #include <iostream> using namespace std; void IncrementValueAndMakeNULL_WRONG(int* p) { *p = *p + 1; p = NULL; void IncrementValueAndMakeNULL_CORRECT(int*& p) { *p = *p + 1; p = NULL; void main() { int i = 1; int* p1 = &i; int* p2 = &i; cout << "p1=" << p1 << ", p2=" << p2 << ", i=" << i << endl; IncrementValueAndMakeNULL_WRONG(p1); IncrementValueAndMakeNULL_CORRECT(p2); cout << "p1=" << p1 << ", p2=" << p2 << ", i=" << i << endl; p ist eine neue Variable, daher wirkt sich p=null nicht auf p1 unten aus p ist eine Referenz auf p2, also wirkt sich p=null auch auf p2 unten aus p1=0037f7c0, p2=0037f7c0, i=1 p1=0037f7c0, p2= , i=3 Grundlagen der Informatik (Alex Rempel) 14
15 Zeiger und Funktionen Rückgabewert einer Funktion darf ein Zeiger sein #include <iostream> using namespace std; pmax value = 15 int* getmax(int& a, int& b) { if (a > b) return &a; return &b; void main() { int i1 = 3, i2 = 15; int* pmax = getmax(i1,i2); cout << "pmax value = " << *pmax << endl; Grundlagen der Informatik (Alex Rempel) 15
16 Zeiger und Funktionen Rückgabewert einer Funktion darf ein Zeiger sein Achtung: beim Zurückgeben eines Zeigers immer darauf achten, dass zurückgegebene Adresse im Zeiger auch nach dem Aufruf der Funktion gültig ist #include <iostream> using namespace std; int* getmax(int a, int b) { if (a > b) return &a; return &b; pmax value = Unter der zurückgegebenen Adresse in pmax gibt es keine Variable mehr, weil a und b nur in der Funktion getmax existierten void main() { int i1 = 3, i2 = 15; int* pmax = getmax(i1,i2); cout << "pmax value = " << *pmax << endl; Grundlagen der Informatik (Alex Rempel) 16
17 Zeiger und Arrays Name eines Arrays ist Zeiger auf die Startadresse Jede Indexoperation auf ein Array kann somit auch in Form einer Zeigeroperation erfolgen Im Allgemeinen effizienter, aber schwerer zu verstehen #include <iostream> using namespace std; 3 == 3 4 == 4 1 == 1 void main() { const int isize = 3; int ii[isize] = {3,4,1; int* p = ii; // == &ii[0] for (int i=0; i < isize; ++i) cout << ii[i] << " == " << *(p+i) << endl; Zeigerarithmetik, p+2 bedeutet z.b.: gehe im Speicher von Adresse in p 2*sizeof(int) weiter (int* p). Klappt, weil Arrays zusammenhängend gespeichert werden. Grundlagen der Informatik (Alex Rempel) 17
18 Zeiger und Arrays Zeigerarithmetik Operationen (immer in Abhängigkeit vom Zeigertyp): Zeiger plus/minus Ganzzahl, Zeiger minus Zeiger, Vergleich von Zeigern #include <iostream> #include <iomanip> using namespace std; ( )(A)(B)( ) void printmemorychars(unsigned char* pfirstincl, unsigned char* plastexkl) { while(pfirstincl!= plastexkl) { cout << "(" << *pfirstincl << ")"; ++pfirstincl; cout << endl; void main() { cout << hex << setfill('0'); unsigned char cc[] = {'\0','A','B','\0'; int isizechars = sizeof(cc)/sizeof(unsigned char); // 4 printmemorychars(cc,cc+isizechars); Grundlagen der Informatik (Alex Rempel) 18
19 Zeigerarithmetik Zeiger und Arrays ( )(A)(B)( ) (0x4100)(0x0042) #include <iostream> #include <iomanip> using namespace std; // from other file void printmemorychars(unsigned char* pfirstincl, unsigned char* plastexkl); void printmemoryshorts(unsigned short* pfirstincl, unsigned short* plastexkl) { while(pfirstincl!= plastexkl) { cout << "(0x" << setw(4) << *pfirstincl << ")"; ++pfirstincl; cout << endl; void main() { cout << hex << setfill('0'); unsigned char cc[] = {'\0','A','B','\0'; int isizechars = sizeof(cc)/sizeof(unsigned char); // 4 int isizeshorts = sizeof(cc)/sizeof(unsigned short); // 2 printmemorychars(cc,cc+isizechars); printmemoryshorts((unsigned short*)cc,(unsigned short*)cc+isizeshorts); Grundlagen der Informatik (Alex Rempel) 19
20 Zeigerarithmetik Grundlagen der Informatik Zeiger und Arrays Kann sehr effizent, aber sehr unlesbar sein, Ablauf hier in while: Zuweisung '=': kopiere aktuelles Zeichen aus *pfrom nach *pto Post-Inkrement 'pfrom++': pfrom auf nächstes Zeichen Bedingung auf Zeichen in *pto: true solange nicht '\0' Post-Inkrement 'pto++': pto auf nächstes Zeichen #include <iostream> using namespace std; void copytext(unsigned char* pfrom, unsigned char* pto) { while( *pto++ = *pfrom++ ); void main() { unsigned char uctext1[10] = "Lolcat!"; unsigned char uctext2[10] = {0; cout << "'" << uctext1 << "', '" << uctext2 << "'" << endl; copytext(uctext1,uctext2); cout << "'" << uctext1 << "', '" << uctext2 << "'" << endl; 'Lolcat!', '' 'Lolcat!', 'Lolcat!' Grundlagen der Informatik (Alex Rempel) 20
21 Zeiger und Arrays Array als Funktionsparameter mit Zeigern #include <iostream> using namespace std; Length 'Lolcat!' = 7 unsigned long getlength(unsigned char* ptext) { unsigned long ullength = 0; while (*ptext!= '\0') { ++ptext; ++ullength; return ullength; void main() { unsigned char uctext[] = "Lolcat!"; cout << "Length '" << uctext << "' = " << getlength(uctext) << endl; Grundlagen der Informatik (Alex Rempel) 21
22 Zeiger und Arrays Array als Funktionsparameter mit Zeigern #include <iostream> using namespace std; Parameter als Array und als Zeiger gültig Length 'Lolcat!' = 7 unsigned long getlength(unsigned char ptext[]) { unsigned long ullength = 0; while (*ptext!= '\0') { ++ptext; ++ullength; return ullength; void main() { unsigned char uctext[] = "Lolcat!"; cout << "Length '" << uctext << "' = " << getlength(uctext) << endl; Grundlagen der Informatik (Alex Rempel) 22
23 Zeiger und Arrays Array als Funktionsparameter mit Zeigern Beispiel mit Nutzung der Zeigerarithmetik #include <iostream> using namespace std; Length 'Lolcat!' = 7 Length 'cat!' = 4 unsigned long getlength(unsigned char* ptext) { unsigned long ullength = 0; while (*ptext++!= '\0') ++ullength; return ullength; Zeigerarithmetik void main() { unsigned char uctext[] = "Lolcat!"; cout << "Length '" << uctext << "' = " << getlength(uctext) << endl; cout << "Length '" << uctext+3 << "' = " << getlength(uctext+3) << endl; Grundlagen der Informatik (Alex Rempel) 23
24 Dynamische Objekte Es muss eine Möglichkeit geben, neue Objekte, die es zur Compilezeit (beim Programmieren) noch nicht gab, dynamisch zur Laufzeit zu erzeugen Beispiel: Array erst nach der Eingabe der Größe erzeugen Programmspeicher wird hierfür aufgeteilt: Statischer Teil für Objekte zur Compilezeit Dynamischer Teil für Objekte zur Laufzeit Permanenter Teil für globale und statische Objekte Permanenter Teil für den Programmcode Grundlagen der Informatik (Alex Rempel) 24
25 Programmspeicher Dynamische Objekte Code Permanente Objekte global static Heap Objekte dynamisch freier Bereich Stack Objekte Auto Variablen Parameter 0x xFFFFFFFF zur Compilezeit berechnet Objekte auf dem Stack Werden automatisch erzeugt Variable in einem Block angelegt Werden automatisch freigegeben Block wird abgeschlossen, lokale Variable wird freigegeben Objekte auf dem Heap Müssen manuell erzeugt und freigegeben werden Grundlagen der Informatik (Alex Rempel) 25
26 Dynamische Objekte Objekte auf dem Stack (Zugriff über Variablen) Vorteil: Objekte werden automatisch erzeugt und freigegeben Nachteil: Objektanzahl muss zur Pogrammierzeit bekannt sein if (inumber > 6) { int a = 8; Für Variable a wird hier automatisch Speicher auf dem Stack reserviert Variable a ist nur in dem lokalen Block gültig, der Speicher auf dem Stack wird am Ende des Block automatisch freigegeben Grundlagen der Informatik (Alex Rempel) 26
27 Dynamische Objekte Objekte auf dem Heap (Zugriff über Zeiger) Vorteil: Objektanzahl darf beim Programmieren unbekannt sein Nachteil: Objekte müssen manuell freigegeben werden Syntax: erzeugen mit new, freigeben mit delete if (inumber > 6) { int* a = new int(8); delete a; Für Zeigervariable a wird hier automatisch Speicher auf dem Stack reserviert, aber die Variable selbst zeigt auf einen dynamisch erzeugten neuen Speicher, in dem ein int gespeichert wird Gibt den Speicher frei, auf den Zeiger a zeigt Grundlagen der Informatik (Alex Rempel) 27
28 Dynamische Objekte Ein dynamisch auf dem Heap erzeugtes Objekt ist einfach nur ein Teil des Speichers, welcher je nach Zeigertyp unterschiedlich interpretiert wird #include <iostream> #include <iomanip> using namespace std; void printnumber(unsigned int& uinumber) { cout << "0x" << hex << setfill('0') << setw(8) << uinumber << endl; void main() { unsigned int inumber = 0x0F0F; unsigned int* pnumber = &inumber; printnumber(*pnumber); pnumber = new unsigned int; // 4 bytes reserved without initialization printnumber(*pnumber); *pnumber = 0xABCD; // setting int value as usual printnumber(*pnumber); delete pnumber; // freing reserved 4 bytes from heap memory 0x00000f0f 0x x0000abcd Grundlagen der Informatik (Alex Rempel) 28
29 Dynamische Arrays #include <iostream> using namespace std; void inputdata(int* pdata, int isize) { while (isize--) cin >> *pdata++; Dynamische Objekte void printdata(int ii[], int isize) { while (isize--) cout << " --> " << *ii++ << endl; void main() { int isize = 0; cout << "How many elements (1..10)? "; cin >> isize; if (isize > 10) isize = 10; else if (isize < 1) isize = 1; int* parray = new int[isize]; inputdata(parray,isize); printdata(parray,isize); delete [] parray; How many elements (1..10)? > 35 --> > 2 --> 9 Grundlagen der Informatik (Alex Rempel) 29
30 Dynamische Objekte Regeln bei dynamischen Objekten delete darf nur auf Objekte angewendet werden, welche mit new erzeugt wurden delete auf einen NULL Zeiger ist wirkungslos Objekte, die mit new erzeugt wurden, werden nicht automatisch verwaltet und bestehen daher nicht bis zum Ende eines Blocks (Gültigkeitsbereich), sondern bis sie mit delete freigegeben werden Grundlagen der Informatik (Alex Rempel) 30
31 Dynamische Objekte Gefahren bei dynamischen Objekten Heap: Objekt muss mit genau einem new erzeugt und mit genau einem delete freigegeben werden Kein Zeiger zeigt auf das Objekt... gibt es keinen Zugriff mehr auf den Inhalt kann das Objekt nicht mehr freigegeben werden (engl. leak) Mehrere Zeiger zeigen auf das Objekt... darf nur ein Mal freigegeben werden { int* a = new int; // hier memory leak int* a = new int; int* b = a; delete a; *b = 4; // fremder Speicher danach darf kein Zugriff mehr auf dessen Speicher erfolgen Grundlagen der Informatik (Alex Rempel) 31
Programmierung 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
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
MehrZeiger: Der Adressoperator &
Zeiger: Der Adressoperator & Variablen werden im Computer im Speicher abgelegt. Nach der Deklaration int a,b,c; double x,y,z; Sieht die Speicherbelegung etwa wie folgt aus: a b c x y z Jede Variable hat
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
Mehr6 Speicherorganisation
Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen Speicherbereich für
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.
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.
MehrÜ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
MehrAdvanced Programming in C
Advanced Programming in C Pointer und Listen Institut für Numerische Simulation Rheinische Friedrich-Wilhelms-Universität Bonn Oktober 2013 Überblick 1 Variablen vs. Pointer - Statischer und dynamischer
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
MehrKlausur in Programmieren
Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Sommer 2010, 19. Juli 2010 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt) Name: Matrikelnr.:
MehrEinführung in die C++ Programmierung für Ingenieure
Einführung in die C++ Programmierung für Ingenieure MATTHIAS WALTER / JENS KLUNKER Universität Rostock, Lehrstuhl für Modellierung und Simulation 14. November 2012 c 2012 UNIVERSITÄT ROSTOCK FACULTY OF
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.:
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
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,
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
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
MehrAlgorithmen und Programmierung II
Algorithmen und Programmierung II Vererbung Prof. Dr. Margarita Esponda SS 2012 1 Imperative Grundbestandteile Parameterübergabe String-Klasse Array-Klasse Konzepte objektorientierter Programmierung Vererbung
MehrÜberladen von Operatoren
- Überladen des Indexoperators [] - Überladen des Ausgabeoperators > Programmieren in C++ Informatik FH Trier C++12-1 ähnlich dem Überladen von Funktionen Überladen
MehrEinstieg in die Informatik mit Java
1 / 26 Einstieg in die Informatik mit Java Felder Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 26 1 Was sind Felder? 2 Vereinbarung von Feldern 3 Erzeugen von Feldern
MehrWelche 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
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
MehrEinführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015
Java Crashkurs Kim-Manuel Klein (kmk@informatik.uni-kiel.de) May 4, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)
MehrBereits behandelt: Einfache Datentypen / Variablen. Schleifen und Verzweigungen. Funktionen. Heute: Felder, Zeiger, Referenzen. Freispeicherverwaltung
Kompaktkurs C++ Themen C 1 Bereits behandelt: Einfache Datentypen / Variablen Schleifen und Verzweigungen Funktionen Heute: Felder, Zeiger, Referenzen Freispeicherverwaltung Zeichenketten Kommandozeilenargumente
Mehr4 Schleifen und Dateien
4 Schleifen und Dateien 4.1 Übungsaufgabe 4.1.1 Aufgabe 1 Schreiben Sie drei C++ Programme: pword_for.cxx, pword_while.cxx, pword_do.cxx. Die Programme sollen den Benutzer höchstens 5 Mal nach einem Passwort
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
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
MehrGrundlagen 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
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
MehrDynamische Speicherverwaltung
Dynamische Speicherverwaltung Tim Dobert 17.05.2013 Inhaltsverzeichnis 1 Allgemeines zur Speichernutzung 2 2 Ziel und Nutzen 2 3 Anwendung in C 2 3.1 malloc............................... 3 3.2 calloc...............................
MehrEinleitung. 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
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:
MehrC++ - Einführung in die Programmiersprache Funktionen. Leibniz Universität IT Services Anja Aue
C++ - Einführung in die Programmiersprache Funktionen Leibniz Universität IT Services Anja Aue Subroutine (Unterprogramm) Lösung von Teilen einer Gesamtaufgabe. Kapselung von Anweisungen, die zu einer
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
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
MehrZusammengesetzte Datentypen -- Arrays und Strukturen
Zusammengesetzte Datentypen -- und Strukturen Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14
MehrGrundlagen der Programmierung Prof. H. Mössenböck. 10. Klassen
Grundlagen der Programmierung Prof. H. Mössenböck 10. Klassen Motivation Wie würde man ein Datum speichern (z.b. 13. November 2004)? 3 Variablen int da; String month; int ear; Unbequem, wenn man mehrere
MehrEinführung in die Programmierung
: Inhalt Einführung in die Programmierung Wintersemester 2010/11 arithmetik für dynamischen Speicher Anwendungen Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU
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
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
MehrEinführung in die Programmiersprache C
Einführung in die Programmiersprache C Marcel Arndt arndt@ins.uni-bonn.de Institut für Numerische Simulation Universität Bonn Der Anfang Ein einfaches Programm, das Hello World! ausgibt: #include
MehrWintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 16
Kapitel 5 Arithmetische Operatoren Seite 1 von 16 Arithmetische Operatoren - Man unterscheidet unäre und binäre Operatoren. - Je nachdem, ob sie auf einen Operanden wirken, oder eine Verknüpfung zweier
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
MehrÜbungspaket 29 Dynamische Speicherverwaltung: malloc() und free()
Übungspaket 29 Dynamische Speicherverwaltung malloc() und free() Übungsziele Skript In diesem Übungspaket üben wir das dynamische Alloziieren 1. und Freigeben von Speicherbereichen 2. von Zeichenketten
Mehr5. Elementare Befehle und Struktogramme
5. Elementare Befehle und Struktogramme Programmablauf Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme Dr. Norbert Spangler / Grundlagen
MehrZeiger in C. Thomas Mechelke August 2011
Zeiger in C Thomas Mechelke August 2011 Dieser Artikel ist die Ausarbeitung meiner Präsentation über Zeiger in C. Er ist in zwei Teile zerlegt: Der Erste Teil beschäftigt sich mit den Grundlagen zu Zeigern
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
MehrEffizientes Memory Debugging in C/C++
Effizientes Memory Debugging in C/C++ Adam Szalkowski Embedded Computing Conference 2014 Ursachen/ Symptome Debugging Tools Ursachen / Symptome Was habe ich falsch gemacht? Was kann denn passieren im schlimmsten
MehrAnnehmende Schleife do while
Annehmende Schleife do while Schleife mit nachfolgender Bedingungsprüfung: annehmende Schleife B S Mit B wird eine Bedingung (logischer Ausdruck) bezeichnet, S ist ein Strukturblock. Zuerst wird S ausgeführt,
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
MehrDatenstrukturen, Alignment Stack Prozeduraufruf, Parameterübergabe und -rückgabe (Calling Conventions) Leaf procedures
Vorbesprechung U8 Datenstrukturen, Alignment Stack Prozeduraufruf, Parameterübergabe und -rückgabe (Calling Conventions) Leaf procedures Basistypen Alignment der Basistypen auf deren Grösse Grössen (abhängig
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.:
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)
MehrEinführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein (kmk@informatik.uni-kiel.
Java Crashkurs Kim-Manuel Klein (kmk@informatik.uni-kiel.de) May 7, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)
MehrGrundlagen der Programmierung Prof. H. Mössenböck. 6. Methoden
Grundlagen der Programmierung Prof. H. Mössenböck 6. Methoden Parameterlose Methoden Beispiel: Ausgabe einer Überschrift class Sample { static void printheader() { // Methodenkopf Out.println("Artikelliste");
MehrEscape-Sequenzen. Dr. Norbert Spangler
Escape-Sequenzen Einzelzeichen Bedeutung ASCII- ASCII-Code \a alert BEL 07 \b backspace BS 08 \t horizontal tab HT 09 \n line feed LF 0A \v vertical tab VT 0B \f form feed FF 0C \r carriage return CR 0D
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
MehrEarly first draft Höllische Programmiersprachen Seminar im WS 2014/15 Speichermanagement
Early first draft Höllische Programmiersprachen Seminar im WS 2014/15 Speichermanagement Max Haslbeck Technische Universität München 20.01.2015 Zusammenfassung 1 Einleitung 2 Begriffsklärung Heutzutage
MehrJAVA-Datentypen und deren Wertebereich
Folge 8 Variablen & Operatoren JAVA 8.1 Variablen JAVA nutzt zum Ablegen (Zwischenspeichern) von Daten Variablen. (Dies funktioniert wie beim Taschenrechner. Dort können Sie mit der Taste eine Zahl zwischenspeichern).
MehrSpeicher und Adressraum
Linearer Speicher (Adressraum) Technische Universität München Speicher und Adressraum Freie Speicherhalde (Heap) Freier Speicherstapel (Stack) Globale Variablen Bibliotheksfunktionen Laufzeitsystem Programmcode
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
MehrFunktionen und Parameter
Funktionen in C++ Funktionen und Parameter Wie in Java: Parameter sind lokale Variablen Argumente werden bei Aufruf zugewiesen Extras: Zeiger-Parameter für alle Typen: als Rückgabewerte um große Kopien
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; {
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
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
MehrEinstieg in die Informatik mit Java
1 / 26 Einstieg in die Informatik mit Java Felder, mehrdimensional Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 26 1 Überblick: mehrdimensionale Felder 2 Vereinbarung
MehrEine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.
Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,
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
MehrEinführung in die Programmierung
: Inhalt Einführung in die Programmierung Wintersemester 2009/0 : Technik vs. Iteration Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund 2 Definition (einfache,
MehrInteger Integer Integer (Voreinstellung) Integer Gleitkomma Gleitkomma leer/unbestimmt Integer ohne Vorzeichen Integer (explizit) mit Vorzeichen
1 C-Schlüsselwörter Schlüsselwörter sind in allen Programmiersprachen reservierte Wörter. In C sind auch alle Namen _[A-Z]... und... reserviert, auch _... bereichsweise. Weiterhin durch die Standard-
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
MehrWerkzeuge zur Programmentwicklung
Werkzeuge zur Programmentwicklung B-15 Bibliothek Modulschnittstellen vorübersetzte Module Eingabe Editor Übersetzer (Compiler) Binder (Linker) Rechner mit Systemsoftware Quellmodul (Source) Zielmodul
MehrProgrammieren in C/C++ und MATLAB
Programmieren in C/C++ und MATLAB Sven Willert Sabine Schmidt Christian-Albrechts-Universität zu Kiel CAU 4-1 Übung 1) Schreiben Sie ein Programm, das die Fläche unter einer Parabel, also das Integral
MehrKapitel 3: Variablen
Kapitel 3: Variablen Thema: Programmieren Seite: 1 Kapitel 3: Variablen Im letzten Kapitel haben wir gelernt, bestimmte Ereignisse zu wiederholen solange eine Bedingung erfüllt ist. Nun möchten wir aber
MehrKapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik
Klassen und höhere Datentypen Objekte, Felder, Methoden Küchlin/Weber: Einführung in die Informatik Klassen Klasse (class) stellt einen (i.a. benutzerdefinierten) Verbund-Datentyp dar Objekte sind Instanzen
MehrC++ - Funktionen und mehr. Kerstin Gößner und Ralf Wondratschek
C++ - Funktionen und mehr Kerstin Gößner und Ralf Wondratschek Übersicht Deklaration, Definition und Initialisierung Variablen- und Konstantendeklaration Funktionsaufrufe und rückgabewerte Technische Grundlage
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
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
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/
MehrModul 122 VBA Scribt.docx
Modul 122 VBA-Scribt 1/5 1 Entwicklungsumgebung - ALT + F11 VBA-Entwicklungsumgebung öffnen 2 Prozeduren (Sub-Prozeduren) Eine Prozedur besteht aus folgenden Bestandteilen: [Private Public] Sub subname([byval
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?...
MehrEinfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"
MehrInhaltsverzeichnis. Grundbegriffe der C-Programmierung Für den HI-TECH C-Compiler
Inhaltsverzeichnis Grundbegriffe der C-Programmierung 1. Grundsätzliches... 2 1.1 Darstellung von Werten... 2 1.1.1 Dezimale Zahlendarstellung... 2 1.1.2 Binäre Zahlendarstellung... 3 1.1.3 Hexadezimale
MehrJavakurs 2013 Objektorientierung
Javakurs 2013 Objektorientierung Objektorientierte Programmierung I Armelle Vérité 7 März 2013 Technische Universität Berlin This work is licensed under the Creative Commons Attribution-ShareAlike 3.0
MehrEinführung in die Programmierung
: Inhalt Einführung in die Programmierung Wintersemester 2010/11 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund Wiederholungen - while - do-while - for
MehrHochschule Darmstadt Informatik-Praktikum WS 2016/2017 WIng Bachelor 4. Aufgabenblatt Modularisierung, Funktionen, Unterprogramme
Ziele sind das Arbeiten mit Funktionen, sowie - einfache Verzweigung (if else) - Alternativen switch case - einfache Schleifen (while oder do while) Aufgabe 4: Diese Aufgabe basiert auf der Aufgabe 3.
MehrSchleifen in C/C++/Java
Schleifen in C/C++/Java Alle 3 Sprachen stellen mindestens die folgenden 3 Schleifenkonstruktionen zur Verfügung. In C gibt es auch keine weiteren, C++, Java und C# haben noch weitere nützliche Varianten.
MehrEinfache Rechenstrukturen und Kontrollfluss II
Einfache Rechenstrukturen und Kontrollfluss II Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer http://www.pst.informatik.uni-muenchen.de/lehre/ss06/infoii/ SS 06 Ziele Lernen imperative
Mehr12. Vererbung. Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)
12. Vererbung Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)!Vererbung Konzept!Protected Section!Virtuelle Mitgliedsfunktionen!Verwendung von Vererbung Copyright: M. Gross, ETHZ, 2003 2 Vererbung!
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
Mehr13. Vererbung. Prof. Dr. François E. Cellier Informatik I für D-ITET (HS 2012)
13. Vererbung Prof. Dr. François E. Cellier Informatik I für D-ITET (HS 2012) Vererbung Konzept Protected Section Virtuelle Mitgliedsfunktionen Verwendung von Vererbung Vererbung Vererbung ist ein Mechanismus,
MehrZiel, Inhalt. Programmieren in C++ Wir lernen wie man Funktionen oder Klassen einmal schreibt, so dass sie für verschiedene Datentypen verwendbar sind
Templates und Containerklassen Ziel, Inhalt Wir lernen wie man Funktionen oder Klassen einmal schreibt, so dass sie für verschiedene Datentypen verwendbar sind Templates und Containerklassen 1 Ziel, Inhalt
MehrZählen von Objekten einer bestimmten Klasse
Zählen von Objekten einer bestimmten Klasse Ziel, Inhalt Zur Übung versuchen wir eine Klasse zu schreiben, mit der es möglich ist Objekte einer bestimmten Klasse zu zählen. Wir werden den ++ und den --
MehrDatenfelder (Arrays) Vektoren, Matrizen, Tabellen. Dr. Beatrice Amrhein
Datenfelder (Arrays) Vektoren, Matrizen, Tabellen Dr. Beatrice Amrhein Überblick Eindimensionale Arrays o Deklaration, Initialisierung, Zugriff Mehrdimensionale Arrays o Deklaration, Initialisierung, Zugriff
MehrOperatoren und Ausdrücke
Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14 Überblick 1 2 / 11 Motivation Es gibt eine Reihe
MehrEinführung in die STL
1/29 in die STL Florian Adamsky, B. Sc. (PhD cand.) florian.adamsky@iem.thm.de http://florian.adamsky.it/ cbd Softwareentwicklung im WS 2014/15 2/29 Outline 1 3/29 Inhaltsverzeichnis 1 4/29 Typisierung
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
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
Mehr