110 likes | 247 Views
Informatik Grundlagen, WS04, Seminar 11 Informatik. 1. Was wir heute besprechen. Evaluation Wiederholung aus der Vorlesung: structs Besprechung und Ausarbeitung von Übungsblatt 10 Nachbesprechung Übungsblatt 9 und 10. 2. Evaluation. Ziel der Evaluation
E N D
Informatik Grundlagen, WS04, Seminar 11 Informatik 1
Was wir heute besprechen • Evaluation • Wiederholung aus der Vorlesung: structs • Besprechung und Ausarbeitung vonÜbungsblatt 10 • Nachbesprechung Übungsblatt 9 und 10 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 !!! 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. 4
Wiederholung Vorlesungstructs • Wofür braucht man strukturierte Datentypen? • Strukturen in C • Schlüsselwort structstruct Point { int x; int y;}; • struct gehört mit zum Datentyp (auch bei Funktionsschnittstellen):struct Point p1; 5
Wiederholung Vorlesungstructs • 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); 6
Wiederholung Vorlesungstructs • 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. 7
Wiederholung Vorlesungstructs • 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); } 8
Wiederholung Vorlesungstructs • Ü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. 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!) 10