struct

Werbung
Informatik Grundlagen,
WS04, Seminar 11
Informatik
Informatik Grundlagen, Seminar 11 WS04
1
Was wir heute besprechen
 Evaluation
 Wiederholung aus der Vorlesung: structs
 Besprechung und Ausarbeitung von
Übungsblatt 10
 Nachbesprechung Übungsblatt 9 und 10
Informatik Grundlagen, Seminar 11 WS04
2
Evaluation
 Ziel der Evaluation
 Erhalt von Feedback um den Übungsablauf zu
verbessern.
 Macht mit - das ist DIE Chance.
 Ablauf
 Jeder bekommt jeweils ein Kärtchen pro Leitfrage.
 Auf diese Kärtchen schreibt ihr
Anmerkungen/Vorschläge zur jeweiligen Frage
 Danach werden die Karten eingesammelt und die
Antworten gemeinsam durch diskutiert.
 Jede Kritik ist willkommen !!!
Informatik Grundlagen, Seminar 11 WS04
3
Evaluation
 Leitfragen
 Was hat Ihnen in diesem Kurs wirklich geholfen
etwas über Programmieren zu lernen?
Bitte nennen Sie ein bis zwei Beispiele.
 Was/Welches Verhalten des Lehrbeauftragten hat
Ihnen das Lernen in diesem Kurs schwer gemacht?
Bitte nennen Sie ein bis zwei Beispiele.
 Machen Sie bitte ein bis zwei konkrete
Änderungsvorschläge, die der Lehrbeauftragte
umsetzen könnte, um Ihren Lernerfolg in diesem Kurs
zu unterstützen.
Informatik Grundlagen, Seminar 11 WS04
4
Wiederholung Vorlesung
structs
 Wofür braucht man strukturierte Datentypen?
 Strukturen in C
 Schlüsselwort struct
struct Point {
int x;
int y;
};
 struct gehört mit zum Datentyp (auch bei
Funktionsschnittstellen):
struct Point p1;
Informatik Grundlagen, Seminar 11 WS04
5
Wiederholung Vorlesung
structs
 Verwendung von Strukturen
struct Point {
int x;
int y;
};
/* Initialisierung */
struct Point p = {5,10};
/* direkte Zuweisung */
struct Point p2 = p;
/* Zugriff auf Komponenten */
printf(”p.x = %d”, p.x);
printf(”p.y = %d”, p.y);
Informatik Grundlagen, Seminar 11 WS04
6
Wiederholung Vorlesung
structs
 Strukturen als Parameter von Funktionen
werden als ganzes kopiert.
 Daher genau überlegen ob es nicht sinnvoller
(oder ohnehin erforderlich) ist, die Parameter
mit Call by Reference zu übergeben.
 Dynamische Speicherallokierung macht bei
Strukturen erstmals richtig Sinn (z.B. bei
Grafikanwendung steht nicht von vornherein
fest, wieviele Punkte/Rechtecke denn
gezeichnet werden). Wichtig: jedem malloc
muss unbedingt ein free gegenüber stehen.
Informatik Grundlagen, Seminar 11 WS04
7
Wiederholung Vorlesung
structs
 Hat man einen Pointer auf eine Struktur gibt es
verschiedene Möglichkeiten auf die
Komponenten zuzugreifen:
 Derefenzierung und Punktoperator
 Pfeiloperator.
void PrintPoint(struct Point *pPoint) {
/* Dereferenzierung und Punktoperator */
printf(”x: %d”, (*pPoint).x);
printf(”y: %d”, (*pPoint).y);
/* Pfeiloperator Alternative */
printf(”x: %d”, pPoint->x);
printf(”y: %d”, pPoint->y);
}
Informatik Grundlagen, Seminar 11 WS04
8
Wiederholung Vorlesung
structs
 Übung:
Erstellen Sie eine Struktur für eine Adresse mit
relevanten Komponenten, initialisieren Sie
diese Struktur und schreiben Sie eine Funktion
zur Ausgabe dieser Struktur in zwei Varianten:
Struktur wird als Wert übergeben und Struktur
wird als Pointer übergeben. Verwenden Sie bei
der Pointer-Variante auch die unterschiedlichen
Möglichkeiten, um an die Komponenten heran
zu kommen.
Informatik Grundlagen, Seminar 11 WS04
9
Übungsblatt 10 Tipps...
 Einträge für Tabellen (Daten der Personen)
können Sie hardcoded eingeben, also z.b.
struct Address {...} addresses[30] =
{ {6912,”Hoerbranz”},...}
 Sie dürfen für Eingabe der PLZ scanf oder Funktion

GetInt aus Ü9 verwenden.
Achtung: “Verkettung” von Personen und Adressen
soll wie in Abbildung geschehen. Keine Pointer von
Adr. nach Person (Richtung!)
Informatik Grundlagen, Seminar 11 WS04
10
Informatik Grundlagen, Seminar 11 WS04
Herunterladen