Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt...

65
Informatik 1 Übung 5

Transcript of Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt...

Page 1: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

Informatik 1

Übung 5

Page 2: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

NACHBESPRECHUNGÜbung 5

Page 3: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

Korrekturen

• Ich prüfe keine Syntax– schreibt wenn was nicht kompiliert

• Lösungen müssen nicht perfekt sein– Testat gibt es für ernst gemeinte Lösungsversuche

• Formatiert euren Code schön– sonst geb ich mir auch keine Mühe

• Musterlösungen anschauen

Page 4: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

Ich gebe nicht auf

• Code schön formatierenif (x > 0) { a = 1; b = 1;

// Kommentar. if (y > 0) { c = 1; } else { d = 1; }

e = 1;}

Page 5: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

Variablentyp

• Richtige Typen verwendenTyp Verwendung Werte

bool Wahrheitswert true, false

char/wchar_t Ein Zeichen 'a', 'b', ...

int Eine ganze Zahl 0, 1, ...

float/double Eine reelle Zahl 0.0, 0.1, ...

Page 6: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

Ganzzahldivision

• Auf Ganzzahl-Division achtenAusdruck Wert

1/10 0

1.0/10 0.1

1/10.0 0.1

Page 7: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

Charakter

• Buchstaben entsprechen Zahlen• Wenn möglich Buchstaben verwenden

bool isCapital = 'A' < c && c < 'Z'; bool isCapital = 65 < c && c < 90;

char c = 'A'; char c = 65;

if(antwort == 'y') if(antwort == 121)

Page 8: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

Identische Blöcke

• Copy-Paste vermeiden

if(i<10) { switch(i) { case 0: cout << "Null"; break; case 1: cout << "Eins"; break; }} else { switch(i%10) { case 0: cout << "Null"; break; case 1: cout << "Eins"; break; }}

string s;switch(i%10) { case 0: s = "Null"; break; case 1: s = "Eins"; break;}

if(i<10) { cout << s;} else { cout << s;}

Page 9: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

Division durch 0

• Arithmetische Operationen prüfen– Division durch 0– Logarithmus einer negativen Zahl– ...

• In if-Bedingung: als erstes prüfen– Vorzeitiger Abbruch der Auswertung

int x = 1;int y = 0;int z = x / y;

if(y!=0 && x/y > 1)

Page 10: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

Arithmetische Operationen

• CPU kann nur multiplizieren und addieren• xy, sin(x), √x, ... müssen berechnet werden– Iterative multiplikation (siehe Übung 4)– Tabellierte Werte– Gleichungssystem lösen– Taylorreihe– ...

Page 11: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

WIEDERHOLUNGVorlesung 5

Page 12: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

VARIABLENEinzelne Werte

Page 13: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

Variablen

• Variablen in Speicherzellen gespeichert• Jede Speicherzelle hat Adresse und Inhalt• Vereinfachtes Bespiel– Nur integer– Nur 7 Speicherzellen

Page 14: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

Variablen

• Variablen in Speicherzellen gespeichert• Jede Speicherzelle hat Adresse und Inhalt

Name Addresse Inhalt

0000

0001

0002

0003

0004

0005

0006

Page 15: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

Variablen

• Variablen in Speicherzellen gespeichert• Jede Speicherzelle hat Adresse und Inhalt

Name Addresse Inhalt

x 0000 ???

0001

0002

0003

0004

0005

0006

int x;

Page 16: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

Variablen

• Variablen in Speicherzellen gespeichert• Jede Speicherzelle hat Adresse und Inhalt

Name Addresse Inhalt

x 0000 10

0001

0002

0003

0004

0005

0006

int x;x = 10;

Page 17: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

Variablen

• Variablen in Speicherzellen gespeichert• Jede Speicherzelle hat Adresse und Inhalt

Name Addresse Inhalt

x 0000 10

y 0001 ???

0002

0003

0004

0005

0006

int x;x = 10;int y;

Page 18: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

Variablen

• Variablen in Speicherzellen gespeichert• Jede Speicherzelle hat Adresse und Inhalt

Name Addresse Inhalt

x 0000 10

y 0001 10

0002

0003

0004

0005

0006

int x;x = 10;int y;y = x;

Page 19: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

ARRAYSAufeinanderfolgende Werte

Page 20: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

Arrays

• Mehrere aufeinanderfolgende Zellen

Name Addresse Inhalt

x 0000 10

y 0001 10

z[0] 0002 ???

z[1] 0003 ???

0004

0005

0006

int x = 10;int y = 10;int z[2];

Page 21: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

Arrays

• Mehrere aufeinanderfolgende Zellen

Name Addresse Inhalt

x 0000 10

y 0001 10

z[0] 0002 20

z[1] 0003 30

0004

0005

0006

int x = 10;int y = 10;int z[2];z[0] = 20;z[1] = 30;

Page 22: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

POINTER (ZEIGER)Verweise auf Werte

Page 23: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

Pointer

• Pointer verweisen auf andere Speicherzellen• Wert vom Pointer– Adresse einer anderen Speicherzelle

// Variablen, welche auf eine andere Speicherzelle zeigt,// welche wiederum den gegebenen Typ speichert.typ* name;

Page 24: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

Pointer

• Pointer verweisen auf andere Speicherzellen• Wert vom Pointer– Adresse einer anderen Speicherzelle

int x; // x speichert eine ganze Zahlint* p; // p speichert die Adresse einer ganzen Zahlp = &x; // die Adresse von x wird in p gespeichert

// Variablen, welche auf eine andere Speicherzelle zeigt,// welche wiederum den gegebenen Typ speichert.typ* name;

Page 25: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

Pointer

• Pointer verweisen auf andere Speicherzellen

Name Addresse Inhalt

x 0000 10

y 0001 10

p 0002 ???

0003

0004

0005

0006

int x = 10;int y = 10;int* p;

Page 26: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

Pointer

• Pointer verweisen auf andere Speicherzellen

Name Addresse Inhalt

x 0000 10

y 0001 10

p 0002 [0001]

0003

0004

0005

0006

int x = 10;int y = 10;int* p;p = &y;

Page 27: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

Pointer

• NULL bedeutet „zeigt auf nichts“

Name Addresse Inhalt

x 0000 10

y 0001 10

p 0002 [NULL]

0003

0004

0005

0006

int x = 10;int y = 10;int* p;p = NULL;

Page 28: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

Pointer

• Pointer verweisen auf andere Speicherzellen• Dereferenzieren– Zugriff auf die adressierte Speicherzelle

int x;int* p = &x;*p = 10; // p zeigt auf x, also wird in x die 10 gespeichert

Page 29: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

Pointer

• Pointer verweisen auf andere Speicherzellen

Name Addresse Inhalt

x 0000 10

y 0001 10

p 0002 [0001]

0003

0004

0005

0006

int x = 10;int y = 10;int* p;p = &y;

Page 30: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

Pointer

• Pointer verweisen auf andere Speicherzellen

Name Addresse Inhalt

x 0000 10

y 0001 20

p 0002 [0001]

0003

0004

0005

0006

int x = 10;int y = 10;int* p;p = &y;*p = 20;

Page 31: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

Pointer

• &x– Adresse der Variablen x

• *x– Wert der Zelle, auf welche x zeigt– „dem Pfeil folgen“

Page 32: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

Pointer

• Beliebig viele Indirektionen

Name Addresse Inhalt

x 0000 10

px 0001 [0000]

ppx 0002 [0001]

pppx 0003 [0002]

0004

0005

0006

int x;int* px = &x;int** ppx = &px;int*** pppx = &ppx;

***pppx = 1;

Page 33: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

Pointer-Arithmetik

• Addition auf Adressen• Zeiger + konstante Zahl

Name Addresse Inhalt

x[0] 0000 10

x[1] 0001 10

p 0002 [0000]

q 0003 [0001]

0004

0005

0006

int x[2] = {10,10};int* p = &x;int* q = p+1;

Page 34: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

ARRAYS UND ZEIGERGemeinsamkeiten

Page 35: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

Arrays

• Name des Arrays = Zeiger auf die erste Zelle

int x[2];

int* p = x; // p zeigt auf das erste Element in xint* p = &(x[0]); // p zeigt auf das erste Element in x

Page 36: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

Arrays

• Array-Index = Pointer-Arithmetik

int x[2];

int x1 = x[1]; // x1 wird das zweite Element von x zugewiesenint x1 = *(x+1); // x1 wird das zweite Element von x zugewiesen

Page 37: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

LESEN VON ZEIGERN

Page 38: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

Leseweise

• Beim Variablennamen starten• Nach aussen arbeiten– nach rechts, dann nach links

const int * const x[2];

x ist ...

Page 39: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

Leseweise

• Beim Variablennamen starten• Nach aussen arbeiten– nach rechts, dann nach links

const int * const x[2];

x ist ein Array von zwei ...

Page 40: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

Leseweise

• Beim Variablennamen starten• Nach aussen arbeiten– nach rechts, dann nach links

const int * const x[2];

x ist ein Array von zwei konstanten ...

Page 41: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

Leseweise

• Beim Variablennamen starten• Nach aussen arbeiten– nach rechts, dann nach links

const int * const x[2];

x ist ein Array von zwei konstanten Zeigern ...

Page 42: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

Leseweise

• Beim Variablennamen starten• Nach aussen arbeiten– nach rechts, dann nach links

const int * const x[2];

x ist ein Array von zwei konstanten Zeigern auf ein integer...

Page 43: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

Leseweise

• Beim Variablennamen starten• Nach aussen arbeiten– nach rechts, dann nach links

const int * const x[2];

x ist ein Array von zwei konstanten Zeigern auf ein integer, der konstant ist

Page 44: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

DYNAMISCHER SPEICHER

Page 45: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

Speicher reservieren

• Operator new• Erstellt eine neue Speicherzelle– Typ muss angegeben werden– Gibt Zeiger auf die neue Zelle zurück

int* p;

// Erstellt Speicherplatz für einen neuen integer// p zeigt auf die neu angelegte Speicherzellep = new int;

Page 46: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

Speicher freigeben

• Operator delete• Löscht eine zuvor erstellte Speicherzelle– Achtung: Zeiger werden ungültig

// Erstellt Speicherplatz für einen neuen integerint* p = new int;

// Löscht die Speicherzelle, auf welche p zeigtdelete p;

// p zeigt hier immer noch auf die Speicherzelle, die nicht mehr gibt

Page 47: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

Speicher freigeben

• Operator delete• Löscht eine zuvor erstellte Speicherzelle– Achtung: Zeiger werden ungültig

// Erstellt Speicherplatz für einen neuen integerint* p = new int;

// Löscht die Speicherzelle, auf welche p zeigtdelete p;

// p zurücksetzenp = NULL;

Page 48: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

Arrays

• Arrays anlegen und freigeben

int N;

// Erstellt Speicherplatz für N neue integerint* p = new int[N];

// Zugriff mit und ohne Array-Syntaxp[1] = 10;*(p+1) = 10;

// Löscht alle Speicherzellendelete[] p;

Page 49: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

QUIZ

Page 50: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

Quiz

• Was gibt das Programm aus?

int x = 10;int y = 20;

cout << x;

Page 51: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

Quiz

• Was gibt das Programm aus?

int x = 10;int y = 20;int* p = &y;

cout << p;

Page 52: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

Quiz

• Was gibt das Programm aus?

int x = 10;int y = 20;int* p = &y;

cout << *p;

Page 53: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

Quiz

• Was gibt das Programm aus?

int x = 10;int y = 20;int* p;

cout << p;

Page 54: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

Quiz

• Was gibt das Programm aus?

int x = 10;int y = 20;int* p = &x;

*p = 11;p = &y;*p = 21;

cout << x;cout << y;

Page 55: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

Quiz

• Was gibt das Programm aus?

int x[2] = {10, 20};

cout << (x+1);

Page 56: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

Quiz

• Was gibt das Programm aus?

int x[2] = {10, 20};

cout << *x + 1;

Page 57: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

Quiz

• Was gibt das Programm aus?

int x[2] = {10, 20};

cout << *(x + 1);

Page 58: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

STRUCTSVariablenverbunde

Page 59: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

Structs

• Ein struct fasst mehrere Variablen zusammen• Definiert einen neuen Typ

// Definiere einen neuen Typ mit zwei integer-Elementenstruct vector2D { int x; int y;};

vector2d v;

Page 60: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

Structs

• Zugriff auf Elemente• „member“ auf Englisch

vector2D v;

v.x = 10;v.y = 10;

Page 61: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

Structs

• Zuweisung kopiert alle Elemente– Anderst als bei Arrays

vector2D v;vector2D w;

v = w;

Page 62: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

Structs

• Elemente vom Struct in benachbarten Zellen• Wie beim Array

Name Addresse Inhalt

v.x 0000 ???

v.y 0001 ???

0002

0003

0004

0005

0006

vector2D v;

Page 63: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

Structs

• Elemente vom Struct in benachbarten Zellen• Wie beim Array

Name Addresse Inhalt

v.x 0000 10

v.y 0001 20

0002

0003

0004

0005

0006

vector2D v;v.x = 10;v.y = 20;

Page 64: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

Structs und Zeiger

• Zeiger auf structs möglich• Verkürzte Syntax für Elementzugriff

vector2D v;vector2D* pv = &v;

(*pv).x = 10; // Setze Element „x“ vom referenzierten Vektor auf 10pv->x = 10; // Setze Element „x“ vom referenzierten Vektor auf 10

Page 65: Informatik 1 Übung 5. NACHBESPRECHUNG Übung 5 Korrekturen Ich prüfe keine Syntax – schreibt wenn was nicht kompiliert Lösungen müssen nicht perfekt sein.

ÜBUNGSerie 6