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