Repetitorium Programmieren I + II
|
|
- Stefanie Armbruster
- vor 6 Jahren
- Abrufe
Transkript
1 Repetitorium Programmieren I + II Stephan Gimbel Johanna Mensik Michael Roth 6. März 2012
2 Agenda 1 Operatorüberladung 2 Pointer Zeigervariable 3 CopyConstructor 4 Listen 5 Array String 6 STL Container und Iteratoren
3 Operatorüberladung Einleitung Operatorüberladung bedeutet das implementieren eines bestimmten Operators für einen bestimmten Datentyp Für Standarddatentypen wie int sind alle Operationen wie +, ++, <, etc. definiert Für eigene Klassen logischerweise nicht! Es gibt unäre und binäre Operatoren
4 Operatorüberladung Unäre Operatoren ++, cast Operatoren, z.b. nach int Zugriffsoperator: [ ] Binäre Operatoren Rechenoperatoren: +,,, / Vergleichsoperatoren: <, > Streamoperatoren: <<, >>
5 Operatorüberladung Codebeispiel - 1 c l a s s Number { p r i v a t e : i n t number ; p u b l i c : Number ( ) ; Number ( i n t number ) ; } Number o p e r a t o r +( c o n s t Number othernumber ) c o n s t ;
6 Operatorüberladung Codebeispiel - 2 Number Number : : o p e r a t o r +( c o n s t Number othernumber ) c o n s t { r e t u r n ( Number ( number + othernumber. number ) ) ; }
7 Operatorüberladung Sinn der Überladung Operatoren erfüllen an sich den Zweck normaler Funktionen, allerdings ist ihre Funktionsweise sowie die Schreibweise festgelegt Ein < Zeichen ist intuitiver als eine Funktion islessthan, sieht im Code besser aus und das Zeichen ist standartisiert Viele STL Funktionen verwenden überladene Operatoren wie <, = und = =, um mit Objekten zu arbeiten
8 Operatorüberladung - Beispiele < Operator b o o l e a n Number : : o p e r a t o r <( c o n s t Number& othernumber ) c o n s t { r e t u r n ( number < othernumber. number ) ; } = = Operator b o o l e a n Number : : o p e r a t o r==(c o n s t Number& othernumber ) c o n s t { r e t u r n ( number == othernumber. number ) ; }
9 Operatorüberladung Achtung! Ihr könnt keine neuen Operatoren erfinden Operatoren gehen davon aus, dass sich das Objekt linksseitig befindet Der Streamoperator wird daher meist global implementiert Streamoperator - 1 ostream& Number : : o p e r a t o r <<(ostream& os ) { os << number ; r e t u r n ( os ) ; } c o n s t // Syntax : somenumber << cout ;
10 Operatorüberladung Lösung: Globale Funktion Das Problem lässt sich beheben, in dem man den Streamoperator global implementiert. Und zwar mit cout als linksseitigen Operator! Streamoperator - 2 ostream& o p erator <<(ostream& os, c o n s t Number& n ) { os << n. number ; r e t u r n ( os ) ; } // Syntax : cout << somenumber ;
11 Pointer Pointer (Zeiger) werden zur indirekten Adressierung benutzt Anwendung i n t i = 5 ; i n t p i ; p i = &i ; i n t p i 1 = &i ;
12 Pointer können den Wert des Objekts, auf das sie zeigen, lesen Anwendung i = p i + 2 ; // i = 7 cout << p i ; // Ausgabe : p i = 7 können den Wert des Objekts, auf das sie zeigen, ändern Anwendung p i = i + 2 ; // Ausgabe : p i = 9 p i += p i ; // Ausgabe : p i = 18 können zur Laufzeit neue Adressen zugewiesen bekommen, um auf andere Objekte zu zeigen Anwendung p i 1 = p i ;
13 Pointer Anwendung // V e r g l e i c h d e r Objekt Werte : cout << ( p i == p i 1 ) ; // t r u e // V e r g l e i c h d e r Z e i g e r Werte : cout << ( p i == p i 1 ) ; // t r u e // V e r g l e i c h d e r Z e i g e r A d r e s s e n : cout << (& p i == &p i 1 ) ; // f a l s e
14 Pointer können zur Laufzeit Adressen von Objekten zugewiesen bekommen, die erst zur Laufzeit erzeugt werden Anwendung p i 1 = new i n t ; p i 1 = 2 0 ; cout << p i 1 ; // Ausgabe : 20 d e l e t e p i 1 ; // g i b t S p e i c h e r f r e i, l ö s c h t a b e r n i c h t p i 1 p i 1 = p i ;
15 Pointer bekommen zur Compile-Zeit nur Speicher für eine Objektadresse, aber nicht den Speicher für das Objekt selbst zugewiesen. Sie werden vom C++ Compiler nicht initialisiert. Falsch double pd ; pd = 2. 0 ; Richtig double pd = 0 ; Absturz zur Laufzeit vorprogrammiert und evtl. nicht reproduzierbar Fehler schwer zu finden
16 Pointer unterliegen der Typkontrolle durch den Compiler Anwendung i n t p i = 0 ; i n t i = 7 ; double pd = 0 ; p i = &i ; // Geht, b e i d e vom Typ i n t Absturz pd = &i ; // Absturz, da pd d o u b l e und i i n t i s t pd = 0xB001 ; // Absturz, da pd d o u b l e und Wert vom Typ l o n g pd = p i ; // Absturz, da pd d o u b l e und p i i n t i s t Typkontrolle aushebeln mit explizitem cast Anwendung pd = r e i n t e r p r e t c a s t < double > ( pv ) ;
17 Pointer Pointer Adressen i n t i = 4 2 ; // i l i e g t b e i 0xB000 i n t p i = &i ; // p i z e i g t a u f 0xB000 ( p i )++; // i = 4 3 ; p i ++; // z ä h l t A d r e s s e hoch, p i z e i g t nun a u f 0xB004 const Pointer (Zeiger auf Konstante) c o n s t i n t i = 4 2 ; c o n s t i n t j = 2 3 ; i n t p i = &i ; // C o m p i l e r f e h l e r c o n s t i n t p i = &i ; // geht p i = &j ; // geht Der Pointer zeigt auf eine Konstante. Wohin der Pointer zeigt kann verändert werden, nicht aber der Inhalt.
18 Pointer const Pointer (konstante Zeiger auf Variablen) i n t a = 42, b=23; i n t c o n s t pa = &a ; pa = &b ; // C o m p i l e r f e h l e r pa = 1 0 ; // geht, I n h a l t von a=10 Der Pointer zeigt auf eine Variable deren Inhalt sich ändern lässt, allerdings kann der Pointer nicht auf andere Speicherstellen zeigen.
19 Pointer const Pointer (konstante Zeiger auf Variablen / Konstanten) i n t a = 4 2 ; c o n s t i n t b=23; c o n s t i n t c o n s t p=&a ; // geht cout << p << e n d l ; // Ausgabe : 42 p = 1 7 ; // geht n i c h t a = 1 7 ; // geht b = 1 7 ; // geht n i c h t Der Pointer zeigt auf eine Variable oder Konstante deren Inhalt sich nicht über den Pointer ändern lässt. Der Pointer kann nicht auf andere Speicherstellen zeigen.
20 Pointer Ersatz für Referenzparameter in Parameterlisten von Funktionen/Methoden Anwendung i n t gibwert ( ) c o n s t { r e t u r n t h i s >wert ; } Zahl& add ( c o n s t i n t wert ) { t h i s >wert += wert ; r e t u r n t h i s ; } Anwendung v o i d main ( ) { Zahl z = 1 0 ; cout << z. add ( 4 ). add ( 6 ). gibwert ( ) << e n d l ; }
21 Pointer Anwendung i n t main ( ) { Konto pkonto1 = 0, pkonto2 = 0, pkonto3 = 0 ; // Dynamisch O b j e k t e e r z e u g e n pkonto1 = new Konto ; pkonto1 >setname ( Max ) ; // K o n s t r u k t o r mit 3 Parametern a u f r u f e n pkonto2 = new Konto ( M o r i t z, 38923, ) ; // Kopie von Konto2 e r z e u g e n pkonto3 = new Konto ( pkonto2 ) ; // S p e i c h e r w i e d e r f r e i g e b e n d e l e t e pkonto1 ; d e l e t e pkonto2 ; d e l e t e pkonto3 ; }
22 Copy Constructor Bisher Objekt erzeugt von anderem Objekt des gleichen Typs Objekt übergaben (Call by Value) Objekt Rückgabe aus Funktion c l a s s A { p r i v a t e : i n t x ; p u b l i c : A( ) { x = 1 0 ; } A( ) {} } ;
23 Copy Constructor mit Copy Konstruktor c l a s s B { p r i v a t e : char name ; p u b l i c : B( ) {name = new char [ 2 0 ] ; } B( ) { d e l e t e [ ] name ; } } ; // copy c o n s t r u c t o r B( c o n s t B &b ) { name = new char [ 2 0 ] ; s t r p y ( name, b. name ) ; }
24 Deep- und Shallow-Copy
25 einfach verkette Liste Anwendung c l a s s Number { p r i v a t e : i n t number ; Number n e x t ; }
26 einfach verkette Liste Anwendung Number Anfang = 0 ; Number A k t u e l l = 0 ; Number neueselement = 0 ;
27 einfach verkette Liste Anwendung neueselement = new Number ( ) ;
28 einfach verkette Liste Anwendung Anfang = neueselement ;
29 einfach verkette Liste Anwendung A k t u e l l = neueselement ;
30 einfach verkette Liste Anwendung neueselement = new Number ( 2 ) ;
31 einfach verkette Liste Anwendung A k t u e l l >s e t N e x t ( neueselement ) ;
32 einfach verkette Liste Anwendung A k t u e l l = neueselement ;
33 einfach verkette Liste Anwendung neueselement = new Number ( 9 9 ) ;
34 einfach verkette Liste Anwendung Number Anfang = 0 ; Number A k t u e l l = 0 ; Number neueselement = 0 ; neueselement = new Number ( ) ; Anfang = neueselement ; A k t u e l l = neueselement ; neueselement = new Number ( 2 ) ; A k t u e l l >s e t N e x t ( neueselement ) ; A k t u e l l = neueselement ; neueselement = new Number ( 9 9 ) ;...
35 einfach verkette Liste Elemente ausgeben Anwendung A k t u e l l = Anfang ; do { cout << A k t u e l l >getnumber ( ) << e n d l ; A k t u e l l = A k t u e l l >getnext ( ) ; } w h i l e ( A k t u e l l!= 0) ;
36 Doppeltverkettete Liste Anwendung c l a s s Number { p r i v a t e : i n t number ; Number p r e ; Number n e x t ; }
37 Baum Anwendung c l a s s Number { p r i v a t e : i n t number ; Number l e f t ; Number r i g h t ; }
38 Array Seite 1 i n t a r r a y 1 [ 1 0 ] ; // D e f i n i t i o n f o r ( i n t i =0 ; i <10 ; i ++) { a r r a y 1 [ i ]= i i ; } f o r ( i n t i =0; i <10; i=i +1) { cout<<a r r a y 1 [ i ]<< \n ; }
39 Array Seite 2 i n t a r r a y 1 [ ] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 } ; // a r r a y hat 10 e l e m e n t e i n t a r r a y 2 [ 3 ] = { 0, 1 } ; // a r r a y 2 [0]==0, a r r a y 2 [1]==1, a r r a y 2 [2]==??? i n t a r r a y 3 [ 2 ] ; // a r r a y 3 [ 0 ] und a r r a y 3 [ 1 ] s i n d u n d e f i n i e r t i n t a r r a y 4 [ ] = { 0 } ; // a l l e e l e m e n t e haben den wert 0 i n t a r r a y 5 [ ] = { 1 } ; // das e r s t e e l e m e n t hat den wert 1, a l l e a n d e r en den wert 0 char a r r a y 6 [ 2 ] [ 5 ] = // d i e 2 i s t o p t i o n a l { { H, a, l, l, o }, { W, e, l, t } } ; // a r r a y 6 [ 1 ] [ 4 ] == 0
40 Array Seite 3 char c ; // Ein P o i n t e r a u f c h a r c=new char [ j ] ; // R e s e r v i e r e S p e i c h e r f ü r j c h a r a c t e r s // P o i n t e r c z e i g t nun d a r a u f d e l e t e [ ] c ; //wenn mit new [ ] S p e i c h e r r e s e r v i e r t wird, // muss d e r S p e i c h e r mit d e l e t e [ ] w i e d e r // f r e i g e b e n werden
41 Array Seite 4 char c [ 4 ] ; // A r r a y von P o i n t e r n c [ 0 ] = new char ; c [ 1 ] = new char ; c [ 2 ] = new char ; c [ 3 ] = new char ; c [ 0 ] = A ; c [ 1 ] = B ; c [ 2 ] = C ; c [ 3 ] = D ; d e l e t e c [ 0 ] ; d e l e t e c [ 1 ] ; d e l e t e c [ 2 ] ; d e l e t e c [ 3 ] ;
42 Array Array als Parameter v o i d somefunction ( i n t a r r [ ] ) { cout << s i z e o f ( a r r ) << e n d l ; // Ausgabe : 4 } i n t main ( ) { i n t meinarray [ 1 5 ] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 1 0, 1 1, 1 2, 1 3, 1 4, 1 5 } ; somefunction ( meinarray ) ; cout << s i z e o f ( meinarray ) << e n d l // Ausgabe : 60 << s i z e o f ( i n t ) << e n d l // Ausgabe : 4 << s i z e o f ( meinarray ) / s i z e o f ( i n t ) << e n d l ; // Ausgabe : 15 r e t u r n 0 ; } Achtung! In einer Parameterliste ist int arr[] das gleiche wie int*, daher kann sizeof() nicht zur ermittling der Größe verwendet werden. Dies funktioniert nur im Sichtbarkeitsbereich der Definition!
43 Array Array als Parameter - korrekt v o i d somefunction ( i n t a r r [ ], s i z e t n ) { f o r ( s i z e t i =0; i <n ; ++i ) cout << a r r [ i ] << e n d l ; }
44 Array Mehrdimensionale Arrays als Parameter (2D) v o i d t a b e l l e n a u s g a b e ( i n t ( T) [ 3 ], s i z e t n ) { // A l t e r n a t i v : v o i d t a b e l l e n a u s g a b e ( i n t T [ ] [ 3 ], s i z e t n ) { f o r ( s i z e t i =0; i <n ; ++i ) { f o r ( s i z e t j =0; j <3; ++j ) cout << T[ i ] [ j ] ; cout << e n d l ; } cout << e n d l ; } i n t main ( ) { i n t f e l d 1 [ 2 ] [ 3 ] = { { 1, 2, 3 }, { 4, 5, 6 } } ; i n t ( p F e l d ) [ 3 ] = f e l d 1 ; // z e i g t a u f Z e i l e f e l d 1 [ 0 ] ; t a b e l l e n a u s g a b e ( f e l d 1, 2) ; r e t u r n 0 ; }
45 Array Mehrdimensionale Arrays als Parameter - Fortsetzung 3D... Information [3][4] für den Datentyp int Matrix3D [2][3][4], usw... v o i d t a b e l l e n a u s g a b e ( i n t ( T) [ 3 ] [ 4 ], s i z e t n ) ; // bzw : v o i d t a b e l l e n a u s g a b e ( i n t T [ ] [ 3 ] [ 4 ], s i z e t n ) ;
46 Array Zweidimensionale Arrays als Parameter - Beliebige Spaltengröße template<typename Datentyp> v o i d t a b e l l e n a u s g a b e T m p l ( Datentyp t a b e l l e, s i z e t n ) { c o n s t s i z e t SPALTEN = s i z e o f t a b e l l e [ 0 ] / s i z e o f t a b e l l e [ 0 ] [ 0 ] ; f o r ( s i z e t i =0; i <n ; ++i ) { f o r ( s i z e t j =0; j <SPALTEN ; ++j ) cout << t a b e l l e [ i ] [ j ] << ; cout << e n d l ; } cout << e n d l ; } i n t main ( ) { i n t f e l d 1 [ 2 ] [ 7 ] = { { 1, 2, 3, 4, 5, 6, 7 }, { 4, 5, 6, 7, 8, 9, 1 } } ; t a b e l l e n a u s g a b e T m p l ( f e l d 1, 2) ; r e t u r n 0 ; } Funktioniert für beliebige Spaltengröße, aber Zeilen müssen angegeben werden!
47 Array Interpretation von [], [][],... Compiler wandelt Indexoperatoren in Zeigerdarstellung um X bezeichnet alles vor dem letzten Klammerpaar, Y ist der Inhalt des letzten Klammerpaares X[Y] = *((X)+(Y)) Fortgesetzte Anwendung löst alle Indexoperatoren auf statt matrix[i][j] geht also auch: *(matrix[i]+j) oder *(*(matrix+i)+j) Interpretation: Matrix[i] ist ein Zeiger auf i-te Zeile Position (matrix+i) liegt (i mal sizeof(matrix[0])) Bytes von der Stelle matrix entfernt siehe Template Beispiel auf vorheriger Seite!
48 String Stellt typische Operationen für die Verarbeitung von Zeichenketten zur Verfügung Anwendung #i n c l u d e <i o s t r e a m > #i n c l u d e <s t r i n g > u s i n g namespace s t d ; Anwendung s t r i n g month = J u l i ;
49 String Verwendung Stellt typische Operationen für die Verarbeitung von Zeichenketten zur Verfügung Anwendung c i n >> month ; // Eingabe i n t l e n g t h = month. l e n g t h ( ) ; // Länge des S t r i n g s i f ( month == J u l i ) // V e r g l e i c h e n z w e i e r S t r i n g s cout << month ; cout << month. s u b s t r ( 1, 2) ; // S u b s t r i n g month2 = August ; month. swap ( month2 ) ; // I n h a l t e t a u s c h e n
50 String Verwendung Anwendung month = month + + month2 ; // S t r i n g s zusammensetzten s i z e t pos1 = month. f i n d ( J u l i ) ; //Wort f i n d e n i f ( pos1!= s t r i n g : : npos ) // F a l l s S t r i n g vorkommt month. e r a s e ( pos1, 4) ; f o r ( i n t i = 0 ; i < month. l e n g t h ( ) ; i ++) cout << month [ i ] ; // Z u g r i f f a u f e i n z e l n e Z e i c h e n
51 String Verwendung Anwendung s t r i n g s t r i n g 1 = A ; // ASCII : 65 s t r i n g s t r i n g 2 ; s t r i n g 2 [ 0 ] = ( s t r i n g 1 [ 0 ] + 1 ) ; cout << s t r i n g 2 [0]<< e n d l ; // ASCII : 66 = B
52 STL Container und Iteratoren Häufig verwendete Container vector list set multiset map multimap Für jeden dieser Container gibt es einen Iterator
53 STL Container und Iteratoren Anlegen von Containern und Iteratoren Container und Iteratoren sind Templates, sie werden also entsprechend angelegt: // Einen v e c t o r a n l e g e n v e c t o r <i n t > myvector ; // Ein Set a n l e g e n s e t <s t r i n g > myset ; // I t e r a t o r a u f s e t a n l e g e n s e t <s t r i n g >:: i t e r a t o r i t = myset. b e g i n ( ) ;
54 STL Container und Iteratoren vector Einfaches dynamisches Array Einfügen typischerweise mit push back() Zugriff über [ ] Operator oder Iteratoren list Einfügen mit push back oder insert() Zugriff über Iteratoren, kein wahlfreier Zugriff auf Elemente in der Mitte Sortierbar über sort(), verwendet entweder den < Operator oder einen Funktionszeiger zu einer eigenen lessthan Funktion
55 STL Container und Iteratoren set Ein Satz von einmaligen Elementen, intern ein binärer Baum Einfügen über insert, beim Einfügen wird sortiert Zugriff über Iteratoren multiset Elemente dürfen mehrfach vorkommen count() Funktion gibt Auskunft über die Häufigkeit
56 STL Container und Iteratoren Vector #i n c l u d e <v e c t o r >... v e c t o r <i n t > myvector ; // d e c l a r e V e c t o r myvector. p u s h b a c k ( 4 2 ) ; // add Element a t end myvector. p u s h b a c k ( 2 3 ) ; myvector. p u s h b a c k ( ) ; // V e c t o r c o n t e n t : 42, 23, 117 cout << myvector. s i z e ( ) ; //... 3 cout << myvector. f r o n t ( ) ; // cout << myvector. back ( ) ; // myvector. empty ( ) ; //... f a l s e cout << myvector. a t ( 1 ) ; // cout << myvector [ 1 ] ; // myvector. e r a s e ( myvector. b e g i n ( ) +1) ; // Vec c o n t e n t : 42, 117 myvector. pop back ( ) ; // Vec c o n t e n t : 42
57 STL Container und Iteratoren Vector Iteration v e c t o r <i n t > o t h e r V e c t o r ;... // V e c t o r Content : 17, 64, 74, 23, 42, 73, 87 v e c t o r <i n t >:: i t e r a t o r i t ; // I t e r a t o r ( wie P o i n t e r ) z u r N a v i g a t i o n durch STL C o n t a i n e r f o r ( i t=o t h e r V e c t o r. b e g i n ( ) ; i t < o t h e r V e c t o r. end ( ) ; i t ++) cout << << i t ; // Ausgabe : f o r ( i n t i =0; i <o t h e r V e c t o r. s i z e ( ) ; i ++) cout << << o t h e r V e c t o r. a t ( i ) ; f o r ( i n t i =0; i <o t h e r V e c t o r. s i z e ( ) ; i ++) cout << << o t h e r V e c t o r [ i ] ; o t h e r V e c t o r. c l e a r ( ) ; //... l e e r
58 STL Container und Iteratoren List #i n c l u d e <l i s t >... v e c t o r <i n t > mylist ; mylist. p u s h b a c k ( 1 7 ) ; mylist. p u s h b a c k ( 6 4 ) ; mylist. p u s h b a c k ( 7 4 ) ; mylist. p u s h b a c k ( 2 3 ) ; mylist. p u s h b a c k ( 4 2 ) ; mylist. p u s h b a c k ( 7 3 ) ; mylist. p u s h b a c k ( 8 7 ) ; // L i s t c o n t e n t : 17, 64, 74, 23, 42, 73, 87 mylist. p u s h f r o n t ( 1 0 ) ; // L i s t c o n t e n t : 10, 17, 64, 74, 23, 42, 73, 87 mylist. pop back ( ) ; //... 10, 17, 64, 74, 23, 42, 73 mylist. p o p f r o n t ( ) ; //... 17, 64, 74, 23, 42, 73 mylist. remove ( 7 4 ) ; //... 17, 64, 23, 42, 73
59 STL Container und Iteratoren List Iteration v e c t o r <i n t > o t h e r L i s t ; // I n h a l t : 23, 43, 45, 67, 34, 54, 43, 17, 43, 56 o t h e r L i s t. u n i q u e ( ) ; //... 23, 43, 45, 67, 34, 54, 17, 56 o t h e r L i s t. s o r t ( ) ; //... 17, 23, 34, 43, 45, 54, 56, 67 l i s t <i n t >:: i t e r a t o r i t ; f o r ( i t=o t h e r L i s t. b e g i n ( ) ; i t!= o t h e r L i s t. end ( ) ; ++i t ) cout << << i t ; kein Index-Operator [] kein.at() sequentiell!
Programmierkurs C++ Templates & STL (1/2)
Programmierkurs C++ Templates & STL (1/2) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck https://www.itm.uni-luebeck.de/people/fischer #2 Templates Die wichtigsten objekt-orientierten
MehrProgrammiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny
Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny 9. Zeiger Arbeitsspeicher / Adressen Der Arbeitsspeicher des Computers (RAM) besteht aus einem Feld von Speicherzellen, beginnend bei Adresse
MehrC++ Teil 5. Sven Groß. 13. Mai Sven Groß (IGPM, RWTH Aachen) C++ Teil Mai / 18
C++ Teil 5 Sven Groß 13. Mai 2016 Sven Groß (IGPM, RWTH Aachen) C++ Teil 5 13. Mai 2016 1 / 18 Themen der letzten Vorlesung Funktionen Funktionsüberladung, Signatur Rekursion const-deklaration Referenzen
MehrEinführung in die STL
Einführung in die STL Fimberger Lucia lfimberg@cosy.sbg.ac.at Nidetzky Marion mnidetzk@cosy.sbg.ac.at Was ist die STL? Abkürzung für Standard Template Library Eine generische Bibliothek Ist kaum objektorientiert,
Mehr6 ZEIGER UND REFERENZEN - ALLGEMEINES
6 ZEIGER UND REFERENZEN - ALLGEMEINES Leitideen: Zeiger sind Adressen mit zusätzlicher Typinformation über das dort gespeicherte Objekt. Die Vereinbarungssyntax soll der Ausdruckssyntax entsprechen und
MehrZeiger, Arrays und Strings in C und C++
Zeiger, Arrays und Strings in C und C++ 1 Zeiger in Java und C/C++ Zeigervariable (kurz: Zeiger, engl.: pointer): eine Variable, die als Wert eine Speicheradresse enthält Java: Zeiger werden implizit für
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
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
MehrProgrammierung und Angewandte Mathematik
Programmierung und Angewandte Mathematik C++ /Scilab Programmierung und Einführung in das Konzept der objektorientierten Anwendungen zu wissenschaftlichen Rechnens SS 2012 Ablauf Was sind Funktionen/Methoden
MehrC++ Teil 6. Sven Groß. 27. Mai Sven Groß (IGPM, RWTH Aachen) C++ Teil Mai / 14
C++ Teil 6 Sven Groß 27. Mai 2016 Sven Groß (IGPM, RWTH Aachen) C++ Teil 6 27. Mai 2016 1 / 14 Themen der letzten Vorlesung Musterlösung A2 Wdh.: Zeiger und Felder Kopieren von Feldern Dynamische Speicherverwaltung
MehrProgrammiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften
Programmiertechnik Teil 4 C++ Funktionen: Prototypen Overloading Parameter C++ Funktionen: Eigenschaften Funktionen (Unterprogramme, Prozeduren) fassen Folgen von Anweisungen zusammen, die immer wieder
MehrProgrammieren in C/C++ und MATLAB
Programmieren in C/C++ und MATLAB Sven Willert Sabine Schmidt Christian-Albrechts-Universität zu Kiel CAU 5-1 Übung Schreiben Sie ein Programm, das die Zahl π durch π = 4 4 4 4 4 4 + + +... 3 5 7 9 11
MehrDAP2-Programmierpraktikum Einführung in C++ (Teil 2)
DAP2-Programmierpraktikum Einführung in C++ (Teil 2) Carsten Gutwenger 18. April 2008 Lehrstuhl 11 Algorithm Engineering Fakultät für Informatik, TU Dortmund Überblick Dynamischer Speicher Klassen und
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
Mehr5.4 Arrays. Oft müssen viele Werte gleichen Typs gespeichert werden. Idee: Lege sie konsekutiv ab! Greife auf einzelne Werte über ihren Index zu!
5.4 Arrays Oft müssen viele Werte gleichen Typs gespeichert werden. Idee: Lege sie konsekutiv ab! Greife auf einzelne Werte über ihren Index zu! Feld: Index: 17 3-2 9 0 1 0 1 2 3 4 5 Harald Räcke 114/656
Mehr8. Referenzen und Zeiger
8. Referenzen und Zeiger Motivation Variable werden in C++ an speziellen Positionen im Speicher abgelegt. An jeder Position befindet sich 1 Byte. Sie sind durchnummeriert beginnend bei 0. Diese Positionen
MehrF Zeiger, Felder und Strukturen in C
F Zeiger, Felder und Strukturen in C F Zeiger, Felder und Strukturen in C F.1 Zeiger(-Variablen) 1 Einordnung Konstante: Bezeichnung für einen Wert a 0110 0001 Variable: Bezeichnung eines Datenobjekts
MehrTeil 5: Zeiger, Felder, Zeichenketten Gliederung
Teil 5: Zeiger, Felder, Zeichenketten Gliederung Zeiger und Adressen Felder (Arrays) Zeichenketten (Strings) Zeigerarithmetik Mehrdimensionale Felder Zeiger und Adressen Felder Zeichenketten Zeigerarithmetik
Mehr9. Vektoren. (auch Felder/array)
9. Vektoren (auch Felder/array) Motivation Hat man mehrere Objekte gleichen Datentyps, so kann man sie explizit deklarieren, wenn die Anzahl bekannt ist double x1,x2,x3,x4; Nachteile: versagt, -wenn die
MehrPhysische Datenstrukturen
Elementare Datentypen Strukturierte Datentypen Zeiger Seite 1 Einfache Datentypen Datentyp char Verwendung: ASCII-Zeichen Wertebereich: alle darstellbaren Zeichen, 8 bit lange Ganzzahlen im Intervall -128
Mehr2. Programmierung in C
2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten, Operatoren und Ausdrücke Anweisungen und Kontrollstrukturen (Steuerfluss)
MehrArrays,Strings&Pointer in C/C++
Arrays,Strings&Pointer in C/C++ Vortrag Mathias Reich Am 21.5.2002 Pointer Da zur Zeit der Compelierung des Programms nicht immer der Umfang der zu bearbeitenden Daten feststeht muss man sich - in manchen
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
MehrProgrammieren in C++ Überladen von Methoden und Operatoren
Programmieren in C++ Überladen von Methoden und Operatoren Inhalt Überladen von Methoden Überladen von Operatoren Implizite und explizite Konvertierungsoperatoren 7-2 Überladen von Methoden Signatur einer
MehrHydroinformatik I: Referenzen und Zeiger
Hydroinformatik I: Referenzen und Zeiger Prof. Dr.-Ing. habil. Olaf Kolditz 1 Helmholtz Centre for Environmental Research UFZ, Leipzig 2 Technische Universität Dresden TUD, Dresden Dresden, 06. Januar
MehrFelder (1) Allgemeines
Felder (1) Allgemeines Gleichartige Daten, wie Tabelle von Zahlen, Datumswerten, Namen etc. Felder (engl. Array) stellen einen Verbundtyp dar, in dem mehrere Daten desselben Typs gespeichert werden Oft
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
MehrArrays (Felder/Vektoren)
Arrays (Felder/Vektoren) Zusammenfassung mehrerer Variablen des gleichen Typs unter einem Namen im Speicher direkt hintereinander abgelegt Definition: Typname Arrayname [Größe]; Beispiel: int ar [5]; Zugriff
MehrHier wird die Verwendung der Standard Template Library (kurz STL) kurz beschrieben. Inhalt 1.Verwendung der STL Grundlagen...
STL Die C++ Bibliothek ist eine Sammlung von standardisierten Klassen und Containern. Zu beachten ist, dass nicht jede C++ Implementierung den ganzen Umfang der Standardbibliothek realisiert hat. Hier
MehrC++ Notnagel. Ziel, Inhalt. Programmieren in C++
C++ Notnagel Ziel, Inhalt Ich versuche in diesem Dokument noch einmal die Dinge zu erwähnen, die mir als absolut notwendig für den C++ Unterricht und die Prüfungen erscheinen. C++ Notnagel 1 Ziel, Inhalt
MehrAssoziative Container in C++ Christian Poulter
Assoziative Container in C++ Christian Poulter Seminar: Die Sprache C++ Mat-Nr.: 53 03 129 EMail: inf@poulter.de Christian Poulter Assoziative Container in C++ Seite 1/10 Inhalt 1. Einleitung: Container...
MehrPeter Prinz Ulla Kirch-Prinz C+ + Lernen und professionell anwenden. ffl mitp
Peter Prinz Ulla Kirch-Prinz C+ + Lernen und professionell anwenden ffl mitp Inhaltsverzeichnis Einleitung 19 1 Grundlagen 21 Entwicklung und Eigenschaften von C + + 22 Objektorientierte Programmierung
MehrC-Arrays vs. C++-Container
C-Arrays vs. C++-Container In C verwendet man (mangels Alternativen) sehr häufig das C-Array (= Feld): im Speicher hintereinander abgelegte Elemente vom gleichen Typ. Arrays haben einen Basistyp (Typ des
MehrInhalt. 4.5 Arbeit mit Zeigern (engl. Pointer)
Inhalt Inhalt: 4. Programmiersprache C 4.1 Programmaufbau in C 4.2 Basisdatentypen und einfache Anweisungen 4.3 Steuerfluss-Konstrukte 4.4 Arbeit mit indizierten Größen (Felder) 4.5 Arbeit mit Zeigern
MehrEine praktische Einführung in die Programmierung mit der Programmiersprache C
Eine praktische Einführung in die Programmierung mit der Programmiersprache C www.c-howto.de C-HowTo www.c-howto.de Inhaltsverzeichnis 1 Einführung.. 10 1:1 Wozu Programmieren? 10 1.2 Was ist ein Programm?
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
MehrArnold Willemer. Einstieg in C++ Galileo Press
Arnold Willemer Einstieg in C++ Galileo Press Vorwort 13 1.1 Programmieren 17 1.1.1 Start eines Programms 17 1.1.2 Eintippen, übersetzen, ausführen 18 1.1.3 Der Algorithmus 20 1.1.4 Die Sprache C++ 21
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
MehrProgrammieren in Java
Ein Projekt 2 Wiederholung: new-operator Werte nicht-primitiver Datentypen müssen mit new erzeugt werden Es gibt keine Möglichkeit primitive Daten mit new zu erzeugen Beispiele int[] myarray = new int[]
MehrGrundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny
Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.
MehrInformatik 1 ( ) D-MAVT F2010. Schleifen, Felder. Yves Brise Übungsstunde 5
Informatik 1 (251-0832-00) D-MAVT F2010 Schleifen, Felder Nachbesprechung Blatt 3 Aufgabe 1 ASCII... A > a Vorsicht: Lösen Sie sich von intuitiven Schlussfolgerungen. A ist nicht grösser als a, denn in
MehrZeiger (engl. Pointer)
Zeiger (engl. Pointer) Zeiger Ein Zeiger (engl. Pointer) speichert eine Adresse, unter der ein Wert im Speicher des Computers gespeichert werden kann. Eine Variable im Gegensatz speichert einen Wert. Der
MehrVDK-Informatik
Florian Andritsch 7. Juli 2010 1 / 16 Übersicht Heute: Mittwoch Themen, Dynamische Arrays, Wiederholung Funktionen-Arrays- Rekursionen, Structs 2 / 16 Übersicht Was gabs gestern? Themen double, float Konversion
MehrEinführung in die STL anhand eines ausgewählten Beispiels
Einführung in die STL anhand eines ausgewählten Beispiels Frank M. Thiesing http://home.t-online.de/home/ frank.thiesing/stl/stl-folien.pdf Inhalt Überblick über die C++ STL Container Iteratoren Algorithmen
MehrZeiger. C-Kurs 2012, 2. Vorlesung. Tino Kutschbach 10.
Zeiger C-Kurs 2012, 2. Vorlesung Tino Kutschbach tino.kutschbach@campus.tu-berlin.de http://wiki.freitagsrunde.org 10. September 2012 This work is licensed under the Creative Commons Attribution-ShareAlike
MehrZeiger und dynamischer Speicher
Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14 Zuletzt aktualisiert: 09.12.2013, 07:49 Uhr
MehrAuswahlen (Selektionen)
1 Anhang 10.3 Ein/Ausgaben Eingabe mit Prompt (Beispiel) cout ; // Prompt ohne endl cin
Mehr... Vorwort Einstieg in die Programmierung Ablaufsteuerung... 71
... Vorwort... 13 1... Einstieg in die Programmierung... 15 1.1... Programmieren... 15 1.1.1... Start eines Programms... 15 1.1.2... Eintippen, übersetzen, ausführen... 16 1.1.3... Der Algorithmus... 18
MehrMapra: C++ Teil 2. Felix Gruber, Sven Groß. 2. Mai 2017 IGPM. Felix Gruber, Sven Groß (IGPM) Mapra: C++ Teil 2 2. Mai / 11
Mapra: C++ Teil 2 Felix Gruber, Sven Groß IGPM 2. Mai 2017 Felix Gruber, Sven Groß (IGPM) Mapra: C++ Teil 2 2. Mai 2017 1 / 11 Themen vom letzten Mal Kontrollstrukturen Funktionen const Referenzen Zeiger
MehrC++ Teil 5. Sven Groß. 8. Mai IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil 5 8. Mai / 16
C++ Teil 5 Sven Groß IGPM, RWTH Aachen 8. Mai 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 5 8. Mai 2015 1 / 16 Themen der letzten Vorlesung Live Programming zu A2 Gleitkommazahlen Rundungsfehler Auswirkung
MehrSortierte Assoziative Container der STL
Sortierte Assoziative Container der STL Speichern die Daten intern in einer Baumstruktur Elementzugriff O(log 2 N) Das mathematische Konzept einer Relation oder eine diskrete Abbildung wird mit map realisiert,
MehrC++ - Objektorientierte Programmierung Konstante und statische Elemente
C++ - Objektorientierte Programmierung Konstante und statische Elemente hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja
MehrZeiger in C und C++ Zeiger in Java und C/C++
1 Zeiger in Java und C/C++ Zeigervariable (kurz: Zeiger, engl.: pointer): eine Variable, die als Wert eine Speicheradresse enthält Java: Zeiger werden implizit für Referenztypen (Klassen und Arrays) verwendet,
MehrC-Pointer (Zeiger, Adressen) vs. C++ Referenzen
C-Pointer (Zeiger, Adressen) vs. C++ Referenzen Der Pointer (C/C++): In C/C++ ist der Pointer ein eigener Datentyp, der auf Variablen/Objekte zeigen kann. Indem man den Pointer dereferenziert, gewinnt
MehrSTL-Container und Laufzeit
STL-Container und Laufzeit Eine Übersicht Höhere Programmierung / C++ Yannick Kaiser, LMU 1 C++11 Array konstanter Länge, die bei der Initalisierung angegeben werden muss STL-Kapselung für klassische
MehrArrays. Einleitung. Deklarieren einer Array Variablen
Arrays Einleitung bisher jede Variable einzeln deklariert: 12 3 14 12 32 32 3 32 5 3 double sum; int count; ÿ Sie können Zweck und Aufbau von Array-Datentypen erklären ÿ Sie können einen Array korrekt
MehrBetriebssysteme, Rechnernetze und verteilte Systeme 1. Crashkurs C (2)
Betriebssysteme, Rechnernetze und verteilte Systeme 1 Crashkurs C (2) Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund olaf.spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/teaching/ss2008/bsrvs1/
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:
MehrArrays. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 3. 1 Modulübersicht 3
Programmieren mit Java Modul 3 Arrays Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 2 Eindimensionale Arrays 3 2.1 Arrays deklarieren.............................. 3 2.2 Arrays erzeugen................................
MehrDynamische Datentypen. Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren
Dynamische Datentypen Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren Probleme mit Feldern (variabler Länge) man kann sie nicht direkt kopieren und zuweisen Probleme mit
Mehr5.1 Mehr Basistypen. (Wie viele Werte kann man mit n Bit darstellen?)
5.1 Mehr Basistypen Außer int, stellt Java weitere Basistypen zur Verfügung. Zu jedem Basistyp gibt es eine Menge möglicher Werte. Jeder Wert eines Basistyps benötigt die gleiche Menge Platz, um ihn im
MehrProgrammieren in C++ Templates
Programmieren in C++ Templates Inhalt Templates Funktions- und Klassen-Templates Spezialisierung von Templates Generische Klassen Einbinden von Templates Instantiierung (implizit und explizit) Templates
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
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
MehrTyp : void* aktuelle Parameter Pointer von beliebigem Typ
2. Funktionen - Prototypvereinbarung typangabe funktionsname(parameterliste); - Funktionsdefinition typ funktionsname(parameterliste){ Anweisung - Funktionstyp -> Typ der Funktionswertes zulaessige Typangaben
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,
MehrGran Turismo Cars - WS 11/12
WS 2011/2012 Stephan Gimbel Repetitorium PAD 1+2 Übungsblatt Gran Turismo Cars - WS 11/12 Empfehlung: Arbeiten Sie in kleinen Schritten und sorgen Sie dafür, dass Sie jederzeit ein lauffähiges Anwendungssystem
MehrHydroinformatik I: Referenzen und Zeiger
Hydroinformatik I: Referenzen und Zeiger Prof. Dr.-Ing. habil. Olaf Kolditz 1 Helmholtz Centre for Environmental Research UFZ, Leipzig 2 Technische Universität Dresden TUD, Dresden Dresden, 08. Januar
MehrAbgeleitete Datentypen
Abgeleitete Datentypen Prof. Dr. Markus Gross Informatik I für D-MAVT (FS 2014) Felder (Arrays) Zeichenketten (Strings) Strukturen (Structs) union, enum & typedef Arrays Ein Array ist ein Datentyp, der
MehrC-Pointer (Zeiger, Adressen) vs. C++ Referenzen
C-Pointer (Zeiger, Adressen) vs. C++ Referenzen Der Pointer (C/C++): In C/C++ ist der Pointer ein eigener Datentyp, der auf Variablen/Objekte zeigen kann. Indem man den Pointer dereferenziert, gewinnt
Mehr3.8 Objekttypen und Arrays. Wir werden uns in diesem Kapitel näher mit den Objekttypen in Java beschäftigen.
3.8 Objekttypen und Arrays Wir werden uns in diesem Kapitel näher mit den Objekttypen in Java beschäftigen. Praktische Informatik I Wolfgang Effelsberg 3. Die Programmiersprache Java 3.8-1 Primitive Datentypen
MehrViel Erfolg bei der Bearbeitung der Aufgaben!
Musterlösung Name:... 1 2 3 4 5 Gesamt Note 12 8 10 15 11 56 Bitte tragen Sie auf dem Deckblatt Ihr Namen und Ihre Matrikelnummer ein und auf allen weiteren Seiten nur noch Ihre Matrikelnummer. Lösungen
MehrVorkurs C++ Programmierung
Vorkurs C++ Programmierung Funktionen Rückblick Operatoren logische Verknüpfungen Zusammengesetzte Operatoren ( Zuweisungsoperatoren ) Kontrollstrukturen Bedingte Anweisungen (if-abfrage, switch-konstrukt)
MehrProgrammieren I. Arrays Heusch 7.2 Ratz Institut für Angewandte Informatik
Programmieren I Arrays Heusch 7.2 Ratz 5.1 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Arrays: Definition Arrays (dt. Felder) dienen zum Speichern mehrerer gleichartiger Daten
MehrObjekttypen. Referenzen, Objekte, Gleichheit, Wrapper, Arrays, mehr-dimensionale Arrays, Bildbearbeitung, krumme Arrays
Objekttypen Referenzen, Objekte, Gleichheit, Wrapper, Arrays, mehr-dimensionale Arrays, Bildbearbeitung, krumme Arrays Primitive- und Objekt-Datentypen Primitive Datentypen benötigen einen vorher genau
MehrDer Gnu-C++-Compiler allerdings lässt den oben beschriebenen Code durchgehen. Das ist allerdings nicht Standardkonform und sollte deswegen vermieden
1 Der Gnu-C++-Compiler allerdings lässt den oben beschriebenen Code durchgehen. Das ist allerdings nicht Standardkonform und sollte deswegen vermieden werden. 2 Der Speicher wird auf einem besonderen Speicherbereich,
MehrCrashkurs C++ - Teil 1
Crashkurs C++ - Teil 1 Intro Speicherverwaltung Variablen, Pointer, Referenzen Felder statische & dynamische Allozierung Birgit Möller & Denis Williams AG Bioinformatik & Mustererkennung Institut für Informatik
MehrEinführung in die Programmiersprache C
Einführung in die Programmiersprache C 2 Arrays und Pointer Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät statische Arrays Deklaration (eindimensional): /* 40
MehrModul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2
Fakultät Verkehrswissenschaften Friedrich List, Professur für Verkehrsbetriebslehre und Logistik Modul Entscheidungsunterstützung in der Logistik Einführung in die Programmierung mit C++ Übung 2 SS 2016
MehrC++ - Objektorientierte Programmierung Konstruktoren und Destruktoren
C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja Aue
MehrJava Einführung Objekt-Datentypen und Strings. Kapitel 8 und 9
Java Einführung Objekt-Datentypen und Strings Kapitel 8 und 9 Inhalt Was sind Objekt-Datentypen Sonderheiten bei Zuweisung und Vergleich Zeichenketten (Strings) Zeichencodes Char, Char-Arrays und Strings
MehrVerschlüsseln eines Bildes. Visuelle Kryptographie. Verschlüsseln eines Bildes. Verschlüsseln eines Bildes
Verschlüsseln eines Bildes Visuelle Kryptographie Anwendung von Zufallszahlen Wir wollen ein Bild an Alice und Bob schicken, so dass Alice allein keine Information über das Bild bekommt Bob allein keine
Mehr1. Referenzdatentypen: Felder und Strings. Referenz- vs. einfache Datentypen. Rückblick: Einfache Datentypen (1) 4711 r
1. Felder und Strings Eigenschaften von Referenzdatentypen 1. Referenzdatentypen: Felder und Strings Referenzdatentypen sind Konstrukte, mit deren Hilfe wir aus einfachen Datentypen neue eigene Typen erzeugen
Mehr1. Referenzdatentypen: Felder und Strings
1. Felder und Strings Eigenschaften von Referenzdatentypen 1. Referenzdatentypen: Felder und Strings Referenzdatentypen sind Konstrukte, mit deren Hilfe wir aus einfachen Datentypen neue eigene Typen erzeugen
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,
MehrPointer und Arrays. INE1, Montag M. Thaler, Office TG208. ZHAW, M. Thaler, K. Rege, G.
Pointer und Arrays INE1, Montag M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was geht es? Variable Speicherplatz Datenwert über Name ansprechbar hat Typ hat Adresse (Speicheradresse)
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
MehrSchwerpunkte. 10. Felder (Arrays) Grundprinzip von Arrays. Klassifikation von Typen in Programmiersprachen
Schwerpunkte 10. Felder (Arrays) Teil 1 Java-Beispiele: Echo.java Primzahlen.java Monate.java Klassifikation von Typen in Programmiersprachen Array: einziger strukturierter Typ in Java Deklaration, Erzeugung
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1. Kapitel 11. Listen. Listen
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1 Kapitel 11 Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 2 Ziele Implementierungen für
MehrDie C++ Standard Template Library Andreas Obrist
Die C++ Standard Template Library 24. 06. 2004 Andreas Obrist Was dürft Ihr erwarten? 1. Teil Das Wichtigste in Kürze über die Standard Template Library 2. Teil Praktische Beispiele Was dürft Ihr nicht
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,
MehrII. Grundlagen der Programmierung. Beispiel: Merge Sort. Beispiel: Merge Sort (Forts. ) Beispiel: Merge Sort (Forts. )
Technische Informatik für Ingenieure (TIfI) WS 2006/2007, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Rekursion Datenstrukturen Merge S ( split, s, merge ) Beispiel:
MehrAlgorithmen und Datenstrukturen I. Blatt 2. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München
Algorithmen und Datenstrukturen I Blatt 2 Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 18.03.2018 20:05 Aufgabe 1 struct, Parameterübergabe und const Das Repository für diese
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
MehrInformatik I (D-ITET)
Ablauf Informatik I (D-ITET) Übungsstunde 5, 26.10.2009 simonmayer@student.ethz.ch ETH Zürich Nachbesprechung Übung 3 Besprechung/Vertiefung der Vorlesung [21.10.2009] Vorbesprechung Übung 5 2.c) Test
MehrGrundlagen der Informatik 6. Arrays I
6. Arrays I Motivation Array (konstante Länge) Speicherbereich Eingabe von Arrays Grundlagen der Informatik (Alex Rempel) 1 Motivation Beispiel: Bildschirmpixel zeichnen Auflösung 800x600, d.h. insgesamt
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
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
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
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 13. Listen. Listen 1
Kapitel 13 Listen Listen 1 Ziele Implementierungen für Listen kennenlernen Einfach verkettete und doppelt verkettete Listen verstehen Listen-Implementierungen in der Java-Bibliothek kennenlernen Durch
Mehr